Procurement Control Tower Procurement Control Tower

Resources · Planning

How to set safety stock without guessing

Safety stock is the buffer that covers two things: demand that comes in higher than average, and a supplier who arrives later than promised. The usual formula only handles the first one, and the second is normally the bigger number.

The formula everyone starts with

Open any inventory textbook and you will find the same line. If demand varies from week to week but your supplier is perfectly reliable, the buffer you need is:

safety stock = z × σd × √LT

z is the service level you want, expressed as a number. σd is the standard deviation of demand per period, which is just a measure of how far a typical week lands from the average week. LT is the lead time, counted in the same periods. The square root is there because random ups and downs partly cancel each other out over a longer window; four weeks of demand are not four times as uncertain as one week, only twice.

The z values you will actually use:

Service levelzWhat it means
90%1.28You accept a stockout in about 1 cycle in 10
95%1.65About 1 cycle in 20
97.5%1.96About 1 cycle in 40
99%2.33About 1 cycle in 100

Notice how fast the price climbs. Going from 95% to 99% is not four points of extra comfort, it is 41% more safety stock (2.33 against 1.65). That is why the service level should be a decision per part, not one number for the whole warehouse.

A worked example

Take a component you use at 100 pieces a week on average. Demand wobbles, with a standard deviation of 20 pieces a week. The supplier quotes four weeks, and you want a 95% service level.

1.65 × 20 × √4 = 1.65 × 20 × 2 = 66 pieces

Add that to the demand you expect during the lead time (100 × 4 = 400) and the reorder point is 466. When stock plus anything on order drops to 466, you order.

That is tidy, and it is also wrong for most real suppliers, because it assumes that four weeks means four weeks every time.

Where the lead time breaks it

Pull the goods receipt history for the last ten orders from that supplier. If they arrived in 3, 4, 4, 5, 4, 6, 3, 4, 5 and 4 weeks, the average is still about four, but the standard deviation of the lead time is roughly one week. Now use the version of the formula that includes it:

safety stock = z × √( LT × σd2 + d2 × σLT2 )

Here d is average demand per period and σLT is the standard deviation of lead time. With our numbers:

StepValue
LT × σd2 = 4 × 2021,600
d2 × σLT2 = 1002 × 1210,000
Square root of the sum (11,600)107.7
× 1.65178

Safety stock goes from 66 to 178, and the reorder point from 466 to 578. Look at where the number came from: of the 11,600 under the square root, 10,000 is the lead time term. The thing buyers worry about most, demand swings, contributes 1,600. The thing that is easiest to measure and least often measured contributes the rest.

A one-week standard deviation on lead time cost more buffer than all of the demand variability put together. If you can get that supplier to deliver on a tighter schedule, you hold less stock. That is cheaper than any forecasting project.

What people get wrong

  • Mixing units. If σd is per week, lead time must be in weeks, and σLT as well. The classic spreadsheet error is a weekly deviation multiplied by a lead time in days, which makes the buffer several times too big.
  • Using the supplier’s quoted lead time. The number on the quotation is what they hope to do. Your own receipt history is what they do. Use the history, and use the dates on the original order, not on the revised promise.
  • Forgetting the review period. If you only place orders on Mondays, the buffer has to cover lead time plus the days until the next order opportunity.
  • Trusting the normal curve for lumpy demand. The formula assumes demand looks like a bell. A part you sell three times a year in large batches does not. For those, a fixed buffer set by judgment (or a purchase against the order) is more honest than a calculation that looks precise.
  • Setting it once. Demand and supplier behaviour drift. If you did the calculation in January and have not looked at it since, it is a guess with a formula attached.

A simpler way to hold the same idea

Many buying teams do not want standard deviations; they want to say “hold one month of cover on top of the lead time.” That is a perfectly reasonable rule, as long as it is not the same month for a steady item with a reliable supplier as for an erratic one with a late one. The formula above is useful mainly as a check on that rule: it tells you which parts deserve more than a month and which are carrying more than they need.

In the software

Procurement Control Tower takes the simple route. Safety stock is held as months of cover per part, the reorder point is usage × (lead time + safety stock), and the verdict on every part is that sum applied the same way each time. You can try it with your own numbers on the Run the numbers page. It does not currently derive safety stock from demand and lead-time variability for you, so the calculation in this article is how you would sanity-check the months you have chosen.