Safety Stock Formula and Calculator

Safety stock = Z × √(LT × σD² + D² × σLT²). At 95% service (Z ≈ 1.645), 120 ± 35 units a day and a 21 ± 6 day lead time need 1,214 units.

Safety stock (combined formula) 1,214 units 10.1 days of cover · Z ≈ 1.645
Reorder point3,734
Value held$16,996
Lead-time share95%
Basic-method, review period and cost inputs

The holding rate is an example. Replace it with your own cost of capital, storage and risk.

Formula with your numbers1.645 × √(21 × 35² + 120² × 6²) = 1,213.3 → 1,214 units

Demand during lead time2,520 units
Annual holding cost$4,249
Stockout cycles per 1005

Every method on your numbers

MethodSafety stockDays of coverReads as
Basic (max minus average) 3,940 units 32.8 Worst case, no service level
Demand variability 264 units 2.2 At your service level
Lead-time variability 1,185 units 9.9 At your service level
Combined (independent) 1,214 units 10.1 At your service level
Combined (added terms) 1,449 units 12.1 Upper bound if the two move together
Percentage of lead-time demand 1,260 units 10.5 Rule of thumb

The calculation runs in your browser. Results round up to whole units, because a fraction of a unit cannot cover demand.

How to Calculate Safety Stock in 5 Steps

  1. Pull daily demand per SKU. Use units sold per day from order history, with stockout days removed.
  2. Measure the spread of demand. The standard deviation of those daily figures is σD.
  3. Measure real lead times. Take purchase order date to goods received for past receipts. The average is LT and the standard deviation is σLT.
  4. Turn a service level into Z. Read it from the table below, or use =NORM.S.INV(level) in Excel.
  5. Apply the formula and round up. Z × √(LT × σD² + D² × σLT²), rounded up to the next whole unit.
MethodFormulaUse it whenWhere it fails
Basic(Dmax × LTmax) − (D × LT)History is too short for a standard deviation.No service level. One freak week sets the buffer for good.
Demand variabilityZ × σD × √LTThe supplier is reliable and lead time barely moves.Ignores late deliveries entirely.
Lead-time variabilityZ × D × σLTDemand is steady but arrivals swing.Ignores demand spikes.
Combined (independent)Z × √(LT × σD² + D² × σLT²)Both demand and lead time vary. The default for imported stock.Needs real receipt history to be honest.
Combined (added terms)Z × σD × √LT + Z × D × σLTLate deliveries and demand spikes tend to arrive together.Overstates the buffer when they are independent.
Percentage% × D × LTA quick first number for a new SKU.Not linked to variability or service.
What the symbols mean. D is average daily demand, σD its standard deviation, LT average lead time in days, σLT its standard deviation in days, and Z the service level factor. Keep every input in the same time unit.

Service Level Z Score Table

Z is the inverse of the standard normal distribution at your cycle service level. Values are computed to three decimals; the last column applies each one to the example inputs.

Service levelZ scoreStockout cycles per 100Safety stock on the exampleTypical use
50%0.000500 unitsNo buffer. Average demand over lead time is covered and half of cycles run short.
80%≈ 0.84220621 unitsCheap, easily substituted items.
85%≈ 1.03615765 unitsLong-tail SKUs you stock but do not protect heavily.
90%≈ 1.28210946 unitsSteady B items with a supplier who can expedite.
92%≈ 1.40581,037 unitsA step between B and A protection.
95%≈ 1.64551,214 unitsA common default for A items.
97%≈ 1.88131,388 unitsFast movers where a stockout loses the listing or the sale.
98%≈ 2.05421,515 unitsTop revenue SKUs.
99%≈ 2.32611,717 unitsItems where a stockout carries a penalty.
99.5%≈ 2.5760.51,901 unitsCritical parts or contract lines.
99.9%≈ 3.0900.12,280 unitsRarely worth it. Fix the lane first.

1.645 or 1.65?

At 95% the exact Z is about 1.6449. Tables that round it to 1.65 return 1,218 units on the example instead of 1,214. Small per SKU, but it repeats on every SKU set to 95%.

Cycle service level is not fill rate

Cycle service level counts replenishment cycles with no stockout. Fill rate counts the share of units shipped from stock. The same buffer gives a different figure on each measure.

A Columbus, Ohio Brand Importing by Ocean

A home-goods brand ships one hero SKU from a fulfillment center in Columbus, Ohio. Stock arrives from an overseas supplier by ocean, and twelve months of history give these inputs.

120 unitsaverage daily demand, σD = 35
21 daysaverage lead time, σLT = 6 days
190 / 34peak daily demand / slowest receipt in days
95%target service level, Z ≈ 1.645, $14 a unit
MethodSubstitutedRaw resultSafety stockDays of cover
Basic (max minus average)(190 × 34) − (120 × 21)3,940.03,940 units32.8
Demand variability1.645 × 35 × √21263.8264 units2.2
Lead-time variability1.645 × 120 × 61,184.31,185 units9.9
Combined (independent)1.645 × √(21 × 35² + 120² × 6²)1,213.31,214 units10.1
Combined (added terms)1.645 × 35 × √21 + 1.645 × 120 × 61,448.11,449 units12.1
Percentage of lead-time demand50% × 120 × 211,260.01,260 units10.5
  • The combined formula gives 1,214 units, about 10.1 days of cover, worth $16,996 at $14 a unit.
  • The reorder point is 2,520 units of lead-time demand plus 1,214 of safety stock: 3,734 units.
  • Lead-time variability is 95% of the variance under the square root, so the demand-only formula returns just 264 units.
  • The basic method's 3,940 units protects against the worst observed case, not a stated service level.

What Each Extra Point of Service Costs

Z rises faster near the top of the range, so the last points of service are the expensive ones. This table follows the calculator inputs above.

Service levelZSafety stockStep from previousStock value
80%≈ 0.842621—$8,694
85%≈ 1.036765+144$10,710
90%≈ 1.282946+181$13,244
95%≈ 1.6451,214+268$16,996
97%≈ 1.8811,388+174$19,432
98%≈ 2.0541,515+127$21,210
99%≈ 2.3261,717+202$24,038
99.5%≈ 2.5761,901+184$26,614
99.9%≈ 3.0902,280+379$31,920

Combined formula on the example inputs, rounded up to whole units.

+268 units

90% to 95%

Five points of service for 28% more buffer on the example.

+503 units

95% to 99%

Four points for 41% more. Worth it on hero SKUs, hard to justify catalog-wide.

+563 units

99% to 99.9%

Under one point for 33% more again. Check the lead-time lever below first.

The cheaper lever. Lead-time variance is multiplied by demand squared. Cutting σLT from 6 days to 2 on the example drops the 95% buffer from 1,214 to 475 units, 61% less, with no change to service level.

Choosing a Service Level by ABC Class

One service level for every SKU over-protects the long tail and under-protects the sellers that matter. Rank SKUs by revenue, then give each class its own target.

ClassTypical SKUsStarting levelZIf the example SKU were this class
ATop sellers that drive most revenue97%≈ 1.8811,388 units ($19,432)
BSteady middle of the catalog95%≈ 1.6451,214 units ($16,996)
CLong tail, easy to substitute or backorder90%≈ 1.282946 units ($13,244)

The starting levels are examples to adjust, not industry rules. Raise a class when a stockout costs more than holding the extra stock.

Price the stockout

Lost margin, a lost marketplace listing, expedited freight and a retailer chargeback all count. The higher that cost, the higher the level.

Price the buffer

Multiply the extra units by unit cost and your holding rate. The calculator shows the annual holding cost for the level you enter.

Review by class

Re-rank SKUs when sales mix changes. A product that slips from A to B can release stock without touching its formula.

Where the Numbers Come From

Average daily demand

Units sold per selling day, per SKU, across every channel that draws on the same stock.

Demand deviation

STDEV.S over the same daily column. Strip promotions and stockout days first.

Lead time

Order date to goods received and available to sell, not the supplier's quoted lead time.

Lead-time deviation

STDEV.S over those receipt times. More receipts give a steadier estimate.

CellHoldsExcel formula
B1Z at 95%=NORM.S.INV(0.95)
B2Average daily demand=AVERAGE(Sales!B:B)
B3Demand deviation=STDEV.S(Sales!B:B)
B4Average lead time=AVERAGE(Receipts!D:D)
B5Lead-time deviation=STDEV.S(Receipts!D:D)
B6Safety stock=ROUNDUP(B1*SQRT(B4*B3^2+B2^2*B5^2),0)
Periodic review. If you only check stock on a schedule, add the review period to lead time for the demand term. A weekly review on the example moves the buffer from 1,214 to 1,223 units. Enter it under the extra inputs in the calculator.

Safety Stock vs Reorder Point vs Cycle Stock

TermWhat it isFormulaOn the example
Safety stockThe buffer against variabilityZ × √(LT × σD² + D² × σLT²)1,214 units
Lead-time demandExpected sales while an order is in transitD × LT2,520 units
Reorder pointThe level that triggers the next orderD × LT + safety stock3,734 units
Cycle stockStock drawn down between ordersOrder quantity ÷ 2 (average)1,800 units on a 3,600-unit order (example)
Average inventoryWhat you carry on averageQ ÷ 2 + safety stock3,014 units

Reliable domestic supplier

σLT is near zero, so the demand-only formula is enough. Combined collapses to it when σLT = 0.

Imported by ocean

Use the combined formula. Customs and sailings move the arrival date, and that term often outweighs demand.

New SKU, little history

Start with the basic or percentage method, then switch to a statistical one once real history exists.

Six Safety Stock Mistakes

1

Trusting the quoted lead time

Treating 21 days as fixed returns 264 units on the example. Real receipts with σLT = 6 need 1,214.

2

Adding the two terms

Adding the demand and lead-time terms gives 1,449 units instead of 1,214. Add them only if late deliveries and spikes really coincide.

3

Mixing time units

Weekly demand deviation with lead time in days breaks the answer. Convert everything to days first.

4

Counting stockout days as zero demand

Days with nothing to sell drag the average down, so the buffer shrinks each time it fails.

5

One buffer per category

Averaging a fast mover with a slow one suits neither. Calculate per SKU and per stocking location.

6

Setting it once

Re-run after a supplier, lane or price change, and on a regular review cycle.

When the Formulas Stop Working

All the statistical methods assume demand over lead time is roughly normal and stable. Three situations break that.

Intermittent demand

Slow movers with many zero-sale days are not normal. Use an intermittent-demand method such as Croston's, or set the buffer from order-fill targets.

Strong seasonality

A year-long deviation blends peak and trough. Calculate per season, or apply Z to forecast error instead of raw demand.

Launches and promotions

A deliberate spike is not random variation. Plan that cover from the demand plan, then start the formula once a baseline exists.

What safety stock cannot fix. It absorbs random variation. It does not absorb a supplier who is always late or a forecast biased low. Those show up as a buffer that keeps growing and still runs short.

Safety Stock Formula Questions

The most complete version is Safety stock = Z × √(LT × σD² + D² × σLT²). Z sets the service level, D is average daily demand, σD its standard deviation, LT the average lead time and σLT its standard deviation. At 95% service, 120 ± 35 units a day and 21 ± 6 days gives 1,214 units.
Pick a formula that matches your data, then gather daily demand, its standard deviation, lead time in days and its standard deviation. Choose a service level and convert it to a Z score. Multiply as the formula says and round up to whole units.
Safety stock is extra inventory held on top of expected demand during the lead time. It absorbs demand that runs above average and deliveries that arrive late. It is planned to sit untouched in most cycles and is used only when variability bites.
The phrase is used two ways. As a rule of thumb it sets safety stock at half the demand expected during lead time: 1,260 units on the example. In the statistical method, a 50% service level has Z = 0, so safety stock is zero and half of cycles run short.
It is the Pareto principle applied to stock: a small share of SKUs drives most revenue. It underpins ABC classification. For safety stock, it means setting the highest service levels on A items and accepting lower ones on the long tail.
APICS (now ASCM) teaches the statistical method: a safety factor Z for the service level times the deviation of demand over lead time. When only the mean absolute deviation (MAD) of forecast error is tracked, σ ≈ 1.25 × MAD for normally distributed errors.
Z ≈ 1.645 at 95%. Other common values: 90% ≈ 1.282, 97% ≈ 1.881, 98% ≈ 2.054 and 99% ≈ 2.326. Many tables round 95% up to 1.65, which on the example adds 4 units.
Safety stock is the buffer. The reorder point is the stock level that triggers a new order, and equals demand during lead time plus safety stock. On the example that is 2,520 + 1,214 = 3,734 units.
Put Z in a cell with =NORM.S.INV(0.95). Get σD with =STDEV.S over daily sales and σLT with =STDEV.S over receipt lead times. Then use =ROUNDUP(Z*SQRT(LT*sdD^2+D^2*sdLT^2),0), replacing each name with its cell.
They assume demand over lead time is roughly normal and stable. They break down for intermittent demand with many zero-sale days, strong seasonality, and launches or promotions. Use a forecast-driven buffer or a per-season calculation for those.

Need Somewhere to Hold the Buffer?

Talk to Locad about warehousing and fulfillment for the stock you just sized.