US PPI — scenarios before, scorecard after

We publish numbered scenarios ahead of every US PPI release, then check them against real price action. Both live on this page, unedited.

next fork at US CPI

results from scored releases

4 correct / 4 calls, across 2 scored releases

4 right · 0 wrong · 0 did not move enough to count as a direction

No percentage published yet: we need at least 20 scored calls. Below that, a single figure tells you less than the per-release table below.

Upcoming releases

  1. in 2 d
  2. in 31 d
  3. in 63 d

Dates only, no times: release times depend on seasonal clock changes and we publish them only once the weekly calendar confirms them. The numbered scenario goes out about a day before each release.

Calendar source: forexfactory.com

Core PPI, 10 Sep: a print on the real-rate lane, with the ECB blocking the leg into the euro

Release:(UTC)

Forecast
0.3%
Previous
0.2%
Actual
0.16%
vs forecast
-0.14%

prior period revised 0.20% → 0.27% · Actual figure from BLS (series WPSFD49104) · no second source to cross-check yet · figure added later — the analysis below was written without it

Before — what we said

The BLS releases Core PPI m/m at 12:30 UTC on 10 September: consensus 0.3% after 0.2%. Headline PPI lands at the same moment at 0.4% versus 0.0% prior — the gap between the two lines is essentially energy — alongside Unemployment Claims at 205K against 206K, close enough to unchanged to be a non-event. What complicates this print is the calendar, not the number: 12:30 UTC falls between the ECB decision and its press conference, so the euro's reaction will blend two sources. We deliberately leave gold out of the calls. Not because the structural bearish view has changed — it hasn't — but because across 18 releases this indicator gives gold a 1.05x day range versus a normal session, i.e. no different from an ordinary day. EURUSD at 1.32x and BTC at 1.13x are where there is something to say.

The macro picture right now

The market enters this print with Fed expectations at an extreme: the 2-year at 4.37% (z +1.98) and the 10-year real yield at 2.43% (z +1.95), both at the top of their one-year range. That changes the two-sided risk structure: a hot print has to compress a spring already near the end of its travel, while a cool one has room to release — which is why the below-consensus branch still deserves weight even though we lean slightly high. Meanwhile 10-year inflation expectations sit at just 2.37% (z +0.83) and refuse to follow crude: every commodity spike is landing in real yields rather than breakevens. This is not a defensive backdrop — VIX 15.72, HY credit spreads 2.68% (z -1.11) at the tight end — so a surprise hits a market that still has risk appetite. But the dollar is not tracking rates: DXY 98.782, down 0.82% over a month, broad USD 118.073 at z -1.5. EUR speculative positioning is still short at -2.88% of OI but has covered 5.957 points in five sessions, so the fuel for a short squeeze has thinned considerably.

How the last print went

The headline PPI series is in a cooling phase: -0.03% then -0.11% in the last two prints, after a 1.09% peak in April. The 12-period band is -0.18% … 1.09%, median 0.45%, standard deviation 0.36 — so the 0.4% consensus on the headline line demands a snapback after two negative months, and it rests almost entirely on energy: WTI up 13.63% in a month, Brent near 100, US gasoline at a record over Labor Day. But core strips out exactly that, so the clue for the core line has to come from elsewhere: the August ISM services prices index jumped to 72.6, a multi-year high — that is why we lean marginally above consensus. The clue can fail in two places: ISM is a diffusion survey measuring direction rather than level, and it typically runs hotter than realised services PPI; and Waller has just said he finally sees signs of disinflation in recent data. July 2026 CPI at 0.07% refers to an older period, so it is background only. On 13 August we held EURUSD and BTC at neutral; both were correct.

What it reaches, and how

The event runs on the real-rate lane, and that is precisely where the three assets separate. EURUSD is the only one with a straight path: its daily-return correlation with US10Y is -0.29 against a ±0.12 noise floor, i.e. measurable. The chain: Core PPI -> front-end Fed expectations -> EUR–USD rate differential -> the exchange rate. That is also why its release-day range stands well above the other two. Gold and BTC have to take a detour, and the detour is currently blocked. Gold's dominant lane is dollar strength (r -0.56), BTC's is also the dollar (r -0.45); their direct links to US10Y are -0.21 and -0.11 respectively, both under the noise floor — meaning we cannot measure it, not that it is absent. So the print reaches them only via Core PPI -> yields -> USD -> gold/BTC, and the yields-to-USD leg is the broken one: the front end sits at the top of its one-year range while the dollar has slid for a month. Hence BTC stays neutral rather than following the yield footprint.

Scenarios when the number lands

Three branches, only ONE happens. Each carries its own numeric threshold and an expected direction per asset.

  1. Price moved most like this branch 3 of 3 assets agreed

    Numbered threshold

    Core PPI m/m ≥ 0.4% (and/or headline PPI ≥ 0.5%)

    If this branch plays out:▼gold▼BTC▼EUR28%likelihood

    A core print above consensus moves the front end first and only then reaches the exchange rate; because the ECB press conference overlaps, the euro portion of the reaction will be mixed with policy tone. Gold and BTC only receive this impulse if the yields-to-USD leg reconnects, and the quickest check is whether DXY moves with the front end over the first two H4 candles.

  2. Numbered threshold

    Core PPI m/m prints 0.2% or 0.3%

    If this branch plays out:▬gold▬BTC▬EUR52%likelihood

    An in-line print adds nothing to a curve already fully priced, so the reaction tends to fade within one or two H4 candles and pricing power over the euro reverts to the ECB. This is also the branch that EURUSD's current compression — an H4 ATR14 of just 0.0015 — is already voting for.

  3. Numbered threshold

    Core PPI m/m ≤ 0.1%

    If this branch plays out:▲gold▲BTC▲EUR20%likelihood

    A clear core miss is the branch with the most room to travel, because the front end sits at the top of its one-year range, so the release is wider than any further compression. It is also the only one of the three that could overturn the structural bearish view on gold, but only if the dollar agrees to track yields again — otherwise gold stays stuck in the dollar lane it has been in for weeks.

Where we commit — and what would prove us wrong

Unlike the branches above, these carry no “if”. They are the lines graded against real prices below, and they are never edited after the print.

  • EUR/USDSIDEWAYSConviction 6/10

    Invalidated if: Wrong if within the two H4 candles after 12:30 UTC, EURUSD closes below 1.1619 (7 touches) or above 1.1646 (5 touches).

  • BitcoinSIDEWAYSConviction 5/10

    Invalidated if: Wrong if within the two H4 candles after the release, BTC closes below 78,074 (4 touches) or above 79,399 (10 touches).

The thing to watch is not the core number itself but its distance from the headline line: the wider the gap, the more purely energy-driven the price impulse, and a purely energy-driven impulse keeps landing in real yields rather than breakevens — exactly the mechanism that has been setting gold's price for weeks.

After — were we right

We could not verify the Core PPI m/m print with the issuing agency for this cycle, so we quote no number and do not back it out of price action. What is sourced: cnbc_econ reported that fuel costs pushed US PPI higher and that Fed hike expectations jumped; posts from x_influencer noted the 30-year yield at 5.35%, the highest since June 2007, the 10-year above 4.90%, silver down nearly 5% to 63.94 USD/oz, and an ECB deposit-rate hike of 25bp to 2.5%; the ECB warned inflation will stay above 2% for a prolonged period. Prices, measured at the second H4 candle after 12:30 UTC: EURUSD -0.005% from 1.1622 (spanning -0.262% and +0.078% inside the window), BTC -0.967% from 77,796.93 (trough -1.441%), gold -0.17% from 4,364.15 (-0.555% at M15, back to flat at H1, trough -0.922%). All three closed below the base: price tracked the hot branch most closely, with 3 of 3 assets agreeing.

Both calls scored correct: EURUSD neutral (confidence 6) closed -0.005%, BTC neutral (confidence 5) closed -0.967%. But the uncomfortable part has to be said plainly: both invalidation levels we published ourselves were broken. We wrote 'wrong if EURUSD closes below 1.1619' and 'wrong if BTC closes below 78,074' — both happened within the two H4 candles. EURUSD broke and recovered; BTC broke and stayed there. So we were right on direction for a reason other than the one we gave: we argued the yields-to-USD leg was severed and BTC would not receive the impulse, yet BTC took the rate hit directly. We also gave the hot branch only 28% against 52% for in-line. What held: leaving gold out of the calls — it round-tripped and closed -0.17%.

What price did around the release
  • EUR/USD-0.01%

    1.1622 → 1.1621

  • Bitcoin-0.97%

    77,797 → 77,045

The solid line is real price (15-minute bars). The vertical rule is when the news landed. The coloured dashed line is what we said BEFOREHAND: how far price would go, in which direction, by the grading mark — the gap between the two lines is our error. For a neutral call the promise is the shaded box: price had to STAY inside it. Each panel has its own scale, so read the % beside each asset name rather than comparing panel heights.

  • EUR/USDSIDEWAYScorrect-0.01%
  • BitcoinSIDEWAYScorrect-0.97%

Each row: the call we published before the event → the REAL price change measured 4 hours after the moment that moves price.

Published invalidation levels: EUR/USD — broken · Bitcoin — broken

Ahead: The forward frame is unchanged: a supply-driven rate shock, not a risk-off — HY at 2.67%, VIX 17.19. Gold stays bearish (conviction 3) as long as real 10-year yields are pinned at 2.43%; BTC bearish (4) with 10s at 4.92%, 30s at 5.35% and a live 16 September Fed hike; EURUSD neutral (6), both central banks hawkish at once, drifting inside 1.1609-1.1656. The fix for the next note is the invalidation wording: touch-count levels drawn inside a compressed range do not survive a session like this one.

July core PPI: the cross-check on CPI, and the energy trap

Release:(UTC)

Forecast
0.3%
Previous
0.2%
Actual
0.2%
vs forecast
-0.10%

prior period was revised · Actual figure from Forex Factory (series calendar/aug13.2026) · no second source to cross-check yet

Before — what we said

Core PPI m/m lands at 12:30 UTC on 13 August, consensus 0.3% against 0.2% prior; the same slot carries headline PPI (forecast 0.2%, prior -0.3%) and unemployment claims (forecast 202K, prior 199K). This print arrives exactly one day after CPI, so its job is to confirm or reject the theme CPI just built rather than open a new one — which is why the in-line branch stays the heaviest without being overwhelming. We deliberately leave gold out of the calls: across 17 releases, gold's event-day range is 1.80% versus 1.76% on ordinary days, a ratio of 1.02 — release day is not different from any other day; and the lane currently driving gold is dollar strength (r=-0.54 with DXY), not the real-yield lane this indicator runs on. The standing bearish gold view is unchanged, but it rests on real yields and crowded spec longs, not on tomorrow's number. EURUSD (1.29x) and BTC (1.15x) are where this release actually travels.

The macro picture right now

The rates side sits at an extreme, the currency side does not — and that gap decides how far a surprise can travel. Ten-year real yields at 2.43% (z +2.46) and two-year yields at 4.25% (z +1.92) mean a great deal of hawkish Fed is already paid for: a hot core lands on the edge that is already stretched, while a soft core has more room to unwind than a hot one has room to add. Ten-year inflation expectations at just 2.27% (z -0.74) confirm it — the market prices disinflation in the expectations leg, so this surprise drains into real yields, not breakevens. MOVE at 77.9 jumped 7.0 points in a single session: the bond market woke itself up before the print, so this is not a quiet release by default. Against that, DXY has held below 100 for a full month and broad USD sits at z -0.76 — the dollar has refused to follow rates, and that dislocation is the shock absorber. The risk side carries a thin cushion: VIX 15.28 is down 7.39% on the week and HY spreads hold 2.70% (z -1.09), so almost no premium is pre-installed. BTC implied vol (DVOL 36.07, z -1.17) and funding at 1.0 bp/day show no one-sided leverage, while EUR spec positioning at -7.26% OI (z -1.64) makes a soft print carry more spring than a hot print of equal size.

How the last print went

Headline PPI rose four periods running from February to May (0.48% → 0.78% → 1.05% → 0.62%) and then snapped to -0.28% in June — a single outlier after a hot stretch, the kind that usually gets handed back. The 0.2% headline consensus is a bet on exactly that give-back, and notably it still sits below the 12-period median of 0.58%, within a clean range of -0.28%…1.05% and a standard deviation of 0.38: on the indicator's own behaviour, the miss risk tilts up rather than down. One clue that is easy to misuse: WTI's 11.47% weekly gain belongs to this week, outside the July reference month, so it speaks to the August print rather than tomorrow's — and even in time it would touch headline, not core. China's PPI at +3.5% y/y signals input-cost pressure, but that is another economy's pipeline, and the weakest link is assuming it passes straight into US producer prices. June CPI at -0.42% is an older reference period, background only. No prior instance of this event has been scored in our book, so there is no self-calibration yet — hence the moderate confidence.

What it reaches, and how

EURUSD is the only asset with a straight path: the indicator runs on the real-yield lane, and EURUSD ties to us10y at r=-0.40 ±0.11, above the noise floor. The chain is concrete: core beats → two-year and real yields tick up → EURUSD comes under pressure. But the lane currently dominating EURUSD is haven/fear (vix r=-0.47, level with nasdaq at +0.41), so the rate impulse has to compete with the risk-appetite channel: if a hot print also drags equities, the two reinforce each other; if equities shrug, the impulse dies quickly in a market whose H4 ATR14 is only 0.0014. BTC has no straight path — us10y r=-0.20 ±0.12 is below the noise floor, meaning we have measured nothing, not that nothing exists. The only route is indirect: print → real yields → dollar → BTC (dxy r=-0.42, though level with vix at -0.41, so don't crown the dollar). Two links means two points of leakage, which is why the event-day range is 1.15x and no more. For gold the rate lane is measurable (r=-0.32) but clearly weaker than the dollar lane, and its correlations run against the textbook (nasdaq +0.40, vix -0.45): gold currently trades as a risk asset, so a hot print does not automatically deliver a clean move lower. Claims on the same clock are genuine noise: above 215K they pull two-year yields the other way and blur the PPI impulse.

Scenarios when the number lands

Three branches, only ONE happens. Each carries its own numeric threshold and an expected direction per asset.

  1. Price moved most like this branch 3 of 3 assets agreed

    Numbered threshold

    Core PPI m/m ≥ 0.4% (consensus 0.3%), with claims no higher than 215K

    If this branch plays out:▼gold▼BTC▼EUR30%likelihood

    A hot core is the only branch that flips the current neutral stance: it pushes further into real yields that are already at an extreme, validates the hawkish run of comments from Warsh, Kashkari and Hammack, and opens the way for EURUSD to test the 1.1528 shelf and BTC to revisit 63,261 — roughly one H4 ATR each and not much beyond, because the dollar has spent a month refusing to follow rates.

  2. Numbered threshold

    Core PPI m/m between 0.2% and 0.3%

    If this branch plays out:▬gold▬BTC▬EUR48%likelihood

    An in-line print turns the release into a cross-check on the previous day's CPI: MOVE gives back the spike it just posted, EURUSD stays between its narrow bounds and BTC stays inside its box, with realised movement below even the 1.29x that history records for release days.

  3. Numbered threshold

    Core PPI m/m ≤ 0.1% and headline PPI m/m ≤ 0.0%

    If this branch plays out:▲gold▲BTC▲EUR22%likelihood

    A soft print on both core and headline carries asymmetric spring: the hike premium embedded in the two-year unwinds, and because EUR shorts are one-sided at an extreme, a move toward 1.1558 has more room than an equal-sized move the other way; BTC benefits only second-hand through the dollar channel, so it lags, with 63,978 the nearest marker.

Where we commit — and what would prove us wrong

Unlike the branches above, these carry no “if”. They are the lines graded against real prices below, and they are never edited after the print.

  • EUR/USDSIDEWAYSConviction 6/10

    Invalidated if: Wrong if within 4 hours of the release EURUSD closes an H1 candle below 1.1528 (6 touches) or above 1.1558 (3 touches) and holds there.

  • BitcoinSIDEWAYSConviction 5/10

    Invalidated if: Wrong if within 4 hours of the release BTC leaves the 63,261 (6 touches) – 63,978 (4 touches) box and closes an H1 candle outside it.

The thing worth watching is not which line beats consensus but the gap between core and headline: a headline driven by goods and energy barely moves real yields, while a core miss goes straight into the two-year — and that is the part EURUSD and BTC actually feel.

After — were we right

Headline PPI m/m printed 0.2% against a 0.3% forecast — a -0.10pp miss; the prior reading was revised, though the revised figure is not yet in our verified series (source: Forex Factory). The core figure and claims have not landed in that series, so we quote neither. What stands out is that price ran against the sign of the number: gold ticked up +0.25% in the first 15 minutes, gave it all back and closed the 4-hour window at -0.57%; BTC spiked as far as +0.66% before reversing to -0.92%, with a deepest dip of -1.23%; EURUSD barely moved at -0.03%. CNBC noted the PPI rise came mostly from portfolio management fees rather than underlying price pressure, while the lane actually moving price looks like rates and fiscal: a 10-year auction at very elevated yields and Fed Hammack calling for a hike now.

Both neutral calls scored correct, 2 of 2: EURUSD ended the window at -0.03% and BTC, despite falling -0.92%, stayed within the scoring band. But we owe a straight admission: the EURUSD invalidation we published — wrong if an H1 candle closes below 1.1528 — DID break inside the window, even though the downside excursion was only -0.06%; the call scored correct because price returned, not because our line held. On scenarios, price tracked the hot branch most closely (3 of 3 assets agreeing) while the headline number actually missed to the downside — the market responded to the rates and fiscal lane, not the print itself, consistent with our transmission warning that the PPI impulse had to compete with other channels and could be swallowed.

What price did around the release
  • EUR/USD-0.03%

    1.1531 → 1.1529

  • Bitcoin-0.92%

    63,582 → 62,996

The solid line is real price (15-minute bars). The vertical rule is when the news landed. The coloured dashed line is what we said BEFOREHAND: how far price would go, in which direction, by the grading mark — the gap between the two lines is our error. For a neutral call the promise is the shaded box: price had to STAY inside it. Each panel has its own scale, so read the % beside each asset name rather than comparing panel heights.

  • EUR/USDSIDEWAYScorrect-0.03%
  • BitcoinSIDEWAYScorrect-0.92%

Each row: the call we published before the event → the REAL price change measured 4 hours after the moment that moves price.

Published invalidation levels: EUR/USD — broken

Ahead: This print does not flip the running view: the operating regime remains fiscal — a record deficit, a 10-year auction at high yields — rather than a Fed repricing. The spot to watch is gold: the bullish thesis rests on high real yields failing to lift the dollar, and it just absorbed a session where gold fell alongside rates; if that reaction repeats, the debasement lane is being crowded out by the yield lane. BTC and EURUSD stay neutral: BTC remains mid-range, and EUR stays pinned between one-sided shorts and a dollar below 100.

Does this release actually move price

Intraday high–low range on release days versus ordinary days — measured on our own price data.

  • Gold (XAU/USD)1.79%1.83%0.98×19 releases
  • Bitcoin3.04%2.71%1.12×19 releases
  • EUR/USD0.39%0.40%0.99×11 releases

Median of (high − low) divided by the open, on daily bars. This measures VOLATILITY: it tells you whether the release is worth watching for that asset, not which way price will go.

Before every Fed · ECB · CPI print, the bot sends you scenarios with numeric thresholds — before the number lands. Then we score ourselves against real price.

Get free analysis Free, no card required. The bot messages you directly — not a group chat.