EOQ is a 100-year-old formula that tells you exactly how much to order each time you restock — minimising the combined cost of ordering too often and holding too much. Here is how to apply it to your Shopify store.
Every time you place a purchase order, you are making a trade-off.
Order too little, too often: you pay more per unit, spend hours managing suppliers, and risk stockouts between orders.
Order too much, too rarely: you tie up working capital, fill warehouse space, and watch carrying costs eat your margins while stock sits idle for months.
Economic Order Quantity (EOQ) is the formula that finds the exact middle point — the order size that minimises your total inventory cost.
EOQ is the optimal number of units to order each time you restock a SKU, given three inputs:
The EOQ Formula:
EOQ = √(2DS ÷ H)
That's it. Square root of (2 × annual demand × ordering cost) divided by holding cost per unit per year.
EOQ minimises the sum of ordering costs and holding costs. At the EOQ, the total cost of ordering is equal to the total cost of holding — that intersection is the mathematical minimum of your combined inventory cost.
You sell a product at 1,200 units per year (100/month). Each time you place an order, it costs you £50 in admin time, supplier communication, and receiving labour. The product costs £12 to buy, and your holding cost is 25% of purchase cost per year — so £3 per unit per year.
EOQ = √(2 × 1,200 × 50 ÷ 3) = √(120,000 ÷ 3) = √40,000 = 200 units
Your optimal order quantity is 200 units. At this quantity, you place 6 orders per year (1,200 ÷ 200), and your total annual inventory cost is minimised.
If you had been ordering 400 units (to "save on shipping"), your holding cost would be twice as high while your ordering frequency saving was marginal. If you had been ordering 100 units, you would place 12 orders per year — each with its own admin overhead — while gaining very little in holding cost reduction.
Holding cost is the input merchants most often get wrong — usually because they underestimate it.
Holding cost per unit per year = unit cost × holding rate
A realistic holding rate includes:
| Component | Typical Rate |
|---|---|
| Warehouse rent / storage fees | 5–8% |
| Insurance | 1–2% |
| Obsolescence / shrinkage risk | 2–5% |
| Opportunity cost of tied-up capital | 5–10% |
| Handling and labour | 2–3% |
| Total | 15–28% |
Most merchants who have done this calculation are surprised. A 25% holding rate on a £20 product means it costs you £5 per unit per year just to keep it in stock. Order 500 extras "just in case" and you are paying £2,500 a year to store units that might never sell.
Ordering cost per PO includes everything it costs you to place and receive a single order:
For most small-to-mid Shopify merchants, ordering cost runs £30–£80 per PO when admin time is included at a realistic hourly rate. Many merchants assume it is close to zero and then wonder why their EOQ feels implausibly small.
If you set ordering cost to zero, EOQ = 0, which means "order infinitely small quantities infinitely often." This is the mathematical equivalent of saying admin time has no value — and it leads to unrealistically small recommended order quantities.
EOQ is a powerful baseline, but it assumes:
1. Constant, predictable demand. EOQ assumes you sell the same amount every month. If your product has strong seasonal spikes — selling 300 units in November and 40 in February — a single EOQ calculation will over-order in slow months and under-order in peak ones. Solution: Calculate EOQ separately for peak and off-peak seasons, or use demand forecasting to adjust D dynamically.
2. Instant replenishment. The pure EOQ model ignores lead time. In practice, you need to place your order before you run out. Solution: Combine EOQ (how much to order) with a reorder point calculation (when to order). These are complementary, not competing.
3. No quantity discounts. EOQ ignores supplier pricing breaks. If your supplier offers a 10% discount on orders over 500 units and your EOQ is 200, the discount might make ordering 500 economically worthwhile. Solution: Compare total cost at EOQ vs. the discount threshold quantity. If the discount savings exceed the additional holding cost, take the larger order.
4. Single-product focus. EOQ is calculated per SKU. It does not automatically account for consolidating multiple SKUs into a single PO to save on freight. Solution: Use EOQ as the target quantity per SKU, then consolidate POs to the same supplier where individual SKU EOQ timing is close.
For a store with 100+ SKUs, running EOQ manually is impractical. In practice, you apply it in tiers:
Class A SKUs (top 80% of revenue): Calculate EOQ precisely. These products drive most of your cash flow and over/under-ordering has the highest financial impact.
Class B SKUs: Use a simplified estimate. Group similar products with similar demand patterns and apply a single EOQ to the cluster.
Class C SKUs (bottom 5% of revenue): EOQ is often less relevant here. For very slow movers, the answer is often "order as little as your supplier's MOQ allows" rather than a formula-driven quantity.
The 80/20 rule applies: 20% of your SKUs drive 80% of the value in getting EOQ right. Start with your Class A products and the calculation pays for itself quickly.
EOQ tells you how much to order. Your reorder point tells you when to order.
They work as a pair:
With both set correctly, your replenishment system runs almost automatically: when stock crosses the reorder point, trigger a PO for exactly EOQ units. No guesswork. No over-ordering from anxiety. No stockouts from under-ordering.
EOQ is not just a textbook formula — it is a practical tool that removes guesswork from every purchase order you place.
Calculate your annual demand, your realistic ordering cost (including admin time), and your realistic holding cost (including opportunity cost and obsolescence risk). Plug them into the formula. Use the result as your default order quantity for each SKU.
You will order less than you think you need on slow movers and more frequently than you are comfortable with on fast movers — and that is exactly right. The formula has been optimising inventory costs for over a century. Trust the maths.
CoreCaptain detects phantom stock, sync errors, and inventory discrepancies automatically. 14-day free trial, no credit card required.
Start Free Trial