Safety stock formula for lead time variability: a worked calculation

Most safety stock formulas floating around online assume demand is the only thing that moves. Walk into an import operation and ask the planner running inbound ocean freight how often the vessel lands on the ETA the carrier quoted six weeks out, and you'll get a different answer. Lead time variability deserves its own line in the calculation instead of getting folded into the demand forecast as a rounding error.

The safety stock formula for lead time variability

When lead time is the variable biting you, not demand, planners use:

Safety Stock = Z × Average Demand × Standard Deviation of Lead Time

Z is your service level factor (roughly 1.65 for a 95% service level, 2.33 for 99%). Average demand is units per day you sell or consume. Standard deviation of lead time is the spread, in days, between your fastest and slowest deliveries on that lane over the period you're measuring.

If demand also swings on its own, independent of lead time, the combined formula is:

Safety Stock = Z × √[(Average Lead Time × Demand Std Dev²) + (Average Demand² × Lead Time Std Dev²)]

The square root term is doing real work there. It adds the variance from demand and the variance from lead time together before pulling the root, because two standard deviations can't just be added directly.

Worked example: say you move 40 units a day of a SKU coming in on a lane with a 35-day average transit and a lead time standard deviation of 6 days. Demand holds steady, so the simpler formula applies. At a 95% service level:

Safety Stock = 1.65 × 40 × 6 = 396 units

That's the buffer you're carrying specifically because the lane itself runs inconsistent, separate from any cushion for demand spikes.

Where the lead time standard deviation actually comes from

Pull your last 20 to 30 purchase orders on the lane, record actual arrival date against planned ETA for each, and calculate the standard deviation of those gaps. Use actual arrivals, not the carrier's quoted transit time or the contract SLA. Those numbers describe the service contract, not what the lane has been doing.

A backward-looking average has a limit, though. It tells you what a lane did last quarter, not what it's doing this week. A lane that ran a clean 3-day standard deviation for a year can jump to 9 days the moment a terminal starts running behind on crane availability or a vessel queue builds outside the port. The safety stock number is only as good as the lead time variability feeding it.

Reorder point calculation

Once safety stock is set, reorder point follows:

Reorder Point = (Average Demand × Average Lead Time) + Safety Stock

Using the numbers above: 40 units/day × 35 days = 1,400 units of cycle stock, plus 396 units of safety stock, puts the reorder point at 1,796 units. Inventory hits that level, the PO fires, assuming the lane behaves the way its historical average and standard deviation say it should.

That assumption is where a lot of planners get burned. The formula treats lead time variability as a fixed number you calculate once and plug in. Real lanes don't hold still that long. A lane running normal in September can book out two extra days of queue time in October, and a safety stock figure calculated off last year's standard deviation won't catch that until the shipment has already missed its window.

That's a slightly different problem than the formula itself solves, and it's the one Lead Time Risk is built for. Instead of recalculating your lead time standard deviation off a quarterly average, you get a daily slip-day number for each inbound lane you've registered, so the buffer in the calculation matches what the lane is doing this week.

If your reorder points keep tripping early on some lanes and late on others, that's usually a sign the lead time variability behind them has already shifted. Worth checking what's building on the specific lanes you're running before the next PO goes out.

← Back to the blog