Safety stock and service level

Safety stock is the cushion that absorbs surprises in demand and in supplier lead time. The higher the service you promise, the thicker the cushion.

Demand while you wait for the truckAverage 200Reorder at 27650% covered50% run outunits sold during the lead time →
Safety stock needed for each promise07114280%85%90%95%99%service level →units95% → 76 units · $9,120

One of the five simulated years, day by day

0200400600Day 1Day 26Day 51Day 76Day 100Day 125Day 150Safety stockReorder point
Stock on shelfStock + on orderReorder pointOrder placedStockout day
Day 150
Service promised
95%
Orders that arrived in time
97.5%
Units served (fill rate)
99.9%
Days out of stock / year
0
Safety stock
76 units
Money in safety stock
$9,120

When you place an order, the shelf still has to feed customers until the truck arrives. On average you know how much will sell in that time: daily sales × days of lead time. That is the easy part.

The hard part is that nothing is average. Some weeks customers buy more. Some trucks arrive late. If you only stock the average, you run out about half the time. Safety stock is the extra you keep for those surprises.

The bell curve on the stage shows every way the wait could turn out. Most of the time demand lands near the middle; sometimes it lands far to the right. Your reorder point is a line on that curve: everything to the left is covered (green), everything to the right is a stockout (red).

Service level is how often you want the shelf to survive the wait. 95% means: out of every 100 orders you place, in 95 the shelf does not run empty before the truck arrives.

The z number turns that promise into distance on the curve. z = 1.65 means "1.65 typical surprises above the average". Higher promises need a bigger z — and the curve on the right shows the price climbs faster and faster.

SS = z × √(L·σd² + d²·σL²)= 1.64 × √(10 × 7.0² + 20² × 2.0²) = 76 unitsReorder point = d × L + SS = 200 + 76 = 276
d = average daily demand · σd = daily variation · L = lead time in days · σL = lead time variation in days · z = service factor

Where does the uncertainty come from?

The formula adds two kinds of surprise. The first term is demand swinging while you wait. The second is the truck arriving early or late. Move the sliders and watch which one dominates.

23%
77%
Demand swingsLate or early trucks

Service level → z

Click a row to try it.

Service levelzSafety stockMoney tied up
0.8439$4,680
1.2859$7,080
1.6476$9,120
2.0594$11,280
2.33107$12,840
2.58118$14,160
3.09142$17,040

Careful with the words. This service level counts orders that arrived before the shelf ran empty. The share of units you actually served — the fill rate — is usually higher, because even a bad cycle only misses a few sales at the very end.

Try this

What to remember

  • Safety stock covers surprises: customers buying more than usual, and trucks arriving late.
  • Reorder point = average demand during the lead time + safety stock.
  • The service level you promise sets z; SS = z × √(L·σd² + d²·σL²).
  • Each extra point costs more than the one before: the step from 99% to 99.9% needs more extra stock than the whole step from 85% to 95%.
  • Reliable suppliers and shorter lead times shrink safety stock — often more than a better forecast does.
  • Promise high service on A items and accept lower service on C items.