Safety stock: variance beats the average lead time

Two suppliers both quote 30 days. One of them quietly costs you triple the .

Live result
At a 95.0% service level, supplier B needs 13 more days of cover than supplier A.
  • quoted lead time, both suppliers30 days
  • extra working capital$50,946
  • yearly cost to hold it$11,208
The gap widens as the service level rises.
At a 95.0% service level, supplier B needs 13 more days of cover than supplier A.The gap widens as the service level rises.

Shape the comparison

As quoted

Try a scenario

30days

The identical number on both quotes is the trap.

± 2days

28 to 32 days in practice

± 18days

12 to 48 days in practice

95.0%

The share of demand cycles you intend to cover from stock.

units/day
Demand and cost100 units/day · $40/unit · 22% holding

How steady is demand

Steady 5%, Normal 15%, Lumpy 35% daily variation.

$

Shown in any single currency; the arithmetic is identical.

22%

Capital, storage, insurance and obsolescence, all in.

Same quote, different arrival windows

30 day quote
Actual lead time windows around one shared quoteBoth suppliers quote 30 days. The model reads Supplier A as 28 to 32 days in practice and Supplier B as 12 to 48 days.Supplier Aquoted mean±2σ arrival window28 to 32 daysSupplier B12 to 48 days

What it costs to cover them

95.0% service
Total inventory in moneyAt 95.0% service, Supplier B ties up $1.40 for every $1.00 at Supplier A; the gap grows to 1.7× at 99.9%.Inventory you have to fund, $Supplier ASupplier B

The total inventory ratio is 1.396418× now and 1.703785× at 99.9% service.

Where each safety stock buffer comes fromTwo stacked bars split each supplier buffer into demand and lead time contributions.Supplier ADemandLead time86 units127 unitsSupplier B12 units1,474 units

The demand is identical on both, and that is what the single number hides.

Variance adds, so the split above is a split of variance carried back into units. The two figures sum to the buffer exactly; they are not two buffers you could hold separately.

MeasureSupplier ASupplier B
Safety stock, days of cover2.1 days15 days
Safety stock, units213 units1,487 units
Total inventory to fund$128,515$179,461
Annual cost of holding it$28,273$39,481

Days of cover you have to hold

95.0% service
Safety stock in days of coverAt 95.0% service, Supplier A needs 2.1 days of cover and Supplier B needs 14.9 days, from the same quoted lead time of 30 days.Safety stock, days of coverSupplier ASupplier B
12 cyclesOne buffer, two outcomes

Set the common buffer from

Coverage is recalculated with the selected buffer held by both suppliers.

The same 213 unit buffer covers 95.0% of Supplier A cycles and 59.3% of Supplier B cycles. Across 12 cycles, Supplier Bneeds more buffer at least once in 99.8% of cases.

Common buffer exposure over repeated cyclesHolding 2.1 days of safety stock for both suppliers, based on Supplier A, gives Supplier A a 46.0% chance and Supplier B a 99.8% chance that at least one of 12 independent cycles needs more buffer.Supplier ASupplier B
12cycles

Repeated cycles make a small gap in each cycle easier to see.

MeasureSupplier ASupplier B
Common buffer held213 units213 units
Coverage in one cycle95.0%59.3%
At least one cycle needs more, across 1246.0%99.8%

Coverage is the modeled chance that demand during lead time stays within pipeline stock plus this safety buffer. Replenishment cycles are treated as independent.

0.5% price reductionPut price against variance

Try a price reduction

At 0.5%, Supplier B's price reduction is worth $7,497 a year in this narrow model. Its wider spread adds $11,208 in annual carrying cost at the original price, so $3,711 remains.

Annual price reduction and variance carrying gapFor Supplier B, the 0.5% price reduction is worth $7,497 a year in purchase spend and holding cost. The annual carrying cost gap caused by its wider spread is $11,208 before the price changes.Value of price reductionVariance carrying gap
0.5%

Applied to annual purchase spend and to the value of inventory held.

MeasureAnnual amount
Value of price reduction$7,497
Variance carrying gap before price changes$11,208
Break even price reduction in this model0.747%
Gap left after price reduction$3,711

This comparison counts annual purchase spend and carrying cost only. It describes one price and inventory tradeoff. It does not settle a supplier decision.

The same availability, two shapes
95%

Both suppliers are available 95% of the time and both lose the same 1.5 days from an average lead time. The selected short and often scenario stops for 1 day at a time, leaving a spread of 1.2 days and 293.1 units of safety stock. The other long and rarely scenario leaves 5.5 days and 925.7 units.

Safety stock by outage shapeThe selected Short and often scenario is shown first, followed by Long and rarely at the same availability.Short and often293.1 unitsLong and rarely
MeasureSelected shapeOther shape
Outage patternshort and oftenlong and rarely
Length of one stoppage1 day20 days
Outage spread1.2 days5.5 days
Safety stock293.1 units925.7 units

How the downtime arrives

1days
20days

Availability is held at the figure you set, and only the length of one stoppage moves. Mean downtime does not change. The spread does, in proportion to the length, and the buffer follows the spread.

What buyers negotiate

A quoted lead time is a single number and it is the number both sides argue about. Variance never appears on the quote, is rarely written into the contract, and is paid for entirely by the buyer: in stock, in expediting, in the orders that go out incomplete.

The figure worth asking for is not the quoted lead time. It is the last twenty four delivery dates against the dates that were promised. A supplier who can produce that list in a day is telling you something about their operation before you read it.

Here is the maths

Model version
1.0

The formula, in words

  • A quoted lead time is a mean; what matters for stock is how far actual deliveries scatter around it. The ± days sliders state that scatter as a range, read as ±2 standard deviations, so a ± 18 days supplier has a standard deviation of 9.
  • Safety stock covers the combined uncertainty of demand during the lead time and of the lead time itself.
  • zz is the number of standard deviations needed to cover a given share of cycles. It comes from the inverse normal distribution. This page uses Acklam's rational approximation, accurate to about one part in a billion across the range used here.
  • Pipeline stock is what is in transit at any moment: daily demand times lead time. Because both suppliers quote the same lead time, their pipeline is identical, which is why the total inventory ratio starts at 1.0 and only opens up as service level rises.
  • The common buffer experiment holds the same safety units for both suppliers. Dividing that buffer by each supplier's combined uncertainty gives a zz value, and the normal distribution turns that z value into coverage for one replenishment cycle.
  • The price experiment compares annual purchase spend plus annual carrying cost. It sets the Break even preset where the wider supplier's discounted annual model equals the narrower supplier's annual model. It leaves quality, capacity, payment terms and disruption consequences outside the model.
  • The contribution view separates the demand variance term from the lead time variance term, then carries each share back into units. The outage experiment adds the variance created by one outage shape to the lead time variance before calculating safety stock.
σLT=R2\sigma_{LT} = \frac{R}{2}
where σLT\sigma_{LT} is the lead time standard deviation and RR the spread.
σD=D×v\sigma_D = D \times v
where σD\sigma_D is the daily demand standard deviation, DD daily demand, and vv the variability factor.
z=Φ−1(s)z=\Phi^{-1}(s)
where zz is the inverse normal value, Φ\Phi the normal cumulative distribution, and ss the service level.
S=z×LT×σD2+D2×σLT2S = z \times \sqrt{LT\times\sigma_D^2 + D^2\times\sigma_{LT}^2}
where SS is safety stock and LTLT the lead time.
P=D×LTP = D \times LT
where PP is pipeline stock.
T=P+ST = P + S
where TT is total stock.
H=T×c×hH = T \times c \times h
where HH is holding cost, cc unit cost, and hh the annual rate.
C=Φ ⁣(BU)C = \Phi\!\left(\frac{B}{U}\right)
where CC is coverage, BB the common buffer, and UU combined uncertainty.
G=1−CnG = 1 - C^n
where GG is the repeat gap and nn cycles.
A=c×(365×D+h×T)A = c \times (365 \times D + h \times T)
where AA is the annual model.
Δp=1−AAAB\Delta p = 1 - \frac{A_A}{A_B}
where Δp\Delta p is the price offset, AAA_A the narrower supplier's annual model, and ABA_B the wider supplier's annual model.

A worked example

30 day lead time, 100 units/day, Normal demand variability (σD=15\sigma_D = 15), Supplier B at ±18\pm 18 days (σLT=9\sigma_{\mathrm{LT}} = 9), 95% service (z=1.6449z = 1.6449). 1.6449×30×225+10,000×81=1.6449×816,750≈1,4871.6449 \times \sqrt{30\times225 + 10{,}000\times81} = 1.6449 \times \sqrt{816{,}750} \approx 1{,}487 units, about 14.9 days of cover. Supplier A at ±2\pm 2 days (σLT=1\sigma_{LT} = 1) needs 1.6449×6,750+10,000≈2131.6449 \times \sqrt{6{,}750 + 10{,}000} \approx 213 units, about 2.1 days. At $40 a unit that is roughly $50,900 of extra capital tied up by the supplier with the identical quote.

Now hold Supplier A's 213 unit buffer for both suppliers. It gives A 95.0% coverage in one cycle, but only 59.3% for B because the same buffer is divided by B's much larger combined uncertainty. Across 12 independent cycles, the chance that at least one cycle needs more buffer is 46.0% for A and 99.8% for B.

Annual purchase spend plus carrying cost is about $1,488,273 for A and $1,499,481 for B at the quoted unit price. The $11,208 gap needs a 0.747% reduction from B to offset it in this narrow model. At 0.5%, the reduction is worth about $7,497 and leaves $3,711 of the variance carrying gap.

Supplier A's 213 unit buffer splits into 85.8 units from demand and 127.1 units from lead time. Supplier B's 1,486.5 unit buffer splits into 12.3 and 1,474.2 units. At 95% availability, one day outages add 1.5 days squared of variance and produce a 1.22 day outage spread, a 178.2 unit combined spread and 293.1 safety units for A. Twenty day outages add 30 days squared, producing 5.48 days, 562.8 units and 925.7 safety units.

Two standalone buffers form a right triangle

Within this page's independent-variation model, calculate one buffer with lead-time variation set to 0, and a second with demand variation set to 0. The combined safety stock is the hypotenuse of those two buffers.

The subscripts D and L name the demand-only and lead-time-only buffers. S is the combined safety stock.

SD=zLT σD,SL=zDσLTS_D=z\sqrt{LT}\,\sigma_D,\qquad S_L=zD\sigma_{LT}SD=zLT σD,SL=zDσLT\begin{gathered}S_D=z\sqrt{LT}\,\sigma_D, \\ S_L=zD\sigma_{LT}\end{gathered}
S=SD2+SL2S=\sqrt{S_D^2+S_L^2}

At the opening Supplier A values, the variance terms are 6,750 and 10,000. The standalone buffers are 135.138515 and 164.485363 units; their hypotenuse is 212.879902 units. Their arithmetic sum is 299.623878 units.

The contribution bar uses variance-share attribution: 85.787423 units to demand and 127.092479 to lead time, adding to 212.879902. The standalone buffers answer the separate question of how much is needed when one source of variation is absent.

Model version
1.0.0

Why the safety stock ratio alone does not move

zz appears in both suppliers' safety stock, so it cancels in SBSA\frac{S_B}{S_A}. That ratio is fixed at about 7.0×7.0\times here whatever the service level. The number that genuinely diverges is total inventory, because the shared pipeline term dilutes the gap at low service levels and stops diluting it as zz grows. Chart 2 plots that.

zz values for the service levels

Service levelzService levelz
90%1.281699%2.3263
95%1.644999.5%2.5758
97%1.880899.8%2.8782
98%2.053799.9%3.0902

What this does not model

Order batching, minimum order quantities, review periods, lead times that are not normal (the real shape is usually skewed to the right with a fat tail), correlation between demand and lead time, supplier buffers you are already paying for inside the unit price, and the fact that a service level is a policy choice, not a property of the supplier. The repeated cycle view also assumes independent replenishments. The price view omits quality, capacity, payment terms, switching costs and the cost of an actual shortage. The outage view reduces downtime to an added variance term. It does not model repair queues, outage clustering, recovery output, dependencies between suppliers or the shape of the tail beyond the selected outage length.

It assumes demand and lead time are independent and roughly normally distributed, which real lead times usually are not, and it ignores batching, minimum order quantities and review periods. Safety stock policy is set against your own service commitments and your own history. This page describes the mechanics behind that decision and settles none of it.