
Stockouts on steady products usually come from using only “average demand × lead time” instead of the full safety stock formula. Once you add demand variability and real lead times, most supplier “problems” turn out to be math problems.
If your reorder point ignores demand swings and real lead times, you have not picked a service level. You have flipped a coin and called it supplier unreliability.
If you reorder when stock drops to average daily sales times supplier lead time, you have not set a reorder point. You have set a coin flip. Demand lands above the average roughly half the time, and on those runs the shipment arrives after you have already sold out.
The fix is not a better supplier or a longer buffer picked by feel. It is the second half of a formula most stores only use the first half of. Safety stock is a statistics calculation, and it needs one number almost nobody has on hand: how much daily demand actually swings.
The version that circulates on every inventory blog is correct as far as it goes:
Nearly every store gets the first term right and then treats safety stock as a vibe. Two weeks of cover. A round 50 units. Whatever fit the last purchase order. Shopify’s own breakdown of the two terms makes the distinction plain: the reorder point is when you order, safety stock is the cushion that absorbs the surprises.
Guess that cushion and you are guessing your service level, which means you are guessing how often you disappoint customers.
Set safety stock to zero and your reorder point equals expected demand across the lead time. Expected means the middle of the range, not the ceiling.
Actual demand over any given two weeks lands above that middle about as often as it lands below. So an order placed at exactly the average covers you in roughly half of the lead-time windows and leaves you short in the other half. In service level terms that is 50%, and no store would choose 50% on purpose.
What safety stock actually buys Safety stock is not the same thing as spare inventory. It is the price of moving from a 50% service level to a number you picked deliberately.
Pull daily units sold for one SKU over the last two weeks. Here is a set that looks like a lot of stores:
| Day | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| Week 1 | 14 | 22 | 19 | 31 | 17 | 25 | 12 |
| Week 2 | 20 | 28 | 16 | 23 | 18 | 26 | 9 |
That sums to 280 units across 14 days, so average daily demand is exactly 20. It is the number every store already knows.
The number they do not know is the spread. Those days run from 9 to 31, and the standard deviation of that set is 6.26 units. That single figure is what separates a reorder point that holds from one that fails on any busy fortnight.
Most people quit at this step. Thirty or sixty days of sales is not something you work out on paper. A spreadsheet does it with STDEV. If your numbers live in a note or an email rather than a sheet, paste them into MathSolver and ask for the standard deviation in plain sentences: it lays the steps out instead of just handing back a figure. A minute either way. That minute is the whole difference between a reorder point and a guess.
Safety stock comes from three inputs: how variable demand is, how long your supplier takes, and how often you are willing to run out.
Z stands for the service level factor, and it is a fixed lookup rather than something you calculate: 1.28 for a 90% service level, 1.65 for 95%, and 2.33 for 99%, values used across standard safety stock guidance.
Run our SKU with a 14-day lead time. The square root of 14 is 3.74, and the standard deviation is 6.26:
| Service level | Z | Safety stock | Reorder point | vs. average only |
|---|---|---|---|---|
| 50% (no buffer) | 0 | 0 units | 280 units | baseline |
| 90% | 1.28 | 30 units | 310 units | +30 |
| 95% | 1.65 | 39 units | 319 units | +39 |
| 99% | 2.33 | 55 units | 335 units | +55 |
Read the last column as a price list. Thirty units of stock moves you from a coin flip to covered in nine lead-time windows out of ten. Another nine units buys 95%.
Then the curve turns on you. Four more points of coverage, 95% up to 99%, costs another 16 units, and pushing past 99% gets steeper still. So the decision is per SKU, not store-wide. Your hero product probably earns its 99%. The slow mover sitting in the back does not.
Lead time appears twice in the calculation, once straight and once under a square root, so an error there moves the answer more than people expect.
Most stores use the number the supplier quoted. The number that belongs in the formula is the one you measure: the gap between placing a purchase order and the units being sellable on your shelf. That includes production, transit, customs, and the day or two your own receiving takes.
Say the quoted 14 days is really 21 once receiving is counted. Same demand, same 6.26 spread, same 95% target:
A store using the quoted lead time would order 150 units too late, every single time, and would probably blame the supplier for it. Pull the dates on your last five POs and take the average of what actually happened.
Run this per SKU, once a quarter
The version above assumes your lead time is steady and only demand moves. If your supplier is the unpredictable one, that variability needs its own term, and a formula built solely on demand spread will leave you short.
It also assumes demand wobbles around a stable average. A BFCM week, a creator posting your product, or a seasonal SKU is not a wobble, it is a different distribution. Plan those with a forecast, not a safety stock multiplier, and treat the formula as your baseline for ordinary weeks.
There are two more limits to name. New products have no sales history to take a standard deviation of, so the first few orders are judgment. And low-volume SKUs that sell zero on most days produce numbers this model handles badly.
Every unit of safety stock is also cash on a shelf. The formula tells you what a service level costs, not whether you can afford it. That answer comes from your margin and your cash cycle.
None of this requires software. It requires two numbers per SKU and a decision about how often you are willing to run out, made on purpose instead of by accident.
Recalculate at least quarterly for stable SKUs and immediately after any major change in demand or lead time. That cadence keeps your math in step with reality without turning it into a weekly chore that nobody keeps up with.
Reserve 99 percent service levels for high margin, high volume, or strategically important products where a stockout visibly hurts revenue or brand trust. Long tail or low margin items usually make more sense at 90 to 95 percent, where the cash tied up in extra units is easier to justify.
You can use it as a rough guide, but it is not enough on its own for spiky or seasonal products. In those cases, build a separate forecast around campaigns, seasons, or known events and then treat the safety stock formula as a supplement for the ordinary parts of the calendar.
If you lack clean history, start with whatever you have, two to four weeks, and treat the result as a first draft for a small number of SKUs. As more data comes in, update the averages and standard deviations and adjust your reorder points rather than waiting for perfect data.
Frame it as choosing your stockout probability on purpose instead of by accident, using numbers they already understand like service level and lead time. Showing one SKU where 30 extra units buys a jump from 50 percent to 90 percent service tends to win more buy in than abstract formulas.