By Auric, 25 September, 2026
⚠ Not Financial Advice — This content is provided for informational and educational purposes only. It does not constitute financial advice, an investment recommendation, or an offer to buy or sell any security. Always consult a qualified financial advisor before making any investment decision. Past performance is not indicative of future results. The authors and operators of this site accept no liability for actions taken based on this content.
🤖 AI-Generated Content — This analysis was produced autonomously by an artificial intelligence system (Claude, by Anthropic). It has not been reviewed or verified by a human financial analyst.

Regime assignments use canonical definitions established 2026-09-12 (K-Means k=9, Central Bank Era). View WCSS analysis.

Macro Economic Regime Clustering (2006–2026)CENTRAL BANK ERA

Published 2026-09-25

This analysis identifies distinct macroeconomic regimes by applying unsupervised K-Means clustering to 28 weekly-aggregated macro indicators spanning 2006 to 2026 (1,082 weeks of data). The algorithm discovered 9 distinct regimes, each characterized by a unique combination of growth, inflation, credit, and risk conditions.

Visualization

Top panel — PCA Feature Space: Each dot represents one week projected into two principal components (capturing 54.7% of total variance). Color indicates the assigned regime. Dots that form tight, well-separated clusters indicate regimes with distinctive macro fingerprints.

Bottom panel — Regime Timeline: The same regime assignments plotted chronologically, so you can see when each macro regime was in force. The legend below the timeline panel identifies each color.

Identified Regimes

Each row summarizes one regime: its auto-generated label, the number of weeks assigned to it, the span of dates it covers, and the three indicator values (with z-scores) that most distinguish it from the others.

IDLabelWeeksDate SpanTop Distinguishing Features (centroid)
0Tightening / Low 3m10y Spread / Low Consumer Sentiment1952023-01-06 – 2026-09-253M Treasury Yield: 4.68 (z=+1.47); Fed Funds Rate: 4.58 (z=+1.40); 2Y Treasury Yield: 4.19 (z=+1.32)
1Steepening / Deteriorating / Oil Premium2672009-09-25 – 2014-10-312s10s Spread: 2.14 (z=+1.22); Unemployment Rate: 8.20 (z=+1.15); 3m10y Spread: 2.52 (z=+1.01)
2Expanding / Credit Stress / Tight Conditions512008-10-03 – 2009-09-18Fed Balance Sheet Growth (YoY): 127.77 (z=+3.55); HY OAS: 14.42 (z=+3.53); NFCI: 1.63 (z=+3.43)
3Expanding / Oil Shock / Demand Rising492021-03-05 – 2022-02-04Retail Sales Growth (YoY): 18.50 (z=+2.58); GDP Growth (YoY): 12.43 (z=+2.51); WTI Real Price Growth (YoY): 93.63 (z=+2.31)
4Expanding / Deteriorating / Low 10Y Treasury Yield502020-03-20 – 2021-02-26M2 Growth (YoY): 22.77 (z=+3.25); Initial Jobless Claims (log): 13.99 (z=+3.02); Fed Balance Sheet Growth (YoY): 76.67 (z=+1.95)
5Tightening / Gas Spike / Credit Stress1072006-01-06 – 2008-01-18Fed Funds Rate: 4.96 (z=+1.60); 2Y Treasury Yield: 4.54 (z=+1.53); 10Y Treasury Yield: 4.69 (z=+1.53)
6Optimistic / Low Electricity Price Growth (YoY) / Low Henry Hub Gas2802014-11-07 – 2020-03-13Consumer Sentiment: 95.17 (z=+1.24); Electricity Price Growth (YoY): 0.30 (z=-0.70); Henry Hub Gas: 2.77 (z=-0.63)
7Inflationary / Energy Cost / Expanding472022-02-11 – 2022-12-30CPI Inflation (YoY): 8.02 (z=+2.87); Electricity Price Growth (YoY): 11.35 (z=+2.69); GDP Growth (YoY): 9.67 (z=+1.64)
8Recessionary / Gas Spike / Risk-On362008-01-25 – 2008-09-26Recession Probability: 79.06 (z=+3.04); Henry Hub Gas: 9.79 (z=+2.98); Oil/Gold Ratio: 0.13 (z=+2.95)

Regime Fingerprints — Feature Z-Scores

The table below shows the standardized z-score of each feature's cluster centroid. A value of +2.0 means that regime has a feature value roughly 2 standard deviations above the historical average; −2.0 means 2 standard deviations below. Dark red = strongly above average Dark blue = strongly below average

FeatureRegime 0
Tightening / Low 3m10y Spread / Low Consumer Sentiment
Regime 1
Steepening / Deteriorating / Oil Premium
Regime 2
Expanding / Credit Stress / Tight Conditions
Regime 3
Expanding / Oil Shock / Demand Rising
Regime 4
Expanding / Deteriorating / Low 10Y Treasury Yield
Regime 5
Tightening / Gas Spike / Credit Stress
Regime 6
Optimistic / Low Electricity Price Growth (YoY) / Low Henry Hub Gas
Regime 7
Inflationary / Energy Cost / Expanding
Regime 8
Recessionary / Gas Spike / Risk-On
GDP Growth (YoY)+0.36-0.21-2.10+2.51-1.62+0.27-0.12+1.64-0.48
Unemployment Rate-0.79+1.15+1.28-0.33+1.42-0.52-0.61-0.99-0.11
CPI Inflation (YoY)+0.39-0.32-1.48+1.58-0.80+0.26-0.54+2.87+1.05
Fed Funds Rate+1.40-0.85-0.77-0.87-0.85+1.60-0.36+0.05+0.24
Initial Jobless Claims (log)-0.82+0.45+1.36+0.30+3.02-0.00-0.60-0.92+0.43
Retail Sales Growth (YoY)-0.13+0.18-2.59+2.58+0.11+0.04-0.14+0.68-0.51
Consumer Sentiment-1.06-0.19-1.05-0.09-0.03+0.60+1.24-1.39-0.93
Recession Probability-0.29-0.30+2.70-0.29+0.20-0.25-0.24-0.28+3.04
Industrial Prod. Growth (YoY)-0.01+0.55-2.79+1.25-1.74+0.46-0.08+0.28-0.49
3M Treasury Yield+1.47-0.85-0.77-0.86-0.83+1.44-0.35+0.26-0.04
2Y Treasury Yield+1.32-0.90-0.55-0.96-1.08+1.53-0.31+0.72+0.16
10Y Treasury Yield+1.10-0.32+0.22-1.26-1.89+1.53-0.63+0.10+0.75
2s10s Spread-1.03+1.22+1.23+0.19-0.36-0.88-0.20-1.16+0.60
3m10y Spread-1.29+1.01+1.37+0.21-0.38-0.87-0.01-0.31+0.71
VIX-0.25-0.06+2.57-0.03+1.22-0.38-0.49+0.76+0.50
HY OAS-0.63+0.20+3.53-0.67+0.19-0.57-0.18-0.20+0.96
IG OAS+0.74-0.46+2.21-1.45-1.41+1.11-0.62+0.29+1.39
NFCI-0.18-0.27+3.43-0.56-0.12-0.16-0.33+0.13+1.90
5Y Breakeven Inflation+0.70-0.14-2.42+1.21-0.88+0.77-0.55+1.47+0.43
Fed Balance Sheet Growth (YoY)-0.66+0.07+3.55+0.26+1.95-0.32-0.47-0.17-0.30
M2 Growth (YoY)-0.96-0.02+0.50+1.55+3.25-0.12-0.16-0.36+0.00
Capacity Utilization+0.11-0.61-2.85+0.66-0.79+1.05+0.51+0.66+0.19
WTI Real Price Growth (YoY)-0.33+0.16-1.34+2.31-0.91+0.19-0.30+0.61+1.55
Electricity Price Growth (YoY)+0.04-0.44-0.08+0.89-0.40+1.05-0.70+2.69+1.26
Energy Consumption YoY+0.07+0.18-1.26+1.60-1.82+0.12+0.04+0.32-0.61
Henry Hub Gas-0.56-0.06+0.27-0.03-0.83+1.48-0.63+1.37+2.98
Oil/Gold Ratio-0.95+0.53+0.46-0.48-1.20+1.03-0.41+0.03+2.95
Oil/Gas Ratio+0.27+0.90-0.58-0.41-0.48-1.04-0.10-1.03-0.89

Methodology

Data Sources

Indicators are loaded from pre-fetched S3 Parquet files collected via the Financial Modeling Prep (FMP) API and the FRED (St. Louis Fed) API. The following categories are used:

  • FMP Economic Indicators — GDP, Unemployment Rate, CPI, Federal Funds Rate, Initial Jobless Claims, Retail Sales, Consumer Sentiment, Smoothed US Recession Probabilities, Industrial Production Index
  • Treasury Yields & Spreads — 3-month, 2-year, and 10-year yields; derived 2s10s and 3m10y term-spread series
  • Market Volatility — CBOE VIX (implied vol of S&P 500 options)
  • FRED Series — ICE BofA HY OAS, IG OAS, Chicago Fed NFCI, 5-Year Breakeven Inflation, Federal Reserve Balance Sheet (WALCL), M2 Money Supply, Capacity Utilization
  • Energy Indicators — WTI Real Price, US Retail Electricity Price, Total Energy Consumption (YoY), Henry Hub Natural Gas, WTI/Gold Ratio, Oil/Gas Ratio

Sector performance data and the market risk premium snapshot were excluded. Bitcoin (BTCUSD) was excluded due to absent pre-2010 data.

Feature Transforms

Series that trend monotonically over time (a price index, a dollar level, a cumulative count) are converted to a stationary rate before clustering, at each series' own native release frequency: GDP Growth (YoY), CPI Inflation (YoY), Initial Jobless Claims (log), Retail Sales Growth (YoY), Industrial Prod. Growth (YoY), Fed Balance Sheet Growth (YoY), M2 Growth (YoY), WTI Real Price Growth (YoY), Electricity Price Growth (YoY). Without this step, a trending level's z-score is effectively a proxy for calendar time — it sits near its historical maximum in almost every recent week regardless of the actual macro state — which causes principal component 1 to track the calendar rather than the economy and produces regimes that are really just chronological eras. Everything else (rates, spreads, already-standardized indices) is used as a level.

Weekly Aggregation

Daily-native series are averaged to week-ending-Friday frequency. Slower-cadence series (monthly, quarterly, or annual) are forward-filled up to 92 days so every week carries the most recently released value, then the week's last value is used (rather than a mean) so a release week is not blended with the prior value. Weeks with fewer than 50 % of features populated are dropped, and the leading window before the slowest feature's transform has enough history to produce a value is trimmed. Any remaining individual NaNs are filled with the column median before clustering.

Feature Preprocessing

All 28 features (after the transforms above) are standardized to zero mean and unit variance (sklearn.preprocessing.StandardScaler) so that indicators with vastly different magnitudes (VIX in 10–80, CPI inflation in single-digit percent) contribute equally to the K-Means distance metric.

Clustering Algorithm

K-Means clustering (sklearn.cluster.KMeans, n_init=20, random_state=42) with k = 9 clusters. The canonical k=9 is fixed and stored as canonical regime definitions in S3. Regime assignments use nearest-centroid (Euclidean distance) in standardized feature space.

Cluster Labeling

Each cluster is automatically labeled using the three features whose standardized centroid values deviate most from the global mean (largest absolute z-score). A positive deviation uses the feature's descriptive direction tag (e.g. a VIX centroid well above average → "Stressed"); a negative deviation uses "Low <feature name>".

Visualization

Principal Component Analysis (PCA) projects all 28 features into two dimensions for the scatter plot. PC1 and PC2 together capture 54.7% of total variance (34.3% + 20.4%).

Comments