Live Market State
Computed live from latest fetched prices — updates immediately after any data fetch. Same computation as end-of-day pipeline.
Loading live state...
Actionable Signals
VIX peak reversal, breadth thrust, sector rotation, haven flow — detected from latest pipeline run
Loading signals...
Macro Regime Timeline
What is "Regime": The overall market mood — risk-on (bullish), risk-off (bearish), transition, or crisis. Computed from VIX, breadth, momentum, and cross-asset signals. Score ranges from -1 (full bearish) to +1 (full bullish). Breadth % = how many sector ETFs trade above their 20-day average (70%+ = broad rally, 30%- = broad selloff). How to use: Green bars = safe to be bullish. Red bars = defensive or bearish. VIX spike + score drop = avoid new longs. Data: requires evening pipeline run — each run adds one day.
Sector Rotation Heatmap
Daily returns for 15 sector ETFs (11 SPDR + SMH, IGV, KRE, XHB). Green = up, red = down. How to read: Diagonal green streaks = sustained sector rally. Red clusters = sector rotation out. Compare rows to spot which sectors are leading/lagging — tilt strategies toward leaders. Data: reads from prices.db (OHLCV fetch), no pipeline needed.
Cross-Asset Correlation
| Z-score | ||||
|---|---|---|---|---|
| +2 | Well above average | |||
| 0 | Period average | |||
| −2 | Well below average | |||
| SPY | VIX | GLD | TLT | Regime | Meaning |
|---|---|---|---|---|---|
| ↑ | ↓ | ↓ | Risk-on | Classic bull — no hedging needed | |
| ↑ | ↓ | ↑ | Reflation | Growth + inflation hedge | |
| ↑ | ↑ | ↑ | Melt-up | Squeeze / euphoria with rising fear | |
| ↑ | ↑ | ↓ | Nervous rally | Up on low conviction | |
| ↓ | ↑ | ↑ | Fear trade | Flight to safety | |
| ↓ | ↑ | ↓ | ↓ | Liquidity crisis | Everything sold for cash — SPY+GLD+TLT all down |
| ↓ | ↑ | ↓ | ↑ | Cash rotation | Equities sold, rotating to bonds — not full crisis |
| ↓ | ↓ | ↑ | Controlled dip | Orderly pullback, no panic | |
| ↓ | ↓ | ↓ | Complacent | Drifting down, no fear yet |
| VIX / GLD Correlation | |
|---|---|
| ··· 5d fast | Early warning (~3 day lag) |
| --- 20d slow | Trend confirmation (~10 day lag) |
| ● Positive (co-moving) | VIX + GLD both rising — stress indicator |
| ● Negative (diverging) | Normal — VIX falling while GLD rising or vice versa |
Market Breadth
What is breadth: % of 15 sector ETFs (11 SPDR + SMH, IGV, KRE, XHB) currently trading above their own 20-day moving average.
It measures how wide a rally or selloff is — not just whether SPY is up, but whether most sectors are participating.
Data: computed from sector OHLCV prices during evening pipeline run.
| Reading | Meaning | Action |
|---|---|---|
| > 70% | Broad advance — most sectors up | Safe to go long |
| 30–70% | Mixed — selective participation | Be selective, favor leaders |
| < 30% | Broad decline — most sectors failing | Defensive / bearish |
| Chart Signals (labels above chart) | |
|---|---|
| Thrust | Confirmed — breadth crossed ≤40% → ≥60% in 5 days |
| Thrust ? | Early warning — breadth rose 27+ pts in 3 days, not yet at 60% |
| Collapse | Confirmed — breadth crossed ≥60% → ≤40% in 5 days |
| Collapse ? | Early warning — breadth fell 27+ pts in 3 days, not yet at 40% |
| VIX Buy! | VIX crossed below 30 (was >30 in last 5d) — extreme fear subsiding |
| VIX Buy | VIX crossed below 25 (was >25 in last 5d) + breadth > 30% — fear retreating |
| B+VIX | Breadth > 70% + VIX > 20 — broad rally, fear still elevated (underpriced) |
| Diverge | SPY 5d > +0.8% but breadth < 50% — narrow rally, fragile |
| Stealth | SPY 5d < −1% but breadth > 55% — stealth recovery |
| Consecutive labels = signal persists (duration matters). VIX uses raw value, not normalized. | |
Sector Relative Strength (Today vs Yesterday)
Daily return per sector ETF (15 sectors), ranked low to high. Dark bars = today, dim wide bars = yesterday. How to read: Green bars at top = sector leaders (bullish tilt for stocks in that sector). Red bars at bottom = sector laggards (avoid or go bearish). Wide spread = high dispersion (be selective). Compare today vs yesterday — sector flipping from red to green = rotation signal. Data: reads from prices.db, no pipeline needed.