Demand pattern
This implementation uses population variance and the traditional boundaries ADI 1.32 and CV² 0.49: smooth is below both, intermittent has high ADI only, erratic has high CV² only, and lumpy is high on both. At least two nonzero sizes are required.
Croston and SBA
At each nonzero demand, Croston exponentially smooths observed size z and inter-demand interval p. The level forecast is:
ReliabilityBench initializes size at the first nonzero value and interval at the number of periods from the series start to that observation. The level remains constant between nonzero events. It is not a probability distribution or prediction interval.
TSB
TSB updates occurrence probability q every period and size z only on a nonzero event:
I is 1 when demand occurs and 0 otherwise. The declining probability supports an obsolescence-risk review; it is not an obsolescence declaration.
Rolling-origin evaluation
An expanding-origin test trains on periods 1…t and predicts t+1, then reveals the actual and repeats. Positive bias means over-forecasting on average. Model ranking from one series is not universal evidence.
Forecast value added
Positive FVA means the final judgmental forecast reduced MAE. Evaluate changed periods separately so unchanged periods do not dilute the result. Relative FVA is undefined when baseline MAE is zero.
Stockout censoring
During a stockout, recorded sales are a lower bound on true demand. No universal arithmetic correction is defensible from sales and a flag alone. Preserve flagged periods and recover lost-request evidence.
Data boundary
Use equally spaced periods, a stable part and unit of measure, and explicit treatment of planned demand, supersessions, returns, cancellations, installed-base changes, and stockouts. Keep forecast generation separate from reorder, safety-stock, service, and critical-spare decisions.