Display only · do not vote · Growth split into Economic + Earnings. Liquidity / Credit / Volatility vote; Economic Growth / Earnings Growth are context. Scoring unchanged.
NAAIM 0 (unavailable) · Style +2.5 (Offensive growth) · US GDP Δ4W 0 (unavailable)
Method. Core equities % = round_2.5(60 + 15×4W weighted score), clamp [45,75]. Overlay = equal ±2.5% nudges from NAAIM (3Y %ile ≤20 → Contrarian Long / ≥80 → Contrarian Short), Style (Offensive growth +2.5 / Defensive −2.5; Cyclical value & Mixed = 0), and US GDP nowcast Δ4W (≥+0.2pp Improving / ≤−0.2pp Softening), then cap ±5%. Final = round_2.5(clamp(Core + Overlay, 45, 75)). Hard VIX veto → 45% and ignores Overlay. Regime chip uses Core only.
Outside vs Inside. Regime chip (Risk-on / Mixed / Risk-off) is Core-driven only (Liquidity / Credit / Volatility vote). Overlay = NAAIM + Style + US GDP Δ4W. Equity Style Factors (right) are display-only — Offensive relocates the former Inside pill; does not change Core, Overlay, Final %, or voting.
Style factors why: Style Offensive AND SPHB/SPLV Offensive → Offensive; HF=— unused (Style not Mixed)
Equity Style Factors. Display-only context. Breadth / Positioning / Sentiment / HF are the former top-strip context lights (Positioning & Sentiment split; HF from VIP vs Most Short).
Vote = 200DMA rules (Liq 40% / Cred 35% / Vol 25%) · 100DMA column is context only
| Leg | Call | Level | vs 200DMA | 21d | vs 100DMA (ctx) |
|---|---|---|---|---|---|
| Liquidity / USD | bearish | UUP 28.75 | +3.71% | +2.22% | +2.11% |
| Credit | bearish | HYG 77.33 | -1.16% | -2.57% | -1.74% |
| Volatility | neutral | VIX 15.9 | * | +6.50% | — |
Weighted leg_score = 0.40·liq + 0.35·cred + 0.25·vol → -0.75 (raw on ≥+0.40 / off ≤−0.40; hard VIX veto → risk_off)
UUP/HYG vs 100DMA is display context only — does not vote. LQD/MOVE/10Y remain context.
* Volatility has no 200DMA. VIX level subscore: <15 → +1 (bullish), 15–20 → 0 (neutral), ≥20 → −1 (bearish). Combined with the 21d ROC subscore (≤−10% → +1, ≥+15% → −1) to form the Call.
FRED 2s10s · as-of 2026-09-28 · (context only)
| Series | Level | 1Y %ile | 3Y %ile | 1M | 3M | Read |
|---|---|---|---|---|---|---|
| 2s10s (10Y − 2Y) | 32 bps | 7 | 49 | -15 bps | +4 bps | Falling |
Read (2s10s): Rising if 1M Δ >0, Falling if 1M Δ <0, Flat if 1M Δ =0; the level is shown separately and does not override the Read. 3M is display only. Context only — not a voting leg. Source: FRED DGS2/DGS10. 1Y/3Y %ile = current level percentile over trailing 1Y/3Y; 2s10s Δ in bps. Bond vol (MOVE) is on Global Volatility, not this panel.
VIX · NDX vol · RUT vol · MOVE · CVIX (FX) · as-of 2026-09-30 · (context only)
| Series | Level | 1Y %ile | 3Y %ile | 1W | 1M | 3M | Read |
|---|---|---|---|---|---|---|---|
| VIX | 15.86 | 26 | 42 | +4.48% | -2.94% | +0.32% | Falling |
| NDX vol | 22.10 | 36 | 62 | +6.45% | +0.64% | -21.02% | Rising |
| RUT vol | 21.29 | 30 | 27 | +6.61% | +3.10% | -1.48% | Rising |
| MOVE | 106.6 | 98 | 76 | +11.68% | +36.88% | +63.00% | Rising |
| CVIX (FX) | 6.71 | 51 | 29 | +3.07% | +9.28% | +11.83% | Rising |
Context only — does not vote and does not change the Core Volatility leg. 1W / 1M / 3M are percent changes over 5 / 21 / 63 sessions; 1W and 3M are display only. 1Y/3Y %ile are current level percentiles over trailing 1Y/3Y. Global Volatility Reads use the signed 1M change only: >0 Rising, <0 Falling, =0 Flat; there are no panel bands or 3M confirmations. The Macro Weather Volatility light is intentionally unchanged: its legacy MOVE context tint uses the separate weather_read input, while the panel displays the simple 1M MOVE Read. Up = higher vol. Source: Bloomberg MASTER (2) PX_LAST. Core Volatility vote still uses Yahoo ^VIX only.
Windows: 5d (1W) / 21d (1M) / 63d (3M) · as-of 2026-09-30
| Pair | 1W | 1M | 3M | Read |
|---|---|---|---|---|
| SPY vs UUP (DXY) | -0.89 | -0.44 | -0.31 | Risk-off |
| SPY vs TLT (long Treasuries) | +0.54 | +0.61 | +0.48 | Risk-off |
| SPY vs crude oil (WTI) | +0.08 | -0.43 | -0.56 | Risk-off |
| Bitcoin vs UUP (DXY) | -0.12 | -0.20 | -0.36 | — |
| Gold vs UUP (DXY) | -0.69 | -0.52 | -0.55 | — |
| Crude oil vs UUP (DXY) | +0.17 | -0.15 | +0.01 | — |
| Series | 1W | 1M | 3M |
|---|---|---|---|
| UUP (DXY) | +0.33% | +2.22% | +0.90% |
| 10Y yield (^TNX) | +17 bps | +52 bps | +81 bps |
| Crude oil (WTI) | -0.62% | +6.80% | +33.55% |
| Bitcoin (BTC-USD) | -0.24% | +7.17% | +40.29% |
| Gold (GC=F) | -3.01% | -6.54% | +2.59% |
Read uses 1M corr (|r| ≥ 0.15; 3M fallback if 1M missing). 1W is display only. SPY pairs keep Risk-on/off Reads; Bitcoin/Gold/Crude vs UUP are numbers-only (Read —). Rolling corr is noisy (esp. 1W); context only — not a regime leg.
Now: 41.5% above 200DMA · coverage 501/503 names · Reads: Broad / Narrow / Mixed (participation & size; context only)
| Measure | 1W | 1M | 3M | Read |
|---|---|---|---|---|
| % above 200DMA (Δ pp) | -7.8 | -28.1 | -19.1 | Narrow |
| IWM (small) vs SPY (large) | -0.98% | -5.13% | -9.72% | Narrow |
Changes are percentage points. Read uses level and primarily 1M Δ (conflicts = Mixed); thresholds ≥55% / ≤45%. 41.5% SPX above 200DMA → Read Narrow (level ≥55% or 1M Δ ≥+5 pp = Broad; level ≤45% or 1M Δ ≤−5 pp = Narrow; conflicts = Mixed); RSP/SPY 21d -4.74%, 63d -4.92% · computed from 503 S&P constituents (portfolio OHLCV cache); n_valid=501 n_missing=2
Overall (1M): Offensive growth · soft lean: Risk-on lean · taxonomy: Offensive growth / Cyclical value / Defensive / Mixed (context only)
| Pair | 1W | 1M | 3M | Read |
|---|---|---|---|---|
| MTUM (momentum) vs VLUE (value) | +1.41% | +6.93% | -5.15% | Momentum |
| IVW (S&P growth) vs IVE (S&P value) | +1.81% | +5.34% | +3.64% | Growth |
| SPHB (high-beta) vs SPLV (low-beta) | +0.04% | +8.10% | +4.38% | High Beta |
SPHB vs SPLV Read uses the 1M relative return: positive = High Beta, negative = Low Beta, and |relative return| <0.5% = Mixed. The broader Style taxonomy and Overlay keep their existing Offensive growth / Defensive labels and logic.
Overall (1M): Mixed · GS VIP / Most Short · as-of 2026-09-30 · (context only)
| Basket | 1W | 1M | 3M | Read |
|---|---|---|---|---|
| No HF positioning data — run hf_positioning.py | ||||
Context only — not a voting leg. GS HF VIP vs Most Short Rolling; pair = VIP − Most Short return.
NTM EPS · 50/50 Weighted+NTM revision · Growth = NTM/TTM · real GDP nowcasts · as-of 2026-09-30 · (context only)
| Index | NTM EPS | Blended 4W rev | Blended 3M rev | Growth (NTM/TTM) | Growth 4W ago | Δ (pp) | Read |
|---|---|---|---|---|---|---|---|
| No fundamentals data — run fundamentals_growth.py | |||||||
| Region | Nowcast | 4W ago | Δ (pp) | Read |
|---|---|---|---|---|
| No nowcast data — run fundamentals_growth.py | ||||
Context only — not a voting leg. Revision Read = mean of available 4W/3M % changes in Bloomberg Weighted Est and Next Year EPS (50/50 when both exist). NTM EPS level = Next Year estimate. Growth = NTM EPS / TTM EPS − 1. Nowcasts = Bloomberg Economics GDP nowcasts (US/China/Euro Area), using the last non-null datapoint in each country column. EA = Bloomberg Euro Area GDP nowcast (BENWEAGQ).
Non-commercial / leveraged net · 3Y %ile · as-of 2026-09-30 · (context only)
| Asset | Net | Net 4W ago | 3Y %ile | Read |
|---|---|---|---|---|
| No positioning data — run positioning_sentiment.py | ||||
Read from 3Y %ile (80/20), contrarian context only — not a vote. Asset-manager nets omitted (noisy scale).
Overall: Neutral · composite %ile — · as-of 2026-09-30
| Measure | Level | Level 4W ago | 3Y %ile | Read |
|---|---|---|---|---|
| No sentiment data — run positioning_sentiment.py | ||||
Read from 3Y %ile (80/20), contrarian context only — not a vote.
Headline = 4W weighted raw · Legacy persist = legacy 3-week confirm — not the headline
| Date | Raw | 4W score | Weighted | Legacy persist | vol/cred/liq | Equities tgt | Veto |
|---|---|---|---|---|---|---|---|
| 2026-09-30 | Risk-off | -1.00 | Risk-off | Risk-off | -1/-1/0 | 45.0% | — |
| 2026-09-24 | Risk-off | -1.00 | Risk-off | Risk-off | -1/-1/0 | 45.0% | — |
| 2026-09-17 | Risk-off | -0.90 | Risk-off | Risk-off | -1/0/0 | 47.5% | — |
| 2026-09-10 | Risk-off | -0.70 | Risk-off | Mixed | -1/0/-1 | 50.0% | — |
| 2026-09-02 | Risk-off | -0.40 | Risk-off | Mixed | -1/0/0 | 55.0% | — |
| 2026-08-26 | Mixed | +0.00 | Mixed | Mixed | -1/1/1 | 60.0% | — |
| 2026-08-19 | Mixed | -0.10 | Mixed | Mixed | -1/1/1 | 57.5% | — |
| 2026-08-12 | Mixed | -0.30 | Mixed | Mixed | -1/1/1 | 55.0% | — |
22 trading days (2026-08-31 → 2026-09-30) · Risk-on 0 · Mixed 7 · Risk-off 15 · %>200DMA 41.5–66.9% (last 41.5%)
| Date | Regime (raw) | leg_score / legs | %>200DMA (context) | liq / cred / vol |
|---|---|---|---|---|
| 2026-09-30 | Risk-off | ls=-0.75 · 0↑ 2↓ | 41.5% | liq:S cred:S vol:N |
| 2026-09-29 | Risk-off | ls=-0.75 · 0↑ 2↓ | 41.5% | liq:S cred:S vol:N |
| 2026-09-28 | Risk-off | ls=-0.75 · 0↑ 2↓ | 43.7% | liq:S cred:S vol:N |
| 2026-09-25 | Risk-off | ls=-0.50 · 1↑ 2↓ | 46.3% | liq:S cred:S vol:B |
| 2026-09-24 | Risk-off | ls=-0.75 · 0↑ 2↓ | 44.9% | liq:S cred:S vol:N |
| 2026-09-23 | Risk-off | ls=-0.75 · 0↑ 2↓ | 47.5% | liq:S cred:S vol:N |
| 2026-09-22 | Mixed | ls=-0.15 · 1↑ 1↓ | 49.3% | liq:S cred:N vol:B |
| 2026-09-21 | Mixed | ls=-0.15 · 1↑ 1↓ | 50.1% | liq:S cred:N vol:B |
| 2026-09-18 | Mixed | ls=-0.15 · 1↑ 1↓ | 49.9% | liq:S cred:N vol:B |
| 2026-09-17 | Risk-off | ls=-0.40 · 0↑ 1↓ | 50.7% | liq:S cred:N vol:N |
| 2026-09-16 | Risk-off | ls=-0.65 · 0↑ 2↓ | 50.5% | liq:S cred:N vol:S |
| 2026-09-15 | Risk-off | ls=-0.65 · 0↑ 2↓ | 53.3% | liq:S cred:N vol:S |
| 2026-09-14 | Risk-off | ls=-0.65 · 0↑ 2↓ | 56.7% | liq:S cred:N vol:S |
| 2026-09-11 | Risk-off | ls=-0.40 · 0↑ 1↓ | 56.9% | liq:S cred:N vol:N |
| 2026-09-10 | Risk-off | ls=-0.65 · 0↑ 2↓ | 55.1% | liq:S cred:N vol:S |
| 2026-09-09 | Risk-off | ls=-0.40 · 0↑ 1↓ | 57.3% | liq:S cred:N vol:N |
| 2026-09-08 | Risk-off | ls=-0.40 · 0↑ 1↓ | 61.1% | liq:S cred:N vol:N |
| 2026-09-04 | Mixed | ls=+0.20 · 2↑ 1↓ | 64.7% | liq:S cred:B vol:B |
| 2026-09-03 | Mixed | ls=+0.20 · 2↑ 1↓ | 66.9% | liq:S cred:B vol:B |
| 2026-09-02 | Risk-off | ls=-0.40 · 0↑ 1↓ | 64.9% | liq:S cred:N vol:N |
| 2026-09-01 | Mixed | ls=-0.05 · 1↑ 1↓ | 63.3% | liq:S cred:B vol:N |
| 2026-08-31 | Mixed | ls=+0.20 · 2↑ 1↓ | 66.9% | liq:S cred:B vol:B |