Methodology & Data Sources
Transparent documentation of our empirical approach to regime classification and performance analysis. All regime performance claims are grounded in historical backtesting using publicly available data.
Empirical Grounding Approach
How we validate regime performance claims
VantMacro's regime performance data is generated from factor-based historical regime classification spanning 2003-12-25 to 2026-07-16 (8,240 daily classifications). We classify each day across four dimensions using publicly available economic indicators, then calculate actual asset performance during each regime period.
Data Sources
Documented provider series with artifact-level provenance
| Factor | Source | Series ID | Purpose |
|---|---|---|---|
| Growth (CFNAI) | FRED | CFNAI | Chicago Fed National Activity Index - measures economic activity above/below trend |
| Inflation (CPI) | FRED | CPIAUCSL | Consumer Price Index - calculated year-over-year % change |
| Liquidity (Fed BS) | FRED | WALCL | Federal Reserve balance sheet total assets - QE/QT proxy |
| Market Risk (VIX) | FRED | VIXCLS | CBOE Volatility Index - equity market implied volatility |
| Credit Risk (HY) | FRED | BAMLH0A0HYM2 | ICE BofA High Yield Option-Adjusted Spread - credit market stress |
| Asset Prices | Twelve Data | S&P 500, Nasdaq 100, Small Caps, Europe, UK, Japan, China, India, Emerging Markets, Gold, Silver, Oil, Copper, Bitcoin, Ethereum, US Dollar | Daily closing prices for 16 canonical proxies spanning US equities (S&P 500, Nasdaq 100, Small Caps), commodities (Gold, Silver, Oil, Copper), global equities (Europe, UK, Japan, China, India, Emerging Markets), and crypto (Bitcoin, Ethereum), with US Dollar as the dollar proxy |
Provider access, retention, and redistribution are subject to each source's terms. FRED now returns only three years of the ICE HY series; the earlier factor lineage and merge boundary are recorded in the generated artifact.
Four-Dimensional Classification Framework
How we identify historical regimes
π1. Real Cycle (Growth)
π₯2. Inflation
π°3. Liquidity/Policy
β‘4. Market Risk
Composite Regime Mapping
The four dimensions combine using priority-based logic:
- 1.Crisis conditions override all - If VIX > 19 or HY spreads > 492bps β CrisisLiquidation
- 2.Post-crisis recovery - If risk elevated + policy easing β PostShockRecovery
- 3.Stagflation check - If growth slowdown + inflation high β StagflationarySqueeze
- 4.Normal regimes - Map based on growth + inflation + policy combination
- 5.Mixed signals - Unclear patterns β Transitional
Structural and Provenance Validation
What the canonical pipeline actually verifies
The pipeline does not score hand-labelled crisis windows against an arbitrary pass threshold. It verifies reproducible properties of the generated evidence instead:
- Required fields, finite values, known taxonomy, and strict JSON
- Unique chronological dates and exact calendar-day timeline coverage
- Episode counts, durations, transition counts, and row sums
- Complete provider, method-config, and artifact SHA-256 provenance
- Freshness and cross-file application data contracts
Case-study dates remain curated context. They are not used as a classifier-accuracy target.
Performance Calculation Methodology
How we compute empirical returns
A regime change starts a new episode. Aggregate regime returns compound only chronological daily returns assigned to that regime; intervening-regime returns are excluded.
CAGR
Sharpe Ratio
Max Drawdown
Regime Distribution (2003-2026)
Coverage across composite regimes
| Regime | Days | % of Total | Occurrences | Avg Duration |
|---|---|---|---|---|
| ReflationaryExpansion | 313 | 3.8% | 25 | 12.5 days |
| LateCycleInflationaryBoom | 433 | 5.3% | 33 | 13.1 days |
| StagflationarySqueeze | 751 | 9.1% | 47 | 16.0 days |
| DisinflationarySlowdown | 789 | 9.6% | 41 | 19.2 days |
| PostShockRecovery | 1,388 | 16.8% | 83 | 16.7 days |
| CrisisLiquidation | 3,727 | 45.2% | 116 | 32.1 days |
| Transitional | 839 | 10.2% | 53 | 15.8 days |
| Total | 8,240 | 100% | 398 | 20.7 days |
Counts, shares, and average episode duration are computed from the generated duration artifact. Unequal samples are shown rather than converted into qualitative quality labels.
Limitations & Disclaimers
Understanding the boundaries of this analysis
β οΈ Important Limitations
- Data begins 2003-12-25, the computed first complete factor date after transformations and declared availability lags
- Monthly/weekly indicators forward-filled to daily (assumes state persistence)
- The five inputs across four dimensions are a descriptive proxy and do not capture every macroeconomic nuance
- Historical boundaries are recomputed as equal-frequency quantiles from the complete aligned current-vintage sample; they change when source history changes and are retrospective
- Asset class coverage: 16 generated asset artifacts (US and global equities, commodities, crypto, and a dollar proxy, including: Europe, UK, Japan, China, India, Emerging Markets, and crypto: Bitcoin/Ethereum). Each artifact records its own sample dates.
π Educational Use Only
This methodology is provided for transparency and educational purposes. All historical performance is descriptive, not predictive.
- Past performance does not guarantee future results
- Not a recommendation to buy or sell securities
- Market conditions evolve and historical patterns may not repeat
- Consult a qualified financial advisor before making investment decisions
Reproducibility & Code
Open methodology for verification
All regime classification and backtest code is available in the project repository under web/backtests/empirical_grounding/
Classification Script
historical_regime_classifier.pyReads versioned provider snapshots and generates the descriptive daily historical proxy with declared availability lags
Backtest Script
asset_regime_performance.pyLoads regime history, fetches asset prices, calculates CAGR/Sharpe/drawdown by regime
Detailed methodology documentation available in METHODOLOGY.md
Statistical Validation Results
Temporal stability and exploratory asset associations
Median-Date Temporal Comparison
We compare regime-conditioned asset returns on either side of the generated sample's median classified date ( 2015-04-06). No model is trained in this step, and the current-vintage quantile boundaries use the full era, so this is not untouched held-out validation.
The displayed figures compare regime-conditioned returns between two median-defined eras. They are descriptive stability diagnostics, not classifier accuracy, trading guidance, or precise return forecasts. Correlation is defined for 14 assets and sign agreement for 14.
Asset-Specific Regime Effects
Asset-level one-way ANOVA outputs are retained as exploratory diagnostics in the generated statistical artifact. Pairwise Tukey inference is omitted because iid assumptions are not established. Daily returns are serially dependent and heteroskedastic, regime labels persist, and the factors are market-derived; those assumptions prevent a confirmatory significance or causal claim.
Legacy Liquidity Level Regression Excluded
Why no canonical liquidityβNASDAQ RΒ² is published
The former log-level regression mixed source units and compared persistent trending levels without establishing stationarity. That specification can produce a high but spurious fit, so it is excluded from the canonical backtest and no RΒ² claim is published.
A replacement analysis would require unit-normalized inputs, release/vintage controls, stationarity diagnostics, and a pre-specified changes or error-correction model.
Regime Transition Patterns
Observed transition frequencies from 397 generated historical changes
Based on 397 generated regime changes from 2003-2026. Rows show observed next-state frequencies in the published timeline; they are not predictive probabilities.
Regime Transition Matrix
Observed next-state frequencies from one generated regime (rows) to another (columns). Based on 397 historical transitions (2003-2026).