The EOQ formula
EOQ = √(2 × D × S ÷ H)
- D = annual demand in units.
- S = cost per order: the fixed cost of placing and receiving one order, such as admin time, delivery charges and goods-in inspection. It does not include the price of the goods.
- H = holding cost per unit per year: the cost of keeping one unit in stock for a year, including capital tied up, storage, insurance, damage and obsolescence.
H is often given as a percentage of the unit cost. Holding rates of 20 to 30% a year are commonly used, but it is worth estimating your own.
Step by step
A retailer sells 4,800 skillet sets a year. Each order costs $75 to place and receive. A set costs $40, and holding stock costs 25% of its value per year, so H = $40 × 25% = $10.00 per unit per year.
EOQ = √(2 × 4,800 × 75 ÷ 10) = √72,000 = 268.33 units. In Excel: =SQRT(2*B2*B3/B6). That means about 17.9 orders a year.
Worked example: EOQ for a best-selling skillet set
The upper block calculates the EOQ. The lower block tests five order sizes with the same inputs.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Inputs | Value | ||
| 2 | Annual demand D (units) | 4,800 | ||
| 3 | Cost per order S ($) | 75.00 | ||
| 4 | Unit cost ($) | 40.00 | ||
| 5 | Holding rate (% of unit cost per year) | 25% | ||
| 6 | Holding cost per unit H | 10.00 | ||
| 7 | EOQ (units) | 268.33 | ||
| 8 | Orders per year | 17.89 | ||
| 9 | Annual ordering cost | 1,341.64 | ||
| 10 | Annual holding cost | 1,341.64 | ||
| 11 | Total annual cost | 2,683.28 | ||
| 12 | ||||
| 13 | Order quantity Q | Ordering cost | Holding cost | Total cost |
| 14 | 100 | 3,600.00 | 500.00 | 4,100.00 |
| 15 | 200 | 1,800.00 | 1,000.00 | 2,800.00 |
| 16 | 270 | 1,333.33 | 1,350.00 | 2,683.33 |
| 17 | 400 | 900.00 | 2,000.00 | 2,900.00 |
| 18 | 600 | 600.00 | 3,000.00 | 3,600.00 |
- B6
=B4*B5Holding cost per unit per year - B7
=SQRT(2*B2*B3/B6)EOQ - B9
=B2/B7*B3Ordering cost - B10
=B7/2*B6Holding cost on the average stock - B14
=$B$2/A14*$B$3Ordering cost for any Q - D14
=B14+C14Total cost for any Q
Proof: both costs are equal at the EOQ
Annual ordering cost = number of orders × cost per order = D ÷ Q × S. Annual holding cost = average stock × H = Q ÷ 2 × H. The average stock is half the order quantity, because stock falls from Q to zero between deliveries. At the EOQ the two are exactly equal, $1,341.64 each, and the total is $2,683.28. That equality is a quick way to check your formula: if the two costs differ at your "EOQ", something is wrong.
The cost curve is flat near the minimum
The table below the inputs calculates the total cost for five order sizes. Ordering 100 units at a time costs $4,100 a year, and 600 units at a time costs $3,600. But rounding the EOQ to a convenient 270, a full pallet perhaps, costs $2,683.33, only $0.05 more than the exact optimum. Close to the minimum the curve is very flat. So use the EOQ as a guide and round it to pack sizes, pallet loads or supplier minimums without worrying.
How the EOQ reacts to its inputs
Because of the square root, the EOQ changes much less than its inputs. If demand doubles to 9,600 sets, the EOQ does not double: it rises to 379, about 41% more. If you cut the ordering cost in half, for example with an online ordering portal, the EOQ falls to 190, so you order smaller batches more often and hold less stock. A higher holding rate works in the same direction. That is the logic behind lean inventory: make each order cheap, and small frequent orders become the economic choice.
When to order: the reorder point
EOQ tells you how much to order, not when. For that you need the reorder point: demand during the supplier's lead time plus safety stock. With 240 selling days a year, demand is 20 sets a day. If delivery takes 6 days, reorder when stock falls to 120 sets plus whatever safety stock you hold against demand spikes and late deliveries.
Assumptions behind EOQ
The classic model assumes steady, predictable demand, a fixed cost per order, a constant unit price and immediate, complete deliveries. Real life bends these rules: seasonal demand, quantity discounts and capacity limits all change the answer. For a quantity discount, compare the total cost including the purchase price at the EOQ and at each discount break, and pick the lowest.
Common mistakes
- Mixing time units. If demand is monthly, the holding cost must be monthly too. Annual figures for everything are safest.
- Using the unit price as the ordering cost. S is the fixed cost per order, not the cost of the goods.
- Holding cost on the full order quantity instead of the average stock (Q ÷ 2).
- Forgetting the square root, or putting it around only part of the formula. In Excel, keep everything inside SQRT( ).
- Treating the EOQ as exact. The inputs are estimates and the curve is flat, so round to practical quantities.
- Never updating the inputs. Demand, order costs and interest rates change. Recalculate the EOQ at least once a year for your main items.
Frequently asked questions
What does EOQ stand for?
Economic order quantity: the order size that minimises the sum of ordering costs and holding costs per year.
How do I calculate EOQ in Excel?
With annual demand in B2, cost per order in B3 and holding cost per unit per year in B6, use =SQRT(2*B2*B3/B6).
Why are ordering and holding costs equal at the EOQ?
Ordering cost falls and holding cost rises as the order size grows. The total is lowest where the two lines cross, which is the point where they are equal.
Does EOQ work with quantity discounts?
Not on its own. Calculate the total annual cost including the purchase price at the EOQ and at each discount quantity, then choose the cheapest option.