Spending the budget — both detectors at α = 1.00%
730 days of demand — markers show where each detector raised an alarm
The calibration gap — what you asked for vs. what you got
The dashed diagonal is perfect honesty: delivered = requested. The calibrated detector hugs it. The naive detector sits far above it, delivering several times the false-alarm rate you budgeted for.
What this means for your team
Source & reproducibility. Simulation: 730 days, one SKU, seed 42. Detector A (“naive”) is a static Gaussian band centred on the training mean μ = 227.0 with σ = 23.3; an alarm fires when demand leaves the ±kσ band, where k is chosen to match the requested α. Detector B (“calibrated”) uses an adaptive residual model (
timemachines Laplace PIT) whose z-scores are recalibrated online. False-alarm rates are measured over the 500 evaluation days (71.4 weeks) after a 120-day warm-up, counting only days outside the three known event windows. All figures match the accompanying R/Python analysis for the post “Your Exception Report Is Lying to You.”