Definition: Economic Order Quantity (EOQ) is the ideal order size that minimises the combined cost of placing orders and holding inventory - balancing ordering frequency against storage costs.
Every time you place an order, you pay a fixed cost - admin time, shipping minimums, processing fees. Every unit you hold costs money too - warehouse space, tied-up capital, insurance, and the risk of obsolescence. EOQ finds the order size that minimises the total of these two costs. Order too little too often and you pay more in ordering costs. Order too much too rarely and your holding costs balloon. The right number sits exactly at the point where these two cost curves cross.
EOQ Calculator (Economic Order Quantity) formulas
Classic Wilson formula
Use when: Use for any product with reasonably stable, continuous demand. The most widely used inventory formula.EOQ = √(2 × D × S / H)
EOQ = square root of (2 × Annual demand × Cost per order / Annual holding cost per unit)
| Symbol | Variable | Description |
|---|---|---|
| D | Annual demand(units / year) | Total units expected to sell in a year. Use your Shopify annual sales report for this. |
| S | Cost per order(£ / $) | Fixed cost of placing one purchase order - includes admin time, supplier setup fees, inbound freight, and any per-order processing costs. |
| H | Annual holding cost per unit(£ / $ per unit per year) | Total annual cost of storing one unit. Typically estimated as 20 – 30% of unit cost, covering warehouse rent, capital cost, insurance, and shrinkage. |
Limitation: Assumes constant demand rate and ignores quantity discounts, minimum order quantities, and perishability.
EOQ with quantity discount
Use when: When your supplier offers price breaks at higher quantities. Calculate total annual cost for the standard EOQ and each discount threshold, then choose the lowest.TC(Q) = (D/Q) × S + (Q/2) × H + D × P
Total annual cost = (Annual demand / Order quantity) × Ordering cost + (Order quantity / 2) × Holding cost + Annual demand × Unit price
| Symbol | Variable | Description |
|---|---|---|
| Q | Order quantity being evaluated(units) | Test each candidate quantity - standard EOQ and each discount threshold. |
| P | Unit purchase price at this quantity(£ / $) | Changes at each discount breakpoint - lower price for higher quantities. |
| D | Annual demand(units / year) | Total expected annual sales. |
| S | Cost per order(£ / $) | Fixed ordering cost. |
| H | Holding cost per unit per year(£ / $) | Annual cost to hold one unit in stock. |
Limitation: Requires knowing your exact holding cost rate - often underestimated by ecommerce brands.
Defect-adjusted EOQ
Use when: When you have a known defect, return, or rejection rate from a supplier. Common for brands sourcing from overseas manufacturers.EOQ_adj = √(2 × D × S / (H × (1 − p)))
Adjusted EOQ = square root of (2 × Annual demand × Ordering cost / (Holding cost per unit × (1 − defect rate)))
| Symbol | Variable | Description |
|---|---|---|
| p | Defect / rejection rate(decimal (e.g. 0.05 = 5%)) | Proportion of units in each order that are defective or returned. Increases effective demand because you need to buy more to get the usable quantity you need. |
| D | Annual demand (usable units)(units / year) | Units you need to sell - not including replacements for defects. |
| S | Cost per order(£ / $) | Fixed ordering cost. |
| H | Holding cost per unit per year(£ / $) | Annual holding cost. |
Step-by-step examples
Scenario: “A Shopify electronics brand sells 1,200 units of a product per year. Each order costs £50 to place (admin + freight). Holding cost is £8 per unit per year.”
- 1EOQ = √(2 × 1,200 × 50 / 8)
- 2EOQ = √(120,000 / 8)
- 3EOQ = √15,000 = 122.5 → round to 123 units
- 4Number of orders per year = 1,200 / 123 = ~10 orders
- 5Time between orders = 365 / 10 = ~37 days
Interpretation: Order 123 units roughly every 37 days to minimise your combined ordering and holding costs. Adjust if your supplier has a minimum order quantity.
Scenario: “Supplier offers a 5% discount if ordering 200+ units. Unit price standard: £20. Discounted: £19. Annual demand: 1,200 units. S = £50. H = 30% of unit price.”
- 1Standard EOQ = √(2 × 1,200 × 50 / 6) = √20,000 = 141 units
- 2TC at 141 units: (1,200/141)×50 + (141/2)×6 + 1,200×20 = £425 + £423 + £24,000 = £24,848
- 3TC at 200 units (discount): (1,200/200)×50 + (200/2)×5.70 + 1,200×19 = £300 + £570 + £22,800 = £23,670
- 4Savings from discount: £24,848 − £23,670 = £1,178 per year
Interpretation: The quantity discount makes ordering at the threshold more economical than the pure EOQ. Always compare total annual cost including purchase price, not just ordering and holding costs.
Typical holding cost rates by product category
| Category | Benchmark | Note |
|---|---|---|
| General merchandise / non-perishable | 20 – 30% of unit cost per year | Standard assumption for most ecommerce products. |
| Electronics | 25 – 35% of unit cost per year | Higher due to obsolescence risk and rapid depreciation. |
| Fashion / seasonal items | 30 – 40% of unit cost per year | High markdown risk at end of season inflates effective holding cost. |
| Perishable goods | 50%+ of unit cost per year | Expiry risk makes overordering very costly. EOQ favours frequent small orders. |
| Low-value, stable items | 15 – 20% of unit cost per year | Stationary, consumables. EOQ usually suggests larger, less frequent orders. |
Holding cost includes capital cost (interest or opportunity cost of tied-up cash), storage cost, insurance, shrinkage, and obsolescence risk. Many brands underestimate this at 10% when the true rate is closer to 25%.
Critical pitfalls to avoid
Using revenue instead of unit count for D
EOQ requires a unit quantity for D, not a monetary value. Plugging in annual revenue produces a meaningless result.
Underestimating holding cost
Many merchants estimate H at warehouse rent only and ignore the opportunity cost of capital, insurance, and obsolescence. A 10% H estimate when reality is 25% leads to over-ordering.
Ignoring minimum order quantities
If your supplier's MOQ is 500 units but your EOQ is 120, the formula is irrelevant in its pure form. You'll always order at MOQ.
Using monthly demand instead of annual
Entering D = 100 (monthly units) and H = £2 (annual holding cost) creates a unit mismatch. EOQ formula requires consistent time units.
Not updating EOQ as demand changes
EOQ is sensitive to demand. If your annual sales grow 40%, your optimal order quantity changes significantly. A static EOQ from two years ago may be wildly wrong today.
Shopify-specific tips
- Pull annual demand from Shopify Analytics > Sales by product over your chosen 12-month period. Use units sold, not revenue.
- Ordering cost (S) for Shopify brands typically includes: time to create and send a PO, any bank transfer or payment processing fees, and a portion of inbound freight if not built into unit price.
- Holding cost estimation: if you use a 3PL, check your monthly storage invoice and divide by average units stored to get a per-unit-per-month rate. Multiply by 12 for annual H.
- Shopify does not calculate EOQ natively. If you use an inventory planning app, check whether it factors in your ordering and holding costs or simply uses a demand-based reorder quantity.
- For seasonal Shopify brands, consider calculating a separate EOQ for peak season (using peak D) and off-season. One EOQ across the full year will under-order in peak periods.
Frequently asked questions
Related resources