Safety stock is the extra stock you keep so that a busier-than-expected week or a late container doesn’t leave you out of stock. Too little and you run out. Too much and cash sits on a shelf.
This guide explains two practical ways to calculate it, works through the numbers, and covers when to adjust it, including for seasonal products.
Why you need safety stock
Your reorder point is built on a forecast of demand during the lead time. Forecasts are never exact, and lead times vary. Safety stock covers that gap:
Reorder point = (daily demand × lead time) + safety stock
Without safety stock, you’d run out roughly half the time: whenever demand during the lead time is higher than average.
Method 1: the simple max-minus-average formula
This is a common rule-of-thumb method that needs only your sales and lead time history:
Safety stock = (max daily sales × max lead time) − (average daily sales × average lead time)
Worked example
A candle sells:
- Average daily sales: 12
- Highest daily sales in a normal (non-promo) period: 20
- Average lead time: 30 days
- Longest recent lead time: 38 days
Safety stock = (20 × 38) − (12 × 30) = 760 − 360 = 400 units
Pros and cons
It’s easy to understand and needs no statistics. But it’s driven by your single worst day and worst delivery, so it often produces a large buffer, especially for products with one unusual spike. Strip out one-off events such as a viral post before using it.
Method 2: the statistical formula (Z × σ × √L)
The statistical method links safety stock to the chance of not running out during a lead time, which is called the service level.
Safety stock = Z × σ × √L
- Z is the Z-score for your chosen service level (see table).
- σ (sigma) is the standard deviation of daily demand.
- L is the lead time in days.
| Service level | Z-score |
|---|---|
| 85% | 1.04 |
| 90% | 1.28 |
| 95% | 1.645 |
| 97.5% | 1.96 |
| 99% | 2.33 |
These are standard values from the normal distribution; you can check them with =NORM.S.INV(0.95) in Excel or Google Sheets, which returns about 1.645.
OmniRestock uses a 95% service level by default, which you can change per product, group, supplier or account.
Worked example
Same candle, now using daily sales for the last eight weeks (in-stock days only):
- Average daily demand: 12
- Standard deviation of daily demand: 4
- Lead time: 30 days
- Service level 95% → Z = 1.645
Safety stock = 1.645 × 4 × √30 √30 ≈ 5.477 Safety stock = 1.645 × 4 × 5.477 ≈ 36 units
Reorder point = (12 × 30) + 36 = 396 units
That’s far lower than the 400 units of safety stock from Method 1, because the statistical formula assumes daily ups and downs partly cancel out over a 30-day lead time.
Calculating σ in a spreadsheet
If column B holds one row per in-stock day with units sold:
- Average:
=AVERAGE(B2:B57) - Standard deviation:
=STDEV.S(B2:B57) - Safety stock:
=NORM.S.INV(0.95)*STDEV.S(B2:B57)*SQRT(30)
Remember to remove stockout days first. A day with zero sales because you had no stock makes demand look more variable and lower than it is.
Adding lead time variability
The formula above assumes the lead time is fixed. If your supplier’s delivery times vary a lot, a fuller version accounts for both:
Safety stock = Z × √(L × σ_d² + d² × σ_L²)
- d = average daily demand, σ_d = standard deviation of daily demand
- L = average lead time, σ_L = standard deviation of lead time (days)
Worked example
Candle again: d = 12, σ_d = 4, L = 30, and the last several deliveries varied with σ_L = 5 days.
- L × σ_d² = 30 × 16 = 480
- d² × σ_L² = 144 × 25 = 3,600
- √(480 + 3,600) = √4,080 ≈ 63.9
- Safety stock = 1.645 × 63.9 ≈ 105 units
Lead time variation nearly triples the buffer. Often, the cheapest way to cut safety stock is not a better forecast but a more reliable supplier or shipping route.
Which method should you use?
| Situation | Suggested method |
|---|---|
| Just starting out, little data | Max-minus-average, sanity-checked |
| Steady sellers with 8+ weeks of data | Z × σ × √L |
| Suppliers with unreliable delivery | Full formula with lead time variability |
| Lumpy, slow sellers | Treat with care; consider a fixed minimum in units |
| New products | Borrow a similar product’s pattern, then review after 4–8 weeks |
When to raise or lower safety stock
Raise it when:
- A product is a hero line where running out costs you ranking or repeat customers. On Amazon, being out of stock can affect your listing’s visibility.
- Lead times are getting longer or less reliable.
- You’re heading into a known busy period and can’t reorder in time.
Lower it when:
- A product is slow-moving or near end of life.
- Cash is tight and the item is easy to substitute.
- You can restock quickly, for example from a local supplier.
Setting service levels by group helps: 98% for your top sellers, 90% for long-tail products, and a lower level for anything marked to stop reordering.
Safety stock for seasonal products
Seasonal products break the “average demand” assumption. A Christmas jumper’s December demand looks nothing like its March demand.
Practical approach:
- Forecast the season itself using the same period last year scaled by growth, rather than a flat average.
- Calculate σ from the same season last year, not the whole year.
- Time the buffer. Hold safety stock in the run-up and peak, then let it run down. Carrying the same buffer into January leaves you with dead stock.
- Set active date ranges so the product isn’t reordered off-season.
Worked example: seasonal
A gift set sells 5/day most of the year but 40/day in the six weeks before Christmas, with σ = 12 in that period. Lead time is 45 days.
- Off-season: 1.645 × σ_off (say 2) × √45 ≈ 1.645 × 2 × 6.708 ≈ 22 units
- Peak: 1.645 × 12 × 6.708 ≈ 132 units
Using the off-season figure in November means you’d almost certainly run out. Using the peak figure in February ties up cash.
Safety stock with multiple warehouses and FBA
Each place you hold sellable stock needs its own safety stock, calculated from its own demand and lead time:
- FBA: demand = Amazon sales; lead time = prep + inbound + Amazon receiving.
- Your warehouse or 3PL: demand = other channels plus planned transfers into FBA; lead time = your supplier lead time.
Don’t just add the two buffers into one supplier order on top of each other’s forecasts. See FBA replenishment from your own warehouse.
Common mistakes
- Including stockout days, which lowers average demand and inflates variability.
- Using one buffer for every product. “Two weeks of stock” is easy but treats a steady seller and a volatile one the same.
- Never revisiting it. Lead times and demand change, so recalculate at least monthly, or let software do it daily.
- Double counting. Safety stock in both the forecast uplift and the buffer.
Frequently asked questions
Is safety stock the same as minimum stock?
Not quite. Safety stock is a buffer calculated from variability. A minimum stock level is often a fixed number set by hand. Some sellers use the higher of the two.
What service level should I choose?
95% is a common starting point and OmniRestock’s default. Push it higher for best-sellers where stockouts are costly, lower for slow or easily replaced items. Each step up costs more stock.
Does a 95% service level mean I’m in stock 95% of the time?
Not exactly. In this formula it means a 95% chance of not running out during each replenishment lead time. Your overall in-stock rate is usually higher.
Can safety stock be negative?
No. If a calculation gives a negative number, something is off in the inputs. Treat it as zero and check your data.
How do I handle products with very little data?
Use a fixed buffer or borrow a similar product’s history, then switch to the statistical method once you have around 8 weeks of in-stock sales.
Next steps
- Plug your numbers into the safety stock calculator.
- Use it in your reorder point.
- Or let OmniRestock calculate safety stock per product and warehouse from your real sales: get a free stockout report with no card, or see demand forecasting.