Skip to content
stokrio
All guides
Forecasting

Forecasting slow and lumpy sellers: Croston, SBA and TSB explained simply

Products that sell occasionally break ordinary forecasting methods. Here's how Croston, SBA and TSB work, when to use each, and how to stock slow movers sensibly.

Stokrio Team · · 7 min read

Every catalogue has a long tail: spare parts, unusual sizes, refills, niche colourways. They sell a few units, then nothing for weeks, then a few more. Forecast them with a moving average or ordinary exponential smoothing and you'll get a number that jumps after every sale and decays in between — always reacting to the last order, never anticipating the next one.

These products have intermittent demand, and there's a family of methods designed for them. This guide explains the three you're most likely to meet, using one small worked example.

Key takeaways

  • Intermittent demand has many zero periods. Classify it with two numbers: the average interval between sales (ADI) and the variability of sale sizes (CV²).
  • Croston's method forecasts the size of a sale and the gap between sales separately, and updates only when a sale happens.
  • Croston is biased high. SBA applies a simple correction factor.
  • TSB updates the probability of a sale every period, so it notices when a product stops selling. Croston and SBA don't.
  • For slow movers, the stocking decision matters more than the forecast. Think in terms of "how many units do I need to hold", not "how many per week".

Is this product intermittent?

The standard classification, from Syntetos and Boylan, uses two measures on a product's history (weekly buckets work well):

  • ADI — the average number of periods between sales. A product that sells every week has an ADI of 1.
  • CV² — the squared coefficient of variation of the non-zero sales sizes: their variance divided by the square of their mean.

The commonly used cut-offs are ADI = 1.32 and CV² = 0.49, which give four classes:

CV² below 0.49CV² 0.49 or above
ADI below 1.32SmoothErratic
ADI 1.32 or aboveIntermittentLumpy

Smooth and erratic products sell most weeks; ordinary methods work. Intermittent products sell occasionally in fairly consistent amounts. Lumpy products sell occasionally in unpredictable amounts — the hardest to forecast and stock.

The worked example

A replacement filter cartridge sold the following over 12 weeks:

Week123456789101112
Units003000502004

There are four weeks with sales, totalling 14 units.

ADI = 12 weeks ÷ 4 sales = 3
mean size = 14 ÷ 4 = 3.5 units

The sizes deviate from 3.5 by −0.5, +1.5, −1.5 and +0.5. Squared, that's 0.25, 2.25, 2.25 and 0.25, totalling 5, so the variance is 5 ÷ 4 = 1.25.

CV² = 1.25 ÷ 3.5² = 1.25 ÷ 12.25 = 0.10

ADI of 3 is above 1.32 and CV² of 0.10 is below 0.49, so the filter is intermittent: it sells every few weeks, in fairly predictable amounts.

The simple average demand is 14 ÷ 12 = 1.17 units per week. Keep that number in mind.

What goes wrong with ordinary smoothing

Simple exponential smoothing updates every week. After week 12's sale of 4, it jumps up; after each zero week, it decays towards zero. So the forecast you get depends almost entirely on how many weeks ago the last sale was. If you happen to run your reorder calculation the week after a sale, you over-order; three weeks later, you under-order. Nothing about demand changed — only the timing of your calculation.

Croston's method

Croston's insight was to split demand into two parts and forecast each separately:

  • z — the size of a sale when one happens
  • p — the interval between sales

Both are updated with exponential smoothing, but only in periods when a sale happens. In zero weeks, nothing changes. The forecast of demand per period is:

forecast per week = z ÷ p

Using α = 0.2, start with the first sale: z = 3 (its size) and p = 3 (it came in week 3).

WeekSaleWeeks since last salez (size)p (interval)
3333.0003.000
7543 + 0.2 × (5 − 3) = 3.4003 + 0.2 × (4 − 3) = 3.200
9223.4 + 0.2 × (2 − 3.4) = 3.1203.2 + 0.2 × (2 − 3.2) = 2.960
12433.12 + 0.2 × (4 − 3.12) = 3.2962.96 + 0.2 × (3 − 2.96) = 2.968
Croston forecast = 3.296 ÷ 2.968 = 1.11 units per week

That's close to the simple average of 1.17, and — crucially — it stays at 1.11 through the zero weeks that follow, rather than bouncing around.

SBA: correcting Croston's bias

Dividing one smoothed estimate by another introduces a systematic upward bias. Syntetos and Boylan showed that multiplying by (1 − α/2) largely corrects it:

SBA forecast = (1 − α/2) × Croston forecast
             = (1 − 0.1) × 1.11
             = 1.00 units per week

The correction is modest — 10% with α = 0.2 — but across a long tail of slow movers it adds up to real money in excess stock. Where Croston and SBA disagree, SBA is generally the safer default.

TSB: noticing when demand dies

Croston and SBA share a blind spot. Because they only update when a sale happens, a product that stops selling keeps its forecast forever. Imagine the filter's matching machine is discontinued and the filter never sells again. Twelve weeks later, Croston still forecasts 1.11 per week, and your reorder logic keeps buying.

TSB (Teunter, Syntetos and Babai) fixes this by replacing the interval with a probability of a sale in a period, and updating that probability every period — towards 1 when a sale happens, towards 0 when it doesn't. Sale size is still updated only when a sale occurs.

forecast per week = probability of a sale × expected size

Suppose TSB currently estimates a 0.33 probability of a sale each week and an expected size of 3.3 units — a forecast of about 1.09 per week. Now the filter goes 12 weeks without selling. With a probability smoothing weight of 0.1, each zero week multiplies the probability by 0.9:

probability after 12 zero weeks = 0.33 × 0.9¹² = 0.33 × 0.282 = 0.093
forecast = 0.093 × 3.3 = 0.31 units per week

The forecast has fallen to less than a third of its previous level, and it will keep falling. That's what you want for a product on its way out. The trade-off is that TSB will also drift down during an ordinary long gap, so it suits products with obsolescence risk more than steady spare parts.

Which one should you use?

MethodBest forWatch out for
CrostonHistorical referenceBiased high; never notices decline
SBAStable slow movers, steady intermittent demandNever notices decline
TSBSlow movers that may be fading, fashion tails, superseded modelsDrifts down in long natural gaps

Better still, don't choose by rule. Backtest each method on each product's history and keep the one with the lowest error, measured with a metric that copes with zeros — see our guide to forecast accuracy for why MAPE is useless here. Stokrio's demand forecasting classifies each product as smooth, erratic, intermittent or lumpy and backtests Croston, SBA and TSB alongside the other models.

The forecast is the easy part

Here's the uncomfortable truth about slow movers: a forecast of 1.00 per week doesn't tell you how many to stock. Nobody buys 1.00 units a week. They buy 0 units most weeks and 2–5 units occasionally.

What you need is the distribution of demand over the lead time. If the filter's lead time is 4 weeks, the expected demand is 4 × 1.00 = 4 units, but in any one four-week window you might see 0, 2, 5 or 9. Normal-distribution safety stock formulas assume a smooth bell curve, which doesn't fit this shape well.

A practical approach is to resample history: take many random four-week windows from the product's past, add up the demand in each, and look at the spread. If 90% of windows had 7 units or fewer, holding 7 units covers you 90% of the time. This is called bootstrapping, and it respects the lumpy shape of real demand. Stokrio's replenishment uses a bootstrap of lead-time demand for intermittent products.

Practical rules for the long tail

  1. Set a lower service level for C-class slow movers. The cost of holding stock for rare sales adds up fast across hundreds of SKUs.
  2. Check for one-off big orders. A single 20-unit order in a product that usually sells 2 at a time will distort everything. Was it a wholesale order? Treat it separately.
  3. Review products with no sales in 26 weeks individually. They may be inactive, delisted or need clearance — not a forecast.
  4. Consider make-to-order or dropship for the lumpiest items, where holding any stock is expensive relative to how often it sells.

Frequently asked questions

What is intermittent demand?
Demand with many periods of zero sales, broken by occasional sales. It is usually classified by an average interval between sales (ADI) of 1.32 periods or more. If the sale sizes are also highly variable, it is called lumpy demand.
What is the difference between Croston and SBA?
SBA is Croston's method multiplied by a correction factor of one minus half the smoothing weight. The correction removes most of the upward bias that Croston's method introduces by dividing one smoothed estimate by another.
When should I use TSB instead of Croston or SBA?
When there is a real risk that the product will stop selling, such as a superseded model or a fading colourway. TSB lowers its forecast during every period without a sale, while Croston and SBA keep their last forecast indefinitely.
How much safety stock should I hold for slow movers?
Base it on the spread of total demand over the lead time rather than a weekly forecast. Resampling historical lead-time windows and choosing the quantity that covers your target service level works better than normal-distribution formulas for lumpy demand.

See Stokrio with your own data

Create a workspace in minutes. Connect Shopify or start with the API.