What the Amount of Safety Stock Actually Depends On
The amount of safety stock depends on the desired service level — how much stockout risk you'll accept — combined with how variable your demand is and how variable your supplier's lead time is. Raise the service level or the variability, and the number goes up.
The team behind Dr. Stock
The Short Answer
Safety stock is not one input, it's four multiplied together: the desired service level, the variability of demand (not the average demand itself), the average lead time, and the variability of that lead time. Textbooks isolate service level because it's the one number a planner actually chooses — everything else is measured from history.
That's why two SKUs with identical average sales can carry very different safety stock. A SKU with steady, predictable demand and a reliable factory needs less buffer than one with spiky demand and a supplier who sometimes ships two weeks late. Same average, different risk.
The Formula Behind the Answer
The standard version, used when both demand and lead time vary independently:
Safety Stock = Z × √( (LT × σd²) + (d² × σLT²) )
- Z — the service level factor. Higher desired service level, higher Z, more stock.
- σd — standard deviation of daily demand. This is the variability, not the average.
- d — average daily demand.
- LT — average lead time in days.
- σLT — standard deviation of lead time. Supplier reliability, in a number.
If lead time is genuinely fixed — same freight schedule every time — the formula collapses to Z × σd × √LT, which is the version most spreadsheets use because lead-time variance is annoying to measure. It's a simplification, not the correct formula, and it understates the number for anyone shipping from a factory with real customs or production variance.
A Worked Example on Real Numbers
Take a SKU averaging 50 units/day (d), with a standard deviation of daily demand of 15 units (σd). Average lead time is 30 days (LT), with a standard deviation of 5 days (σLT).
LT × σd² = 30 × 225 = 6,750. d² × σLT² = 2,500 × 25 = 62,500. Sum = 69,250. √69,250 ≈ 263.2.
At a 95% desired service level, Z = 1.65: Safety Stock = 1.65 × 263.2 ≈ 434 units. That's the buffer needed above forecasted demand for the lead time window, at that risk tolerance, for that SKU only.
Notice the lead-time variance term (62,500) is almost nine times the demand-variance term (6,750). For this SKU, the supplier's inconsistency is doing more damage to the safety stock number than the demand swings are. That's common with overseas manufacturing and gets missed constantly because people default to blaming demand forecasting.
What 'Desired Service Level' Actually Means — and the Mistake Everyone Makes
Desired service level is the probability of not stocking out during one lead-time replenishment cycle. It is not your annual in-stock rate, and it is not fill rate. Confusing the two is the single most common error — a planner sets a 98% target thinking it means 98% in-stock all year, when it actually means a roughly 2% chance of running out on any given reorder cycle, which compounds across dozens of cycles a year into a much rougher in-stock picture than 98% sounds like.
Across more than $500M in managed revenue, the other repeat mistake is picking one service level — usually 98% or 99% — and applying it to every SKU regardless of margin, storage cost, or how replaceable the SKU is in a listing. A $9 accessory and a hero SKU carrying the account's ad spend do not deserve the same Z-score. Every point of service level costs warehouse cash; it should be a decision made per SKU, not a company-wide default.
The service level and Z-score relationship, for reference:
When the Number Is Wrong
If you're still stocking out with safety stock in place, or safety stock is sitting on the shelf tying up cash and nothing is going wrong, the formula isn't broken — one of its inputs usually is:
- σd is stale. Computed on last year's data, before a launch, a review milestone, or a category shift changed the demand pattern. Recompute on a trailing window that reflects current reality, not the SKU's whole history.
- σLT is guessed, not measured. If nobody has actually tracked how late shipments run versus the quoted lead time, the safety stock number is fiction wearing a formula's clothes.
- Demand isn't actually normal. New launches, viral spikes, and deal-driven SKUs don't follow the bell curve the Z-score assumes. For these, the formula is a starting point, not the answer — treat the output as a floor and watch actuals closely for the first several cycles.
- The reorder point calculation doesn't actually include the safety stock. This sounds obvious but it's a common spreadsheet error — safety stock gets calculated correctly and then never added into the trigger point that actually fires the PO.
Where This Fits
Dr. Stock is Amazon inventory and supply chain run as a managed product by Fable 5, from Full Circle — a full-service Amazon management company with $500M+ in managed revenue across 100+ brands. It works the leaks around this exact calculation: reorder timing when the safety stock number and the actual PO trigger drift apart, cash trapped in slow-moving SKUs carrying too much buffer, storage fees and aged-inventory surcharges, FBA fee errors, and reimbursement recovery on lost or damaged units. The client sets the autonomy level — full approval, supervised, or autonomous inside guardrails — and purchasing decisions always go to a human regardless of setting. Orbit is included at no extra cost, covering inventory, finance, ASIN profitability, and BSR/buy box/price/fee tracking. There's no published price; it's a demo and a 30-day free period, priced on the call.
A reader who never buys anything should still leave with the formula, the worked math, and the one habit worth keeping: recompute σd and σLT on a schedule, don't set-and-forget the service level, and check that your reorder point actually includes the safety stock you calculated.
| Desired service level | Z-score | Approx. stockout risk per cycle | Safety stock (example SKU) |
|---|---|---|---|
| 90% | 1.28 | 10% | 337 units |
| 95% | 1.65 | 5% | 434 units |
| 99% | 2.33 | 1% | 613 units |
Which one you should actually pick
Anyone doing this math by hand in a spreadsheet, once, for a small catalog — the formula above is genuinely enough. Anyone running dozens of SKUs where σd and σLT need recomputing on a schedule, tied to the actual reorder trigger and fee exposure, is better served by something that watches it continuously — which is the gap Dr. Stock is built to close.
Shortlist on the job, not the feature grid. Total three numbers first: storage and aged-inventory surcharges for the last twelve months, lost sales on days your best sellers were out of stock, and cash sitting in SKUs that have not moved in 180 days. Then ask each vendor what they would do about those three in week one.
Common questions
What service level should I actually target?
There's no universal number — it depends on the SKU's margin, how central it is to your listing's rank, and how expensive the buffer is to carry. Common practice ranges roughly 90–99% depending on how costly a stockout is versus how costly the inventory is, but it should be set per SKU, not copied across the catalog.
Does the safety stock formula work for a brand-new SKU with no sales history?
Not well. σd and σLT are both measured from history you don't have yet. For launches, use a comparable SKU's variability as a placeholder, set the service level higher than usual since you're flying blind, and recompute with real data as soon as a few cycles of actual sales come in.
Why does FBA change this calculation?
Inbound lead time to Amazon's warehouses often has more variance than the factory lead time itself — customs, carrier delays, and receiving backlogs all add to σLT. Storage and aged-inventory fees also push the cost side of the tradeoff, since carrying extra safety stock on Amazon's shelves costs more than carrying it at a 3PL or your own warehouse.
My safety stock number looks right but I'm still stocking out. What's actually wrong?
Check three things in order: whether the reorder point that triggers your PO actually adds the safety stock (a common spreadsheet gap), whether σLT reflects real recent lead time performance rather than the supplier's quoted number, and whether a recent spike (launch, deal, seasonality) has made σd understated.
Is a simpler weeks-of-cover rule good enough instead of this formula?
Weeks-of-cover is easier to run but ignores lead time variability entirely, so it systematically underbuffers SKUs with unreliable suppliers and overbuffers SKUs with reliable ones. It's a reasonable starting heuristic for a small catalog, but it stops being defensible once lead times vary supplier to supplier.
Dr. Stock runs Amazon inventory and supply chain — reorder timing, stockout risk, storage and aged-inventory fees, FBA fee errors and dimensional-weight misclassification, shipment discrepancies and reimbursement recovery — with operators from a $500M+ Amazon team supervising. Purchasing decisions always come to a human. Orbit is included. First 30 days free, priced on the call.
Book a Dr. Stock demoRead next
- Extensiv Pricing 2026: No Rate Card, and What Moves ItPricing · extensiv pricing
- Carbon6 Reviews 2026: You Are Reading a Dozen ProductsReview · carbon6 reviews
- ShipBob Pricing 2026: The Five Lines in Every QuotePricing · shipbob pricing
- Cin7 Pricing 2026: The Order Bands Are the Real PricePricing · cin7 pricing
- Jungle Scout Pricing 2026: Both Billing Tabs, CheckedPricing · jungle scout pricing
- Sellerboard Pricing 2026: Plans, Order Bands, LimitsPricing · sellerboard pricing
Part of
- Orbit — the software, included freeInventory, finance, ASIN profitability and the fee, price, BSR and buy box trackers
- Dr. PPCWhen the leak is in the ad account rather than the warehouse