Tabellab
Business & operations

EOQ formula: an economic order quantity example

Every time you reorder stock you face a trade-off. Big orders mean few orders and little paperwork, but a full warehouse. Small orders keep stock low, but you pay the ordering cost again and again. The economic order quantity (EOQ) is the order size that keeps the total of both costs as low as possible. This guide calculates it in Excel step by step, 268 units in the example, and proves the result with a cost table.

Updated 19 Oct 2026 5 min read By Tabellab team

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.

Worked example: EOQ for a best-selling skillet set
ABCD
1InputsValue
2Annual demand D (units)4,800
3Cost per order S ($)75.00
4Unit cost ($)40.00
5Holding rate (% of unit cost per year)25%
6Holding cost per unit H10.00
7EOQ (units)268.33
8Orders per year17.89
9Annual ordering cost1,341.64
10Annual holding cost1,341.64
11Total annual cost2,683.28
12
13Order quantity QOrdering costHolding costTotal cost
141003,600.00500.004,100.00
152001,800.001,000.002,800.00
162701,333.331,350.002,683.33
17400900.002,000.002,900.00
18600600.003,000.003,600.00
Key formulas
  • 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.

Practise it in a lab

Related guides

Reading is step one. Doing is step two.

Every guide links to a lab where you build the same calculation in an online spreadsheet and get instant feedback.

Open the lab