Accuracy Is Not Service: A Decision-Aware Benchmark for Intermittent-Demand Forecasting
Organizations: School of Computing and Information Systems, Singapore Management University 80 Stamford Road, Singapore 178902 · ST Logistics Pte. Ltd. 5 Clementi Loop, Singapore 129816
Abstract
A contract-logistics spare-parts operator is paid on order-level service: an order counts only if every requested line is fulfilled, yet forecasters are selected based on line-level forecast accuracy. This disconnect matters when demand is intermittent and lumpy, histories are short, and lead times span months. We benchmarked 38 forecasting methods spanning classical, intermittent-demand, machine-learning, deep-learning, and pretrained foundation models. A common decision-aware protocol evaluates them on an industrial panel drawn from a live contract and two public datasets. Forecast-accuracy rank and order-service rank are negatively correlated on the industrial panel, at -0.555, across methods evaluated on 20,330 real multi-item orders. Service is more closely associated with the direction of cumulative forecast bias, including over-prediction during zero-demand periods, than with point accuracy. Examining bias in Chronos-2's instance normalization yields a training-free correction that lifts the per-material fill proxy from 77.5% to 92.0% (14.5 percentage points) at the 90% policy target and raises the complete-order fill rate from 54% to 63%. For reproducibility, we release RUF (Regenerate-Until-Fidelity), a method for generating fidelity-certified synthetic panels on which the findings reproduce. For intermittent demand, the lowest-error forecast need not deliver the highest service. Bias direction helps explain this gap, which can be reduced without retraining.
Figures & tables
| Dataset | Zero frac. | ADI | CV 2 | Interm.+Lumpy % |
|---|---|---|---|---|
| Industrial panel | 0.70 | 4.04 | 2.46 | 89.7 |
| RAF (public) | 0.90 | 8.65 | 0.63 | 100.0 |
| M5 (stratified) | 0.33 | 1.81 | 0.22 | 56.8 |
| Fidelity check | Real | Synthetic |
| Top marginal family (gamma-mix2) share | 0.445 | 0.446 |
| Winner-family mix (TVD, lower=closer) | 0.038 | |
| Zero fraction (median) | 0.750 | 0.729 |
| Dispersion index (median) | 2.06 | 2.29 |
| Mean upper-tail dependence | 0.107 | 0.116 |
| Mean lower-tail dependence | 0.029 | 0.018 |
| Industrial | RAF | |||
|---|---|---|---|---|
| Method | Rank | MASE | Rank | MASE |
| WMA | 1 | 0.803 | 7 | 2.011 |
| Chronos-Bolt-tiny | 2 | 0.890 | 4 | 1.095 |
| Chronos-Bolt-small | 3 | 0.895 | 3 | 1.057 |
| Holt | 4 | 0.922 | 10 | 2.931 |
| MA | 5 | 0.971 | 12 | 3.155 |
| Method | COFR | Inv. ( Naive) | % plat. | 80-of-80 |
|---|---|---|---|---|
| TimesFM | 0.544 | 0.37 | 2% | |
| Chronos-Bolt-small | 0.567 | 0.54 | 2% | |
| WMA | 0.558 | 0.96 | 12% | |
| Naive | 0.627 | 1.00 | 15% | |
| Moirai | 0.719 | 1.38 | 54% | |
| LightGBM | 0.771 | 1.16 | 51% |
| Strategy | MASE | MASE | Fill [email protected] |
|---|---|---|---|
| Zero-shot (baseline) | 0.831 | n/a | 0.775 |
| InstanceNorm (no training) | 0.948 | 0.920 | |
| MixFT sub-domain (K=6) | 0.832 | 0.753 | |
| Magnitude pruning (20%) | 0.834 | 0.776 | |
| Quantile selection (90th pctl) | 3.603 | 0.946 | |
| Best LoRA (SBC-balanced r8) | 0.834 | n/a |
| Method | MASE | Bias | Mean LTD | Fill proxy @0.90 |
|---|---|---|---|---|
| Zero-shot (standard norm) | 0.834 | 6.5 | 0.778 | |
| Non-zero re-centering | 0.955 | 8.9 | 0.924 | |
| Hurdle, expected | 0.926 | 5.4 | 0.791 | |
| Hurdle, size | 1.054 | 7.5 | 0.771 | |
| Hurdle, size | 2.198 | 18.2 | 0.881 |
| Threat | Check | Result | Reading |
|---|---|---|---|
| Metric artifact | MASE lag-1/3/12 | rankings stable, | stable across tested scales |
| Lucky sample | caps seeds (12 cfg) | top cluster identical, | stable across tested samples |
| Sparsity alone | RAF-matched industrial subsets | inversion persists, to | sparsity alone insufficient |
| Gaussian-policy artifact | distribution-aware quantile policy (§ IV-A ) | inversion strengthens , | holds under both forms |
| Lead-time artifact | order-level at | sign stable, strengthens with , to | stable across tested horizons |
| Per-method -tuning | cost-optimal / service-max per method | sign remains negative; cost-optimal : , ; service-max : , | attenuated under per-method tuning |