Fed Inflation Signal

A reproducible composite that infers inflation pressure from FRED data using robust rolling standardisation, explicit data-quality handling, and transparent weighting. Applicable across macro use‑cases; commodity examples (e.g., silver) appear only as illustrations.

Abstract

We construct a monthly, rules‑based signal that blends headline/core CPI, breakevens (10Y), money/liquidity proxies (M2, Fed assets, ON RRP via sign inversion), growth/industry proxies (Industrial Production, copper), policy stance (Fed Funds Δ12m), USD (inverted YoY), and uncertainty (EPU). Each component is transformed to a comparable scale via rolling robust z‑scores, weighted, and summed to a Composite Inflation Signal. Regimes are mapped from the composite’s distribution to HOT, NEUTRAL, or COOL.

1. Data (FRED Identifiers)

All series are coerced to monthly end via resampling and forward‑fill where appropriate. Metadata (titles) are optionally captured for documentation.

2. Data Quality, Cleaning & Validation

  • Recent availability check: list last observation date and recent coverage for each series.
  • Bounded forward‑fill: up to 2–3 months (configurable) to bridge publication lags.
  • Minimum history: require ≥120 months overlapping data for robust rolling transforms.
  • Adaptive windows: if history is short, shrink rolling window but log a warning.

These steps generate a data_quality_flag trail to enable downstream audit and confidence assessment.

3. Component Transforms

Let x_t be a monthly series. We form level and impulse views via:

YoY(x)_t = 100\times\frac{x_t - x_{t-12}}{x_{t-12}}
Ann\;3m(x)_t = 100\times\left(\left(\frac{x_t}{x_{t-3}}\right)^4 - 1\right)
Δ12m(x)_t = x_t - x_{t-12}}

Constructed components (examples): headline_yoy, core_yoy, headline_3m_ann, core_3m_ann, breakeven10, m2_yoy, walcl_yoy, copper_yoy, usd_yoy_neg (note inversion), indpro_yoy, epu_level, fedfunds_delta_neg (inverted Δ12m).

4. Standardisation (Rolling z‑scores)

We scale each component with a rolling window W=120 months. Robust z‑scores use median/MAD; otherwise mean/std.

z_t = \begin{cases} \dfrac{x_t - \text{median}_{W}(x)}{1.4826\,\text{MAD}_{W}(x)} & \text{(robust)}\\[6pt] \dfrac{x_t - \mu_W(x)}{\sigma_W(x)} & \text{(classical)} \end{cases}

If insufficient history, use an adaptive window (≥60m) and emit a warning.

5. Weighting & Composite Construction

Let z^k_t denote the z‑score for component k. With weights w_k (normalised over available non‑NaN inputs), the composite is

S_t = \sum_k w_k\, z^k_t,\quad \sum_k w_k = 1.

Default weights emphasise core and breakevens, with auxiliary influence from liquidity, USD, activity, and uncertainty. Missing inputs are re‑normalised out.

{
  "core_yoy_z": 0.22, "headline_yoy_z": 0.12,
  "core_3m_ann_z": 0.12, "headline_3m_ann_z": 0.06,
  "breakeven10_z": 0.18, "m2_yoy_z": 0.08,
  "walcl_yoy_z": 0.05, "copper_yoy_z": 0.07,
  "usd_yoy_neg_z": 0.06, "indpro_yoy_z": 0.02,
  "epu_z": 0.01, "fedfunds_delta_neg_z": 0.01
}

6. Scaling & Regime Mapping

We provide a bounded 0–100 score and a categorical regime:

S^{0\text{–}100}_t = 100\times\dfrac{S_t - \min_W S}{\max_W S - \min_W S}
  • HOT: z(S)t ≥ 1.0 (rising inflation pressure)
  • NEUTRAL: −0.5 < z(S)t < 1.0
  • COOL: z(S)t ≤ −0.5 (disinflation/deflation risk)

7. Implementation Notes (Python)

# ➊ Fetch (fredapi) → monthly end
s, title = fred.get_series('CPIAUCSL'), fred.get_series_info('CPIAUCSL').title
# ➋ Transform components: YoY, 3m annualised, Δ12m, sign inversions
# ➌ Robust rolling z-scores with adaptive window (default W=120)
# ➍ Weight & sum available components (weights re-normalised)
# ➎ Produce: composite, 0–100 scaled score, regime, and per-component contributions

Reference functions: _zscore (robust/classical), pct_change, _ann_3m, _delta_12m, data‑quality helpers (recent‑availability, bounded ffill, sufficiency checks).

8. Reproducibility, Audit & Monitoring

9. Interpretation & Applications

The composite summarises inflation pressure for macro allocation, risk budgeting, and scenario analysis. For commodities (e.g., silver), HOT typically increases the risk of tighter policy and stronger USD headwinds; COOL the converse. Adapt signs/weights to specific asset sensitivities.

10. Governance & Change Control