Macro Intelligence Memo — March 2026 CPI
Released April 10, 2026, 8:30 ET. Memo as of 8:45 ET.
1. Headline read
CPI-U headline CUSR0000SA0 printed +0.87% m/m SA, +3.3% y/y. Core CUSR0000SA0L1E printed +0.20% m/m, +2.6% y/y. The simple narrative — "headline ran hot, core ran cool" — understates the asymmetry. Approximate weighted contributions to the headline m/m print:
| Component | Series | m/m % | RI weight | Contribution (pp) |
|---|---|---|---|---|
| Food | CUSR0000SAF1 | −0.01 | 13.698% | −0.001 |
| Energy | CUSR0000SA0E | +10.87 | 6.383% | +0.694 |
| Shelter | CUSR0000SAH1 | +0.27 | 35.625% | +0.095 |
| Supercore (partition: SASLE − shelter) | (derived) | +0.17 | 25.119% | +0.042 |
| Core goods (residual) | (derived) | +0.10 | 19.176% | +0.020 |
| Sum of contributions | 100.001% | +0.850 | ||
| Published headline (BLS) | CUSR0000SA0 | +0.865 | 100.000% | +0.865 |
| Closure error (recon − published) | — | −0.015 |
Supercore in the table is the partition cut (supercore_strict = SASLE − shelter), used here to ensure the five components sum to 100%. The narrative supercore (CUSR0000SASL2RS) cited elsewhere in the memo includes energy services and is appropriate for prose but not for the partition.
Energy alone explains ~80% of the print (0.694 / 0.865). Ex-energy, headline would have rounded to +0.17% — a conventional read.
2. Surprises (rolling 24-month z-score, m/m SA)
Z-scores are computed against the trailing 24 months ending February 2026. Threshold for the surprise call is |z| ≥ 2.
Flagged subindices, March 2026:
- Energy
CUSR0000SA0E: m/m +10.87%, z = +9.86 (window mean −0.06%, std 1.11%). The largest single-month z-score in the energy index in our two-year reference window. - Gasoline
CUSR0000SETB01: m/m +21.23%, z = +9.56. - Fuel oil
CUSR0000SEHE: m/m +18.81%, z = +7.81. - Headline
CUSR0000SA0: m/m +0.87%, z = +5.31. This flag is downstream of the energy cluster; it is not an independent surprise.
Subindices that did not breach the |z| ≥ 2 threshold but ran near it:
- Apparel
CUSR0000SAA: z = +1.72 (m/m +1.03%) - Food
CUSR0000SAF1: z = −1.87 (m/m −0.01%) - Food at home
CUSR0000SAF11: z = −1.79 (m/m −0.16%) - Rent of primary residence
CUSR0000SEHA: z = −1.50 (m/m +0.19%)
The full subindex matrix is in z_summary.csv. Component contributions are in contributions.csv (downloadable).
3. What did not surprise (and why it matters)
- Supercore
CUSR0000SASL2RSprinted +0.33% m/m, z = +0.24. The 24-month mean is +0.30%, std 0.15%. This is on-trend, not a deceleration. Annualized at the prior-six-month run-rate, supercore is tracking ~3.7% — well above the 2% target. - Core
CUSR0000SA0L1Eprinted +0.20% m/m, z = −0.54. Trend, not a break. - Shelter
CUSR0000SAH1+0.27% m/m, z = −0.55; OERCUSR0000SEHC01+0.29%, z = −0.54. Both modestly below the rolling mean. The shelter disinflation continues at the pace of the prior six months — no acceleration in either direction.
The substantive read: the non-energy CPI printed an ordinary month. The headline shock is a single-component story, and that component is mean-reverting on a horizon of weeks-to-months historically. The harder question is whether energy passes through into core goods (transport, packaged goods) or into wage demands.
4. Portfolio impact by S&P 500 sector
Mapping the data — not a buy/sell list, but a contribution-weighted reaction frame.
- Energy (XLE) — Direct beneficiary of the price level. Operators with low lifting costs and short-cycle production (Permian) are most exposed to the upside. Refiners face a margin window if crack spreads stay wide; tilt toward integrated names with refining + marketing exposure.
- Consumer Discretionary (XLY) — The pass-through risk is highest here. Airlines (
JETS) face direct fuel cost; pricing power varies by route. Auto and big-ticket retail face the second-order hit from wallet share. The discretionary read is conditional on whether retail sales (April 15) confirms or denies consumer absorption. - Consumer Staples (XLP) — Defensive but not immune. Food-at-home printed −0.16% m/m, suggesting wholesale costs are pulling shelf prices down. Grocers may see margin expansion if the lag persists.
- Industrials (XLI) / Materials (XLB) — Input-cost pressure if energy holds. Chemicals and packaging most exposed.
- Financials (XLF) — Net interest margin tailwind if the front end of the rate curve remains anchored higher; offset by credit-quality concern if consumer cracks.
- Real Estate (XLRE) / Utilities (XLU) — Duration-sensitive. Direct headwind if the rates story re-prices higher-for-longer.
- Tech (XLK) — Long-duration cash flows; sensitivity to the back end of the curve. Less exposed if the move is concentrated in 2y–5y.
5. OIS market reaction (8:25 vs 8:35 ET)
Fed Funds futures (ZQ.CBT) repriced essentially zero in the strict pre/post 5-minute window. Across the 1m–13m curve, deltas were within ±0.5bp at every contract — within the 5-minute liquidity noise floor. Implied EFFR at the May 2026 contract was unchanged at 3.645%; at the May 2027 contract, unchanged at ~3.50%. Full curve and timestamps in ois_repricing.csv.
Read: the market treated the energy spike as transitory. The non-energy CPI confirmed the read — no broader inflation signal. There was no "hawkish hold" repricing, contrary to a naive interpretation of the headline. Path-dependence matters: if April CPI shows energy mean-reverts cleanly, this print is forgotten by mid-May. If April shows pass-through, the back end of the curve will reprice harder than it did on April 10.
6. Tactical positioning bias (rates, FX, equities)
These are conditional, not directional commitments.
- Rates: with supercore on-trend at ~3.7% annualized and an energy shock that complicates the "look-through" narrative, a near-term rate cut is harder to justify. A bear-flattener (long 2y, short 10y) would imply sticky front-end policy with some growth concern in the back. A bear-steepener works if the market reads through the energy spike but worries about inflation-expectation un-anchoring. Lean to bear-flatten until the next CPI; pivot to steepener if April retail sales or jobless claims surprise weak.
- FX: dollar direction depends on relative central-bank reaction functions. A pure US energy shock that the Fed treats as transitory is dollar-neutral. A shock that pushes the Fed further from cuts is dollar-positive vs. EUR (where the ECB is closer to easing). Petro-currencies (CAD, NOK) get a near-term tailwind from the energy level alone.
- Equities: barbell — Energy long against Discretionary underweight, with Staples as ballast. Hedge: a long volatility tail (
VIXcalls or short-dated SPX puts) is consistent with the macro whipsaw if the next CPI prints a disorderly retrace.
Conditions / triggers to revise the bias:
- If front-month gasoline futures retrace > 8% in the two weeks post-release, unwind the energy overweight and revisit the bear-flattener.
- If April CPI (released mid-May) shows supercore re-accelerating to ≥ +0.45% m/m, the rates view shifts from cautious-flat to outright hawkish; the Fed cannot cut in this regime.
- If initial jobless claims
ICSArise above 260k for two consecutive weeks, the consumer-cracking narrative dominates; rotate from cyclicals to defensives.
7. Week-ahead release watch (April 11–17, 2026)
- Mon Apr 13 — NY Fed Survey of Consumer Expectations. Watch the 1-year inflation expectation. A move above the prior-6-month band would be the first hard signal of unanchoring.
- Tue Apr 14 — PPI March 2026. The relevant cut is core PPI ex-trade services. If energy pass-through is showing up in the producer pipeline, the headline narrative shifts from "transitory energy" to "broadening".
- Wed Apr 15 — Retail Sales March 2026. Control group is the read. Weakness here confirms the consumer is absorbing the energy hit; strength means the print is being pushed forward to other categories.
- Thu Apr 16 — Initial Jobless Claims. The first weekly read post-CPI shock. Trend continuation favors the rates-and-energy bias above.
- Fri Apr 17 — Industrial Production. Energy production responsiveness matters for whether the gasoline shock unwinds.
8. Methodological notes
- Z-score window: trailing 24 months ending February 2026, m/m SA % change. Threshold |z| ≥ 2.
min_periods = 18; subindices with a shorter trailing window are dropped from the surprise table. - Contribution weights: BLS Relative Importance, December 2025 publication (Table 1, U.S. City Average CPI-U; 2024 expenditure weights, governs all 2026 releases). Verified against the source Excel: food 13.698%, energy 6.383%, shelter 35.625%, services less energy services 60.744%, core goods 19.176%.
- Supercore convention: two distinct series, distinct purposes. Memo prose, z-score sweep, and Fed-communication cross-references use
supercore_sasl2rs(BLS seriesCUSR0000SASL2RS, "services less rent of shelter"; weight 28.673%). The contributions table above usessupercore_strict(derived as SASLE − shelter; weight 25.119%), which excludes energy services and yields a clean partition that sums to 100%. Including energy services in the partition supercore would double-count them with the energy line, inflating the weight sum to ~103.6%. - Reconciliation: sum-of-contributions reconciles to the published headline within rounding tolerance (+0.850pp reconstructed vs. +0.865pp published; closure error −0.015pp, well within ±0.02pp). The residual closure error reflects chained-Laspeyres aggregation slop and the small tenants'-insurance taxonomy gap between "shelter" and "rent of shelter" — not a methodology error.
- Source provenance: CPI subindices pulled from BLS Public Data API v2 on the release date; EFFR/SOFR pulled from FRED for the money-market basis cross-check. Raw responses cached with timestamp under
outputs/cpi_2026-03/raw/. Series IDs are cited inline. - Coverage gap: the October 2025 row returned NaN for most aggregates in the source pull window (a FRED-era artifact preserved in the raw cache). The z-score window's
min_periodsguard tolerates this; window n = 22 of 24 for affected series.
Subscription tier: Macro Intelligence. Complete component matrix and contribution table available as z_summary.csv and contributions.csv in this release folder.