The problem

Not all SKUs deserve the same forecasting treatment. A slow-moving spare part and a high-volume production item behave completely differently, and applying a single forecasting method to both guarantees poor accuracy somewhere.

The classic response is ABC segmentation, but ABC only ranks by value — it says nothing about how often demand occurs or how variable demand sizes are. Two SKUs with identical annual value can have completely different demand patterns and need completely different forecasting and stocking policies.

Approach

This workbook applies the Syntetos–Boylan classification (ADI × CV²), the standard academic framework for classifying demand into four patterns:

Class ADI CV² What it means
Smooth < 1.32 < 0.49 Frequent, relatively stable demand
Intermittent ≥ 1.32 < 0.49 Infrequent but consistent demand sizes
Erratic < 1.32 ≥ 0.49 Frequent demand, highly variable sizes
Lumpy ≥ 1.32 ≥ 0.49 Infrequent, highly variable sizes
  • ADI (Average Demand Interval) = total populated periods ÷ non-zero demand periods — how frequently demand occurs
  • CV² (squared coefficient of variation) = sample variance of positive demand ÷ mean positive demand² — how variable demand sizes are

The workbook has two sheets:

  1. Settings — editable ADI (1.32) and CV² (0.49) thresholds, classification reference table, and metric definitions
  2. ADI_CV2_Analysis — up to 500 SKU rows × 52 periods of demand; computed columns for ADI, CV², demand class, and forecasting guidance update automatically as data is entered

Per-SKU forecasting guidance is generated automatically (e.g. intermittent items lean toward Croston’s method rather than plain exponential smoothing).

Download

📥 Syntetos_Boylan_Demand_Classification_Template.xlsx

Using it

  • Enter demand in Period 1–52 columns, using consistent weekly or monthly buckets for all SKUs
  • Positive value = demand event; zero = no demand; blanks are ignored
  • Negative values (returns/corrections) are excluded from the non-zero event count — clean or model returns separately
  • For a SKU with only one non-zero observation, CV² is set to 0 because sample variance can’t be estimated

Discussion

The classification output is a decision input, not a decision: smooth SKUs suit standard exponential smoothing, intermittent SKUs suit Croston/SBA methods, and lumpy items often justify higher safety stock relative to forecast error. Once classified, each group can be reviewed with its own forecast method and stocking policy rather than one-size-fits-all.