| Rank | ★ | Ticker | Z (2D) | Z (7D) | Z (1D·20) | Funding rate | Fund %ile(30d) | Fund trend | Silent OI | RSI 15m | RSI ×-sec | Volume (24H, $M) | Microstructure score | Opportunity score | Liq 1m ($) | Cascade | Cluster |
|---|
Binance USD-M depth snapshots (top symbols by open interest). Bid/ask colors follow OpenBook-main semantics (green = bid-heavy, red = ask-heavy). Δ5 = change in ±1% band imbalance vs five refreshes ago (~25s at default depth cadence); Mom = bid accumulation vs offer lifting from that delta.
| # | Symbol | Scale | Imb |
|---|
| # | Symbol | Scale | Imb |
|---|
| Rank | Ticker | Spread | Imbalance | Delta (5 refreshes) |
Momentum | Liquidity (±1% + bands) |
Wall |
|---|
Portfolio set chooses which symbols get sparks + correlation: your watchlist, or top 25 by server rank among rows that pass current Market filters (vol, Z, quadrant, cluster, watch-only, etc.). 1h sparks auto-load here (~96 bars via server proxy, ~every 2 min). Load 1h sparks forces refresh. ⌖ focuses on Market.
ρ correlation table Collapsed — expand for full N×N grid + filters
Click a tile for symbol drilldown. Colors follow 1h metric; size is liquidity proxy.
| Deployable rank | ★ | Symbol | Why it matters | Change | Cluster |
|---|
Focus / workflow
Shortlist actionability
Per-symbol rules: opportunity score, z threshold, funding, OI, TF alignment, cascade; regime changes use your first saved config for delivery. Telegram bot token and SMTP stay on the server (.env).
Sends a one-off message using the same channels as production (Telegram needs TELEGRAM_BOT_TOKEN + chat id).
| Symbol | Z thr | Z metric | TG chat | Discord |
|---|
| Condition | Eval | Win% | Avg fav | Avg adv |
|---|
| Time (UTC) | Symbol | Condition | Prio | Price | Preview |
|---|
For maintainers
Keep this tab in sync with the live UI. When you add or rename tabs, controls, table columns, drawer blocks, API fields, or scoring rules, edit app/templates/scanner_dashboard.html (id="tabGuide").
Start here — operator workflow
1. Confirm the header backend pill is online. Set Interval (poll) and Analysis (Intraday = 2D primary z, Swing = 7D primary z).
2. Use the Market scatter + rank table to scan; click a dot or row (or set Symbol) to open the right-hand detail drawer. The client fetches /api/scanner/symbol/{symbol}/drilldown so thesis, playbook, scenarios, and monitoring populate; live row fields merge while the drawer stays open.
3. Expand Diagnostics in the drawer for funding, OI, L2, signal alignment, recent alerts, and Quick backtest.
4. Use Desk for deployable-ranked names plus workflow queues; use Alerts to manage subscriptions and Postgres fire history (feeds drawer “Recent alerts” after you load history).
5. Open this guide anytime: Guide tab, header book icon, or Guide on the live-stream line under the KPIs.
Data sources, auth & APIs
Snapshots focus on Binance USD-M perpetual contracts: last prices, 24h volume, funding, open interest, depth (L2), and liquidations where the stream is available. Multi-exchange keys in Settings are informational unless the backend is configured for them.
The UI refreshes on your REST poll interval and subscribes to WebSocket /ws/stream (JWT sent in the first message after connect; optional ?token= still supported) for incremental updates.
The strip under the KPIs shows live stream time, pair count, and truth (data-family freshness). Amber/red states mean some families are stale or warming—treat edge cases cautiously.
- Auth
- Scanner pages expect a Bearer token (e.g. from login). Protected routes and WebSocket require a valid JWT.
- Read opportunities
- GET /api/scanner/opportunities
- Single symbol
- GET /api/scanner/symbol/{symbol}
- Operator / playbook payload
- GET /api/scanner/symbol/{symbol}/drilldown
- Stream
- WS /ws/stream (post-connect auth JSON or ?token=)
- Health
- GET /health
Header bar & quick icons
- Backend pill
- Live vs offline reachability to the API.
- Target (Market)
- Jumps to Market tab.
- Grid (Portfolio)
- Opens Portfolio tab.
- Bell (Alerts)
- Opens Alerts tab.
- Book (Guide)
- Opens this Guide tab.
- Star (Watchlist)
- Toggles the watchlist rail.
- Profile menu
- Profile — name/avatar context (synced with auth profile when available). Settings — /ui/settings. Log out — clears stored tokens.
Left column — every control
These filters apply to the Market scatter and rank table (and anything that reads the same client filter state). Values persist in localStorage where noted.
- Interval
- Poll cadence: 1 / 5 / 15 minutes. Key: scanner_refresh_interval.
- Analysis
- Intraday → primary |z| = 2D VWAP z. Swing (7D z) → primary |z| = 7D. Key: scanner_analysis_mode.
- Min vol ($M)
- Hide symbols below 24h notional volume.
- Min |z|
- Floor on absolute primary VWAP z (2D or 7D per mode).
- Z direction
- Absolute / Positive / Negative extension filter.
- Min duration cycles
- Require the extension condition to hold across consecutive refresh cycles.
- Quadrant
- Above / Below / Diverging vs both VWAP anchors, or All.
- Cluster
- Microstructure label: Noise spike, Slow grid, Crowded position, Thin market.
- Chart
- Canvas (default scatter) vs Plotly Z×Fund roadmap.
- Axes
- 24h/Opp, LogVol/Opp, 2D/5D, 5D/7D, 2D/Prior week, 2D/Weekly anchor, VWAP/Fund. VWAP presets need klines; on Binance 418 / WAF, z fields can flatten—a yellow stale VWAP banner may appear; prefer ticker-based axes.
- Color by
- Ext (extension) or Sector.
- Size by
- Vol or OI notional for dot area.
- Alert z
- Default |z| for Save alert and new subscriptions. Synced with Settings default.
- Symbol
- Focus contract (e.g. BTC/USDT:USDT). Drives Selected panel, BTC factor card, and drawer context.
- Save alert
- Creates/updates subscription for the current Symbol (server-side rules apply).
- Labels
- Max ticker labels drawn on the scatter (0–20).
- Cluster rings / bins
- Optional scatter overlays for cluster structure.
- Clear WL
- Removes watchlist entries (with confirmation).
- Refresh
- Forces an immediate data pull.
- Reset clusters
- Resets cluster visualization state on the chart.
Quick presets (bundled one-click setups)
The dropdown above the watchlist strip sets many controls at once; you can edit individual fields after. Last choice is remembered in the browser.
- Intraday · 2D/5D (5m poll)
- Intraday, 2D/5D axes, 5m poll, Canvas, Ext color, Vol size; Alerts extension z → 2D VWAP.
- Swing · 5D/7D + daily z alerts
- Swing, 5D/7D, 15m poll, $10M vol, min |z| 1; Alerts extension z → Daily VWAP (20d).
- Funding vs VWAP · Plotly
- VWAP/Fund axes, Plotly engine, OI size, 5m poll, $5M vol, min |z| 1.
- High extension (|z| ≥ 2)
- Intraday 2D/5D, min |z| 2, 5m poll.
- Deep liquidity ($50M+ vol)
- LogVol/Opp, $50M vol floor, sector color, OI size, 15m poll.
- Crowded cluster
- Cluster = Crowded position, intraday 2D/5D, $5M vol.
- Diverging quadrant
- Quadrant = Diverging, intraday 2D/5D, min |z| 1.
Watchlist strip (under presets)
Add pushes the Symbol field (or typed equivalent) to the watchlist. Majors / L1s add bundles. watchlist only restricts the scatter to WL symbols. WL syncs with rank ★ column and Portfolio.
Support bundle: in the browser console, __viridiaDebug.log() or await __viridiaDebug.copy() for axes, sample row, truth health, and order-book stress snapshot.
KPI row & session strip
KPIs summarize the current filtered universe on Market:
- Shown — count after chart-level filters.
- Above / Below both VWAPs — counts vs prior snapshot; window length from Settings → Stats compare.
- ±2σ Extended — |primary z| ≥ 2.
- Mean |extension| — average |primary z|.
- Mean opportunity / funding / OI Δ24h — cross-sectional means.
Session strip (under KPIs): workflow summary—opportunity character, caution mode, ready now, upgrades, deteriorations, invalidations, shortlist execution/governance quality, set warnings. Same backend payload powers Desk queues.
Market tab — chart, selected, rank table
Scatter, zoom & legend
Hover for tooltip; click to focus symbol and open context for the drawer. Use − / + / Reset to zoom the canvas. Tickers legend lists highlighted symbols. Plotly engine replaces the canvas when selected for VWAP×funding style layouts.
BTC factor & Selected panels
BTC factor compares the focused alt to BTC (β-style read, residual, stretch alignment). Selected shows live snapshot metrics: funding, OI, liquidation bucket, cascade, microstructure, opportunity, etc. Footnotes cover OI notional vs 24h volume and client-side anchors for Δ fields.
Rank table — toolbar filters
- Search — ticker text filter.
- Top N — cap visible rows (25–300).
- Min opportunity — floor on composite score.
- Only ±2σ — |primary z| ≥ 2.
- Quadrant / Cluster — same semantics as left column (table-local).
- Primary only — restrict to BTC / ETH / SOL.
- Watchlist — only WL symbols.
Rank table — column reference
- Rank
- Server opportunity ordering for the current snapshot.
- ★
- Watchlist toggle; synced with API + rail.
- Z (2D) / Z (7D)
- Rolling VWAP z on 15m bars (~2 calendar days vs ~7).
- Z (1D·20)
- 20×1d anchored daily VWAP z (swing context).
- Funding rate
- Current interval rate (as shown per exchange).
- Fund %ile(30d)
- Where today’s rate sits vs trailing month.
- Fund trend
- Short-horizon funding drift label.
- Silent OI
- OI +4h >10% while 15m base volume vs prior 4h <−20% (quiet tape, building positions).
- RSI 15m
- 14-period Wilder RSI on 15m closes.
- RSI ×-sec
- Cross-sectional percentile vs universe median (decile read).
- Volume (24H, $M)
- Notional turnover.
- Microstructure score
- Execution / liquidity quality-style score.
- Opportunity score
- Composite 0–1 scanner score.
- Liq 1m ($)
- Forced liquidations in the configured time bucket (header tooltip shows bucket; server may allow POST to change minutes when authenticated).
- Cascade
- Latest bucket vs prior history — liquidation cascade alert state.
- Cluster
- Microstructure cluster assignment.
Ticker row badges (R → C → T → G → B → A)
Order is fixed (not sorted):
- R
- Readiness — Now / Near / Watch / Info / NoAct.
- C
- Conviction — elite → avoid.
- T
- Trust — 0–100% data quality.
- G
- Governance — signal family state.
- B
- Basket role — core, diversifier, satellite, hedge, redundant.
- A
- Attention — 0–100 desk priority blend.
Order book tab — L2 stress
Binance USD-M depth snapshot: KPI strip (symbol coverage, walls, avg spread bps, avg bid skew), stress spectrum chart (imbalance near touch, ±1% band), bid-heavy and ask-heavy leader tables, and a sortable universe grid (spread, imbalance, Δ over 5 refreshes, momentum, liquidity bands, wall flag). Green/red follow bid/ask semantics. Data prefers the cached stress payload; otherwise L2 fields on opportunity rows. Chart redraws when this tab is active.
Portfolio tab — cards & correlation
Portfolio set: Watchlist (if empty, desk shortlist when present) or Top 25 by server rank among rows passing current Market filters. Book ($ total) scales hypothetical equal-weight notionals on cards.
Sort: A–Z, opportunity, |Z| primary, funding, Liq 1m. Load 1h sparks forces hourly kline refresh (~96 bars, chunked; auto-refresh ~2 min while tab is open). Open Market tab returns to the main view.
Correlation matrix (ρ) uses aligned 1h log-returns when all symbols have hourly data; otherwise the note explains what’s missing. Expand ρ correlation table for the N×N grid—Focus asset highlights a row/column; Emphasis filters heatmap vs focus slice vs strong/weak links.
Heatmap tab — sector treemap
Treemap tiles sized by OI or 24h volume, colored by 1h return, 24h ticker %, opportunity, or |Z| primary. Filters: sector Group, Search, min vol, min opportunity, min |Z|. Click a tile for the same symbol drilldown drawer. Optional universe / leader strips may appear when the backend sends enriched snapshot fields.
Desk tab — deployable table & workflow
Main table: top 30 deployable names (from SCANNER_DESK_RANK_LIMIT in .env, default 30—restart server after change). Columns: deployable rank, ★, symbol, Why it matters, Change (lifecycle), Cluster. Sort by clicking headers (deployable preset). Row badges match Market.
Focus / workflow queues
- Immediate review — needs attention now.
- Execution candidates — actionable deployable set.
- Watchlist candidates — track but not yet sized.
- Fresh upgrades — improving thesis quality.
- Thesis deterioration / Recent downgrades — weakening evidence.
- Invalidated ideas — thesis broken.
- High-risk fragile — thin trust or execution.
Click any symbol to open the detail drawer.
Shortlist actionability
KPI strip: style bias, execution quality, governance quality, crowding, regime fit, correlation/redundancy. Warnings call out set-level risks. Lists: Deployable, Diversified, Concentrated, High-trust shortlists for quick scanning.
Alerts tab — subscriptions, tests, history
Subscription card
Per-symbol rules cover opportunity score, |z|, funding extremes, OI, timeframe alignment, cascade, etc. Extension z selector: 2D VWAP vs Daily VWAP (20d) for alert logic. Regime-style broadcasts use your first saved subscription for channel routing. Telegram bot token / SMTP live in server .env.
Test dispatch
One-off Telegram / Discord ping using production paths; requires tokens/webhooks on the server.
Saved subscriptions
Filter list, inspect channels, remove rows.
Outcome accuracy
Per-condition stats for 7d / 30d / 90d windows (eval count, win%, average favorable vs adverse move).
Recent fires (Postgres)
Filter by text and priority; limit rows; optional Auto-refresh 30s. Populates audit trail used alongside drawer recent alerts.
Watchlist rail
Slide-out panel from the star toggle: add/remove symbols, Majors / L1s, jump to Portfolio, search, sort (A–Z / Opp / |Z|). Checkboxes mirror watchlist only on the chart and the rank table WL filter. Copy list / Clear all at the bottom. ◇ on a row focuses that symbol on Market.
Symbol detail drawer — every section
Open from chart, tables, heatmap, desk lists, or WL. Actions: add/remove watchlist, copy contract, jump to Market. Close with ×, overlay click, or Escape.
- Operator strip
- Top-line desk/readiness context for the symbol.
- Thesis summary
- Setup class, signal family, bias, conviction, why it matters, risk flags.
- Playbook
- Style, entry approach, urgency, execution fragility, confirms / weakens, invalidation hints.
- Scenario map
- Bull/base/bear style outcomes with cues.
- Monitoring
- Structured triggers from monitoring_triggers when drilldown provides them.
- Trust / provenance
- Trust score, governance, global truth mode, scanner caution, data uncertainty, warnings.
- Shortlist context
- Basket role, regime fit, redundancy vs diversification, lifecycle, review/attention, change summary.
Diagnostics (collapsible)
- Funding (last settlements) — chart + summary line below (no overlap with OI block).
- OI change
- Order book depth (L2)
- Signal alignment (timeframe / funding context)
- Recent alerts (this symbol) — load Alerts history for fuller audit
- Quick backtest — POST /api/scanner/backtest/run then poll GET /api/scanner/backtest/{job_id}; drawer shows Submitted + Status JSON and a short summary (errors, bar counts, hints).
Settings page (/ui/settings)
Separate page (header link or profile menu). Save Changes persists local preferences and POSTs profile / optional liquidation-bucket API when configured.
- Profile
- Display name, email, avatar URL; loads from /api/auth/profile when token present.
- Preferences
- Dark/light, accent palette, Pro/Standard visual mode, stats compare window (drives KPI deltas), tooltips, default view label, currency display, auto-refresh toggles, refresh interval, default min vol ($M), default alert z.
- Security
- Password / 2FA placeholders (wire to your auth provider as implemented).
- Integrations
- Supabase status line, Bearer token storage for API calls, default Telegram chat id, exchange key hints (live keys remain in server env for ingestion).
- Notifications
- Deviation / email toggles (UI state; server rules still govern delivery).
- API Status
- Health poll from /health.
Persistence (localStorage keys)
Non-exhaustive: scanner_refresh_interval, scanner_analysis_mode, scanner_pref_min_vol, scanner_pref_alert_z, scanner_wl_*, scanner_portfolio_book_usd, scanner_stats_compare_hours, scanner_alerts_auto_refresh, scanner_theme, scanner_accent_theme, scanner_visual_mode, scanner_info_tips, profile fields, scanner_token.
Scan method — VWAP windows & methodology notes
VWAP z-scores use anchored rolling windows on 15m bars (e.g. 2D, 5D, 7D). Intraday mode treats 2D z as primary for filters and “extension”; Swing uses 7D. Axis presets map to 2D/5D, 5D/7D, 2D vs prior week, 2D vs weekly anchor, or VWAP z vs funding (leverage crowding read—interpret with regime context).
