The EOQ formula, and where it breaks for dated stock

One square root balances ordering cost against holding cost — and says nothing at all about how long the goods stay sellable.

By Andres Rodriguez Rey Updated August 24, 2026 6 min read

Order too often and you pay for the ordering: the admin, the inbound handling. Order too rarely and you pay to hold what arrives. Economic order quantity is the one line of arithmetic that finds the bottom of those two costs added together.

This page covers the EOQ formula with the square root shown, a worked example on one SKU, what each of the three inputs actually means when you go looking for it, and the assumption that makes the answer unsafe for anything with a date on it.

What is the economic order quantity?

The definition of economic order quantity is the order size at which ordering cost and holding cost are lowest combined. Ordering cost falls as you buy in bigger quantities; holding cost rises. EOQ is the quantity where those two curves cross, and it answers how much to order rather than when to order.

Placing an order costs roughly the same whether it is for a hundred units or ten thousand, so buying in bulk spreads that fixed cost thinner. Holding works the other way. Every unit sitting in your space costs capital, storage and risk for as long as it sits. EOQ is not a target to hit exactly. It is the point past which one cost grows faster than the other shrinks.

What is the EOQ formula?

To calculate EOQ, take the square root of two times annual demand times cost per order, divided by holding cost per unit per year. Written out that is √(2DS ÷ H), where D is annual demand in units, S is the cost of placing one order, and H is what holding a single unit for a year costs you.

A hot-sauce line selling 24,000 units a year
InputValueWhere it comes from
Annual demand (D)24,000 unitsUnits shipped over the last twelve months
Cost per order (S)60Admin, inbound handling and inspection for one order
Holding cost per unit per year (H)3Your carrying rate multiplied by unit cost
2DS ÷ H960,0002 × 24,000 × 60, divided by 3
EOQ980 units√960,000, rounded — about 24 orders a year

So what do you actually do on Monday? You were ordering this line every eight weeks because that is when the supplier calls. The arithmetic says order roughly a thousand units about every fortnight instead. That is the decision: not the number 980, but the shift from a two-month rhythm to a two-week one. And the curve near the bottom is flat enough that 900 or 1,100 changes the cost by under a per cent, so round to whatever the case size makes convenient and stop thinking about it.

What do the three inputs actually mean?

Annual demand is units shipped, not units forecast. Cost per order is only the cost that changes when you place one more order. Holding cost per unit per year is your carrying rate multiplied by what the unit cost you. Get the middle one wrong and the answer moves a long way.

Cost per order is the input most often mis-measured, usually by loading in the salary of whoever does the purchasing. That salary is paid whether they place forty orders or fifty, so it does not belong here. What belongs is the part that genuinely scales with order count: inbound handling, receiving and inspection time, any per-shipment freight minimum or customs charge. It is normally a smaller figure than people expect, and because it sits under a square root, halving it moves EOQ by only about thirty per cent.

Holding cost per unit per year is the other half, and it is where the four components of carrying cost earn their keep: capital, storage, service and risk, expressed as a rate against unit cost. The risk component is the one that matters most here, because for anything perishable it is not a small percentage — and understating it is exactly what produces an EOQ that quietly recommends more stock than you can sell.

Where does EOQ break for dated stock?

EOQ assumes demand is steady and the goods keep indefinitely. Neither holds for food, drink or anything carrying a code date. The formula has no term for the selling window at all, so it will happily return a quantity that ages out on your shelf, and the arithmetic looks correct while it does it.

The failure is easy to reproduce. Take the same SKU and understate holding cost at 0.5 per unit per year instead of 3 — the error you get from counting only the storage line and leaving risk out. EOQ rises to about 2,400 units, which at this demand is more than a month of cover. If the goods arrive with thirty days of sellable life left, that order contains a write-off before it is unpacked, and nothing in the formula flags it.

The fix is a ceiling rather than a different formula. Work out EOQ, convert it into days of cover at current demand, then compare that against the life remaining when the delivery actually lands. Where cover exceeds the window, the honest answer is smaller and more frequent orders — the same ceiling that governs the reorder point, and the same mechanism behind stock that stops moving before anyone notices. Seasonality breaks the steady-demand assumption the same way: one annual figure spread evenly across twelve months describes a business that does not exist.

What should you do next?

One pass per fast-moving SKU, then leave it alone.

Get the inputs honestly

  • Take annual demand from units actually shipped.
  • Count only the order costs that change with order count.
  • Set holding cost as a carrying rate times unit cost, risk included.

Apply the ceiling

  • Convert EOQ into days of cover at current demand.
  • Compare that against the life remaining on arrival.
  • Where cover exceeds the window, order smaller and more often.

Keep it proportionate

  • Run it where order volume justifies the arithmetic.
  • Treat the answer as an order of magnitude, not a target.
  • Recalculate when demand or supplier terms actually move.

Frequently asked questions

Is EOQ still useful if my demand is not steady?

As a sense check, yes; as a standing order quantity, no. Run it on a recent period rather than a full year, and treat the answer as the rough size an order should be. If demand swings seasonally, the honest move is to recompute for the season you are actually in rather than to average the year.

What is the difference between EOQ and reorder point?

EOQ answers how much to order. Reorder point answers when to place that order: demand during lead time plus safety stock. They are two halves of the same decision, and you need both — EOQ alone tells you nothing about the moment to act.

Do I need EOQ if my supplier sets minimum order quantities?

It is still worth computing, because it tells you what the minimum is costing you. If EOQ comes out well below the minimum, the gap is a real holding cost you are absorbing to trade with that supplier, and it is a number worth having in the conversation about terms.

Size the order against the selling window

Import your SKUs, let movement history set demand, and see days of cover beside the time each line has left.

Start your 45-day trial — no card