A spare part can go untouched for eleven months and sell four units in the twelfth. A standard monthly series records eleven zeros and a four. Nothing is missing. The zeros are the demand process telling you that no event occurred.

This distinction matters because many familiar forecasting methods treat the series as a continuously evolving level. With intermittent demand, the important questions are separate: when will demand occur, and how large will it be when it does?

Zero is an observation

Start by distinguishing three values that are easy to collapse:

  • Zero: the item was observable and recorded no demand.
  • Missing: the system does not know what happened.
  • Censored: demand may have existed but could not be observed, often because the item was out of stock.

Replacing missing records with zero invents evidence. Treating real zeros as missing deletes evidence. Stockouts are especially dangerous: sales are not demand when the shelf is empty.

Before fitting a model, build a calendar at the decision frequency and reconcile each period with availability, transactions, returns, and inventory state. This data work is often more important than the choice between forecasting algorithms.

One series, two processes

Let yₜ be observed demand. A useful decomposition is:

occurrence:  oₜ = 1[yₜ > 0]
size:        zₜ = yₜ | yₜ > 0

expected demand per period
    = P(oₜ = 1) × E(zₜ | oₜ = 1)

Even if you never build a probabilistic model, this decomposition improves how you reason about the data. A product can change because demand events become less frequent, because order sizes shrink, or both. A single smoothed level hides the difference.

It also clarifies obsolescence. If an item stops moving, the estimate of occurrence should decay while the expected size of a future nonzero order may remain stable.

Croston and its corrections

Croston's method estimates nonzero demand size and the interval between nonzero demands separately. When a positive demand occurs, it updates both estimates using exponential smoothing. Between positive demands, the forecast stays flat.

on nonzero demand:
    ẑₜ = αyₜ + (1 - α)ẑₜ₋₁
    p̂ₜ = αqₜ + (1 - α)p̂ₜ₋₁

forecast:
    ŷₜ = ẑₜ / p̂ₜ

qₜ = periods since the previous nonzero demand

This is an elegant correction to applying ordinary exponential smoothing directly to a zero-heavy series. But the original estimator is biased. Syntetos and Boylan identified the issue and proposed an approximate correction:

SBA forecast:
    ŷₜ = (1 - α / 2) · ẑₜ / p̂ₜ

The bias analysis is developed in Syntetos and Boylan's work on intermittent demand estimates. The broader lesson is useful: a method that separates occurrence and size can still be systematically wrong in how it combines their estimates.

Croston-style methods also react slowly to obsolescence because they update only when demand occurs. The Teunter–Syntetos–Babai approach instead updates an occurrence probability every period and updates size only when demand is positive:

every period:
    p̂ₜ = βoₜ + (1 - β)p̂ₜ₋₁

on nonzero demand:
    ẑₜ = αyₜ + (1 - α)ẑₜ₋₁

forecast:
    ŷₜ = p̂ₜ · ẑₜ

A run of zeros now reduces the estimated probability of demand. That behavior is useful when items can become obsolete, but it is not universally superior. The model should match the inventory process and decision horizon.

Forecast accuracy is not the objective

Percentage errors behave badly when actual demand is zero. MAPE is undefined for a zero actual and unstable near zero. Dropping those periods evaluates only the moments when the hard part of the problem disappears.

Use several views of performance:

  • MAE or scaled absolute error across every period,
  • cumulative forecast error across the replenishment lead time,
  • bias, because persistent over-forecasting becomes inventory,
  • service level and stockout frequency under an inventory policy,
  • holding, shortage, and order costs in a backtest.

A point forecast is often only an input to a stocking decision. Two models with similar MAE can produce very different safety stock and service behavior. Evaluate the decision, not just the line on the chart.

Backtest the clock honestlyUse rolling forecast origins. Fit using only information available at each origin, forecast the actual lead-time horizon, apply the replenishment rule, and move forward. Random train/test splits leak the future into a temporal decision.

A practical workflow

  1. Reconstruct observation state. Separate zeros, missing periods, stockouts, returns, and discontinued items.
  2. Choose the decision grain. Daily data may look extremely intermittent while the replenishment process operates weekly or monthly.
  3. Establish simple baselines. Zero forecast, seasonal naïve, moving average, and last nonzero size reveal whether complexity earns its place.
  4. Fit intermittent-demand methods. Compare Croston, SBA, and a probability-updating method such as TSB.
  5. Backtest through inventory. Use the real lead time, review schedule, service target, and cost assumptions.
  6. Segment the catalog. Fast movers and lumpy spare parts should not be forced through one model or policy.

Segment-level averages can hide expensive tail behavior, so retain per-item diagnostics. A model that is acceptable on average may consistently fail the rare, high-cost parts that motivated the project.

The general lesson

Sparse data is not necessarily incomplete data. Sometimes absence is the event. The correct model begins by preserving what zero means in the generating process.

For intermittent demand, separate occurrence from size, evaluate across the actual replenishment horizon, and judge the model by the inventory decisions it supports. The forecast should respect the silence in the series instead of smoothing it away.

Further reading: Syntetos & Boylan, On the bias of intermittent demand estimates, and Babai et al., intermittent demand in the presence of obsolescence.