Macro market clusters

A statistical study of market regimes

Published 2026-04-16 · 268 months · 10 features · 10 regimes

We identify 10 macroeconomic regimes from 268 months of data (2003-10 to 2026-03) using hierarchical Ward clustering on a PCA-trimmed 10-feature macro panel. The partition separates cleanly into 8 normal regimes and 2 crisis regimes. Three independent methods (hierarchical Ward, two Gaussian-mixture covariance structures) converge on K=10. Bootstrap stability, feature perturbation, NBER-recession alignment, and Markov transition dynamics all support the partition as statistically sound and economically meaningful.

1.00
Median bootstrap ARI for crisis/normal split
100%
NBER recession months recovered by crisis regimes
7 / 7
Named crisis events correctly classified
0.49
Min ARI when dropping any single feature (robust)

Current regime

R4 fed_tight_low_vol
Late-cycle tightening, calm markets, flat curve
2026-03
as of
37
months in run
94%
P(stay next month)
If regime transitions next month, most likely paths:
40% → R2 late_cycle_volatile_risk_off
40% → R5 fed_normalizing_calm
20% → R7 fed_low_inflation_shock

Regime timeline (2003-10 → 2026-03)

Color-coded regime history overlaid with SPY cumulative return. Hover for per-month details.

R1 fed_zero_steep_curve (59)
R2 late_cycle_volatile_risk_off (13)
R3 post_crisis_explosive_recovery (14)
R4 fed_tight_low_vol (87)
R5 fed_normalizing_calm (51)
R6 post_shock_rebound (3)
R7 fed_low_inflation_shock (11)
R8 negative_real_yield_rally (22)
R9 crisis_acute_crash (2)
R10 crisis_deep_stress (6)

The 10 regimes

Each regime is a macro state with a distinct fingerprint. Bars below each card show z-scored feature deviations from the grand mean: colored = positive, gray = negative.

R1
fed_zero_steep_curve
Post-crisis ZIRP with steep curve (early recovery phase)
59 months 22% avg dwell 9.8m
Historical periods
2003-10 → 2004-12
2010-01
2010-03 → 2010-04
2010-10 → 2011-07
2012-02 → 2012-04
2012-07 → 2014-10
Typical successor
33% → R2 late_cycle_volatile_risk_off
33% → R5 fed_normalizing_calm
The central bank has cut borrowing costs to near zero to help the economy recover from a recent downturn. Money is cheap, long-term loans still carry normal rates, and stocks generally climb as investors regain confidence that the worst is behind.
R2
late_cycle_volatile_risk_off
Volatile risk-off with elevated stress (pre-crisis deterioration)
13 months 4.9% avg dwell 2.2m
Historical periods
2007-12 → 2008-01
2008-03
2008-05 → 2008-09
2010-05 → 2010-06
2010-08
2011-08 → 2011-09
Typical successor
50% → R3 post_crisis_explosive_recovery
17% → R9 crisis_acute_crash
The market is getting nervous. Stocks are falling a few percent most months, uncertainty is rising, and lenders are charging more to take on risk. Not a full crisis, but the warning lights are clearly flashing.
R3
post_crisis_explosive_recovery
Explosive recovery: strong rally despite elevated VIX
14 months 5.2% avg dwell 2.3m
Historical periods
2008-04
2009-04 → 2009-12
2010-02
2010-07
2010-09
2011-12
Typical successor
50% → R1 fed_zero_steep_curve
33% → R2 late_cycle_volatile_risk_off
Stocks rocket back after a major crash. The economy is still wounded, but investors decide the worst has already been priced in. Relief buying and returning risk appetite push the market up sharply.
R4
fed_tight_low_vol
Late-cycle tightening, calm markets, flat curve
87 months 32.5% avg dwell 17.2m
Historical periods
2005-01 → 2005-12
2006-02 → 2007-11
2008-02
2018-02 → 2018-12
2019-02 → 2019-04
2022-12
2023-02 → 2025-09
2025-11 → 2026-03
Typical successor
40% → R2 late_cycle_volatile_risk_off
40% → R5 fed_normalizing_calm
Borrowing is expensive, deliberately, because the central bank is cooling an overheated economy. Stocks grind modestly higher, daily volatility stays low, and savers can finally earn a real return on safe bonds. The flattened yield curve hints the current expansion is maturing.
R5
fed_normalizing_calm
Mid-cycle ZIRP, very low vol (goldilocks)
51 months 19% avg dwell 12.7m
Historical periods
2012-05
2014-11 → 2018-01
2019-01
2019-05 → 2020-02
Typical successor
50% → R4 fed_tight_low_vol
25% → R10 crisis_deep_stress
The 'Goldilocks' era. The economy is steady, volatility is at its lowest of any period, interest rates are gradually rising from very low levels, and stock returns are modest but consistent. Everyone feels comfortable.
R6
post_shock_rebound
Post-crisis rebound: unemployment plunging
3 months 1.1% avg dwell 1.5m
Historical periods
2020-05 → 2020-06
2020-08
Typical successor
100% → R8 negative_real_yield_rally
The V-shape of a recovery after a huge shock. Unemployment plummets back from extreme highs, economic activity snaps back to life, stocks surge, and gold rallies as investors worry about inflation coming back.
R7
fed_low_inflation_shock
CPI runaway, Fed behind the curve
11 months 4.1% avg dwell 3.7m
Historical periods
2022-01 → 2022-02
2022-04 → 2022-11
2023-01
Typical successor
67% → R4 fed_tight_low_vol
33% → R8 negative_real_yield_rally
Prices for everyday things are rising uncomfortably fast and the central bank is playing catch-up. Stocks decline as borrowing costs rise, the yield curve compresses, and consumers feel the pinch at the grocery store and gas pump.
R8
negative_real_yield_rally
Negative real yields drive a reflation rally
22 months 8.2% avg dwell 3.7m
Historical periods
2011-10 → 2011-11
2012-01
2012-06
2020-07
2020-09 → 2021-12
2022-03
Typical successor
33% → R1 fed_zero_steep_curve
33% → R7 fed_low_inflation_shock
Money is kept so cheap that even safe government bonds lose value after accounting for inflation. With nowhere safe to park cash productively, investors pile into stocks, driving a powerful rally. This configuration has historically ended with an inflation problem.
R9
crisis_acute_crash
Peak panic: VIX 60+, double-digit SPY loss
2 months 0.7% avg dwell 2m
Historical periods
2008-10 → 2008-11
Typical successor
100% → R10 crisis_deep_stress
The worst moments in the market. Stocks lose double-digit percentages in a single month, fear indicators hit extreme levels, and lenders freeze entirely. Rare — the model only identifies a handful of months this extreme in 20+ years — but devastating when it occurs.
R10
crisis_deep_stress
Persistent elevated stress with bounce attempts
6 months 2.2% avg dwell 3m
Historical periods
2008-12 → 2009-03
2020-03 → 2020-04
Typical successor
50% → R3 post_crisis_explosive_recovery
50% → R6 post_shock_rebound
The grinding phase of a crisis. The acute panic has passed but the damage is still unfolding: mass job losses, credit markets barely functioning, inflation expectations coming unglued, and stocks swinging wildly as the real economy bottoms out.

Regime transition dynamics

One-step Markov transition probabilities P(next month regime | current regime). The diagonal (white-bordered) shows regime stickiness; off-diagonal tells the economic paths. Hover any cell for details.

Perfect-path transitions (100%)
R9 crisis_acute_crashR10 crisis_deep_stress — panic always grinds into prolonged stress.
R6 post_shock_reboundR8 negative_real_yield_rally — COVID rebound transitioned cleanly into the easy-money era.

Methodology notes

Features

Ten monthly features, chosen via PCA-informed redundancy analysis on a 15-feature superset. Retained features cover distinct axes:

  • spy_ret — market state
  • dollar_ret — global risk appetite (stitched FRED TWEXMMTH + DTWEXBGS)
  • gld_ret — safe-haven / inflation hedge
  • yield_spread — Treasury 10Y−2Y (curve shape)
  • credit_spread — FRED BAMLH0A0HYM2 (financial stress)
  • fwd_infl_5y5y — FRED T5YIFR (inflation belief)
  • vix — FRED VIXCLS (implied equity vol)
  • real_yield_10y — FRED DFII10 (real rates axis)
  • cpi_yoy — realized inflation
  • unemp_change — labor market

Clustering

Hierarchical Ward linkage in two stages: K=2 on the full panel (cleanly separates crisis from normal, silhouette 0.60), then K=8 sub-cluster on the normal branch and K=2 on the crisis branch. Each branch is re-standardized using only its own months.

Why K=10

Three independent methods agree: Ward hierarchical, GMM-tied covariance, GMM-spherical covariance. Flat Ward picks K=2 (the crisis/normal signal dominates); GMM-diag picks K=9 under a restrictive independence assumption. The plateau K=6–9 is defensible; K=10 sits at the local silhouette peak and matches two GMM methods.

Validation

Bootstrap stability: 100 block-subsamples of 80% of months, re-cluster, measure ARI vs canonical. Median top-K=2 ARI = 1.00, full-partition mean ARI = 0.65.

Feature perturbation: leave-one-out across 10 features. Min ARI = 0.49 — no single-feature failure.

NBER alignment: crisis regimes 100% overlap with NBER recessions. Calm regimes ≈0%.

Named events: Lehman, Flash Crash, COVID crash, SVB, 7 of 7 land on economically-appropriate regimes.

Limitations

  • Small crisis sample. R9 has n=2, R10 has n=6. Claims about crisis sub-structure rely on just two historical events (GFC, COVID).
  • 22-year window. Regimes outside our historical range (1970s stagflation, 1930s depression) cannot be identified — they would match the nearest centroid, possibly misleadingly.
  • Endogeneity. SPY and VIX are causally downstream of the economic features. Regimes are joint macro-market states, not pure-economic states. Using these labels to predict SPY returns is circular.
  • In-sample standardization. z-scoring uses full-sample statistics; for real-time classification, recursive standardization would be needed.