Economic Order Quantity (EOQ): Formula and Calculator

TL;DR

EOQ = sqrt(2DS/H), where D is annual demand, S is ordering cost per order, and H is holding cost per unit per year. The result is the order quantity that minimizes total inventory cost. Use it for stable-demand SKUs and pair it with your reorder point to complete your replenishment logic.

The economic order quantity (EOQ) formula gives you the exact order size that minimizes total inventory cost. Order too little and you’re placing frequent orders, each with its own processing and shipping overhead. Order too much and you’re tying up cash in stock that sits on shelves for months. EOQ finds the balance between those two extremes.

The carrying cost of inventory typically runs 20 to 30% of inventory value per year when you account for storage, insurance, capital, and obsolescence. For a warehouse carrying $500,000 in inventory, that’s $100,000 to $150,000 annually just to keep stock on hand. Getting order quantities right has a direct impact on that number, which is why EOQ remains a foundational tool in ecommerce inventory management.

The EOQ formula

How do you calculate economic order quantity?

EOQ = sqrt(2 x D x S / H)

The three inputs are:

  • D: annual demand in units (how many you sell in a year)
  • S: ordering cost per order (the fixed cost each time you place a purchase order: admin time, shipping setup, receiving labor)
  • H: holding cost per unit per year (storage, insurance, tied-up capital, typically 20-30% of unit cost)

The formula was first published in 1913 by Ford W. Harris and remains one of the most widely used models in supply chain management. The ASCM Supply Chain Dictionary defines it as the order quantity that minimizes the sum of annual ordering costs and annual holding costs.

To run the numbers on your own SKUs without a spreadsheet, plug your values into our EOQ calculator.

Worked example

Suppose a SKU has the following characteristics:

  • Annual demand: 2,400 units
  • Ordering cost: $50 per order
  • Unit cost: $20, holding cost rate: 25%, so H = $5 per unit per year

EOQ = sqrt(2 x 2400 x 50 / 5) = sqrt(480,000 / 5) = sqrt(96,000) = 310 units

At this order quantity:

  • Orders per year: 2,400 / 310 = approximately 7.7 orders
  • Annual ordering cost: 7.7 x $50 = $385
  • Average inventory held: 310 / 2 = 155 units
  • Annual holding cost: 155 x $5 = $775
  • Total annual cost: roughly $1,160

If you ordered 100 units instead, you’d place 24 orders per year ($1,200 in ordering cost alone) and your holding cost drops to $250, for a total of $1,450, or 25% more expensive than the EOQ solution.

Sensitivity analysis: how wrong inputs affect the result

How sensitive is EOQ to input errors?

One useful property of EOQ is that it is relatively forgiving of input errors. Because the formula uses a square root, a 10% error in any single input shifts the EOQ by only about 5%. The table below shows how different levels of input error propagate through the calculation:

Input errorEOQ shiftTotal cost impact
10%~5%Less than 1%
25%~12%About 1.5%
50%~22%About 6%

This means you don’t need perfectly precise holding or ordering cost estimates to benefit from EOQ. Even rough figures get you close to the optimum. That said, the biggest risk is underestimating your carrying cost of inventory, because that pushes EOQ higher and ties up more cash than intended.

When EOQ works well

EOQ is most reliable when these conditions hold:

  • Demand is reasonably stable (not heavily seasonal)
  • Ordering costs are consistent per order
  • Lead times are predictable
  • The SKU doesn’t spoil or go out of style quickly

For high-volume A items identified in your ABC analysis, EOQ gives you a defensible order quantity to work from. For C items with irregular demand, a simpler min/max rule is usually more practical.

What EOQ doesn’t tell you

EOQ calculates how much to order. It doesn’t tell you when to order. That’s what your reorder point formula handles. The two formulas are meant to work together: reorder point fires the trigger, EOQ sets the quantity.

EOQ also assumes zero safety stock in its base form. In practice, you’ll hold a buffer above zero, calculated with your safety stock formula, to absorb demand spikes and supplier delays. Your total average inventory on hand becomes (EOQ / 2) + safety stock, so both formulas feed directly into your carrying cost projections.

Recalculating EOQ

How often should you recalculate EOQ?

Most teams set EOQ once and forget it. That’s a mistake. A 2020 ASCM (formerly APICS) benchmarking study found that companies reviewing replenishment parameters at least quarterly had 12% lower average inventory than those reviewing annually. Revisit your EOQ calculations when:

  • A supplier changes minimum order quantities or shipping fees
  • Demand volume shifts by more than 20% (seasonal ramp, new marketing channel, catalog changes)
  • You renegotiate storage costs or move to a new facility
  • Your inventory turnover ratio drops significantly, which often signals order quantities are too large

A quarterly review as part of your replenishment planning cycle keeps EOQ values from drifting stale, and inventory software for small business can flag turnover shifts that signal when a recalculation is overdue. Tools like Upzone can surface turnover shifts automatically so you know when a recalculation is overdue.

Quick Reference

EOQ inputs and typical ranges:

InputVariableTypical rangeNotes
Annual demandDVaries by SKUUse last 90-180 days, annualized
Ordering costS$25-$150/orderInclude admin, receiving, and freight setup
Holding cost rate(see H)20-30% of unit cost/yearStorage + insurance + capital cost
Holding cost (H)HRate x unit costRecalculate when unit cost changes
  • EOQ balances two costs: as order size increases, holding cost rises but ordering cost falls
  • At EOQ, annual ordering cost equals annual holding cost; that’s the formula’s defining property
  • Orders per year = D / EOQ; use this to plan PO volume with suppliers
  • Always pair EOQ with a reorder point to complete your replenishment logic
  • Factor in safety stock when projecting true average inventory on hand
  • For SKUs with unstable demand, run EOQ on a smoothed 90-day demand figure rather than a single-month spike

Inventory errors compound when teams rely on memory and manual checks. Start a free Upzone trial to run scan-verified workflows with live stock accuracy.

Start free trial →