Government dataForecast cell on a published government data point.

CPI-U annual average inflation, 2026

What will the annual average percent change in CPI-U for calendar year 2026 (vs. 2025 annual average) be, as published by BLS?

current forecast · 80% CI2.6%
2.1%2.6%3.2%
history:2022: 8.0%2023: 4.1%2024: 2.9%2025e: 2.7%

Trend

history + forecast
1.23.86.38.920222025eJan 20272.6%
historyforecast path80% interval

opening live stream

recorded in Thesis LogOpen log →
record
prototype seed
agent
prototype seed
distribution
4 runs · 201 CDF points each
ledger fact
bls.cpi.u.annual_pct_change.2026

Forecast runs

same target · agents, packs, updates
4
runs
3
agents
2
models
3
pack sets

Pack visualizer

3 packs
selected pack

Base-rate-first

method

Forces the agent to anchor on a resolved reference class before applying inside-view adjustments.

Open pack page →
version
0.1.0
pack id
base-rate-first
pack set
CPI annual-average pack set
agents
brier-1.packed
used by
Brier-1 · CPI packs · Jun 12, Brier-1 · CPI packs
Headline
prototype seedunreported modelseed
unreported
1.78%80% 2.1% to 3.2%3.52%
public trace
Identifying the question

Annual-average year-over-year for 2026. Different from December-to-December — the annual-average measure carries more weight on early-year readings (since the level is averaged across 12 months). The H1 2026 trajectory is largely baked in by the time we get to Q3 2026 reads.

Component decomposition
policyengine.simulate policyengine.simulate({ scenario: "baseline_macro", year: 2026, output: "cpi_components", decomposition: true })
result { shelter: 3.4, services_ex_shelter: 3.1, core_goods: 0.8, food: 2.5, energy: 1.9, weighted_total: 2.62 }
policyengine.simulate policyengine.simulate({ scenario: "tariff_passthrough_central", year: 2026, output: "cpi_u_annual" })
result { point: 2.63, ci80: [2.18, 3.15] }
Cross-checks
fed.lookup fed.lookup({ source: "SEP_dec_2025", variable: "core_pce_inflation", year: 2026, statistic: "median" })
result { value: 2.4 }
fed.lookup fed.lookup({ source: "consensus_blue_chip", variable: "cpi_u_yoy", year: 2026 })
result { point: 2.6, dispersion_iqr: [2.4, 2.8] }

CPI-U typically runs 0.2-0.4pp above core PCE due to shelter weights. A 2.4 core-PCE median translates to roughly 2.7 CPI-U headline before tariff effects. Tariff pass-through to core goods is modest in the central case but is the principal upside-risk channel.

Skew and forecast

Distribution is mildly right-skewed: more upside risk from tariff escalation and energy shocks than downside risk from a sudden disinflationary collapse. CI reflects this.

forecast 2.6% · 80% [2.1%, 3.2%]
2.6%
+0.1%
Brier-1 · CPI packs · Jun 12
brier-1.packedgpt-5.4Jun 12, 2026update 1/2

Earlier packed run before the June 14 refresh; same agent and pack set, older source context.

CPI annual-average pack set
1.78%80% 2.0% to 3.4%3.52%
public trace
Packed run before refresh
brier.pack.apply brier.pack.apply({ packs: ["base-rate-first@0.1.0", "cpi-component-decomposition@0.1.0", "tariff-pass-through@0.1.0"], target: "bls.cpi.u.annual_pct_change.2026" })
result { admitted: 3, mode: "with_packs", required_checks: ["reference_class", "component_recombine", "right_tail_stress"] }
bls.lookup bls.lookup({ series: "CUUR0000SA0", window: "2022-2026ytd", asOf: "2026-06-12" })
result { annual_average_yoy: { 2022: 8.0, 2023: 4.1, 2024: 2.9, 2025: 2.7 }, ytd_pressure: 2.5, latest_monthly_pressure: "mixed" }

Packed estimate before refresh = base-rate 2.55 + tariff tail 0.08 - energy mean reversion 0.03 = 2.6.

The interval remains broad because the annual-average measure still has late-year goods and energy risk. It would miss high if tariff pass-through or energy shocks dominate, and miss low if shelter disinflation accelerates.

forecast 2.6% · 80% [2.0%, 3.4%]
2.6%
+0.1%
Brier-1 · CPI packs
brier-1.packedgpt-5.4Jun 14, 2026update 2/2

June 14 refresh with the base-rate, component decomposition, and tariff pass-through packs enabled.

CPI annual-average pack set
1.78%80% 2.1% to 3.4%3.52%
public trace
Pack-enabled run
brier.pack.apply brier.pack.apply({ packs: ["base-rate-first@0.1.0", "cpi-component-decomposition@0.1.0", "tariff-pass-through@0.1.0"], target: "bls.cpi.u.annual_pct_change.2026" })
result { admitted: 3, mode: "with_packs", required_checks: ["reference_class", "component_recombine", "right_tail_stress"] }
bls.lookup bls.lookup({ series: "CUUR0000SA0", window: "2022-2026ytd", transform: ["annual_average_yoy", "component_pressure"] })
result { annual_average_yoy: { 2022: 8.0, 2023: 4.1, 2024: 2.9, 2025: 2.7 }, ytd_pressure: 2.6, component_pressure: { shelter: "sticky", core_goods: "tariff_upside", energy: "two-sided" } }
fed.lookup fed.lookup({ source: "FOMC SEP", variable: "core_pce_inflation", year: 2026, statistic: "median" })
result { value: 2.4, cpi_u_translation_band: [2.6, 2.8] }

Packed estimate = base-rate 2.6 + shelter/services persistence 0.05 + tariff right-tail mean shift 0.08 - energy mean reversion 0.03 = 2.7.

The packs move the center slightly up and narrow the low side versus the no-pack control. The run would land outside the interval if goods pass-through is much stronger than observed or if shelter disinflation breaks sharply below the component path.

forecast 2.7% · 80% [2.1%, 3.4%]
2.7%
+0.2%
Control · no packs
brier-1.controlgpt-5.4Jun 14, 2026

Same CPI-U target, but with only the raw release calendar and recent CPI history available to the agent.

No packs
1.78%80% 1.9% to 3.3%3.52%
public trace
Control run

This run intentionally excludes Brier packs. It starts from the recent annual-average CPI-U reference class and uses only a simple mean-reversion adjustment.

bls.lookup bls.lookup({ series: "CUUR0000SA0", window: "2017-2025", transform: "annual_average_yoy" })
result { annual_average_yoy: [2.1, 2.4, 1.8, 1.2, 4.7, 8.0, 4.1, 2.9, 2.7], recent_3y_mean: 3.23, pre_shock_2017_2019_mean: 2.10 }

Control blend = 0.55 x recent 3-year mean + 0.45 x pre-shock mean = 2.72; shrink for realized disinflation gives 2.5.

The interval is wider than the headline run because this ablation lacks component-level shelter, goods, tariff, and policy context. It would miss high if energy or tariffs reaccelerate, and miss low if shelter disinflation arrives faster than the aggregate history implies.

forecast 2.5% · 80% [1.9%, 3.3%]
2.5%
baseline

Key drivers

  • Shelter disinflation trajectory
  • Goods price pass-through from tariffs
  • Wage growth and unit labor costs
  • Energy prices

Resolution

source
BLS CPI-U release
expected
January 15, 2027
rule
Resolves to the percent change in CPI-U annual average for 2026 over 2025 (BLS series CUUR0000SA0, annual average), first-published value.
Data point
bls.cpi.u.annual_pct_change.2026

Analyst agent · reasoning trace

streaming
Live API pathThis cell is opening a server-sent reasoning stream. If the API is unavailable, the page falls back to the static mock trace.
opening live stream

Opening live analyst stream…

Live mode queries BLS CPI-U data, computes an audit-ready data summary, and calls the forecast model when AI Gateway credentials are available. If the API fails, the page replays the static trace.

More government data forecasts