The coefficient of variation is the ratio of the standard deviation of demand to its mean: CV = σ / μ. It is a dimensionless measure of how volatile an item's demand is relative to its average. CV² (CV squared) is used in the SBC framework as a threshold for classifying demand patterns.
Why dimensionless matters
Standard deviation alone is misleading because it scales with the magnitude of demand. An item that sells 1000 units/day with σ = 50 is less volatile (in proportional terms) than an item that sells 5 units/day with σ = 2. CV makes them comparable: 0.05 vs 0.4. The second is 8× more volatile.
CV thresholds in the SBC framework
The Syntetos–Boylan–Croston (SBC) demand classification uses two parameters:
- ADI (Average Demand Interval): the average number of periods between non-zero demand observations
- CV²: squared coefficient of variation of non-zero demand sizes
The four regimes are:
| Pattern | ADI | CV² | Examples |
|---|---|---|---|
| Smooth | ≤ 1.32 | ≤ 0.49 | Daily-sold staples; coffee beans, milk |
| Intermittent | > 1.32 | ≤ 0.49 | Slow-but-stable; specialty bitters, niche SKUs |
| Erratic | ≤ 1.32 | > 0.49 | Daily-sold but spiky; trending items, weather-driven |
| Lumpy | > 1.32 | > 0.49 | Both rare and spiky; one-off bulk catering, B2B special orders |
Why this matters for forecasting
The right forecasting method depends on the demand regime.
- Smooth: simple exponential smoothing or a moving average works well. The future looks like the recent past.
- Intermittent: Croston's method, or the Syntetos–Boylan Approximation (SBA) — the bias-corrected version. Standard moving averages over-react.
- Erratic: same as intermittent statistically, but with thicker safety stock and rush-order detection.
- Lumpy: the hardest. Statistical methods underperform; supplement with operator intuition or external signals (events calendar, B2B order schedule).
Applying the wrong method can distort margin. A smooth-demand average applied to lumpy demand can over-order on top of the spikes and stockout in between.
How LineNow uses CV²
For every line item, every day, LineNow:
- Bins the last 30 days of sales into daily buckets.
- Computes ADI = lookback_days / days_with_sales.
- Computes CV² = variance(non-zero demand) / mean(non-zero demand)².
- Classifies the item into one of the four regimes.
- Routes to the appropriate forecast: SBA for non-smooth, exponential smoothing for smooth.
This classification can update daily. An item that drifts from smooth to erratic (e.g. it goes viral) should move to a more conservative replenishment policy instead of staying on the old average.
CV² classifies by demand pattern. ABC inventory analysis classifies by demand value — AUV = units sold × unit cost. Both dimensions together determine the right replenishment policy for each SKU: an A-item with lumpy demand needs SBA forecasting at z = 1.65; a C-item with smooth demand needs a simple moving average at z = 0.67. Neither dimension alone gets you there.
Worked example
Two items both average 10 units per day:
| Item | Daily demand pattern | Mean | Standard deviation | CV | CV² |
|---|---|---|---|---|---|
| House espresso beans | 9, 10, 10, 11, 10 | 10 | 0.7 | 0.07 | 0.00 |
| Seasonal gift bundle | 0, 0, 0, 5, 45 | 10 | 19.4 | 1.94 | 3.76 |
The mean is identical, but the buying policy should not be. The espresso bean SKU can use a stable reorder point with supplier lead time and safety stock. The gift bundle needs event context, demand classification, and a more conservative policy because the average hides the spike.
This is why a plain average can be dangerous. It compresses the story into one number and loses the difference between stable demand and volatile demand.
How operators should use CV²
CV² should not be shown as a vanity statistic. It should change the buying workflow:
- smooth items can be ordered on a steady cadence
- intermittent items need a forecast that understands zero-demand days
- erratic items need higher safety stock or exception review
- lumpy items need human context such as events, wholesale orders, or promotions
The practical output is not the CV² number itself. The practical output is the policy attached to the SKU: forecast method, safety stock level, review frequency, and whether the operator should approve the recommendation before it becomes a purchase order.
Common mistake
Do not calculate CV² on all days if your goal is SBC classification. SBC uses non-zero demand sizes for CV² and uses ADI to represent the spacing between sales. Mixing zero-demand days into CV² double-counts intermittency: the item looks more volatile because the gaps are already being measured by ADI.
That distinction matters for long-tail retail and restaurant ingredients. A specialty syrup that sells twice a week is not the same as a daily item that swings wildly. ADI and CV² separate those cases so replenishment does not overreact to the wrong signal.