EOQ, Reorder Point, and Safety Stock Calculator

The Wilson formula is over a century old and still the backbone of serious ERPs. Use it with your real numbers, not textbook ones.

  • Instant result
  • No sign-up
  • Visible assumptions
  • Deterministic calculation

In 30 seconds: Calculate the exact quantity to order, when to trigger the order, and how much buffer you need to cover lead-time and demand variability. Deterministic calculation with auditable formulas. The result is indicative — adjust the assumptions to reflect your real operation.

Methodology

Average daily demand = Annual demand ÷ 365

EOQ = √((2 × Annual demand × Order cost) ÷ Holding cost per unit/year)

Safety Stock = Z × σ × √Lead time (days)

Reorder Point (ROP) = (Daily demand × Lead time) + Safety Stock

Total annual cost = (Demand ÷ EOQ × Order cost) + (EOQ ÷ 2 × Holding cost) + (Safety Stock × Holding cost)

Variables

Annual Demand
Units sold or consumed in a year for the SKU.
Order Cost
Administrative and logistics cost of placing an order (regardless of size).
Holding Cost
Annual cost of keeping one unit in stock (storage, tied-up capital, insurance, obsolescence).
Lead Time
Days between placing the order and receiving it.
Daily Standard Deviation
Observed variability in daily demand — how much it fluctuates day to day.
Service Level
Target probability of not stocking out during lead time (90%, 95%, 97.5%, 99%).

Practical example

A store sells 12,000 units of a product per year. Each order costs $800 in logistics and admin. Holding one unit for a year costs $15. Lead time is 7 days, daily standard deviation is 8 units, and they want a 95% service level.

Average daily demand = 12,000 ÷ 365 ≈ 33 units.

EOQ = √((2 × 12,000 × 800) ÷ 15) ≈ 1,131 units per order.

Safety Stock = 1.6449 × 8 × √7 ≈ 35 units.

ROP = (33 × 7) + 35 = 266 units — when inventory drops to this level, place a new order.

Total annual cost ≈ $17,007 — useful for comparing against alternative policies (more small orders, or a different service level).

Interpretation

EOQ minimizes the total cost between ordering and holding. Orders below EOQ raise ordering cost; above EOQ raise holding cost.

Raising the service level from 95% to 99% usually increases safety stock 30-50%. Only worth it if the cost of a stockout (lost sale + lost customer) exceeds the extra inventory cost.

Long or variable lead time is the main driver of safety stock. Cutting supplier lead time in half can reduce your safety stock by 30%.

If your calculated ROP is above the inventory you usually carry, you're at recurring risk of stockout. If it's much lower, you're over-stocking.

Assumptions and limitations

  • Assumes independent, normally distributed demand (valid for SKUs with a stable history; fails for new or highly seasonal products).
  • Assumes a fixed, known lead time (lead-time variability can also be modeled but needs more data).
  • Assumes constant ordering and holding costs — no volume discounts or warehouse capacity limits.
  • The Wilson EOQ model doesn't consider warehouse capacity constraints or product shelf life (perishables need different models).

When to use this calculator

  • For A-class SKUs (high volume, high rotation): the difference between theoretical EOQ and operating EOQ translates directly into thousands in avoidable cost.

  • When a supplier changes price, lead time or minimum order — recalculate EOQ and ROP to adjust the purchasing policy.

  • Before negotiating annual contracts: EOQ tells you the optimal order size to use as an anchor in negotiations.

  • To set reorder points in WMS or ERP systems: many businesses operate with inherited ROPs with no statistical basis.

  • When evaluating a supplier with a shorter lead time: quantify the safety stock savings that could justify a higher unit cost.

Common mistakes

  • Using average demand without measuring the standard deviation. Without volatility, safety stock is zero and stockout risk is huge.

  • Ignoring the cost of capital when calculating holding cost. In high-rate environments, tied-up capital can represent 60% of holding cost.

  • Applying EOQ to perishables without adjusting for shelf life — you'll end up ordering quantities that expire before selling.

  • Defaulting service level to 99%. Low-contribution products don't justify such expensive safety stock; segment by margin.

Industry use cases

Retail / e-commerce

A-class SKUs typically run at 95-97.5% service level to balance lost sales vs inventory cost. C-class SKUs drop to 90% or are handled to order.

Distribution / wholesale

Low order cost (automated processes), moderate holding cost, short lead times. Large EOQs and tight ROPs.

Manufacturing / spare parts

Very high stockout cost (plant shutdown). Justifies 99-99.5% service level and large safety stocks — holding cost is trivial vs stopping production.

Perishables

EOQ must be complemented with shelf-life: order the minimum of EOQ and what you sell in X days, where X is the safe remaining shelf life.

Methodology and assumptions

How results are calculated, what we assume when modeling, and where the method loses precision.

Formula

EOQ = √(2·D·S ÷ H) · ROP = d × LT + Safety stock

Assumptions

  • Annual demand D known and reasonably stable.
  • Order cost S and holding cost H expressed in the same currency and time unit.
  • Deterministic lead time LT; safety stock covers variance.

Applicability limits

  • EOQ assumes instant replenishment — for in-house production use the EPQ variant.
  • When demand is seasonal the formula understates peak inventory.
  • Volume discounts are not included: evaluate the quantity discount separately.

Sources

  • Harris, F.W. (1913) — How Many Parts to Make at Once (origin of the EOQ formula).
  • APICS / ASCM — CPIM Body of Knowledge on inventory and demand.

You calculated EOQ and ROP. Now quantify how much capital is locked in inventory month over month in your cash flow. Advanced Cash Flow Simulator

Want to go beyond the quick calculation?

The advanced simulators model complete scenarios — 12-month cash flow, pricing with sensitivity analysis, credit risk, delivery routes — with your own data and no sign-up.

Explore the simulators

Calculator guide

What it calculates and who it is for

This calculator solves the two central decisions of inventory management: how much to order each time (EOQ, the economic order quantity) and when to trigger the order (ROP, the reorder point), including the safety stock your service level demands.

It is built for whoever manages purchasing or inventory in retail, distribution and e-commerce with relatively continuous demand, and wants to replace 'we order when it looks low' with numeric rules that minimize the total cost of ordering and holding.

Inputs

Annual demand
Units of the SKU you sell in a year. With strong seasonality, complement with the seasonal demand calculator.
Cost per order
What executing one full order costs, regardless of size: administrative processing, fixed freight, receiving, inspection.
Holding cost (per unit/year)
What keeping one unit in inventory for a year costs: tied-up capital, storage, insurance, shrinkage and obsolescence.
Lead time (days)
Days between triggering the order and having the goods available for sale.
Daily standard deviation
Your daily demand variability in units. Estimate it from the deviation of your per-day sales over a representative period.
Service level (%)
The probability of not stocking out during the lead time. It sets the safety stock's Z factor.
Lead-time deviation and MOQ (optional)
If your supplier's lead time varies, the robust formula incorporates it; if they impose a minimum order quantity (MOQ), the engine computes that minimum's cost penalty.

Results you get

EOQ (economic order quantity)
The order size that minimizes the sum of ordering and holding costs.
Reorder point (ROP)
The inventory level at which you must trigger the next order: lead-time demand plus safety stock.
Safety stock
The buffer against demand variability (and lead-time variability, if entered) for your service level.
Orders per year and cycle
How many orders the EOQ implies and how many days apart they arrive.
Total annual cost
The yearly sum of ordering plus holding cost under that policy — the number the EOQ minimizes.
MOQ penalty
If the supplier's minimum exceeds your EOQ, what that oversized lot costs you per year.

Methodology and assumptions

EOQ = √(2 × Annual demand × Cost per order ÷ Holding cost)

Daily demand = Annual demand ÷ 365

Safety stock = Z × Daily deviation × √Lead time

Robust version: SS = Z × √(LT × σd² + d² × σLT²)

ROP = Daily demand × Lead time + Safety stock

Total annual cost = (Demand ÷ EOQ) × Cost per order + (EOQ ÷ 2 + SS) × Holding cost

The Z factor comes from the service level (1.645 for 95%, for instance). If you enter lead-time variability, the engine automatically switches to the robust safety-stock formula; if your supplier's minimum exceeds the EOQ, the effective lot adjusts and the cost penalty is reported.

Worked example

Hypothetical example for illustration. The numbers reproduce exactly when entered into the calculator on this page.

Worked example: a SKU with 12,000 units of annual demand, $900 cost per order, $18 holding cost per unit per year, a 10-day lead time, a daily deviation of 8 units and a 95% service level.

EOQ: √(2 × 12,000 × 900 ÷ 18) = 1,095 units per order.

Daily demand: 12,000 ÷ 365 = 32.9 units. Z factor at 95%: 1.645.

Safety stock: 1.645 × 8 × √10 = 42 units.

ROP: 32.9 × 10 + 42 = 370 units — when inventory touches that level, you trigger the order.

Frequency: 12,000 ÷ 1,095 = 11 orders per year, one every 33 days. The policy's total annual cost: $20,467.

Reading: ordering 1,095 units whenever inventory falls to 370 sustains 95% coverage through the lead time at the lowest combined cost of ordering and storing.

How to interpret the result

The EOQ is a flat optimum: the total-cost curve is insensitive near the minimum, so rounding the lot to full boxes or pallets barely changes cost. What is sensitive is the ROP: triggering it late translates directly into stockouts.

Safety stock buys coverage with capital: raising the service level makes the buffer more expensive non-linearly, because the Z factor grows ever faster near 100%. Choose service levels per SKU based on the real cost of a stockout, not as a uniform policy.

If the engine reports an MOQ penalty, that number is your negotiation argument with the supplier: it is what their minimum costs you per year versus your optimal lot.

Limitations and when not to use it

  • The EOQ model assumes relatively stable, continuous demand: with strong seasonality, compute per season or feed demand from the seasonal projection.
  • It assumes constant costs: it does not model volume discounts. If your supplier offers them, compare the total annual cost of each price tier.
  • It is not suited to perishable or short-life products: EOQ ignores expiry and can suggest lots that expire before selling out.
  • The daily deviation you enter defines the buffer: estimating it from a short or atypical period produces unrealistic safety stocks in either direction.
  • A frequent mistake is putting size-dependent costs (per-unit freight) into the cost per order: those belong in unit or holding cost, not the fixed per-order cost.

From theory to calculation

The calculator on this page runs with your numbers — no forms, no login. Scroll up and try it.

Try the calculator

Frequently asked questions

1How do I estimate holding cost if I've never measured it?
Add the annual components: the capital cost of your tied-up money, storage per unit, insurance, and the SKU's shrinkage or obsolescence loss. Express it as money per unit per year — an honest component-based estimate beats omitting it.
2What service level should I enter?
It depends on the cost of running out of that SKU: if customers wait or substitute, moderate levels suffice; if the sale is lost or there are penalties, raise it. The calculator lets you compare several levels' safety stock in seconds.
3Does the ROP work if I only review inventory weekly?
The classic ROP assumes continuous review. With periodic review, trigger the order when, on review day, inventory sits below the ROP plus expected demand until the next review — or fold that interval into the lead time.
4What if my supplier's lead time varies?
Enter its standard deviation in days in the optional field: the engine switches to the robust formula combining demand and lead-time variability. With erratic suppliers, that variability often outweighs demand's.
5Should I apply this to every SKU?
Start with the A items: a few SKUs concentrate most of the value. For the long tail, simple policies (periodic order-up-to level) usually cost less than managing an EOQ per item.

Last updated: July 19, 2026

View methodology