Live demo

A weekly demand forecast, and the first honest question about it.

12 SKUs, two years of weekly history. The first year calibrates, the second is held out. The forecaster ships a 90% interval derived from its own Gaussian error model. Counting how often demand actually landed inside that interval takes one line of code, and it is the line almost nobody runs.

Interval the model ships
90%
nominal, from its own error assumption
What it actually covers
58.5%
counted on 624 held-out SKU-weeks
Same forecaster, conformal interval
90.7%
point prediction untouched

The model is not broken. Its point forecast is fine. What is wrong is the assumption behind the band: it treats error as Gaussian with variance proportional to volume, and real demand error is skewed and grows faster than that. Split conformal replaces that assumption with the residuals you already have. Scaling residuals by the sd the model itself reports, before taking the quantile, gets 91.3%, and that version widens where volume is high rather than everywhere equally.

Measured, not assumed

It is wrong at every level, and wrong by more the further out you go.

The 99% interval is the one planners lean on for the cases that hurt, and it is the one furthest from its promise. That is the signature of a parametric tail assumption meeting a distribution with real skew in it.

Nominal levelModel interval coversConformal coversConformal, scaledShortfallMean half-width
80.0%47.3%79.8%79.5%32.7 pts missing22 u → 46 u
90.0%58.5%90.7%91.3%31.5 pts missing28 u → 70 u
95.0%65.5%96.2%95.8%29.5 pts missing33 u → 88 u
99.0%76.9%99.2%99.5%22.1 pts missing44 u → 184 u
25%50%75%100%nominal 80%nominal 90%nominal 95%nominal 99%model intervalconformalwhat was promised
What the guarantee is and is not

Conformal gives marginal coverage: over all SKU-weeks pooled, at least 1 minus alpha. It does not promise the same coverage inside every SKU. A constant width over-covers the small SKUs and under-covers the largest one, which is why the scaled variant exists. Neither is conditional coverage, and no method gives you that for free. Being explicit about which guarantee you bought is most of the value here.

One SKU, held out

The weeks the band was supposed to contain.

Every dot is a week of real demand against the interval that was published before it happened. Red dots are the weeks the planner was told would not occur.

model 46.2%conformal 82.7%
62899213552024-12-302025-12-22

The conformal band is not a different forecast. It is the same line with an honest width around it, and the width came from counting residuals rather than from assuming a shape. Switch to a low-volume SKU and the two bands converge, which is exactly where the model assumption was closest to true.

What it costs

Stock to the 95% upper bound and count the weeks you ran out.

A planner sizing safety stock takes the top of the interval and holds to it. A two-sided 95% band should be breached on the high side well under 5% of weeks. Here is what each band actually delivered across 624 held-out SKU-weeks.

The model intervalwhat you ship today
Weeks demand ran past the bound
104 of 624
16.7%
Cover carried above forecast
20,750 u
cheap, and wrong
Conformal, constant widthholds
Weeks demand ran past the bound
20 of 624
3.2%
Cover carried above forecast
72,384 u
3.49× the model band
Conformal, scaledholds, cheaper
Weeks demand ran past the bound
24 of 624
3.8%
Cover carried above forecast
55,140 u
2.66× the model band
Read the width honestly

Conformal did not make the forecast better and it did not save anyone money on inventory. It carries 2.7 times the cover, because that is the width a 95% service level on this demand actually requires. The model interval was cheaper only in the sense that a smaller number written on a plan is cheaper than the stock it fails to buy: 16.7% of weeks short instead of 3.8%. The value here is not a narrower band. It is that the number on the plan and the outcome in the warehouse finally agree, so the service level becomes something you choose rather than something you discover.