Skip to content
Free tools

EOQ calculator: what is the cheapest order size?

The economic order quantity (EOQ) is the order size that minimises the total of ordering and holding costs: the square root of 2 × annual demand × cost per order ÷ holding cost per unit per year. With demand of 12,000 units, 50 per order and a holding cost of 3 per unit, EOQ is about 632 units.

Calculate your economic order quantity

units

Units used or sold per year

Admin, delivery and receiving cost of one order

Storage, insurance, capital cost and shrinkage

days
units
days

Results

Economic order quantity
632 units
Orders per year
19
Days between orders
19.2 days
Annual ordering cost
948.68
Annual holding cost
948.68
Total annual inventory cost
1,897.37

Runs in your browser. Nothing you type is sent to a server.

EOQ formula

Large orders save on ordering costs but tie up more stock; small orders do the opposite. EOQ is the point where the two annual costs are equal and their sum is lowest.

Economic order quantity
EOQ = √(2 × D × S / H)
Orders per year
N = D / EOQ
Annual ordering cost
N × S
Annual holding cost
(EOQ / 2) × H
Reorder point
ROP = (D / days per year) × Lead time + Safety stock

D = annual demand in units, S = cost per order, H = holding cost per unit per year (or unit cost × holding rate). The purchase price itself does not change EOQ unless you get volume discounts.

Worked example: a distributor of filters

A distributor sells 12,000 filters a year. Each purchase order costs 50 to place, receive and pay. A filter costs 15 and holding it for a year (storage, insurance, the cost of the money tied up) costs 20% of that, or 3.

EOQ = √(2 × 12,000 × 50 / 3) = √400,000 ≈ 632 filters. That means about 19 orders a year, one every 19 days. Ordering and holding costs are both about 949, for a total of about 1,897 a year. With a 7-day lead time and 100 filters of safety stock, reorder when stock falls to 12,000 / 365 × 7 + 100 ≈ 331 filters.

Annual inventory cost for different order sizes
Order sizeOrders per yearOrdering costHolding costTotal cost
300402,0004502,450
632 (EOQ)199499481,897
1,000126001,5002,100
2,00063003,0003,300

Assumptions behind the result

  • Demand is known and steady through the year.
  • Each order arrives in full at once, after a known lead time.
  • Cost per order and holding cost per unit are constant; there are no quantity discounts.
  • Stockouts are not allowed, so safety stock covers variation in demand and lead time.
  • One item at a time: shared delivery costs across items are not modelled.

How do you estimate ordering and holding costs?

Ordering cost is everything you spend because an order exists, regardless of its size: purchasing staff time, delivery charges per shipment, goods-in inspection and paying the invoice. Divide the annual cost of these activities by the number of orders you placed.

Holding cost is usually expressed as a yearly percentage of the item's cost, typically 15% to 30%: the interest you pay or forgo on the money tied up, warehouse space, insurance, handling, shrinkage and obsolescence. Perishable or fashion items sit at the high end.

Why the total cost curve is flat near EOQ

Total cost changes slowly around the optimum. In the example, ordering 500 or 800 filters instead of 632 raises annual cost by only about 3%. That means you can round EOQ to a case size, pallet or supplier minimum without losing much.

It also means rough cost estimates are good enough. If your holding cost is really 4 instead of 3, EOQ moves from 632 to 548, and total cost at the old quantity is only about 1% higher than at the new one.

When EOQ does not fit

EOQ is a starting point for stable, independent demand. Adjust it or use another method when:

  • Suppliers offer quantity discounts: compare total cost including the purchase price at each price break.
  • Demand is seasonal or lumpy: plan orders per period instead.
  • The item is a component of something you manufacture: use material requirements planning (MRP) from the bill of materials.
  • Shelf life is short: cap the order at what you can sell before expiry.

How to calculate economic order quantity

  1. 1

    Estimate annual demand

    Use last year's units sold or used, adjusted for expected growth.

  2. 2

    Work out the cost per order

    Add the fixed cost of placing, receiving and paying for one order.

  3. 3

    Work out the holding cost

    Estimate the cost of keeping one unit for a year, or multiply the unit cost by an annual holding rate.

  4. 4

    Apply the formula

    Multiply 2 × demand × cost per order, divide by holding cost and take the square root.

  5. 5

    Set a reorder point

    Multiply daily demand by the supplier lead time and add safety stock.

FAQ

Frequently asked questions

What does EOQ tell you?

EOQ tells you how many units to order each time so that the yearly cost of placing orders plus the yearly cost of holding stock is as low as possible. At EOQ the two costs are equal.

Does the purchase price affect EOQ?

Only through the holding cost. A more expensive item costs more to hold, which lowers EOQ. The purchase price itself is the same whatever the order size unless the supplier gives quantity discounts.

What is the difference between EOQ and the reorder point?

EOQ answers how much to order; the reorder point answers when to order. The reorder point is demand during the supplier's lead time plus safety stock.

How much safety stock should I hold?

Enough to cover the gap between average and peak demand during the lead time. A common rule is (maximum daily use × maximum lead time) minus (average daily use × average lead time).

Is EOQ still useful for small businesses?

Yes, as a sanity check. Many small businesses order far too often or far too much by habit. Even rough cost estimates show whether you are near the optimum, and the total cost curve is flat enough that close is good enough.

More free calculators

All free tools

Get these numbers from your real books

Ledgeriano computes break-even, 19 financial ratios and budget variances from your posted entries, for every business you run.