Macro Regime Classification: Methodology and Data

eco3min · macro regime classification

Eco3min assigns a monthly macro regime to the US economy by combining public institutional indicators with a published threshold table. This page details the design, data sources, classification logic, and limitations.

Purpose

What this classification computes

For any given month, the classification answers: what macro regime is the US economy in, based only on public data and a verifiable rule?

“US Regime: [name] [+ financial conditions qualifier] — Global context: [synchronized / divergent], [dollar / commodities / stress qualifier]”

Every term is verifiable: the regime name follows from the growth × inflation grid (see Architecture), the financial conditions qualifier from the Chicago Fed’s NFCI, the global context from OECD CLIs and the ECB’s CISS.

What this classification is NOT

  • A proprietary score (no opaque weighting)
  • A trading signal or investment recommendation
  • A forecast of future conditions
  • An official cycle dating (≠ NBER)
  • A portfolio timing or allocation system
Multi-axis architecture

Three independent axes

The classification uses three independent axes — real activity, inflation, financial conditions — rather than a flat list that conflates orthogonal dimensions. These three axes are the inputs of the calculation: what the engine measures to produce a verdict. They must not be confused with the three layers of the Atlas (see below), which describe the nature of the regime objects, at different horizons and evidentiary statuses. Two distinct reading grids: the axes are the ingredients, the layers are the dishes.

Axis 1 — Growth / real activity

Three states: acceleration (G+) / on-trend (G=) / contraction (G−). Primary input: Chicago Fed’s CFNAI (3-month moving average). A CFNAI value of 0 corresponds to the historical long-run trend.

Axis 2 — Inflation

Three states: acceleration (I+) / stable (I=) / disinflation (I−). Primary input: Dallas Fed’s Trimmed Mean PCE (12-month rate). This axis measures persistent underlying inflation. The Trimmed Mean PCE excludes, by construction, the most volatile price components — including energy. A transitory energy shock (a spike in gasoline or Brent) can therefore leave this axis at “stable” even as headline inflation climbs: this is intended behaviour, not a failure. In that case, the shock appears in the global context layer (commodity channel) and via the headline/underlying divergence flag — not in the regime name.

Axis 3 — Financial conditions (overlay-qualifier)

Four levels: accommodating / neutral / restrictive / acute stress. Primary input: Chicago Fed’s NFCI (composite of 105 variables, weekly since 1971). This axis prefixes the regime name without creating a third nominal axis, and updates without hysteresis. A vocabulary point not to confuse: this same financial-conditions axis is expressed at two granularities. (1) As a prefix, it qualifies the cyclical regime (“under restrictive conditions”). (2) When a bundle of signals fires jointly (broad dollar, NFCI, HY spreads), it takes the form of a named overlay — the Dollar Shortage of layer 2 of the Atlas. The word “overlay” therefore denotes two expressions of the same axis: a light qualifier on one side, a named regime on the other.

The 3×3 growth × inflation grid maps to seven named regimes plus a transition state.

Hierarchical global architecture

A hierarchical world view, not an aggregated score

A single aggregated world score masks inter-zone divergence (e.g., 2022: US tightening vs China easing) — a misleading indicator. The architecture is hierarchical:

US core

Detailed growth × inflation classification + overlay, using the full set of US inputs. This is the primary verdict.

Global context layer

Qualifies the environment around the US core on two dimensions: synchronization (are other zones moving in the same direction? via OECD CLIs) and global transmission channels (broad dollar, commodities, market stress via VIX + ECB CISS eurozone).

The eurozone will become a second classified core (same architecture, ECB/Eurostat inputs) in version 1.1. The code is parameterized so that adding a zone is a configuration parameter, not a rewrite.

Taxonomy of regimes

The seven regimes and the transition state

Growth \ InflationI− (disinflation)I= (stable)I+ (acceleration)
G+ (above trend)Disinflationary ExpansionBalanced ExpansionOverheating
G= (on trend)TransitionTransitionInflationary Pressure
G− (contracting)Disinflationary ContractionSlowdownStagflation

Disinflationary Expansion G+ I−

Above-trend activity with inflation decelerating or below target.

Examples: 1995–1999 (New Economy) · 2013–2015 (post-GFC recovery) · 2023–2024 (soft landing)

Balanced Expansion G+ I=

Above-trend activity with inflation near target.

Examples: 2005–2006 · late 2017–2018

Overheating G+ I+

Strong activity with accelerating inflation. Typically late-cycle.

Examples: 2021 (COVID reopening) · 1999–2000

Inflationary Pressure G= I+

On-trend or stalling activity with still-rising inflation. Often a transition phase from Overheating.

Examples: H1 2022 · 1980 (rate shock)

Stagflation G− I+

Contracting activity with accelerating inflation. The most damaging configuration for real purchasing power. Illustrative historical references (outside formal classification window): 1973–1975, 1979–1982. These episodes predate 2003 and can only be formally validated by the classifier in degraded mode — they serve as conceptual references, not method validations.

Slowdown G− I=

Mild contraction without inflationary pressure.

Examples: 2001 · 2015–2016

Disinflationary Contraction G− I−

Contraction with deflation risk.

Examples: 2008–2009 (GFC) · March–May 2020 (COVID)

Transition / Mixed signals G= neutral

G= neutral states on both axes, or an unresolved hysteresis window. Not a stable regime — signals ambiguity or a turning point.

The overlay prefixes the name: “Disinflationary Contraction under acute financial stress”, “Balanced Expansion under accommodating conditions”.

Axes and layers — how to read the Atlas

Three axes in, three layers out

The previous section describes the seven regimes of the G × I grid: this is layer 1 of the Atlas, the one the engine computes in real time. But the Atlas of regimes contains two other kinds of objects, read at different time horizons and with different evidentiary status. To avoid confusion: the three axes above are the inputs of the calculation (growth, inflation, financial conditions); the three layers below are the nature of the regime objects. They are not two names for the same thing.

Layer 1 Cyclical regime — G × I grid ● computed in real time

The growth × inflation state of the moment (the seven regimes above + transition), at a horizon of a few months. Produced by axes 1 and 2. This is the verdict the classification outputs. In the Atlas, these states group into two cyclical meta-regimes: inflationary (column I+) and disinflationary (column I−).

Layer 2 Overlay — financial conditions ● computed in real time

Derived from axis 3. Superimposes on any cyclical state, at a horizon of weeks to a few months, quickly reversible and without hysteresis. It has two expressions: the qualifier as a prefix (accommodating / restrictive / stress) and, when a bundle of signals fires, the named overlay — the Dollar Shortage. No G/I code: it is not a state of the grid.

Layer 3 Structural regime — multi-year ○ long-run framework · not computed monthly

Background regimes that unfold over several years and deform the grid itself (a durably low natural rate r* changes what “G+” means). These are not real-time computed verdicts: they are interpretive frameworks, set by editorial judgment over the long run. Three pages: secular stagnation, financial repression, fiscal dominance.

Dividing line — why this distinction protects rigor

The criterion separating layer 2 from layer 3 is falsifiable: does the engine compute a signal for this object, yes or no? Dollar Shortage has three measured signals (broad dollar, NFCI, HY spreads) → layer 2, computed. Secular stagnation, repression, dominance have no live signal → layer 3, long-run judgment. The classification never presents as “measured” what is “judged”: this is the condition of its reproducibility.

Source indicators

US core and global context inputs

US Core

IndicatorSeries codeSourceFrequencyFrom
Chicago Fed NAI (MA3)CFNAIChicago Fed / FREDMonthly1967
Sahm rule (real-time)SAHMREALTIMEFREDMonthly1960
SOS indicator(Richmond Fed)Richmond / Philadelphia FedWeekly1971
Trimmed Mean PCE (12m)PCETRIM12M159SFRBDALDallas Fed / FREDMonthly1977
5Y5Y forward breakevenT5YIFRFederal Reserve / FREDDaily → monthly2003
NFCINFCIChicago Fed / FREDWeekly1971
HY OAS (optional)*BAMLH0A0HYM2ICE / FREDDaily → monthly1996
Fed funds rateFEDFUNDSFederal Reserve / FREDMonthly1954
10Y–2Y yield spreadT10Y2YFederal Reserve / FREDDaily → monthly1976

* HY OAS: optional corroboration only. Since April 2026, FRED truncates ICE BofA series to 3 rolling years. Included only when a full pre-April 2026 historical fixture is available locally.

Global context layer

IndicatorSeries codeSourceRole
US CLI (amplitude adj.)USALOLITOAASTSAMOECD / FREDSynchronization — US baseline
G7 CLI (amplitude adj.)G7LOLITOAASTSAMOECD / FREDSynchronization — G7 vs US
CISS eurozoneECB SDWECBEuropean systemic stress
Broad dollarDTWEXBGSFederal Reserve / FREDGlobal financial conditions channel
Brent / WTIWorld Bank CMOWorld BankCommodity channel
VIXVIXCLSCBOE / FREDGlobal market stress
Threshold table

Fixed institutional thresholds

These thresholds are not Eco3min editorial choices — they are defined by the producing institutions:

Institutional thresholds (version 1.0.0)

Sahm rule ≥ 0.50 Recession threshold — Sahm (2019). Triggers G− immediately, no hysteresis wait.
SOS indicator ≥ 0.20 Early recession signal — O’Trakoun & Scavette, Economics Letters 2025.
NFCI (reference level) = 0 Historical average since 1971 — Chicago Fed. Positive = tighter than historical average.
10Y–2Y yield spread = 0 Yield curve inversion — universal market convention.
Trimmed Mean PCE (target) 2.00% Fed’s symmetric inflation target — Federal Reserve.

Calibrated thresholds

Other thresholds (CFNAI-MA3 levels, Trimmed Mean PCE bands, NFCI overlay levels) are calibrated by percentile rank on the full available history, then validated against reference episodes: 2008 GFC, 2020 COVID, 2021 reflation, 2022 tightening, 2023–2024 soft landing.

Any threshold modification receives a version number and a changelog entry. The full table is published in the GitHub repository (thresholds.json, versioned in semver).

Anti-flickering

Hysteresis: preventing regime oscillation

Without a hysteresis mechanism, an indicator oscillating around a threshold would produce unreadable regime changes month after month. The rule:

Hysteresis rule

A state change on the growth or inflation axes is confirmed only after two consecutive months beyond the threshold.

Exception — Sahm hard gate: when the Sahm rule reaches 0.50, the transition to G− is immediate with no confirmation delay. This signal is robust enough to bypass hysteresis.

Stress overlay: updates without hysteresis. It reflects current financial conditions and can change every month.

Historical window

Two resolution windows

Full resolution — from January 2003

All indicators available: T5YIFR, net liquidity (RRP from 2003), SOS. This is the reference window for calibration and validation.

Retroactive degraded extension — from 1977

Reduced input set: CFNAI (≥1967), NFCI (≥1971), Trimmed Mean PCE (≥1977), T10Y2Y (≥1976), Sahm (≥1960). T5YIFR and net liquidity absent. Clearly flagged in all exports (data_quality: "degraded"). To be interpreted with caution.

Limitations and epistemic honesty

What this system cannot do

  • Revisions: the current month’s regime may change after data source revisions (CFNAI is regularly revised). The JSON timestamps the computation and flags lagged inputs.
  • Publication lags: the CFNAI publishes with ~3-week lag. The classification uses the last known value and documents the pending input in the JSON.
  • OECD CLI lag: ~6 weeks. The global context layer updates slower than the US core and may delay detection of inter-zone divergence.
  • Not a forecast: the classification describes the currently measured state, not future conditions.
  • Energy supply shocks: the Trimmed Mean PCE excludes volatile components. An oil spike can be invisible on the inflation axis while headline CPI surges. The headline_underlying_divergence flag in the JSON signals this case automatically.
  • Structural regimes not computed: layer 3 regimes (secular stagnation, financial repression, fiscal dominance) are not produced by the engine. They are long-run editorial frameworks and must not be read as a measured monthly verdict.
Reproducibility and open-source code

Any third party can recalculate the regime

Any third party can recalculate the regime from primary institutional sources and the published threshold table, with no opaque component. The Python code and thresholds are published open source.

GitHub repository: [URL to be added after deployment]
Files: regime_classifier.py, thresholds.json (semver versioned), data/regime_history.csv, requirements.txt, LICENSE (MIT code, CC-BY 4.0 derived data).

Suggested citation format

“Eco3min Macro Regime Classification, based on the Chicago Fed NFCI, CFNAI, and Dallas Fed Trimmed Mean PCE. Threshold table v1.0.0. eco3min.fr/en/macro-regime-classification-methodology/”

Current regime
MACRO REGIMEData as of June 2026
Transition / Mixed signals
→ Growth : on trend→ Inflation : stableFinancial conditions : accommodating
Underlying inflation: stable (Trimmed Mean PCE 2.4 %) — but ongoing energy shock: Brent +66 % YoY. Headline inflation exceeds the persistent inflation measured by the classification.
Global context : synchronized · commodity supply/demand shock · elevated market volatility
Neutral cyclical state — no clear cyclical meta-regime See in the Atlas →
See the full classification →
Source indicator values
IndicatorValueCode
CFNAI-MA30.0267CFNAI
Sahm Rule0.1SAHMREALTIME
SOS indicatorRichmond Fed
Trimmed Mean PCE 12m2.35 %PCETRIM12M159SFRBDAL
5Y5Y breakeven2.24 %T5YIFR
NFCI-0.5008NFCI
HY OAS2.76 bpsBAMLH0A0HYM2
Courbe 10Y–2Y0.38 %T10Y2Y
Fed funds3.63 %FEDFUNDS
Dollar broad (3m)0.8963 %DTWEXBGS
Brent YoY66.2374 %World Bank CMO
VIX21.51VIXCLS

Subject to revision on source updates.

Sources: Chicago Fed NFCI (NFCI), CFNAI (CFNAI) · Dallas Fed Trimmed Mean PCE (PCETRIM12M159SFRBDAL) · Federal Reserve FRED (SAHMREALTIME, T5YIFR, T10Y2Y, DTWEXBGS, VIXCLS, FEDFUNDS) · Richmond & Philadelphia Fed (SOS indicator) · OECD CLIs (USALOLITOAASTSAM, G7LOLITOAASTSAM) · ECB SDW (CISS) · ICE BofA (BAMLH0A0HYM2). Classification as of the 1st of the current month. Subject to revision.

Disclaimer. The data, indicators and classifications presented on this page are provided for strictly informational and educational purposes. They are sourced from public institutional data and may be subject to delays, revisions or errors. They do not constitute investment advice, personalized recommendations, solicitation to buy or sell any financial instrument, or predictive analysis of the economic cycle. eco3min.fr is not a licensed financial institution and does not provide investment advisory services within the meaning of applicable regulations (MiFID II, French Monetary and Financial Code articles L.541-1 et seq.). Any investment decision is the sole responsibility of the investor, who is encouraged to consult a licensed professional. Past performance is not indicative of future results.

Last updated — 28 May 2026

Disclaimer – Financial Information: The analyses, commentary, and content published on eco3min.fr are provided for informational and educational purposes only. They do not constitute investment advice or a solicitation to buy or sell financial instruments. Past performance is not indicative of future results. All investment decisions involve risk and are the sole responsibility of the reader.