Business and Freelancing

Fill Rate Calculator

Enter demand and the stock you hold to see the share of demand filled from stock and the chance of avoiding a stockout.

Your numbers

Units per week, day or any period. Used to show the cycle length.

The standard deviation in the same period.

Stock on hand when the order arrives, on average. Can be zero or negative.

Result

Fill rate

99.016%

The share of demand met from stock on hand. Cycle service level is 82.711%.

Cycle service level (no stockout)
82.711%
Expected units short per order cycle
3.9368
Spread over the lead time
42.4264
Z score (safety stock / spread)
0.9428
Periods between orders
4
Units short, per period on average
0.9842
How this was calculated
  1. Spread over the lead time = spread x square root of lead time = 30 x 1.4142 = 42.4264.
  2. z = safety stock / spread over the lead time = 0.9428. The cycle service level is the normal probability below z.
  3. Expected units short per cycle = spread over the lead time x L(z), where the loss function L(z) = density(z) - z x (1 - probability below z).
  4. Fill rate = 1 - expected units short per cycle / order quantity = 1 - 3.9368 / 400.
  • Fill rate and cycle service level answer different questions: the first counts units, the second counts order cycles. Both assume steady, bell-shaped demand, a fixed lead time and unfilled demand that is lost or backordered.

Calculated using SumPanda.com · https://sumpanda.com/fill-rate-from-safety-stock-calculator/

Results are estimates for general information. Verify important figures before relying on them.

Next step

How to use the fill rate calculator

  1. Enter the average demand and its spread (standard deviation) per period, and the lead time in the same periods.
  2. Enter the order quantity and the safety stock you hold when an order arrives.
  3. Read the fill rate, the cycle service level and the expected units short in each order cycle.
  4. Change the order quantity or safety stock to see how each lifts the fill rate.

Formula

spread over lead time = spread x square root of lead time

z = safety stock / spread over lead time

expected units short per cycle = spread over lead time x L(z)

L(z) = density(z) - z x (1 - probability below z)

fill rate = 1 - expected units short / order quantity

L(z) is the standard normal loss function. It gives the expected shortage in units of standard deviations. The cycle service level is the probability below z.

Orders of 400 with 40 units of safety stock

Demand averages 100 a period with a spread of 30, and the lead time is 2 periods, so the spread over the lead time is 30 x 1.4142 = 42.43. With 40 units of safety stock, z = 0.9428, and the chance of getting through a cycle without a stockout is 82.71%.

The expected shortage in a cycle is 42.43 x L(0.9428) = 3.94 units. Spread over an order of 400 units, the fill rate is 1 - 3.94 / 400 = 99.02%. Cutting the order to 100 units keeps the same shortage per cycle but spreads it over fewer units, so the fill rate falls to 96.06%. With no safety stock at all, the service level is 50% and the fill rate is 95.77%.

Fill rate and service level are different

A cycle service level of 83% sounds poor, yet the fill rate can be 99%. The service level counts the cycles with any shortage, while the fill rate counts the units that were short. A short stockout that misses a few units hurts the service level but barely moves the fill rate. Customers and contracts may care about either one, so decide which you are measuring.

Order quantity matters

Because the shortage in a cycle is divided by the order quantity, larger orders give a higher fill rate for the same safety stock. That is one reason the order size and safety stock should be chosen together. Use the EOQ Calculator for order size, and the Safety Stock from Demand History Calculator to find the spread from your data.

Assumptions and limits

  • Demand per period is bell shaped, independent between periods and steady over time.
  • Unfilled demand is lost or backordered, and the lead time is fixed.
  • The safety stock entered is the average stock on hand when an order arrives.
  • The loss function is computed with an accurate normal cumulative function, and the results are checked against numerical integration in the tests.

Formulas reviewed October 10, 2026. See the calculation methodology for how SumPanda rounds, tests and sources its formulas.

Frequently asked questions

What is the loss function?

It gives the expected amount by which demand exceeds a stock level, measured in standard deviations of lead-time demand. Multiplying by the spread turns it into units.

Can the safety stock be negative or zero?

Yes. A zero value gives a service level of 50% and a negative value means you plan to start a cycle with less than average lead-time demand, which lowers both measures.

Why does the average demand matter for the answer?

It does not change the fill rate in this model. It only sets how many periods pass between orders, which the page shows for context.

How do I reach a target fill rate?

Raise the safety stock or the order quantity until the fill rate reaches your target. The tool computes the rate for a given pair of values, so try several to find the one you want.