operations-quality · supply-chain · inventory-management

Safety Stock Calculator

Computes safety stock and reorder point from demand and lead-time variability at a target service level, with the fill rate. Use it to set inventory buffers.

Last updated
Scenario Explorer

Calculator overview

Inputs and outputs

This summary comes from the calculator's published input and output contract.

Inputs

Order Quantity
About this input

The typical replenishment order size, in units. It sets the cycle stock and days of supply.

Unit units Default 1500 Range At least 0
Mean Lead Time
About this input

The average replenishment lead time, in days.

Unit days Default 14 Range At least 0
Review Period Conditional
About this input

The time between stock reviews, in days, under a periodic review policy. It lengthens the exposure period, since stock must last until the next review plus lead time.

Unit days Default 7 Range At least 0
Unit Cost
About this input

The value of one unit, in dollars, used to cost the safety stock held.

Unit currency Default 12 Range At least 0
Review Policy
About this input

Whether stock is watched continuously and reordered at a point, or reviewed every fixed period. It sets the exposure period the safety stock must cover.

Default Continuous review Allowed Continuous review, Periodic review
Daily Demand Standard Deviation
About this input

The day-to-day variability of demand, in units, as a standard deviation. Higher variability needs more safety stock.

Unit units Default 25 Range At least 0
Cycle Service Level
About this input

The probability of not stocking out during an order cycle, in percent, for example 95 percent. It sets the service factor z.

Unit % Default 95 Range 0 to 100
Holding Rate
About this input

The annual cost of holding stock as a percent of unit cost, used to value the safety stock carried over a year.

Unit % Default 25 Range At least 0
Mean Daily Demand
About this input

The average demand per day, in units per day. Combined with lead time it gives expected demand over the exposure period.

Unit units/day Default 100 Range At least 0
Lead Time Standard Deviation
About this input

The variability of lead time, in days, as a standard deviation. Most simple calculators ignore this, but variable lead times are often the larger source of risk, so including it raises the safety stock.

Unit days Default 1 Range At least 0

Outputs

Reorder Point
About this output

The stock level at which to reorder, in units: expected demand over the exposure period plus safety stock.

Unit units
Model Status
About this output

The overall check on your entries, shown above the results. It reads OK when the inputs are usable, NOT VALID with a reason when an entry makes the model meaningless, or CHECK with a reason when a result is valid but worth a second look. Read it before you trust the numbers below.

No unit declared
Fill Rate
About this output

The share of demand met from stock on hand, in percent. It differs from the cycle service level, which is the probability of no stockout rather than the fraction of demand served.

Unit %
Safety Stock
About this output

The buffer held to absorb variability over the exposure period, in units: the service factor times the combined standard deviation. It includes lead-time variability, so it reads larger than formulas that use demand variability alone.

Unit units
Understatement If It Is Ignored
About this output

How much the simpler figure understates the safety stock by omitting lead-time variability, in percent.

Unit %
Service Factor
About this output

The z multiplier for the chosen cycle service level, in standard deviations. It scales demand variability into safety stock, so a higher service level gives a larger z.

Unit sigma
Safety Stock Ignoring Lead Time Variability
About this output

The safety stock if lead-time variability were left out, in units, as many simpler tools compute it. Shown so the two can be compared.

Unit units
Exposure Period
About this output

The time the safety stock must protect against, in days: lead time alone under continuous review, or review period plus lead time under periodic review.

Unit days
Combined Standard Deviation
About this output

The standard deviation of demand over the exposure period, in units, combining demand variability and lead-time variability. This is what the service factor multiplies.

Unit units
Average Inventory
About this output

The average units on hand, in units: cycle stock plus safety stock.

Unit units
Annual Holding Cost Of Safety Stock
About this output

The cost of carrying the safety stock for a year, in dollars: safety stock times unit cost times the holding rate.

Unit currency
Cycle Stock
About this output

The working stock that turns over each cycle, in units, on average half the order quantity.

Unit units
Expected Shortage Per Cycle
About this output

The expected number of units short in a cycle before replenishment arrives, in units, from the demand distribution at the reorder point.

Unit units
Demand During The Exposure Period
About this output

The expected demand over the exposure period, in units: mean daily demand times the exposure period.

Unit units
Days Of Supply Held
About this output

How many days the average inventory would last at mean demand, in days.

Unit days

What it is

The Safety Stock Calculator sizes the inventory buffer that protects a service level, and the reorder point that goes with it. You give it the mean and variability of daily demand, the mean and variability of the replenishment lead time, the service level you want and your review policy, and it returns the safety stock, the reorder point, the fill rate that results, and what the buffer costs to hold for a year.

It also reports what the safety stock would have been if lead-time variability were ignored, and how much that simpler figure understates the answer.

Demand is in units per day, lead times in days, service level in percent, and costs in your currency.

Use it to set buffers on an item with reasonably stable, normally distributed demand. Both variabilities matter, and the second one is the one most calculations leave out.

Methodology

Purpose and model boundary

This model estimates safety stock and a reorder point under normally distributed demand with both daily-demand variability and lead-time variability. It supports continuous-review and periodic-review policies, reports a demand-only comparison, and connects cycle service level to expected shortage and fill rate.

It is a single-item statistical approximation. It does not forecast demand, optimize service level, select an order quantity, simulate stockouts, or represent a multi-echelon network.

Inputs and units

Input Meaning and unit
Mean daily demand, mu_d Units per day.
Daily demand standard deviation, sigma_d Units per day of demand variability.
Mean lead time, mu_L Days.
Lead-time standard deviation, sigma_L Days.
Cycle service level, p Percent probability of no stockout during a replenishment cycle.
Review policy Continuous review or periodic review.
Review period, R Days between reviews; used only for periodic review.
Order quantity, Q Units per replenishment, used for cycle stock and fill rate.
Unit cost, c Currency per unit.
Holding rate, h Percent of unit cost per year.

Governing relationships

The exposure period is:

E = mu_L for continuous review

E = mu_L + R for periodic review

The service factor z is the inverse standard normal value for p / 100, evaluated by the workbook's rational approximation. Assuming independent demand and lead-time variability, the combined variance and standard deviation are:

Variance = E × sigma_d^2 + mu_d^2 × sigma_L^2

sigma_combined = sqrt(Variance)

The principal inventory relationships are:

Safety stock = z × sigma_combined

Expected demand during exposure = mu_d × E

Reorder point = expected demand during exposure + safety stock

Cycle stock = Q / 2

Average inventory = cycle stock + safety stock

Days of supply = average inventory / mu_d

Annual holding cost of safety stock = safety stock × c × h / 100

The demand-only comparison removes the lead-time-variance term:

Safety stock ignoring lead-time variability = z × sqrt(E × sigma_d^2)

Understatement = full safety stock / demand-only safety stock - 1

For fill rate, the workbook uses the standard normal loss function. With standard normal density phi(z) and upper-tail probability 1 - Phi(z):

Expected shortage per cycle = sigma_combined × (phi(z) - z × (1 - Phi(z)))

Fill rate = median(0, 1, 1 - expected shortage per cycle / Q)

Calculation sequence

  1. Resolve review policy and include the review period only for periodic review.
  2. Convert the entered cycle service level to an inverse-normal service factor.
  3. Combine demand and lead-time variance, then multiply by the service factor.
  4. Add expected exposure-period demand to safety stock to produce the reorder point.
  5. Derive cycle stock, average inventory, days of supply, and annual safety-stock carrying cost.
  6. Calculate the demand-only comparison, expected shortage, and fill rate.
  7. Evaluate Model_Status in the order below.

Outputs and interpretation

Reorder_Point is the primary replenishment trigger. Safety_Stock is the variability buffer embedded in that trigger. Cycle_Service_Level is an input probability of no stockout in a cycle; Fill_Rate is a different output measuring the share of demand filled from stock. Understatement_If_It_Is_Ignored quantifies the difference between the full formula and the demand-only approximation when that ratio is defined.

Validation and status logic

Condition Returned status
Mean daily demand is less than or equal to zero NOT VALID: mean demand must be greater than zero
Mean lead time is less than or equal to zero NOT VALID: lead time must be greater than zero
Order quantity is less than or equal to zero NOT VALID: order quantity must be greater than zero
Cycle service level is less than or equal to 0% or greater than or equal to 100% NOT VALID: service level must be between 0 and 100 percent
Cycle service level is at least 99.9% CHECK: service levels above 99.9% require very large safety stock for little gain
full safety stock / demand-only safety stock - 1 is greater than 50% CHECK: lead time variability more than doubles the safety stock; consider a more reliable supplier
None of the preceding conditions applies OK

The exact returned warning text is preserved above. The workbook condition for its lead-time warning is an understatement ratio greater than 50%.

Assumptions and limitations

  • Demand and lead time are approximated as normal and independent. Correlation, seasonality, trends, intermittency, promotions, supplier disruptions, and non-normal tails are not modeled.
  • Means and standard deviations must use a consistent daily basis and a representative observation window.
  • Continuous review ignores the review-period input. Periodic review extends exposure by the entered review period.
  • The service factor is computed by a numerical inverse-normal approximation, not an empirical demand distribution.
  • The model allows service levels below 50%; those produce a negative z and can produce negative safety stock. Such a policy is mathematically representable but usually requires explicit business justification.
  • Order quantity affects cycle stock and fill rate but not the safety-stock formula. The model does not optimize Q or balance shortage and holding costs.
  • The reorder point is not rounded to pack size, pallet multiple, or system-specific integer policy.

Restrictions and non-computing states

This calculator accepts only the two declared review policies, rejects negative numeric inputs, and constrains cycle service level to 0 through 100 percent. The workbook is stricter at its decision boundary: mean demand, mean lead time, and order quantity must be positive, while service level must be strictly between 0 and 100 percent. The review-period input is ignored under continuous review. If demand-only safety stock is zero, the understatement ratio uses error handling and returns zero rather than infinity; interpret the component outputs directly in that case.

Errors and warnings

Values outside the published limits may be rejected before workbook execution. NOT VALID means the demand, lead-time, quantity, or probability basis cannot be used. CHECK retains the result but flags an extreme service target or a large effect from lead-time variability. A calculation-service or network failure is not an inventory-status message.

References

The workbook derives its relations rather than reproducing any table, chart or figure from a standard or publication. The combined standard deviation, the service factor and the reorder point are the standard formulations.

Demand and lead-time statistics must come from your own history. The defaults here are illustrative and the quality of the estimate matters far more than the precision of the arithmetic.

Additional source notes migrated from Methodology

The workbook applies the independent demand/lead-time variance formula, the inverse standard normal service factor, and the standard normal loss function. The delivered reviewer packet cites Zoho Inventory tools and Omni Calculator for limited comparison; demand-only tools should be compared only with the workbook's demand-only output.

Frequently asked questions

Why is my safety stock so much larger than the usual formula gives?
Because the usual formula leaves out lead-time variability. `z x sigma x sqrt(lead time)` covers only the demand side; this tool adds a second term, `mean demand squared times lead-time variance`, and combines the two in quadrature. In the shipped example that second term is the larger of the two: a lead time varying by one day contributes more uncertainty than demand varying by 25 units a day over a fortnight. The simpler figure understates the buffer by 46 percent there, and the tool reports that gap explicitly.
What is the difference between cycle service level and fill rate?
Cycle service level is the probability of getting through a whole replenishment cycle without any stockout; that is what you set, and what the service factor comes from. Fill rate is the share of demanded units actually supplied from stock, which is what a customer experiences. Fill rate is almost always higher, because a stockout occurring just before a delivery misses very few units. In the shipped example a 95 percent cycle service level yields a 99.81 percent fill rate.
Why does periodic review need more safety stock?
Because the exposure period is longer. Under continuous review you notice the reorder point the moment it is crossed, so you are only exposed for the lead time. Under periodic review you might cross it the day after a review and not notice for a whole review period, so the buffer must cover the lead time plus that period. In the shipped example that takes exposure from 14 days to 21 and safety stock from 225 to 250.
How much does a higher service level cost?
Non-linearly more, and the curve steepens sharply at the top. On the shipped item: 90 percent needs 175.5 units, 95 percent 225.2, 99 percent 318.5, and 99.9 percent 423.1. Moving from 95 to 99.9 percent (4.9 percentage points) costs 88 percent more inventory. That is the conversation to have with whoever is asking for "near-perfect" availability.
Does this work for slow-moving or intermittent items?
Not well. The service factor is a normal-distribution value, and the whole model assumes demand is approximately normal. An item that sells nothing for three weeks and then twenty units in a day is not normally distributed, and the normal model misprices its tail. Slow movers are better handled with a Poisson model or a bootstrap over the actual demand history.
What if my lead time gets longer exactly when demand is high?
Then the model understates your buffer. It assumes demand and lead time are independent, and when they are correlated (a supplier stretching precisely because the whole market is ordering) the two uncertainties reinforce rather than partially cancel. The quadrature combination relies on independence. In that situation treat the result as a floor.
This page is provided by LogicCommons for informational purposes only. Results are analysis outputs computed from the inputs you supply and are not engineering advice, a design, or a substitute for review by a licensed professional under the codes adopted where the work is built. Verify all inputs and results independently.

LogicCommons is in beta. If a result, label, or reference looks wrong, tell us here; we read every message.