Forecasting Intermittent Demand for Spare Parts
Intermittent demand forecasting for spare parts: why MAPE lies, when to use Croston vs SBA vs bootstrapping, and how to set service-level stock by SKU.
Forecast intermittent spare-part demand by modeling two things separately: how often demand happens and how big it is when it does. Use Croston's method or its bias-corrected cousin SBA for steady-but-rare parts, and TSB for parts at risk of going obsolete. Then size stock off the demand-over-lead-time distribution and a service level set by part criticality, not by a blanket policy.
That is the whole discipline in three sentences. The rest of this article is how to run it on a real catalog without lying to yourself.
I ran planning at a $250M furniture manufacturer, and the service-parts catalog was where our spreadsheet forecasts quietly bled the most cash. Thousands of slow SKUs, each one rounding to a forecast of zero. Each one occasionally costing us an expedite, a write-down, or a lost machine-down sale.
Why your normal forecast fails on spare parts
A spare part that sells four times a year — 11 units one month, zero for the next seven — will not fit a moving average or exponential smoothing. Force it to, and you either drown the warehouse in dead stock or run dry the one week a customer's line goes down.
Fast-moving SKUs have a demand signal you can smooth. Spare parts have noise with the occasional spike. Spare parts can tie up a large share of total inventory value despite tiny turnover, which is why getting this wrong is expensive — the academic reviews of spare-parts practice keep finding the same gap between what works and what companies actually do (Bacchetti & Saccani, 2012).
The standard error metrics make this worse, not better:
- MAPE is undefined or useless. Mean absolute percentage error divides by actual demand. When actual is zero — which it is most periods for an intermittent part — you divide by zero or skip the period. A 0% MAPE on a stocked-out part is not accuracy. It's a blind spot. (More on better metrics in how to calculate forecast accuracy.)
- Moving averages collapse toward zero. Average 11 units across 12 mostly-empty months and you forecast 0.9 a month. Order to that and you stock out the month the 11 lands.
- "Last year plus 5%" is gambling. With one or two demand events a year, last year is a sample size of one. You're extrapolating from noise.
The fix is structural. Forecast the two things that drive a slow part separately: the frequency of demand and its size.
The methods that actually work
Intermittent demand has a known toolkit. Croston's method (1972) is the backbone, and the variants exist because Croston has a documented bias.
Croston's method
Croston splits the series into two streams and smooths each independently: the size of nonzero demand, and the interval between demand events. The forecast is demand-size divided by interval (Croston, 1972).
So a part that sells 8 units every 4 months forecasts at 2 units a month — but the method knows the demand is lumpy, not smooth. That distinction is the whole game for safety stock. It's also why plain exponential smoothing, the workhorse method documented in the NIST/SEMATECH Engineering Statistics Handbook (2012), fails here: it has no concept of the gap between events.
Syntetos-Boylan Approximation (SBA)
Croston is biased high. It systematically over-forecasts intermittent series. Syntetos and Boylan proved it and published a correction: multiply the Croston estimate by roughly (1 − α/2), where α is the smoothing constant (Syntetos & Boylan, 2005).
For a catalog of thousands of slow parts, that bias correction alone takes real dollars off the shelf. SBA is the sensible default for genuinely intermittent items.
TSB (Teunter-Syntetos-Babai)
Croston and SBA share a flaw: they only update when demand occurs. If a part dies — last sale 18 months ago — Croston keeps forecasting the old rate forever.
TSB updates the probability of demand every period, so it decays a dying part toward zero (Teunter, Syntetos & Babai, 2011). If you carry obsolescence risk — and a parts catalog always does — TSB earns its keep. It connects directly to the work of clearing dead stock; see how to reduce excess and obsolete inventory.
Bootstrapping / empirical distribution
For the highest-value or most erratic parts, skip the point forecast entirely. Resample the actual demand history to build the full distribution of demand-over-lead-time, then read your reorder point straight off the percentile you want.
On nine large industrial datasets, a bootstrap approach beat both exponential smoothing and Croston at forecasting the lead-time demand distribution (Willemain, Smart & Schwarz, 2004). This is what drives a real service-level decision instead of a guess.
Classify before you forecast: the ADI / CV² grid
Don't apply one method to the whole catalog. Segment first using two numbers per SKU.
- ADI — average demand interval (average number of periods between nonzero demand).
- CV² — squared coefficient of variation of the nonzero demand sizes.
The Syntetos-Boylan-Croston classification splits the catalog into four boxes at cutoffs of ADI = 1.32 and CV² = 0.49 (Syntetos, Boylan & Croston, 2005):
| Category | ADI | CV² | Pattern | Method |
|---|---|---|---|---|
| Smooth | < 1.32 | < 0.49 | Regular, low variation | Standard exponential smoothing |
| Intermittent | ≥ 1.32 | < 0.49 | Infrequent, steady size | Croston / SBA |
| Erratic | < 1.32 | ≥ 0.49 | Frequent, lumpy size | SBA |
| Lumpy | ≥ 1.32 | ≥ 0.49 | Infrequent and lumpy | TSB / bootstrapping |
Lumpy is the hard box. Infrequent and erratic, and usually where the expensive parts live. Those are the ones you model individually, not in a batch. This kind of pattern-based segmentation pairs naturally with ABC-XYZ inventory analysis, which layers value on top of variability.
Measure accuracy with the right metric
Throw out MAPE for these parts. Use error metrics that survive zeros.
- MASE (mean absolute scaled error) scales your error against a naive benchmark and stays defined even when actuals are zero. Below 1 means you beat naive; above 1 means stop (Hyndman & Koehler, 2006).
- RMSSE — the squared cousin, which punishes the big misses (the stockout on the spike) harder.
- Fill rate and ready-rate by SKU — the operational truth. Did the part sit on the shelf the day the line went down?
Hyndman has argued specifically that, for intermittent series, you should judge methods on the inventory outcome rather than on point-forecast error, because most accuracy metrics degenerate when demand is full of zeros (Hyndman, 2006). In plain terms: track the cost of error, not the percentage.
A 60% error on a $4 fastener is noise. A 60% error on a $9,000 controller that idles a customer's production line is a phone call you don't want to take.
Translate the forecast into stock
The forecast is an input. The decision is the reorder point and order quantity, and for spare parts that decision is dominated by lead time and service level, not by the mean.
- Build the demand-over-lead-time distribution. Combine demand variability with lead-time variability. A 14-week lead-time part needs to cover 14 weeks of possible demand, including the spike.
- Set service level by criticality, not blanket policy. A 95% blanket service level across a 6,000-SKU catalog is how you end up with millions in dead stock. Tier it: machine-down critical parts at 98-99%, run-of-the-mill at 90%, cosmetic at 80% or stock-to-order. The distinction between those targets matters — see service level vs fill rate.
- Reorder point = demand over lead time + safety stock, where safety stock is driven by the percentile you chose and the actual variability, not a flat "two months of cover" rule. The mechanics are in how to calculate safety stock.
- Re-run obsolescence monthly. TSB or a simple last-demand age filter flags parts that have gone dark, so you write them down on purpose instead of discovering them in a year-end count.
The fastest payoff
The operator move that pays off fastest costs you no modeling at all: stop holding safety stock on the slow tail at the same service level as the movers.
On our parts catalog, retiering service levels by criticality freed seven figures of cash before we touched the forecasting math. Do that first. Then make the forecasts better.
A worked example
Take part 4471-C, a drive controller. Lead time is 12 weeks, variable by a week or two. Over the last three years it sold in 9 of 36 months: quantities of 1, 1, 2, 1, 3, 1, 2, 1, 1.
ADI is 36/9 = 4.0, well above 1.32. The nonzero sizes have a CV² above 0.49 because of that lone 3. That lands it in the lumpy box, so TSB or bootstrapping, not a moving average.
| Step | Calculation | Result |
|---|---|---|
| Average demand size | 13 units / 9 events | 1.44 units/event |
| Demand probability | 9 / 36 | 0.25 per month |
| SBA point rate | 1.44 × 0.25 × (1 − α/2), α=0.1 | ~0.34 units/month |
| Lead-time mean demand | 0.34 × 3 months | ~1.0 unit |
| 99% reorder point (bootstrap) | read off resampled lead-time distribution | 4 units |
A naive moving average would have set the reorder point near 1. The bootstrap says hold 4 to cover the spike at a 99% service level. The whole value of the method lives in that gap. (For the broader picture on slow-mover stock, see AI inventory optimization for mid-market manufacturers.)
What good looks like
A mid-market manufacturer running real intermittent demand forecasting should expect:
- Per-SKU method assignment driven by the ADI/CV² grid, not one model for everything.
- SBA or TSB on the genuinely intermittent items, with the Croston bias corrected.
- Service levels tiered by part criticality, reorder points set off the demand-over-lead-time distribution.
- A dead-stock report that surfaces obsolescence every month instead of every audit.
Get that running and the parts catalog stops being the place cash goes to die.
Frequently asked questions
What is intermittent demand?
Intermittent demand is demand that appears sporadically, with many periods of zero demand between sales. It's the normal pattern for spare and service parts, where a SKU might sell a handful of times a year and nothing in between. Because most periods are zero, standard smoothing and percentage-error methods break down on it.
Why doesn't exponential smoothing work for spare parts?
Plain exponential smoothing averages demand across all periods, so a part that sells 11 units once a year gets forecast at roughly one unit a month. That number is wrong every single month — too high in the 11 empty months and far too low the month the spike lands. It has no concept of the interval between demand events, which is exactly what spare-part planning needs.
What is the difference between Croston's method, SBA, and TSB?
Croston's method forecasts demand size and the interval between demands separately, then divides. SBA (Syntetos-Boylan Approximation) corrects a known upward bias in Croston by scaling the estimate down by about (1 − α/2). TSB (Teunter-Syntetos-Babai) updates the probability of demand every period instead of only when demand occurs, so it decays parts that have gone obsolete toward zero.
How do I choose a forecasting method for each part?
Compute two numbers per SKU: the average demand interval (ADI) and the squared coefficient of variation of nonzero demand sizes (CV²). Using cutoffs of ADI = 1.32 and CV² = 0.49, classify each part as smooth, intermittent, erratic, or lumpy. Use exponential smoothing for smooth, Croston or SBA for intermittent and erratic, and TSB or bootstrapping for lumpy.
Which accuracy metric should I use for intermittent demand?
Avoid MAPE, which is undefined when actual demand is zero. Use MASE (mean absolute scaled error), which scales error against a naive benchmark and stays defined through zeros, and track fill rate or ready-rate by SKU as the operational truth. Above all, weight the cost of the error by part value rather than chasing a flat percentage.
Want the real number on your own parts catalog? Send me read-only access to your spare-parts SKU history (or a representative export) and I'll run a free planning-maturity and stranded-inventory teardown — your actual fill rates, where the dead stock is hiding, and what's recoverable by SKU. You keep the analysis either way. Book a free teardown and let's put a dollar figure on it.
Let's see what's worth building first.
A 15-minute call: tell me where your AI or planning is stuck, and I'll tell you the one thing worth building first — and whether it's worth doing at all.