Safety Stock: Complete Guide
The safety-stock formula, done right — rule-of-thumb vs. exact statistics, a worked example, and how much buffer you actually need to carry.
If you landed here to figure out when to place your next order, that's not this post; that's the reorder point formula, and it already covers average daily sales times lead time, plus a buffer. This post is about that buffer: what it is, how much of it you actually need, and the difference between guessing at it and calculating it.
Safety stock vs. reorder point
The two get used interchangeably, and that's the first mix-up worth clearing before anything else. A reorder point is a trigger: a single stock level that tells you to act right now. Safety stock is not a trigger at all. It's one of the two ingredients that make up the trigger, alongside lead-time demand:
Reorder point = (Average daily sales × Lead time) + Safety stock
Picture a stock level split into two bands: the bottom band is safety stock, units you plan not to touch under normal conditions, and the band above it is lead-time demand, units you expect to sell while the next order is in transit. Cross the top of that stack and you've hit the reorder point. Safety stock only gets eaten into when something goes wrong — a sales spike, a late shipment, or both at once.
Worth separating from a third, related number too: the target stock level, how much total inventory you need to reach your next planned purchase, not just your next delivery. Safety stock is an input there too, the same buffer, reused.
Rule of thumb vs. exact statistics
There are genuinely two different ways to size this buffer, and conflating them is where most safety-stock advice goes wrong.
The rule of thumb is days-of-cover: average daily demand multiplied by a chosen number of buffer days. Cedar & Fig, 250g sells 5 units/day with a 30-unit safety stock (6 days of cover, a reasonable middle setting). It's fast, needs no statistics, and is legitimate when you don't have enough sales history to calculate a standard deviation.
What it doesn't do is target a known service level. Two SKUs with the same average demand but very different day-to-day variability get the same buffer under a flat rule, even though the steadier one is over-protected and the erratic one is under-protected. The exact statistical formula fixes that by using each SKU's own measured variability.
The demand-variability formula
This is the formula that's missing from the rest of this site's safety-stock content, and it's the reason this post exists rather than just linking elsewhere. Isolating demand variability alone (treating lead time as fixed), the exact statistical formula is:
Safety stock = Z × √(PC/T₁) × σD
Four pieces:
- Z: the service-level factor, drawn from the standard normal distribution (more on choosing it below)
- PC: the performance cycle, your total lead time in days
- T₁: the time increment your demand standard deviation was measured in (a day, if you calculated σ_D from daily sales)
- σD: the standard deviation of demand, measured over that same increment
PC/T₁ scales your per-day demand variability up to the length of the lead-time window: the longer the lead time, the more days of variability you're exposed to, so the buffer grows with the square root of that window, not linearly with it.
One assumption worth stating plainly: this formula assumes demand is normally distributed and that day-to-day variability is independent from one day to the next. A steady, established SKU usually fits that well enough. A brand-new SKU, a highly promotional one, or one with only a handful of sales a month often doesn't — the demand pattern is lumpy or event-driven rather than a bell curve, and the formula's output should be treated as a starting point, not a precise answer, for that kind of product.
A worked example
Back to Cedar & Fig, 250g: 5 units/day average sales, a 12-day supplier lead time. Suppose the last 90 days of sales for this SKU had a daily standard deviation of 2.5 units — some days sell zero, some sell nine, and 2.5 describes how wide that spread actually runs.
Z at 95% service level
day lead time (PC)
units/day, σ of demand
units, demand-variability safety stock
Safety stock = 1.65 × √12 × 2.5 = 1.65 × 3.46 × 2.5 ≈ 14 units.
That 14 is not the same as the 30-unit days-of-cover buffer used elsewhere on this site for the same SKU, and it's not the same as the 17-unit figure our lead-time variability post calculates for Cedar & Fig's supplier. All three are legitimate, different numbers answering different questions: one is a rule-of-thumb guess, one isolates demand variability, and one isolates lead-time variability. The next section is where they actually combine.
The combined formula
When both demand and lead time vary, and the two vary independently of each other, the combined formula is the square root of the sum of the squares of each component — not a straight addition of the two:
Safety stock = Z × √[(PC/T₁ × σD²) + (σLT × Davg)²]
Reusing this site's own worked numbers rather than inventing new ones: PC/T₁ = 12, σ_D = 2.5, and from the lead-time post's own figures, σ_LT = 2 days and D_avg = 5 units/day.
Safety stock = 1.65 × √[(12 × 2.5²) + (2 × 5)²] = 1.65 × √[(12 × 6.25) + 100] = 1.65 × √[75 + 100] = 1.65 × √175 ≈ 1.65 × 13.23 ≈ 22 units.
Notice that 22 is smaller than simply adding the two component figures together (14 + 17 = 31). That's not a rounding quirk; it's the formula working as designed. Independent sources of variability combine as a square root of summed squares, which is always less than a straight sum, because it's statistically unlikely that both sources hit their worst case on the same cycle. If demand and lead-time variability aren't independent for a given SKU (a promotion that both spikes demand and stresses your supplier at once, for example), the source behind this formula says to add the two components directly instead, without the square root.
Choosing a service level
Z isn't arbitrary: it's the standard-normal value for the probability of not stocking out during the lead time that you're willing to accept:
- 84% service level → Z = 1.00
- 90% → Z = 1.28
- 95% → Z = 1.65 (the level used in every worked example on this site)
- 97% → Z = 1.88
- 98% → Z = 2.05
- 99% → Z = 2.33
- 99.9% → Z = 3.09
One trap sits right next to this table: 1.96 is a real statistical value, but it's the two-tailed 97.5th-percentile bound, the number most general statistics content hands you for a 95% confidence interval. It is not the correct Z for a 95% service level. Safety stock is a one-tailed problem — you only care about running short, not about having "too much" in the same statistical sense — so 1.65 is the right value at 95%, and using 1.96 overstates the buffer.
A cycle service level of 100 percent is unattainable. Typical goals sit between 90% and 98% — treat the top of that range as a target to approach, not a number to hit exactly.
The relationship is also not linear: pushing from 95% to 99% costs disproportionately more safety stock than pushing from 90% to 95%, because the Z-values themselves grow faster than the service-level percentage does. That's also the documented case for setting a different Z-score per SKU rather than one number for the whole catalog: a higher service level for your best sellers or highest-margin items, a lower one for slow, low-stakes SKUs, rather than uniform over-protection everywhere.
Recalculating σ_D and re-checking Z for every SKU, every month, is the part that stops happening by hand once a catalog grows past a couple dozen products. StockCue takes the safety-stock number you set as a direct input into every suggested order quantity, on every plan including Free. Growth adds the "Why this qty?" breakdown that shows safety stock as its own explicit step in that calculation, rather than a number buried in a total.
Frequently Asked Questions
What is safety stock?
Safety stock is the extra inventory a store holds beyond expected lead-time demand, specifically to absorb the gap between what usually happens and what actually happens: a sales spike, a slow shipment, or both. It's one ingredient inside the reorder point, not a separate trigger of its own.
What's the difference between safety stock and a reorder point?
The reorder point is the stock level that tells you when to place an order: average daily sales times lead time, plus safety stock. Safety stock is just the buffer term inside that formula, the part that protects against variability rather than average demand. You need both numbers, but they answer different questions.
How do you calculate safety stock exactly, versus a rule of thumb?
A rule of thumb (days-of-cover: average daily demand times a chosen number of buffer days) is fast but doesn't target a known service level and applies the same buffer regardless of how variable a SKU's demand actually is. The exact statistical formula (safety stock = Z × √(PC/T₁) × σ_D for demand variability alone) uses your actual demand standard deviation and a service-level factor (Z) to hit a specific, stated probability of not stocking out.
Is a 100% service level achievable?
No. The APICS/MIT source behind this formula states directly that a 100% cycle service level is statistically unattainable: there's always some non-zero probability of a longer-than-usual delay or a bigger-than-usual spike, no matter how much stock you hold. Typical service-level goals fall between 90% and 98%; treat 100% as a target you can approach, never reach.
STOCKCUE
Safety stock is one of the direct inputs behind every suggested order quantity StockCue calculates, on every plan including Free, with no separate spreadsheet formula to maintain per SKU.
Install StockCue on Shopify →For the seven mistakes that turn a well-intentioned buffer into pure overstock, see safety stock mistakes that cause overstocking. For the lead-time-variability term this post treats as a given, see the full statistical treatment of lead time.