5 Safety Stock Formulas Compared: Which One Should You Use?
Five safety stock formulas, run on the same SKU with the same service level, returning answers that differ by nearly eight times. Which one to use, what each one needs from you, and what each one quietly ignores.
·
9 min readUse the simplest formula whose inputs you can actually produce. With no variability data, use days of cover. With clean demand history, use the service-level formula. With measured lead-time variability as well, use the combined version — it is the only one that prices a late supplier.
Which safety stock formula should you use?
Two questions decide it. Do you have a standard deviation of demand you trust? Have you measured how much your supplier's lead time actually moves?
| What you have | Use | What you accept |
|---|---|---|
| Neither. Under six months of history | Fixed percentage | A buffer nobody can justify, replaced within the year |
| Average demand and a view on risk | Days of cover | Steady and volatile SKUs get the same protection |
| Demand history, short lead time, no statistics | Max minus average | A number biased high, and higher the longer the lead time |
| Clean demand history and a service-level target | Z × σD × √LT | Supplier variability priced at zero |
| All of the above plus receipt dates | Combined variability | Real maintenance cost per SKU |
The table is the whole argument, and the rest of this page is the working behind it. One thing worth saying before the formulas: none of them fixes a forecast that runs low month after month. Safety stock covers the residual error of a reasonable forecast. If yours is biased, that is a demand forecasting problem and no buffer size will mask it.
What does each formula actually need from you?
Five inputs exist across all five formulas. No formula uses all five, and the two that brands usually cannot produce are the two standard deviations.
| Input | Where it comes from | Who usually has it |
|---|---|---|
| Average demand per period | Any sales history | Everyone |
| Standard deviation of demand | The same history, with stockout periods removed | Most brands, once cleaned |
| Average lead time | Purchase order receipts, not the supplier's quote | Everyone, though often the quoted number by mistake |
| Standard deviation of lead time | Promised date against received date, per supplier | Almost nobody |
| Service-level target, as a Z factor | A commercial decision you make | Nobody until they are asked |
Two of those rows carry most of the failure.
- The demand history has to be cleaned first. Weeks when you had nothing on the shelf recorded low demand because there was no stock, not because nobody wanted it. Leave those weeks in and you size the buffer using the very weeks the buffer was meant to prevent.
- Lead time comes from your receipts. The supplier's quoted lead time is a target they are describing, not a measurement you took. The gap between quoted and actual is the entire input to the fifth formula, and it is sitting in your purchase order records right now.
The five formulas, from cheapest to most demanding
1. Fixed percentage
Safety stock = expected demand during lead time × a chosen percentage
Pick a figure, apply it everywhere. It takes an afternoon for a whole catalogue and it is honestly described as a placeholder: it contains no information about the product it is applied to. Every SKU gets the same protection whether it sells steadily or in bursts. Use it to get moving, and put a date in the calendar to replace it.
2. Days of cover
Safety stock = average daily demand × days of cover
You decide how many days you want to keep selling if a delivery slips. This is the most widely used method in mid-market CPG and it is a reasonable answer for most of a catalogue. Its weakness is that the days of cover is a judgement call rather than the consequence of a decision, so nobody can say what the buffer is buying. It also gives the steady SKU and the volatile SKU the same cover.
3. Max minus average
Safety stock = (peak daily demand − average daily demand) × lead time
The first formula that reacts to variability, and it needs no statistics — just a sort of your daily sales. The catch is structural rather than incidental: it assumes the peak day repeats every day until the delivery lands. On a lead time of a few days that is a tolerable overstatement. On an imported SKU with a lead time in weeks it compounds into something far larger than any statistical formula returns at the same service level. Treat it as an upper bound.
4. Service level, demand variability only
Safety stock = Z × σD × √LT
The classic. Z comes from the standard normal distribution and expresses your service-level target; σD is the standard deviation of demand per period; LT is the lead time in those same periods. It is the first formula that lets you state what you are buying — a target probability of getting through a cycle without running out — and the first whose answer changes when you change that target.
Its blind spot is named in the formula itself. There is no lead-time variability term, so it assumes your supplier is perfectly reliable. For a domestic supplier who delivers on the promised day, that assumption is close enough to free. For a container crossing an ocean it is the largest error in the calculation.
5. Combined variability
Safety stock = Z × √(LT × σD² + D² × σLT²)
The same service-level logic with a second term for lead-time variability. The structure says something useful before you put numbers in: the left term scales with lead time, the right term scales with the square of average demand. On a high-volume SKU with an unreliable supplier, the right-hand term dominates everything else — which is why, on those SKUs, chasing your supplier pays back more than chasing forecast accuracy does.
It is also the most expensive to maintain, because σLT has to be recomputed per supplier as the relationship changes. The full walkthrough is in how to calculate safety stock.
What happens when you run all five on the same SKU?
Say you sell a hero SKU in a supplements line. Suppose its numbers look like this — replace them with your own and the shape of the result will not change.
| Input | Value in this example |
|---|---|
| Average demand | 280 units a week, or 40 a day |
| Standard deviation of weekly demand | 60 units |
| Average lead time, from receipts | Four weeks |
| Standard deviation of lead time | One week |
| Highest daily demand last quarter | 95 units |
| Service level chosen | 95%, so Z = 1.64 |
For example, at a fixed percentage of one fifth of lead-time demand, the first formula returns 224 units. Days of cover, set at a week, returns 280. Max minus average multiplies a gap of 55 units by a lead time of 28 days and returns 1,540. The service-level formula returns 1.64 × 60 × 2, or 197. The combined version returns 1.64 × √(4 × 3,600 + 78,400), which is 500.
| Formula | Safety stock | What it assumed |
|---|---|---|
| Fixed percentage | 224 | That one ratio suits every SKU |
| Days of cover | 280 | That a week of cover is the right amount of risk |
| Max minus average | 1,540 | That the peak day repeats for the whole lead time |
| Service level (demand only) | 197 | That the supplier is never late |
| Combined variability | 500 | Nothing it did not measure |
Three things fall out of that table, and they are the reason this page exists.
- The answer moves by nearly eight times on identical data. The choice of formula matters more than the choice of service level, and it is the choice nobody writes down.
- Ignoring lead-time variability halved the buffer. 197 against 500, same service level, same SKU. A brand using formula 4 on an imported product believes it holds a 95% service level and does not.
- Max minus average is not a conservative version of the others. It is a different question. At 1,540 units it is holding more than five weeks of cover for a supplier that is on average four weeks away, which on a perishable SKU is a shelf-life problem rather than a service-level one.
How do you know the formula you picked is working?
The formula states a service level. Measure the one you actually got.
- Count short cycles, not short days. Over the last two or three replenishment cycles, mark a cycle as a miss if the SKU reached zero before the delivery landed. At a 95% target, roughly one miss in twenty cycles is the formula behaving correctly, not a failure.
- Missing far more often points at the inputs, not the formula. In order of likelihood: the demand history still contains stockout weeks, the lead time came from the supplier's quote, or the σLT term is missing entirely.
- Never touching the buffer is also a finding. A SKU that has not dipped into safety stock in a year of ordinary trading is either set above the service level the business needs or supplied by someone more reliable than the calculation assumes.
- Segment before you escalate. Your A-items justify formula 5 and the maintenance it costs. Your C-items do not. Running the most demanding formula across a whole catalogue is the most common way this work quietly stops being done at all.
Service level itself is a commercial decision rather than a mathematical one, and the trade-off between a target and what it costs is covered in service level vs fill rate. The buffer is only half the replenishment decision in any case — the other half is when the order goes out, which is the reorder point.
How Planster handles safety stock
Everything above assumes someone maintains it. That is the part that breaks first: the arithmetic is fine in a spreadsheet, and it stays fine until the catalogue reaches a few hundred SKUs across several suppliers and nobody has recomputed σLT since the spreadsheet was built.
Planster pulls sales and inventory from 150+ systems, builds one demand forecast across DTC, Amazon, retail and wholesale, and nets it against what is on hand, on order and already committed. On safety stock specifically:
- It is formula 2. You set days of cover for each SKU at each warehouse.
- The days are multiplied by the forecast, not last month's average, so fourteen days of cover holds more units going into a seasonal peak and fewer coming out of it, recomputed every week.
- The number of days is still your call. That is formula 2's weakness. If you want it to come from formula 4, the agent can help you calculate days of cover for a SKU from its variability and the in-stock rate you're aiming for, and you set the result.
Lead times and supplier constraints feed the order timing on top, and the reorder recommendations come out ranked by when they are due. Every order still needs you to approve it.
Where a spreadsheet is genuinely enough: a catalogue small enough to review in an hour, with domestic suppliers who hit their dates. Formula 2 in a spreadsheet will serve that business for years, and switching tools to get formula 5 on thirty SKUs is not a trade worth making. The argument for software starts where recalculation stops happening — and the tell is not a stockout, it is that nobody can say when the buffers were last updated. Planster's full app, Plan, is $999/month.
Sources
- Service-level factors read from the cumulative standard normal distribution: 90% corresponds to a Z of 1.28, 95% to a Z of 1.64, 98% to a Z of 2.05, and 99% to a Z of 2.33 — https://www.itl.nist.gov/div898/handbook/eda/section3/eda3671.htm (accessed 2026-09-17)