Demand Forecasting Wiki

Safety Stock and Reorder Points

By MLAIA Data Science Ltd. · Published 13 July 2026

Safety stock is inventory held above expected demand to absorb variability in demand and supply. The reorder point (ROP) is the inventory level that triggers a replenishment order, sized so that stock on hand covers demand during the resupply lead time with a chosen probability. The classic formulas for both are built on normal-distribution assumptions that hold reasonably for fast-moving items — and fail, sometimes badly, for the intermittent and lumpy demand typical of spare parts.

Core definitions

Lead time (L)
The time between placing a replenishment order and its availability for use.
Cycle stock
Inventory that covers expected demand between replenishments.
Safety stock (SS)
A buffer above expected lead-time demand that absorbs forecast error, demand variability, and lead-time variability.
Reorder point (ROP)
The stock level at which a new order is triggered in a continuous-review policy: when inventory position falls to the ROP, order.
Service level
The target used to size the buffer — either the probability of no stockout per replenishment cycle (cycle service level, “Type 1”) or the fraction of demand served from stock (fill rate, “Type 2”).

The classic formulas

With average demand per period , demand standard deviation σd, average lead time L (in periods), and lead-time standard deviation σL:

ROP = d̄·L + SS    SS = z · √(L·σd² + d̄²·σL²)

When lead time is effectively constant the familiar simplification applies: SS = z·σd·√L. The factor z is the standard-normal quantile of the target cycle service level:

Standard-normal z-scores for common cycle-service-level targets.
Cycle service levelz
90%1.282
95%1.645
98%2.054
99%2.326

Cycle service level vs. fill rate

The z-score formula targets the cycle service level — the probability that demand during one replenishment cycle does not exceed ROP. Businesses more often care about the fill rate — the share of demanded units shipped from stock. The two diverge most on slow-moving items: with few demand events per cycle, a 95% cycle service level can correspond to a very different fill rate depending on how large the rare shortfalls are. Sizing buffers against the wrong target is a common source of both stockouts and excess inventory.

Why the normal-based formula fails under intermittency

Every step of the classic derivation assumes lead-time demand is approximately normal. For intermittent items that assumption collapses:

Lead-time demand distributions for slow movers

The standard remedy is to replace the normal with a distribution that matches the demand process:

With a distribution chosen, the reorder point is set directly as the quantile of lead-time demand at the target service level, rather than through a z-score.

Empirical and bootstrapping approaches

Rather than assuming any distributional form, empirical methods construct the lead-time demand distribution from the data itself. Willemain, Smart and Schwarz (2004) proposed bootstrapping for service-parts inventories: resample the historical demand pattern (preserving the alternation of zero and non-zero periods, e.g. with a two-state Markov chain), sum the sampled periods across the lead time, repeat thousands of times, and read the required reorder point off the resulting empirical distribution. The same logic applies to quantile forecasts from machine-learning models: a model that outputs the 95th percentile of lead-time demand directly yields the reorder point for a 95% cycle service level, with no normality assumption anywhere.

Projected stockout dates

A useful operational translation of any forecast is the projected stockout date: starting from current on-hand inventory, subtract cumulative expected demand (and add scheduled receipts) day by day into the future; the first day the projection falls below zero — or below the safety-stock floor — is the projected stockout. Subtracting the supplier lead time gives the latest sensible order date. Presenting inventory risk as dates rather than abstract quantities makes review-by-exception practical: planners sort by stockout date and work the top of the list.

Frequently asked questions

What is the difference between cycle service level and fill rate?

Cycle service level is the probability of not stocking out during a replenishment cycle, regardless of how large the shortage would be. Fill rate is the fraction of demanded units served directly from stock. An item can have a high cycle service level but a poor fill rate if its rare stockouts are large, so it matters which one a z-score-based formula is actually targeting.

Does the classic safety stock formula work for spare parts?

Usually not well. The formula assumes lead-time demand is approximately normal, but spare-parts demand is intermittent: zero-inflated, discrete, and skewed. Discrete distributions such as Poisson or negative binomial, or empirical methods such as bootstrapping the demand history, calibrate service levels much better for these items.

How often should reorder points be recalculated?

Whenever the inputs change materially: after each forecast refresh, when supplier lead times shift, or when the demand pattern changes classification. In practice a monthly recalculation is a common baseline, with event-driven updates for items whose lead time or demand behavior changes abruptly.

What is a projected stockout date?

It is the date on which projected on-hand inventory — current stock minus cumulative expected demand, plus scheduled receipts — first falls below zero (or below the safety-stock floor). It translates a forecast into an operational signal: order before the stockout date minus the supplier lead time.

References

See also