Risk Regime Scorecard

As-of 2026-09-30 10:50 PDT · market data 2026-09-30
Refresh: bbg_fast · Prices: Yahoo/FRED (cache) · Overlays: BBG 2026-09-30 · ran 2026-09-30 10:50 PDT

Macro Weather Model

2 red · 2 amber · 1 green — aligns with Cautious
Liquidity
Bearish
Credit
Bearish
Volatility
Neutral
Economic Growth
Improving
Earnings Growth
Flat

Display only · do not vote · Growth split into Economic + Earnings. Liquidity / Credit / Volatility vote; Economic Growth / Earnings Growth are context. Scoring unchanged.

  • Liquidity — voting leg (UUP vs 200DMA): bullish→green, neutral→amber, bearish→red.
  • Credit — voting leg (HYG >200DMA AND 21d ROC>0): same bullish/neutral/bearish color map.
  • Volatility — VIX level + 21d ROC sets base color; hard VIX veto→red; MOVE Rising may only tint green→amber; MOVE Falling may tint amber→green if VIX not bearish; MOVE does not vote.
  • Economic Growth — US GDP nowcast Δ4W only (improving ≥+0.2pp → green; softening ≤−0.2pp → red; else amber Stable). Display-only; does not vote. Overlay still uses US GDP Δ4W as one of three Overlay nudges.
  • Earnings Growth — SPX EPS revisions read (Expanding→green / Stable→amber / Contracting→red); deteriorating stance (contracting or Δgrowth≤−0.5) forces red. Display-only; does not vote. Curve not folded in.

Tactical Risk Posture

Cautious
Equity 50%

Equity 50% · Core 45% · Overlay +5%

NAAIM 0 (Neutral (35th %ile)) · Style +2.5 (Offensive growth) · US GDP Δ4W +2.5 (Improving +0.9pp)

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 / Cautious / Risk-off) is Core-driven only (Liquidity / Credit / Volatility vote). Weighted Risk-off + Volatility traffic light not Bearish → display Cautious (math unchanged). 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.

Display chip = Cautious (weighted Risk-off; Vol TL Neutral; hard_veto=False). Core / Overlay / Final % use weighted regime only — display relabel does not vote.

Style factors why: Style Offensive AND SPHB/SPLV Offensive → Offensive; HF=Mixed unused (Style not Mixed)

Equity Style Factors

Growth
Momentum
High beta
BreadthNarrow
VolumeLight both ways

Equity Style Factors. Display-only context. Style pills (Growth / Momentum / High beta) plus Breadth and Volume mini-lights. Positioning / Sentiment / Hedge Fund Positioning live in the panels below (not shown as hero mini-lights).

  • Equity Style Factors pills — Growth (IVW vs IVE 1M), Momentum (MTUM vs VLUE 1M), High beta (SPHB vs SPLV 1M). Green when that factor leads; amber flat; red opposite lean. Label is the factor name only (no Inside: prefix). Display-only.
  • Breadth — % of S&P above 200DMA (Broad/Mixed/Narrow); A/D Divergence / Broken uptrend / Downtrend can worsen amber→red.
  • Volume — 1M SPX conviction taxonomy abbreviated in the hero: Light both ways = no high-conviction advances or sell-offs; Loud both ways / Loud advances / Loud sell-offs map to the corresponding full Volume-panel states; otherwise Mixed.
  • Positioning — NAAIM 3Y %ile alone (crowded ≥80 → red / washed ≤20 → green / else amber Neutral). Split from the old combined Positioning / Sentiment light.
  • Sentiment — sentiment composite overall alone (Contrarian Short/crowded → red; Contrarian Long/washed → green; else amber Neutral). Split from the old combined Positioning / Sentiment light.
  • Hedge Fund Positioning — GS HF VIP vs Most Short read (Risk-on→green / Mixed→amber / Risk-off or squeeze/spec risk-off→red). Context only.

Core Macro Indicators

Vote = 200DMA rules (Liq 40% / Cred 35% / Vol 25%) · 1Y/3Y %ile columns are display-only context

LegCallLevel 1Y %ile3Y %ile vs 200DMA21d vs 100DMA (ctx)
Liquidity / USD bearish UUP 28.75 100 100 +3.71% +2.22% +2.11%
Credit bearish HYG 77.33 29 76 -1.16% -2.57% -1.74%
Volatility neutral VIX 15.9 25 42 * +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 and core level 1Y/3Y %iles are display context only — none of these columns vote. Percentiles rank the current UUP/HYG/VIX level over trailing 1Y/3Y observations using the same logic as Yield Curve / Global Volatility. 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.

US Yield Curve

FRED 2s10s · as-of 2026-09-28 · (context only)

SeriesLevel1Y %ile3Y %ile 1M3MRead
2s10s (10Y − 2Y)32 bps749-15 bps+4 bpsFalling

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.

Global Volatility

VIX · NDX vol · RUT vol · MOVE · CVIX (FX) · as-of 2026-09-30 · (context only)

SeriesLevel1Y %ile3Y %ile 1W1M3MRead
VIX16.022744+5.53%-1.96%+1.33%Falling
NDX vol22.293864+7.37%+1.50%-20.34%Rising
RUT vol21.343128+6.86%+3.34%-1.25%Rising
MOVE106.69876+11.68%+36.88%+63.00%Rising
CVIX (FX)6.715129+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.

Rolling Correlations

Windows: 5d (1W) / 21d (1M) / 63d (3M) · as-of 2026-09-30

Pair1W1M3MRead
SPY vs UUP (DXY)-0.89-0.44-0.31Risk-off
SPY vs TLT (long Treasuries)+0.54+0.61+0.48Risk-off
SPY vs crude oil (WTI)+0.08-0.43-0.56Risk-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—

Spot moves

Series1W1M3M
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.

Breadth

Now: 41.5% above 200DMA · coverage 501/503 names · Reads: Broad / Narrow / Mixed (participation & size; context only)

Measure1W1M3MRead
% above 200DMA (Δ pp)-7.8-28.1-19.1Narrow
IWM (small) vs SPY (large)-0.98%-5.13%-9.72%Narrow
MeasureLevelvs 50DMAvs 200DMA1M3MRead
S&P 500 A/D line (TRADCADS Index) 102,175 -1.12% -0.51% -1.08% -1.24% Divergence

Changes are percentage points. Read uses level and primarily 1M Δ (conflicts = Mixed); thresholds ≥55% / ≤45%. Volume moved to its own section below. 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

A/D Read: Uptrend if line > 50DMA and 50DMA > 200DMA; Broken uptrend if line < 50DMA while 50DMA still > 200DMA; Downtrend if line < 50DMA and 50DMA < 200DMA; Divergence if SPX within ~3% of 52-week high while A/D is below its 50DMA (and/or 1M change negative). Context only — not a vote. Source: TRADCADS Index · as-of 2026-09-30.

Volume

SPX Volume Conviction · last vol vs 20d avg 0.82× (lighter) · Overall: No high-conviction on advances · No high-conviction on sell-offs · BBG · as-of 2026-09-30 · (context only)

Horizon on S&P 500 advances on S&P 500 declines Read
1W
No high-conviction0 / 2 up days hi
No high-conviction0 / 3 dn days hi
No high-conviction on advances · No high-conviction on sell-offs
1M
No high-conviction4 / 8 up days hi
No high-conviction5 / 12 dn days hi
No high-conviction on advances · No high-conviction on sell-offs

Display only — does not vote. Daily BBG SPX VOLUME vs 20d avg baseline (≥1.0× = high-conviction day). Upside = advancing days; Downside = declining days. Window Read uses the taxonomy below. Today’s print: both sides light (last 0.82× 20d avg). Prefer BBG over Yahoo.

Taxonomy

  • High-conviction both ways
  • High-conviction advances · No high-conviction sell-offs
  • No high-conviction advances · High-conviction sell-offs
  • No high-conviction on advances · No high-conviction on sell-offs
  • Mixed volume conviction

Style rotation

Overall (1M): Offensive growth · soft lean: Risk-on lean · taxonomy: Offensive growth / Cyclical value / Defensive / Mixed (context only)

Pair1W1M3MRead
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.

Hedge Fund Positioning

Overall (1M): Mixed · GS VIP / Most Short · as-of 2026-09-30 · (context only)

Basket1W1M3MRead
GS HF VIP-0.49%+1.50%-4.61%—
GS Most Short Rolling-1.54%-2.93%-7.95%—
VIP vs Most Short+1.05%+4.43%+3.34%Mixed

Context only — not a voting leg. GS HF VIP (GSTHHVIP) vs Most Short Rolling (GSCBMSAL). Pair = VIP return − Most Short return. Reads from GS basket signals (absolute + spread). Overlay for crowding; combine with Positioning / Style / breadth.

Earnings and Real GDP Growth

NTM EPS · 50/50 Weighted+NTM revision · Growth = NTM/TTM · real GDP nowcasts · as-of 2026-09-30 · (context only)

IndexNTM EPSBlended 4W revBlended 3M revGrowth (NTM/TTM)Growth 4W agoΔ (pp)Read
S&P 500417.5+0.40%+5.42%+27.2%+26.6%+0.7Flat
S&P/TSX2297.4+0.49%-0.91%+18.8%+18.2%+0.6Flat
MSCI World282.7+0.09%+5.19%+23.7%+23.4%+0.2Flat

Real GDP nowcasts

RegionNowcast4W agoΔ (pp)Read
US2.4%1.5%+0.9Improving
China4.1%3.7%+0.5Improving
Euro Area0.4%0.4%-0.0Flat

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); always use the last non-null datapoint in each country column (may be dated past today). EA = Bloomberg Euro Area GDP nowcast (BENWEAGQ).

Positioning

Non-commercial / leveraged net · 3Y %ile · as-of 2026-09-30 · (context only)

AssetNetNet 4W ago3Y %ileRead
Equities (ES)-133,228-75,94132.3Neutral
Nasdaq (NQ)56,41327,08998.1Contrarian Short
Small-cap (RTY)-75,563-71,2165.1Contrarian Long
Rates (10Y)-811,752-909,27544.9Neutral
USD10,33017,02569.0Neutral
Crude141,106129,91128.5Neutral
Gold217,747222,18850.6Neutral

Read from 3Y %ile (80/20): excess long → Contrarian Short, excess short → Contrarian Long; not a vote. Asset-manager nets omitted (noisy scale).

Sentiment

Overall: Neutral · composite %ile 29.4 · as-of 2026-09-30

MeasureLevelLevel 4W ago3Y %ileRead
AAII bulls32.7%39.7%23.4Neutral
NAAIM exposure79.779.735.4Neutral

Read from 3Y %ile (80/20): excess long → Contrarian Short, excess short → Contrarian Long; not a vote.

Weekly samples (persistence trail)

Headline = 4W weighted raw · Legacy persist = legacy 3-week confirm — not the headline

DateRaw4W scoreWeightedLegacy persistvol/cred/liqEquities tgtVeto
2026-09-30Risk-off-1.00Risk-offRisk-off-1/-1/045.0%—
2026-09-24Risk-off-1.00Risk-offRisk-off-1/-1/045.0%—
2026-09-17Risk-off-0.90Risk-offRisk-off-1/0/047.5%—
2026-09-10Risk-off-0.70Risk-offMixed-1/0/-150.0%—
2026-09-02Risk-off-0.40Risk-offMixed-1/0/055.0%—
2026-08-26Mixed+0.00MixedMixed-1/1/160.0%—
2026-08-19Mixed-0.10MixedMixed-1/1/157.5%—
2026-08-12Mixed-0.30MixedMixed-1/1/155.0%—

1M regime log

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%)

DateRegime (raw)leg_score / legs%>200DMA (context)liq / cred / vol
2026-09-30Risk-offls=-0.75 · 0↑ 2↓41.5%liq:S cred:S vol:N
2026-09-29Risk-offls=-0.75 · 0↑ 2↓41.5%liq:S cred:S vol:N
2026-09-28Risk-offls=-0.75 · 0↑ 2↓43.7%liq:S cred:S vol:N
2026-09-25Risk-offls=-0.50 · 1↑ 2↓46.3%liq:S cred:S vol:B
2026-09-24Risk-offls=-0.75 · 0↑ 2↓44.9%liq:S cred:S vol:N
2026-09-23Risk-offls=-0.75 · 0↑ 2↓47.5%liq:S cred:S vol:N
2026-09-22Mixedls=-0.15 · 1↑ 1↓49.3%liq:S cred:N vol:B
2026-09-21Mixedls=-0.15 · 1↑ 1↓50.1%liq:S cred:N vol:B
2026-09-18Mixedls=-0.15 · 1↑ 1↓49.9%liq:S cred:N vol:B
2026-09-17Risk-offls=-0.40 · 0↑ 1↓50.7%liq:S cred:N vol:N
2026-09-16Risk-offls=-0.65 · 0↑ 2↓50.5%liq:S cred:N vol:S
2026-09-15Risk-offls=-0.65 · 0↑ 2↓53.3%liq:S cred:N vol:S
2026-09-14Risk-offls=-0.65 · 0↑ 2↓56.7%liq:S cred:N vol:S
2026-09-11Risk-offls=-0.40 · 0↑ 1↓56.9%liq:S cred:N vol:N
2026-09-10Risk-offls=-0.65 · 0↑ 2↓55.1%liq:S cred:N vol:S
2026-09-09Risk-offls=-0.40 · 0↑ 1↓57.3%liq:S cred:N vol:N
2026-09-08Risk-offls=-0.40 · 0↑ 1↓61.1%liq:S cred:N vol:N
2026-09-04Mixedls=+0.20 · 2↑ 1↓64.7%liq:S cred:B vol:B
2026-09-03Mixedls=+0.20 · 2↑ 1↓66.9%liq:S cred:B vol:B
2026-09-02Risk-offls=-0.40 · 0↑ 1↓64.9%liq:S cred:N vol:N
2026-09-01Mixedls=-0.05 · 1↑ 1↓63.3%liq:S cred:B vol:N
2026-08-31Mixedls=+0.20 · 2↑ 1↓66.9%liq:S cred:B vol:B

Changes (raw flips)