TL;DR & Quick Summary
If a large share of your catalogue sells nothing most weeks, your forecasting tool is probably using the wrong method on those items. Standard exponential smoothing and most ERP defaults assume demand shows up every period. Spare parts, slow movers and long-tail SKUs don't behave like that. Forecast them the standard way and you get stock that is highest right after a sale and lowest right before the next one.
Croston's method separates how much sells from how often it sells, and forecasts each on its own
SBA is Croston with a small correction for a known upward bias, and it's the sensible default
TSB tracks the probability of demand every period, so it handles items that are dying out
Classify first: two numbers per SKU (ADI and CV²) tell you which items need these methods at all
Don't use MAPE: it breaks when actual demand is zero, which is most of the time for these items
Key Takeaway: Choosing the method is the easy part. The value comes from classifying items correctly, measuring with the right metric, and converting the forecast into a stocking decision that reflects how lumpy the demand is.
Get Started: If your slow movers are driving either dead stock or emergency orders, schedule a strategy call with Cogniq AI or see how our predictive analytics services handle mixed catalogues.
Why Intermittent Demand Breaks Standard Forecasting
Take a spare part that sold in weeks 3, 7 and 9 of a twelve-week window, and nothing in the other nine weeks. Simple exponential smoothing, the default in many planning tools, updates its forecast every week. It drifts down through each run of zeros and jumps up after every sale. So the forecast peaks right after a sale, which is exactly when the next sale is least likely, and it's at its lowest just before demand comes back.
The underlying problem is that two random things are mixed into one series:
- Occurrence: whether a sale happens in a given period at all
- Size: how many units are sold when a sale does happen
A method that treats the combined series as one noisy signal can't tell a quiet month apart from a sign that demand is ending. That difference matters for inventory. A quiet month means keep the stock. Demand that is ending means stop reordering before you are left with obsolete parts.
This is also why intermittent items dominate the error on a mixed catalogue even though each one is small. We covered the metric side of that problem in forecast accuracy metrics: MAPE, WAPE and bias. This post covers the forecasting methods.
Step One: Classify Which Items Are Intermittent
Don't apply intermittent methods across the whole catalogue. Classify each item first. The standard scheme comes from Syntetos, Boylan and Croston (2005) and uses two numbers per item:
- ADI (Average Demand Interval): the average number of periods between non-zero demands. An item that sells every period has an ADI of 1.
- CV² (squared coefficient of variation): how variable the demand sizes are when demand does occur.
The paper's cut-offs of ADI = 1.32 and CV² = 0.49 divide items into four groups:
| Category | ADI | CV² | What it looks like | Typical approach |
|---|---|---|---|---|
| Smooth | < 1.32 | < 0.49 | Sells most periods, steady sizes | Standard smoothing or regression models |
| Erratic | < 1.32 | ≥ 0.49 | Sells most periods, sizes swing widely | Standard models, wider safety stock |
| Intermittent | ≥ 1.32 | < 0.49 | Many empty periods, fairly consistent sizes | Croston-type methods (SBA, TSB) |
| Lumpy | ≥ 1.32 | ≥ 0.49 | Many empty periods, very variable sizes | Croston-type methods, distribution-based stocking |
In practice this is a few lines of SQL or pandas over your sales history. Run it at the level you actually stock, which is usually SKU by location, not SKU across the whole network. An item can be smooth in total and intermittent at every individual branch. The branch is where the reorder decision is made.
Before classifying, remove periods where the item was out of stock. Zero sales during a stockout means zero supply, not zero demand. Leaving those periods in makes items look more intermittent than they are and pushes the forecast down.
Croston's Method
J.D. Croston's 1972 paper solved the core problem by splitting the series into two:
- z: the smoothed size of non-zero demands
- p: the smoothed interval between non-zero demands
Both are updated with ordinary exponential smoothing, but only in periods when a sale happens. In empty periods nothing changes. The forecast of demand per period is:
Forecast = z / p
A Worked Example
Use a smoothing constant α = 0.2. Suppose the first recorded demand is 5 units, arriving 3 periods after the start, so we initialise z = 5 and p = 3. The forecast is 5 ÷ 3 = 1.67 units per period.
The next demand is 3 units, arriving 4 periods later:
- z = 0.2 × 3 + 0.8 × 5 = 4.6
- p = 0.2 × 4 + 0.8 × 3 = 3.2
- Forecast = 4.6 ÷ 3.2 = 1.44 units per period
The next demand is 6 units, arriving 2 periods later:
- z = 0.2 × 6 + 0.8 × 4.6 = 4.88
- p = 0.2 × 2 + 0.8 × 3.2 = 2.96
- Forecast = 4.88 ÷ 2.96 = 1.65 units per period
Two things stand out. First, the forecast is a rate: 1.65 units per period. No single week will ever show 1.65. It will show 0, or 3, or 6. That's normal, and it's why judging an intermittent forecast by looking at a chart of forecast versus actual is misleading. Second, the forecast stayed at 1.44 through every empty period between the second and third sales. Croston's method has no way to react to a long silence.
SBA: The Bias Correction
Croston's method looks unbiased but isn't. Syntetos and Boylan (2005) showed that dividing one smoothed estimate by another produces a forecast that is systematically too high. The bias grows with the smoothing constant.
Their fix, the Syntetos–Boylan Approximation (SBA), multiplies the Croston forecast by a correction factor:
SBA forecast = (1 − α/2) × z / p
With α = 0.2 the factor is 0.9. The 1.65 in the example becomes 1.48 units per period.
That looks like a small change, but bias doesn't average out over time. A forecast that runs about 10% high on every slow mover leaves about 10% excess stock across that whole segment, all the time. The correction costs nothing to implement, so SBA should replace original Croston as the default.
TSB: When Demand Can Die
Croston and SBA share a blind spot. They only update when a sale happens. If a part stops selling because the equipment it fits has been retired, the forecast stays at its last value indefinitely, and the replenishment system keeps reordering it.
Teunter, Syntetos and Babai (2011) addressed this with what is now called the TSB method. Instead of smoothing the interval between demands, TSB smooths the probability that demand occurs in a period, and it updates that probability every period:
- In a period with demand, the probability estimate moves up and the size estimate updates
- In a period without demand, the probability estimate moves down and the size estimate stays the same
- Forecast = probability × size
The practical effect is that the forecast decays during long runs of zeros. That's the behaviour you want for items at risk of obsolescence: service parts for discontinued models, seasonal or fashion SKUs near end of life, and anything whose customer base is shrinking.
Choosing Between Them
| Situation | Use | Why |
|---|---|---|
| Default for intermittent and lumpy items | SBA | Removes Croston's upward bias at no cost |
| Items that may be going obsolete | TSB | Forecast decays when demand stops arriving |
| Product end-of-life or supersession known in advance | TSB, plus a manual phase-out rule | Don't wait for the model to notice what you already know |
| Smooth or erratic items | Neither | Standard methods are better when demand arrives most periods |
| Thousands of related slow movers with rich attributes | Test a global ML model as well | Cross-series learning can beat per-item methods at scale |
If you're unsure, run SBA and TSB side by side on the same history and compare them with the metrics below. On most catalogues the answer differs by segment, not across the whole catalogue.
Measuring Accuracy Without MAPE
MAPE divides by actual demand. On intermittent items actual demand is zero most of the time, so MAPE is undefined or explodes. Use these instead:
- MASE (Mean Absolute Scaled Error): proposed by Hyndman and Koehler (2006), MASE divides your forecast's error by the error of a naive forecast on the same series. Below 1 means you beat the naive benchmark. Above 1 means you would do better by copying last period's number. It works when actuals are zero.
- Bias (mean signed error): whether the forecast runs consistently high or low. For slow movers this matters more than error size, because consistent bias turns directly into consistent excess stock or consistent stockouts.
- Cumulative forecast vs cumulative actual: plot both over the evaluation window. Intermittent forecasts should track the running total even though they never match any single period.
Most importantly, judge the forecast by the stocking decision it drives. An intermittent forecast is used to set reorder points and order quantities, so the result that matters is fill rate and inventory value on those items. A method with slightly worse MASE that gives you the same fill rate with less stock is the better method.
From Forecast to Stocking Decision
Croston, SBA and TSB produce a mean rate. For smooth demand, the mean plus a normal-distribution safety stock works reasonably well. For intermittent demand it often doesn't. The distribution of demand over a replenishment lead time is skewed and full of zeros, and a normal approximation can badly misjudge the right stock level for high service targets.
Better approaches for this segment:
- Poisson or negative binomial stocking for items whose non-zero sizes are small, usually 1 to 3 units. Choose the stock level from the distribution's cumulative probability rather than from a mean plus a multiple of standard deviation.
- Bootstrapping from history: resample actual demand over lead-time-length windows to build an empirical distribution, then read the stock level off it.
- Separate service targets by segment: a lumpy low-value item and a lumpy critical spare shouldn't share a 95% target. The cost of running out is different, so the target should be too.
We cover the formulas for the smooth segment, and how lead-time variability changes them, in safety stock calculation formulas. Field-service teams face the same problem at a smaller scale when choosing parts for each van, covered in truck stock optimization.
Where Machine Learning Fits
Intermittent demand is one area where the simple statistical methods have held up well. The picture changes at scale. In the M5 forecasting competition, built on Walmart unit sales with a large share of intermittent series, the leading entries used gradient-boosted tree models trained across many series at once. A single global model learns patterns that no one slow-moving item has enough history to show on its own: price effects, day-of-week effects, the influence of related products.
That advantage depends on having many related series and useful attributes. For a catalogue of a few hundred slow movers without price or promotion data, SBA or TSB will usually get close to the best achievable accuracy and cost far less to run. The honest sequence is:
- Classify the catalogue
- Run SBA and TSB as the baseline and measure them properly
- Only then test a global model, and only keep it if it improves the stocking outcome, not just the error metric
If your planning software already offers Croston-type methods, you may not need a custom build at all. You may only need to switch the right items onto them and fix the metrics you judge them by. Our guide to connecting inventory systems to predictive reordering covers how forecasts like these get into purchasing in practice.
A Practical Rollout
- Pull 12 to 24 months of demand history at SKU-location level, with stockout periods flagged. See how much data demand forecasting actually needs if your history is shorter.
- Classify each item with ADI and CV².
- Backtest SBA and TSB on intermittent and lumpy items, scored with MASE and bias against a naive benchmark.
- Convert the forecasts into stock levels with a distribution-based method, and compare fill rate and inventory value with your current policy.
- Deploy by segment, starting with the items where the gap between current and simulated inventory is largest.
- Reclassify quarterly. Items move between quadrants as products age.
Conclusion
Intermittent demand is a common and expensive forecasting problem, and it doesn't require exotic technology to fix. It needs the right method applied to the right items, measured with a metric that works when demand is zero, and turned into stock levels that reflect how lumpy the demand really is. Most businesses already have the data. What's usually missing is the classification step and a fair comparison against a naive benchmark.
Schedule a strategy call with Cogniq AI to have your slow-moving catalogue classified and backtested, or explore our predictive analytics services.

