Calculator overview
Inputs and outputs
This summary comes from the calculator's published input and output contract.
Inputs
- Order Quantity
-
Unit units Default 1500 Range At least 0
About this input
The typical replenishment order size, in units. It sets the cycle stock and days of supply.
- Mean Lead Time
-
Unit days Default 14 Range At least 0
About this input
The average replenishment lead time, in days.
- Review Period Conditional
-
Unit days Default 7 Range At least 0
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 Cost
-
Unit currency Default 12 Range At least 0
About this input
The value of one unit, in dollars, used to cost the safety stock held.
- Review Policy
-
Default Continuous review Allowed Continuous review, Periodic review
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.
- Daily Demand Standard Deviation
-
Unit units Default 25 Range At least 0
About this input
The day-to-day variability of demand, in units, as a standard deviation. Higher variability needs more safety stock.
- Cycle Service Level
-
Unit % Default 95 Range 0 to 100
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.
- Holding Rate
-
Unit % Default 25 Range At least 0
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.
- Mean Daily Demand
-
Unit units/day Default 100 Range At least 0
About this input
The average demand per day, in units per day. Combined with lead time it gives expected demand over the exposure period.
- Lead Time Standard Deviation
-
Unit days Default 1 Range At least 0
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.
Outputs
- Reorder Point
-
Unit units
About this output
The stock level at which to reorder, in units: expected demand over the exposure period plus safety stock.
- Model Status
-
No unit declared
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.
- Fill Rate
-
Unit %
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.
- Safety Stock
-
Unit units
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.
- Understatement If It Is Ignored
-
Unit %
About this output
How much the simpler figure understates the safety stock by omitting lead-time variability, in percent.
- Service Factor
-
Unit sigma
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.
- Safety Stock Ignoring Lead Time Variability
-
Unit units
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.
- Exposure Period
-
Unit days
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.
- Combined Standard Deviation
-
Unit units
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.
- Average Inventory
-
Unit units
About this output
The average units on hand, in units: cycle stock plus safety stock.
- Annual Holding Cost Of Safety Stock
-
Unit currency
About this output
The cost of carrying the safety stock for a year, in dollars: safety stock times unit cost times the holding rate.
- Cycle Stock
-
Unit units
About this output
The working stock that turns over each cycle, in units, on average half the order quantity.
- Expected Shortage Per Cycle
-
Unit units
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.
- Demand During The Exposure Period
-
Unit units
About this output
The expected demand over the exposure period, in units: mean daily demand times the exposure period.
- Days Of Supply Held
-
Unit days
About this output
How many days the average inventory would last at mean demand, in 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
- Resolve review policy and include the review period only for periodic review.
- Convert the entered cycle service level to an inverse-normal service factor.
- Combine demand and lead-time variance, then multiply by the service factor.
- Add expected exposure-period demand to safety stock to produce the reorder point.
- Derive cycle stock, average inventory, days of supply, and annual safety-stock carrying cost.
- Calculate the demand-only comparison, expected shortage, and fill rate.
- Evaluate
Model_Statusin 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
zand 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
Qor 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.
- Massachusetts Institute of Technology. King, Crash Course in Safety Stock, the derivation covering both demand and lead-time uncertainty. https://web.mit.edu/course/2/2.810/www/files/readings/King_SafetyStock.pdf
- North Carolina State University. Safety Stock Analysis: Inventory Management Models, a tutorial treatment. https://scm.ncsu.edu/scm-articles/article/safety-stock-analysis-inventory-management-models-a-tutorial
- Wikipedia. Safety stock. https://en.wikipedia.org/wiki/Safety_stock
- Wikipedia. Reorder point. https://en.wikipedia.org/wiki/Reorder_point
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?
What is the difference between cycle service level and fill rate?
Why does periodic review need more safety stock?
How much does a higher service level cost?
Does this work for slow-moving or intermittent items?
What if my lead time gets longer exactly when demand is high?
Found a problem, or have an idea?
Tell us if a result looks wrong, a label is unclear, or something is missing. We read every message.
LogicCommons is in beta. If a result, label, or reference looks wrong, tell us here; we read every message.