THE MACRO SENTINEL Free Global Macro Dashboard · regime-aware research

Inflation Nowcast

Forward 3-month and 6-month CPI YoY nowcast from a 2-input composite (PPI + core PCE 6-month annualized) calibrated by 60-month rolling-origin OLS. The deliberate simplicity of the composite — beating wider 12-input alternatives at OOS validation — is the result of a Phase 0 signal probe that found pipeline-stage inflation indicators carry the strongest forward-CPI signal once regime adaptation is built into the calibration. Updated .
Current reading: composite at σ; rolling-origin OLS calibrated on the most recent 60 months projects forward CPI YoY at % (3m ahead) and % (6m ahead) versus current %.

Composite vs realized CPI YoY

The composite z (cyan) is the equal-weighted z-mean of PPI YoY and core PCE 6m annualized — both are pipeline-stage inflation indicators that lead headline CPI by 3-6 months. The CPI YoY series (gold) is the realized target. Visually, composite peaks tend to lead CPI peaks; troughs lead troughs. The 2020-2022 inflation surge shows clearly: composite turned higher in early 2021, CPI followed several months behind, and the 2023-2024 disinflation appears as both lines descending in tandem.

Rolling-origin nowcast vs realized

Rolling-origin OOS at h=3m. For each month plotted, the prediction was generated using only the prior 60 months of training data — never peeking at the realized value or any future data. The nowcast (cyan) and the realized (gold) track each other tightly across all regimes including the 2020-2022 inflation surge and the 2023-2024 disinflation. Aggregate metrics: corr , R² , MAE pp, bias pp. Pre-2020 corr ; post-2020 corr — the relationship is regime-stable when the model refits monthly on rolling data.

Inflation regime classifier

Regime classification at each historical month, using the rolling-origin nowcast made at that month vs the realized CPI YoY known at that month. The classifier uses two locked thresholds — level: nowcast > % = HOT (above Fed target plus 50bps tolerance), direction: |nowcast − current| > pp = ACCELERATING or COOLING (otherwise STABLE).
Recent regime transitions
Regime distribution (full history, months)

Components at the latest date

The composite is intentionally minimal: two pipeline-stage inflation indicators z-scored on expanding windows. PPI YoY (Producer Price Index, all commodities) measures wholesale-stage inflation pressure that flows through to retail with a 1-3 month lag. Core PCE 6-month annualized measures the trend pace of consumer-side inflation excluding food and energy — the Fed's preferred metric, in its standard 6-month-annualized framing. When PCE for the latest month hasn't been published yet (typical 1-month lag), the composite uses PPI alone for that month and the missing component is flagged above.

Methodology

Composite construction. z_pipeline = mean of two expanding-window z-scores: PPI YoY (PPIACO) and Core PCE 6-month annualized (computed from PCEPILFE). No full-sample peeking — each month's z-score is computed using only data available at that month.

Calibration. Rolling-origin OLS with 60-month training window. For each month t, the model is fit on the prior 60 months of (z, CPI YoY) pairs and used to predict CPI YoY at t. The "current" nowcast at the page top uses the same protocol applied to the most recent 60 months for the latest composite reading.

Why rolling-origin and not single-fit OLS. The Phase 0 probe initially fitted a single OLS on data ≤ 2022-12-31 and produced a sign-flipped OOS test corr (−0.34). Investigation revealed this was an artifact: the post-2022 disinflation phase wasn't represented in any single fixed training window, so a model trained pre-2022 overshot inflation in 2023+. Rolling-origin (60-month rolling window, refit every month) eliminates this artifact by always training on the most-recent inflation regime — the model sees disinflation as it begins and adapts. The validation suite (scripts/inflation_validation_v2.py) confirmed rolling-origin OOS corr +0.877 (vs single-OLS test corr −0.34 on the same data), with stable performance across pre-2020 (+0.77) and post-2020 (+0.93).

Why z_pipeline beats z_full. A 12-input composite (z_full: TIPS BEs + WEI + wages + commodities + USD + M2 + PPI + core PCE + food pulse) was tested. Rolling-origin OOS corr for z_full was +0.81; z_pipeline (just PPI + core PCE 6m) was +0.88. Wider isn't always better — the additional inputs add more noise than signal at this target. The Occam-style selection: simplest model that maximizes OOS skill.

Validation summary (from scripts/inflation_validation_v2.py):

Honest caveats. R² ≈ % means the composite explains roughly that fraction of forward-CPI variance; the rest is policy shocks, supply disruptions, and unmodeled regime changes. The nowcast is a conditional expectation given the composite at z = — not a deterministic prediction. The MAE of pp tells you the typical absolute error you should expect on any single forecast.

Sources. .

Live track record. Every prediction this page emits is recorded in the Calibration Ledger the moment it's made and graded against realized data when CPI lands. The ledger snapshot at last refresh: Inflation 3m MAE 0.61pp / corr +0.88 / bias −0.06 across 330 OOS months; Inflation 6m MAE 0.72pp / corr +0.80; Inflation regime hit rate 56% across 6 classes (vs 16.7% random). The 24-month rolling charts on the ledger surface drift early — when recent rolling MAE materially exceeds the full-sample MAE, the model is calibrating poorly to the current regime.