How to read this — what every cell is, and how it's measured
Definitions are generated live from the engine spec (window.A2_SIGNAL_SPEC), so they always match the actual math. Switch the Transform or move Significance (σ) and this updates.
z-score over time — all assets, one scale
Row-click a matrix asset → its line flashes 5×. Click a line → that ONE asset is identified (its own dateline tooltip); click empty chart space → dismiss; shift-click = all-series dateline.
Stretch tape — every asset vs its OWN history (percentile)
Cell = where that bar's reading sits inside the row's own trailing history. Click a cell → synced dateline everywhere (and it becomes the sort column); click a row label → hide/show that row; drag to pan; wheel = zoom (shared with the chart above).
red = top of own history · blue = bottom of own historyscale percentile of own history (756-bar window · 252-obs floor)r / hatch ramping — warming up
Conviction map — price Δ (x) vs volume Δ (y), bubble = |transform|
Every bubble is one asset over the chart's focused horizon. Right = price up, left = down; high = volume expanding, low = drying up; big bubble = extreme transform reading. Click a bubble to identify that asset everywhere; the legend chips above select who's plotted.
Cross-timeframe matrix — the same transform on every horizon
Cell number = the raw transform value over that column's lookback; heat colour = that value normalized across assets in the column (blue ↑ / red ↓); a ring + corner tick = significant (crosses your σ threshold). Hover any column header or cell for its exact lookback in candles; full definitions are in the "How to read this" card above. Click a header to sort by that horizon; click a row to flash its line. DATA_GAP / daily-only cells are excluded from sorts. The trend column is the sort horizon's recent path (last 50 bars, ONE shared scale for every row); the RSI div column is the latest computed price↔RSI divergence (the only event label kept — it can't be eyeballed off the line); hover any cell for a micro heat-strip of that cell's own recent history on the same ramp.
positive (↑)negative (↓)DATA_GAP resolution unavailablen/a daily-only (FRED has no intraday)ramp INSUFFICIENT_HISTORYbear / bull / hidden-bear / hidden-bull RSI divergence (computed) · ·Nb = confirmed N bars ago
Multi-scale divergence — RSI price↔momentum across 1h · 4h · 1d
A divergence is when price and its momentum (RSI) disagree — price grinds to a new
high while momentum quietly rolls over (a top warning), or a new low while momentum turns up (a bottom
warning). It is a computed read you cannot see by eyeballing the line, so it is the one class of
marker we label (R-UI-23). Each instrument gets 9 cells = 3 timeframes (1h / 4h / 1d) × 3 swing
lookbacks (short 5 / normal 13 / wide 34). Cell color = type (bear ▼,
bull ▲, hidden-bear ▿,
hidden-bull ▵); size = strength; it fades as it ages; blank = none.
The Confluence column nets bull vs bear across all 9 — a divergence confirmed across many scales is
far higher-conviction than one lone cell. Pick a view mode for a different lens (each is explained
on-screen). Click any row to load it in the price+RSI chart, which draws the exact swing pair the read is
computed from, always vs the pinned SPX / NAS100 baseline.
loading…
loading divergence grid…
apps2/signal · the matrix triangulates every asset across the full timeframe ladder, always vs the pinned SPX + NAS100 baselines. Every transform's exact formula, lookback, units and adjustable-vs-fixed knobs are defined live in the "How to read this" card up top (generated from the engine spec, so it never drifts); hover any control, column header or cell for a plain-language explanation. 3 cached fetches power the 9 columns: 5m/60d (30m·1h·4h) · 1h/2y (1d·1w) · 1d/5y (1m·1q·1y·5y); switching transform or σ is zero-fetch. Data: ../decoup/data.php (Databento GLBX + Yahoo + FRED + Alpaca SIP).