How to Calculate Economic Order Quantity for Your Shopify Store
You know when to reorder (reorder point) and how much buffer to carry (safety stock). The remaining question is how many units to order each time. Economic Order Quantity is the formula that answers it.
The question after "when": how much
If you have been following this series, you now know when to reorder (the reorder point) and how much buffer to carry (safety stock). The remaining question is: when the reorder point fires, how many units should you actually order?
The gut-feel answer is usually "enough to last a while" or "whatever the supplier's minimum is." Both of those can work, but neither is optimized. Order too much and you tie up cash in inventory that sits on shelves. Order too little and you pay more in shipping, processing, and supplier setup costs because you are placing orders more frequently.
Economic Order Quantity (EOQ) is the formula that balances those two costs to find the order size that minimizes your total inventory cost per year.
The formula
EOQ = sqrt( (2 x D x S) / H )
Where:
- D = Annual demand (units per year)
- S = Ordering cost per order (the fixed cost of placing and receiving one purchase order)
- H = Holding cost per unit per year (the cost of storing one unit for a year)
- sqrt = square root
The formula finds the point where ordering costs and holding costs are equal. That is the mathematical sweet spot: you are not ordering so frequently that ordering costs dominate, and you are not ordering so much at once that holding costs dominate.
What counts as ordering cost
Ordering cost is the fixed expense you incur every time you place a purchase order, regardless of how many units are on it. This includes:
- Shipping and freight. If your supplier charges a flat rate per shipment (or if there is a significant base cost before per-unit shipping kicks in), that is an ordering cost.
- Administrative time. The time you spend creating the PO, communicating with the supplier, receiving the goods, and updating your inventory records. If that takes you 30 minutes and your time is worth $50/hour, that is $25 per order.
- Payment processing fees. Some suppliers charge wire transfer fees or have minimum invoice processing costs.
- Inspection and receiving. If you inspect incoming goods, the labor cost of that process is partly fixed per shipment.
For most small Shopify stores ordering from a handful of suppliers, the ordering cost is dominated by shipping and your own time. A reasonable starting estimate is $25 to $75 per order if you are doing domestic purchasing, and $100 to $300 or more for international orders with freight, customs, and longer receiving processes.
What counts as holding cost
Holding cost is the annual cost of keeping one unit in inventory. This includes:
- Storage. Warehouse rent or 3PL storage fees, allocated per unit. If you pay $2,000/month for warehouse space that holds 5,000 units, your storage cost is roughly $4.80 per unit per year.
- Cost of capital. The money tied up in inventory could be earning a return elsewhere. If your cost of capital is 10% and a unit costs $15, the capital cost is $1.50 per unit per year.
- Insurance and shrinkage. Inventory insurance premiums, plus expected losses from damage, theft, or obsolescence.
- Obsolescence risk. Products that go out of style, expire, or become unsellable. This is highly product-dependent.
A common rule of thumb is that holding cost is 20% to 30% of the unit cost per year. If a product costs you $20 wholesale, the holding cost is roughly $4 to $6 per unit per year. This is a reasonable starting point if you do not have detailed warehouse cost data.
A worked example
Let's say you sell a phone case with these characteristics:
- Annual demand: 4,380 units (12 units/day x 365 days)
- Ordering cost: $50 per order (shipping plus your time)
- Unit cost: $8 wholesale
- Holding cost: 25% of unit cost = $2 per unit per year
EOQ = sqrt( (2 x 4,380 x 50) / 2 )
EOQ = sqrt( 438,000 / 2 )
EOQ = sqrt( 219,000 )
EOQ = 468 units
The mathematically optimal order size is 468 units. At 12 units per day, that is about 39 days of supply per order, meaning you would place roughly 9 to 10 orders per year.
Now compare two alternatives:
| Strategy | Order Size | Orders/Year | Annual Ordering Cost | Avg Inventory | Annual Holding Cost | Total Cost |
|---|---|---|---|---|---|---|
| Small, frequent | 150 units | 29 | $1,460 | 75 units | $150 | $1,610 |
| EOQ | 468 units | 9 | $468 | 234 units | $468 | $936 |
| Large, infrequent | 1,000 units | 4 | $219 | 500 units | $1,000 | $1,219 |
The EOQ order size saves $674/year compared to the small-and-frequent approach, and $283/year compared to the large-and-infrequent approach. For a single SKU. Multiply that across your catalog and the savings add up.
The reality check: when EOQ gets overridden
EOQ gives you the theoretically optimal order size. In practice, several real-world constraints often override it:
Supplier minimums (MOQs). If your supplier requires a minimum order of 500 units and your EOQ is 468, you are ordering 500. If the MOQ is 1,000, EOQ is irrelevant for that supplier. For many Shopify stores buying from overseas manufacturers, MOQs are the binding constraint, not EOQ.
Case pack quantities. Your supplier ships in cases of 24. Your EOQ is 468, so you round to 480 (20 cases). This is a minor adjustment and usually fine.
Freight breakpoints. Shipping costs often have breakpoints. A half-container might cost $2,000 and a full container $3,200. If your EOQ fills 60% of a container, it might be cheaper to order a full container and accept the higher holding cost, because the per-unit freight drops significantly.
Cash flow constraints. EOQ might say order 468 units at $8 each ($3,744), but if your cash flow only supports a $2,000 inventory purchase this month, you order what you can afford. Cash flow trumps theory.
Seasonality. EOQ assumes constant demand. If you sell 20 units/day in November and 5 units/day in February, a single EOQ calculated from annual averages will be wrong for both months. You can recalculate EOQ using seasonal demand rates, but at that point you are already doing more sophisticated planning.
When EOQ matters and when it does not
EOQ matters most when:
- Your ordering costs are significant (international freight, complex receiving processes)
- You have flexibility in order size (no binding MOQs)
- You carry products with meaningful holding costs (expensive items, perishable goods, fashion items with obsolescence risk)
- You order frequently enough that the difference between order sizes compounds over the year
EOQ matters least when:
- Your supplier has a fixed MOQ that exceeds your EOQ anyway
- Your ordering costs are trivial (domestic supplier, free shipping over a low threshold)
- You only order from a supplier once or twice a year regardless
- Your products are low-cost and storage is cheap, so holding cost is negligible
For many small Shopify stores, the honest answer is that MOQ is the binding constraint for most SKUs, and EOQ is more of a sanity check than a primary decision driver. But for your highest-volume SKUs where you have ordering flexibility, EOQ can meaningfully reduce your total inventory cost.
How EOQ fits into the weekly workflow
In our reorder point guide, step 5 of the weekly workflow says: "For SKUs that need ordering, use your Economic Order Quantity or supplier MOQ to determine how much to order."
Here is how that works in practice:
- Your reorder point fires for a SKU (on-hand dropped below the trigger).
- You look up the EOQ for that SKU.
- You compare EOQ to the supplier's MOQ. Order whichever is larger.
- You adjust for case pack quantities or freight breakpoints if applicable.
- That is your order quantity.
If you have not calculated EOQ and do not want to, the fallback is simple: order the supplier's MOQ, or order enough to cover your lead time plus a reasonable buffer. You will not be optimized, but you will not be in trouble either.
Setting up EOQ in a spreadsheet
The inputs you need per SKU:
- Annual demand. Average daily demand (which you already have from your safety stock calculations) multiplied by 365.
- Ordering cost. This is usually per supplier, not per SKU. If all your SKUs from Supplier A ship together, the ordering cost is the cost of placing one order with Supplier A.
- Holding cost per unit. Unit cost multiplied by your holding cost percentage (start with 25% if you do not have detailed data).
- The formula. One cell per SKU: =SQRT((2 annual_demand ordering_cost) / holding_cost)
- A practical minimum. Add a column that shows MAX(EOQ, MOQ) so you always see the actual order quantity you should use.
The entire setup takes 10 minutes if you already have your demand data in place from the safety stock and reorder point calculations.
The three formulas together
With safety stock, reorder point, and EOQ, you now have the complete planning model:
- Safety stock tells you how much buffer to carry for each SKU
- Reorder point tells you when to place the order
- EOQ tells you how much to order (subject to MOQ and practical constraints)
These three numbers, calculated per SKU, are the foundation of every inventory planning system from a $79 spreadsheet to a $100,000 ERP. The math is the same. The difference is in the automation layer: how the data gets in, how the output gets acted on, and how many SKUs you can manage before the manual process breaks down.
For a store with under 500 SKUs and a handful of suppliers, the spreadsheet handles this comfortably. The formulas are set once. The weekly workflow is paste, review, order. Ten minutes every Monday.
Ready to build your reorder plan?
SkuClerk is a plug-and-play spreadsheet that does everything described above — safety stock, reorder points, EOQ, and three forecast modes — for $79, one time.
Get SkuClerk — $79