Blog · Calculator

EOQ Formula Explained
(+ Free EOQ Calculator)

Economic order quantity (EOQ) is the order size that minimises your total ordering and holding costs. The formula, a worked example, a free calculator — and an honest look at where EOQ breaks for ecommerce and what to do about it.

By Replenagise · Updated 11 July 2026 · 7 min read

Formula

The economic order quantity formula

EOQ = √( 2 × D × S ÷ H )

Where D is annual demand in units, S is the fixed cost of placing one order (admin, shipping, handling), and H is the cost of holding one unit for a year (storage, capital, insurance — typically 20–30% of unit cost). The intuition: order in big batches and you pay to warehouse stock you don’t need yet; order in small batches and you pay ordering costs over and over. EOQ is the crossover point where the two cost curves meet — the batch size at which total cost bottoms out.

Calculator

EOQ Calculator

Enter annual demand, the cost of placing one order, and the annual cost of holding one unit.

Economic order quantity245 unitsOrder size that minimises total cost
Orders per year9.8
Days between orders37 days

Holding cost is typically 20–30% of unit cost per year. Round the result to supplier MOQs and case sizes — the cost curve is flat near the minimum.

Worked example: finding the crossover

01

1. Gather the three inputs

A SKU sells 2,400 units a year (D). Each purchase order costs about £50 to place and receive (S). Holding one unit for a year costs £4 in storage and tied-up cash (H).

02

2. Run the formula

EOQ = √(2 × 2,400 × 50 ÷ 4) = √60,000 ≈ 245 units per order. Ordering roughly ten times a year minimises the combined cost.

03

3. Sanity-check the result

At 245 units/order you place ~9.8 orders a year, paying ~£490 in ordering costs and ~£490 holding the average cycle stock (245 ÷ 2 × £4). The two sides balancing is the signature of a correct EOQ.

04

4. Round to reality

Suppliers quote MOQs, carton sizes, and price breaks. EOQ of 245 against a 250 MOQ or a case size of 24? Round to 250 or 240 — the cost curve is flat near the minimum, so small deviations barely matter.

Where EOQ breaks for ecommerce — and what to use instead

EOQ assumes demand is constant and known. Ecommerce demand is neither: seasonality doubles D for a quarter then halves it, trends shift mid-year, and a stockout in your history makes last year’s “demand” an undercount. Feed the formula a stale annual number and it confidently gives you the wrong batch size. MOQs, container consolidation, and supplier price breaks bend the answer further.

The fix is not abandoning the logic — it is feeding it live data. Replenagise forecasts demand per SKU with seasonality and stockout adjustment, then sizes each purchase order from forecast demand over the cover period, supplier lead times, MOQs, and safety stock. You get EOQ’s cost discipline, recalculated continuously, and raised as an actual PO in Shopify or Linnworks rather than a number in a spreadsheet.

Pair EOQ with the reorder point formula (when to order), check the health of your batch sizes with the inventory turnover ratio, or hand the whole job to purchase order software.

EOQ — FAQs

What is economic order quantity?

EOQ is the order size that minimises the sum of ordering costs and holding costs for a SKU. It is calculated as the square root of (2 × annual demand × cost per order ÷ annual holding cost per unit) and marks the point where ordering more often and holding more stock cost the same.

How do you calculate EOQ?

EOQ = √(2DS ÷ H): multiply 2 × annual demand (D) × fixed cost per order (S), divide by the annual holding cost per unit (H), and take the square root. Our calculator above does it instantly — and shows orders per year and time between orders.

What is holding cost in the EOQ formula?

Everything it costs to keep one unit in stock for a year: storage space, capital tied up in the stock, insurance, shrinkage, and obsolescence risk. Most ecommerce businesses land at 20–30% of the unit’s cost price per year.

Does EOQ work for seasonal products?

Not directly — classic EOQ assumes steady demand. For seasonal SKUs, use a demand forecast per period instead of a flat annual figure. Replenagise does this automatically: seasonality-aware forecasts drive order quantities per SKU, with MOQs and lead times layered on top.

Order Quantities From Live Demand, Not Last Year’s Average

Forecast-driven order sizing with MOQs, lead times, and safety stock — raised as real purchase orders in Shopify and Linnworks.

← Back to all articles