Barrel to Kitchen Table · 23.5 Strategies
Twenty Three Point Five · Interactive Editioncanonical spec v0.12 · sep 2026

A cost shock is a claim on somebody's income.

When oil jumps, someone always pays; the only questions are when, where, and who. This is a working model of that journey: from a barrel of crude, through refineries, freight, and corporate balance sheets, to your grocery bill. Set the shock, press play, and watch it move through the digital twin.

Set the scenario

The causal chain from the v0.12 spec. Click any station to jump there; press play and the rings fill as pressure arrives. The dashed return path is the demand feedback loop

Control room · Mode A, causal sensitivity

Set the shock. The page computes the rest.

The gist

Pick how big the oil shock is and how stretched the market already is, then press ▶ Run in the player below. Every number and chart on this page recalculates instantly.

Crude oil shock ASSUMPTION
+$30 /bbl
An exogenous jump in the benchmark crude price (WTI/Brent). In the full engine this is generated by a physical event; here you set it directly.
Market state ASSUMPTION
Baseline levels ASSUMPTION
Illustrative starting levels. The production tool pulls these live from EIA.
Raw barrel value+71.4¢/gal Pump target (gas)+95.4¢/gal Diesel target+102.6¢/gal Gasoline Δ+28% Household+$76/mo CPI direct+1.0pp
Every number here wears a label: IDENTITYarithmetic that cannot be wrong OBSERVEDpulled from a named source ANCHOREDevidence-based parameter ASSUMPTIONscenario dial you control
Your scenario: +$30/bbl into a tight market
01
M01 · Shock generator

Something breaks upstream

The gist

Energy inflation never starts as "prices went up." It starts as a real-world event. The model draws the event first and lets prices follow.

A producer takes supply offline. A refinery goes down. A chokepoint closes, exports pull product away, a tariff lands, or demand surges. Each is a physical or policy event with a size and a duration.

The model's first discipline is to draw causes, not consequences. Prices, inventories, and CPI are never invented directly; they are computed from the event. That is what makes every downstream number traceable.

Your console setting of +$30/bbl in a tight market stands in for one of these events hitting a market with little slack.

Event families the generator can draw

ASSUMPTION
Supply loss

Production outage or embargo, in mb/d, with a duration.

Refinery outage

Capacity points offline: crude is available but products are not.

Logistics / chokepoint

Pipeline, strait, or port constraint: product exists in the wrong place.

Export pull

Global arbitrage draining domestic barrels.

Demand surge / collapse

2008-style destruction or reopening-style surges.

Tariff / tax / weather

Policy wedges and seasonal stress enter here too.

Governing
Carries forward: a +$30/bbl claim hits the physical system
02
M02–M04 · Barrels, refineries, geography

Hard barrel accounting

The gist

Fuel is physical. When tanks run low and refineries max out, prices stop behaving politely; and they snap, they don't glide.

Before anything becomes a price, it is a stock-and-flow problem. Every barrel in every tank must be explained by production, imports, exports, refinery runs, demand, or an explicit adjustment. Nothing appears or vanishes

The number the market actually watches is days of supply: inventory divided by demand . When it falls toward the bottom of its seasonal range, scarcity pricing switches on, and it switches on nonlinearly.

Refineries cannot rescue this freely. A barrel of crude yields a roughly fixed slate of products, and diesel plus jet compete for the same middle-distillate molecules . Geography binds too: the five PADD regions are linked by pipelines and ships with finite capacity, so a national average can hide a regional shortage.

U.S. product inventories & days of supply

Crude ASSUMPTION
≈420 MMbbl
vs. recent range (illustrative)
Gasoline ASSUMPTION
≈220 MMbbl
≈25 days of supply
Distillate OBSERVED
106.274 MMbbl
≈28 days of supply · EIA, Sep 4 2026
What one barrel of crude becomes ANCHORED
Gasoline 46%
Diesel 30%
Jet
Other
Diesel + jet share a capped middle-distillate pool: refiners can shift between them but cannot mint more . Typical recent U.S. average yields (EIA). The column shows where each fraction is drawn off.
The scarcity switch

Premium demanded by the market as inventories fall below target, and a discount when tanks brim past it (the 2020 storage boundary). Flat when comfortable, steep when short: that curvature is why stressed markets overreact in both directions ASSUMPTION curve shape illustrative; calibrated per product/region in production.

Carries forward: scarcity adds +24¢/gal on top of barrel math
03
M05 · Price formation

From barrel to pump: the price bridge

The gist

A pump price is built like a receipt: barrel value, refining premium, geography, taxes, and margin, stacked in that order. Nothing is a mystery fee.

The bridge starts with arithmetic nobody can argue with: a barrel holds 42 gallons, so $1/bbl of crude is exactly 2.381¢/gal of raw barrel value .

Everything added on top has a name and a mechanism. The crack spread is the refining market's own scarcity price for turning crude into product . Regional basis is the price of geography: the same gallon costs more where tanks are short and pipes are full . The spec insists these are different mechanisms and must never be merged.

Taxes stay flat: fuel taxes are additive cents-per-gallon wedges, so a crude shock does not scale them. Distribution margins move slowly. The sum is the long-run retail target the pump price will chase .

Decomposing your +$30/bbl shock, ¢/gal

Crude/42IDENTITY CrackASSUMPTION Basis+logisticsASSUMPTION Taxes held flatIDENTITY
Bridge· INV-05: taxes additive · INV-06: crack ≠ basis
Carries forward: a +95.4¢/gal retail target heads for the pump
04
M05 · Retail lag kernel

The pump price arrives on a delay

The gist

Gas stations reprice over weeks, not minutes. About half the move shows up within two weeks, most of it within a month. Diesel drags behind.

Wholesale reprices in hours. The pump does not. Stations work off inventory bought at old prices and compete locally, so the retail price closes the gap to its target on a measured schedule .

The anchored prior, from EIA's pass-through study: gasoline realizes roughly 50% of the move by week 2 and 80% by week 4 ANCHORED. Diesel, sold on more contracts and fewer street corners, moves slower.

This lag is the first place the shock's timing gets shaped. Households feel gasoline within days; the freight and food effects downstream are still weeks away. One shock, many clocks.

Weeks after the shock: the move reaching the pump

Gasoline ANCHORED Diesel ASSUMPTION Full target

Press ▶ Run in the player below to watch the weeks unfold across the whole page; the vertical marker tracks the simulation clock.

Carries forward: by week 12, gasoline +28% and diesel +27% reach buyers
05
M06 · Industrial transmission

Industry takes the hit first

The gist

Before you feel it at the register, truckers, airlines, and farms feel it in their operating costs. Their exposure is measurable, not vibes.

Fuel is not just something households buy. It is a production input, and each sector's exposure is its fuel cost share times the fuel price change .

Two shares are anchored hard. ATRI's 2025 benchmark puts trucking at $2.336 per mile, $0.482 of it fuel: 20.6% of operating cost. BTS puts domestic airline fuel at 15.2% of operating expense. Farm and food-processing exposures run through fuel and feedstock (fertilizer) and are flagged provisional in v0.12.

Note what these cards show: cost shocks, not price changes. Whether a trucker's cost shock becomes a matching freight-rate hike depends on contracts, competition, and balance sheets. That is Stage 7, and the spec forbids confusing the two (INV-07).

Direct cost shock by sector, at full fuel pass-through

Trucking+4.1%
Fuel share of op. cost20.6% ANCHORED
ATRI 2025: $2.336/mi total, $0.482/mi fuel.
Airlines+3.0%
Fuel share of op. expense15.2% ANCHORED
BTS 2025, domestic scheduled. Jet proxied by the diesel move here.
Farms+1.8%
Fuel + fertilizer share≈9% ASSUMPTION
Provisional in v0.12; USDA expense bridge pending. Fertilizer's natural-gas channel not yet modeled.
Food processing+1.2%
Energy + freight exposure≈6% ASSUMPTION
Full treatment uses the USDA Ag-FEDS food input-output tables (Stage 6).

Trucking translation: $2.336/mi becomes $2.43/mi.

Carries forward: a +5.5pt trucking cost shock enters the supply chain
06
M07 · Input-output network

The supplier web: rounds, not multipliers

The gist

Costs echo through supply chains in shrinking rounds; they don't multiply forever. How far each round travels is a business decision, not physics.

Direct fuel exposure is only the first round. The trucker's diesel becomes the grocer's freight bill; the farmer's fuel becomes the miller's wheat cost. The BEA input-output tables and USDA's Ag-FEDS food tables describe exactly who buys from whom.

But the spec draws a hard line: those tables describe production requirements, not pricing behavior. Each round of cost travels onward only to the extent firms pass it through, the Λ in . With pass-through below one, the rounds shrink geometrically and the total converges .

This kills a popular error: you cannot take a BEA "total requirements" coefficient and call it a CPI multiplier (INV-03). Drag the pass-through slider and watch how much of the folk multiplier is really a behavioral assumption.

Cost rounds through the supplier network

Round 0 = the direct energy cost, indexed to 100. Each later round = suppliers passing their own cost increase onward. NY Fed survey mean pass-through: ≈60% ANCHORED. Average supplier cost linkage per round ≈0.5 ASSUMPTION.

Carries forward: ≈1.43× the direct cost after all supplier rounds
07
M08 · Firm behavior & balance sheet

Inside the firm: four buffers, then a decision

The gist

Companies soak up part of every shock with hedges, old inventory, contracts, and squeezed margins. Only what's left over becomes a price increase.

Between a cost shock and a price change sits a balance sheet. Hedges absorb the front of the shock, old inventory delays it, contracts lock the response, and only then does a pricing decision get made. The NY Fed's evidence: firms pass through ≈60% on average, but the rate rises as the unrecovered gap grows. Big shocks break the usual stickiness.

26 weeks inside one firm · input cost shock +4.1 pts

Chain
Realized input cost cR(t) Selling-price change ΔP(t) Margin absorbs the gap
Where did the cost go? week 8

The spec's accounting frame: every point of the shock must land somewhere. Drag the week, or let the simulation drive it.

Hedged away Not yet realized (timing) Absorbed in margin Passed through to prices Unwound (normalization)

Only the last slice becomes measured inflation. Margin absorption also burns working capital: if the liquidity gap opens, firms accelerate pricing or cut output

Carries forward: 47% of the shock survives into selling prices by week 8
08
M09 · Household & macro

The kitchen table

The gist

Here's what the shock costs your household per month, and how much of official inflation it explains. Your basket and the CPI's basket are not the same thing.

Weeks in, the surviving pressure reaches the household as a set of category price changes. The burden is simple arithmetic over the family's own basket : gasoline directly, food and airfare through the freight and processing chain you just walked.

The same category changes, weighted by national CPI weights instead of your basket, give the shock's direct CPI contribution . Those are different numbers, and the difference matters: a two-car exurban household lives a different inflation rate than the index.

Headline CPI, Aug 2026 OBSERVED+3.4% YoY
Gasoline index, Aug 2026 OBSERVED+27.4% YoY

Households then respond: buffers smooth the hit for a while , and what cannot be smoothed becomes less driving, less flying, less eating out . That response is the seed of Stage 9.

Your household's monthly burden · week 26

Extra spend per month+$76
Direct CPI contribution+1.03pp
Monthly household spendASSUMPTION· edit the basket shares below
CategoryYour basket %Price Δ$ / monthCPI weight

Price Δ at the simulated week (see the player). Food and airfare changes are the modeled pass-through from Stages 5–7, not observed grocery prices ASSUMPTION. CPI weights illustrative of BLS relative importance ASSUMPTION. The engine version swaps both for live BLS data.

Carries forward: −$76/mo of spending power starts feeding back
09
EQ-MAC-004/005 · EQ-FB-001

What inflation remembers, and how the loop closes

The gist

Prices can stay high even after "inflation" returns to normal. And the cure for high prices is, slowly and painfully, the high prices themselves.

The spec calls this its core teaching graphic. A one-time shock raises the price level and, for a while, the inflation rate. But once the higher level enters the year-ago comparison base, its inflation contribution falls to zero, even though prices never came back down (INV-04).

That is why "inflation is back to 2%" and "everything is still expensive" are both true sentences. And if the shock reverses, the base effect runs the other way: measured inflation goes negative while the price level merely returns to normal.

Meanwhile the loop closes underneath: households cut consumption, retail volumes fall, freight demand falls, industrial output slows, fuel demand drops, inventories rebuild, scarcity fades . The system self-corrects, on a delay measured in months. 2008 is the textbook case.

Price level vs. inflation contribution

Price level, pp above baseline YoY inflation contribution, pp
The demand feedback loop
§
The model · v0.12 architecture

Under the hood

This page runs the spec's Mode A live in your browser: transparent arithmetic on one lever, played out on the simulation clock. The production engine adds three deeper modes on the same causal chain, twelve modules, and ten invariants that keep it honest.

MODE A
Causal sensitivity

Hold the world fixed, move one input, trace the arithmetic. Teaching mode.

LIVE ON THIS PAGE
MODE B
Regime simulation

Start from live EIA state, apply an event, let feedback run endogenously.

PRODUCTION BUILD
MODE C
Historical replay

Observed vs. modeled paths for 2008, 2020, 2021–23. Calibration in the open.

PRODUCTION BUILD
MODE D
Monte Carlo

Draw correlated events and parameters; report P10/P50/P90 with tail drivers, always labeled P(Y | regime, state, distributions).

PRODUCTION BUILD

Twelve modules, one chain

Ten rules the model refuses to break

Build roadmap

MVP 1 · National fuel sensitivity. EIA national stock-flow, crude→crack→retail bridge, trucking/airline anchors, direct CPI arithmetic. Deterministic only. (This page is a hand-calibrated preview of MVP 1's teaching layer.)
MVP 2 · PADD & firm behavior. Five-region stocks and transfers, regional basis, the contract/hedge/margin/working-capital engine, historical replay.
MVP 3 · Input-output & food network. BEA direct requirements + USDA Ag-FEDS, imported inputs, detailed food pathways.
MVP 4 · Calibration & risk. Historical estimation and backtests, versioned parameters, Monte Carlo with tail-driver decomposition.
Advanced. LP/MIP refinery optimization, unit-level outages, real corridor constraints, company-specific hedge books and credit.

Source registry

IDSourceUsed forFreq.

Interpretation boundaries

Week 26
pump+95¢ household+$76/mo CPI+1.03pp
Control Room Custom scenario
WK 26Press ▶ Run scenario in the player below and watch the shock travel every node at once.

01 · The shock

02 · Barrels & tanks

03 · The pump

04 · Industry

05 · Supplier web

06 · Inside firms

07 · Kitchen table

08 · What CPI remembers

The tiles are the live instruments from the story view; scrub or play in the bar below. Esc returns to the story.