inventorypurchasingstrategyamazon-fba

How to Calculate Economic Order Quantity (EOQ) for E-commerce

By ReplenishRadar TeamMarch 3, 20266 min read
U-shaped total cost curve with descending ordering cost and ascending holding cost curves, optimal EOQ point marked with a star

The Problem with Ordering "By Feel"

Most e-commerce sellers order inventory one of two ways: they reorder whatever they ordered last time, or they eyeball current stock and guess. Both approaches leave money on the table -- ordering too much ties up cash and warehouse space, ordering too little means higher per-unit shipping and more frequent reorders.

Economic Order Quantity (EOQ) gives you a formula to find the sweet spot. But the textbook version was designed for factories in the 1910s, not for Shopify and Amazon sellers dealing with casepacks, MOQs, and variable demand. This guide covers the classic formula, where it breaks, and how to adapt it.

The Classic EOQ Formula

EOQ balances two costs that move in opposite directions: ordering costs (go down with larger, less frequent orders) and holding costs (go up with more inventory on hand).

EOQ = sqrt((2 * D * S) / H)

Where D = annual demand in units, S = fixed cost per order, and H = holding cost per unit per year.

What Goes Into Each Variable

Ordering cost (S) -- the fixed cost each time you place a PO:

Cost Component Example
Staff time to create PO $15-50 per order
Shipping/freight flat fees $150-500 per shipment
Customs brokerage $75-200 per entry
Quality inspection + receiving $75-225 per batch

Domestic supplier S might be $50-100. Overseas supplier with freight forwarding and customs: $400-600. The difference matters. A lot.

Holding cost (H) -- the annual cost of storing one unit. A common shortcut: H = 20-30% of unit cost per year, covering warehouse rent, insurance, capital cost, shrinkage, and FBA storage fees.

Worked Example: Domestic Supplier

You sell a phone case on Shopify. Domestic supplier, simple logistics.

Variable Value
Annual demand (D) 3,600 units (300/month)
Ordering cost (S) $75 per order
Holding cost (H) 25% of $4.00 = $1.00/unit/year
EOQ = sqrt((2 * 3,600 * 75) / 1.00) = sqrt(540,000) = 735 units

That means roughly 5 orders per year. Compare the total cost across different strategies:

Order Quantity Orders/Year Ordering Cost Holding Cost Total Cost
300 (monthly) 12 $900 $150 $1,050
735 (EOQ) 4.9 $367 $368 $735
1,800 (biannual) 2 $150 $900 $1,050

EOQ saves $315/year on this single SKU. Across 200 SKUs, that is $63,000 left on the table if you are ordering monthly or biannually instead.

Worked Example: Overseas Supplier

You sell a yoga mat on Amazon FBA. Manufactured in China, shipped by sea.

Variable Value
Annual demand (D) 12,000 units (1,000/month)
Ordering cost (S) $450 per order
Holding cost (H) 30% of $8.50 = $2.55/unit/year
EOQ = sqrt((2 * 12,000 * 450) / 2.55) = sqrt(4,235,294) = 2,058 units

About 6 orders per year, or one shipment every 2 months. That lines up with how most overseas sellers actually operate -- they just never did the math to confirm it.

Why Classic EOQ Breaks for E-commerce

MOQs Override the Formula

Your supplier requires 3,000 minimum. EOQ says 2,058. You must order the MOQ and absorb the higher holding cost. Compare: cost at EOQ is $5,246/year; cost at MOQ 3,000 is $5,625/year -- a $379 annual penalty. That gap is acceptable. A 5,000-unit MOQ would change the math entirely.

Casepacks and Order Multiples

Your supplier ships in cases of 24. EOQ says 735, so you round to 720 or 744. The cost difference is negligible, but you still need to round. See Casepack Requirements and MOQ for how these constraints stack in ugly ways.

Variable Demand

EOQ assumes constant demand. A product selling 300 units in January might sell 800 in November. Use average demand for the EOQ baseline, but adjust order timing with your demand forecast. I treat EOQ as the quantity guide and the forecast as the timing guide.

Quantity Discounts

Quantity Unit Price
1-499 $8.50
500-1,999 $7.75
2,000+ $7.00

Classic EOQ ignores discounts. Calculate total cost (ordering + holding + purchase) at each price break and at EOQ, then pick the lowest. Sometimes ordering 2,000 units at $7.00 beats ordering 735 at $8.50, even with the extra holding cost.

Multiple SKUs, Shared Freight

If you buy 10 SKUs from one supplier in a single shipment, ordering cost S is shared. Use joint ordering: calculate a combined order cycle for all SKUs from one supplier, then allocate quantities by each SKU's demand.

A Practical EOQ Workflow

  1. Calculate raw EOQ per SKU using the formula
  2. Apply constraints -- round to casepack multiples, enforce MOQs, check price breaks
  3. Group by supplier -- combine SKUs shipping together
  4. Validate against working capital -- can you fund that much inventory?
  5. Cross-check with reorder points -- make sure EOQ covers enough days of supply given your lead time
  6. Add safety stock -- EOQ tells you how much; the reorder point tells you when

When EOQ Is Not Worth Calculating

Not every SKU needs this analysis. Skip it when:

  • MOQ > EOQ: The supplier constraint already decides your quantity
  • One-time or seasonal buys: No recurring cycle to think about
  • Very low volume SKUs: Selling 20 units/year makes the cost difference trivial
  • Dropshipped products: Zero holding cost means the formula does not apply

Focus EOQ analysis on A-items and B-items with meaningful order volumes. For everything else, your time is better spent elsewhere.

How ReplenishRadar Handles Order Quantities

We do not calculate a static EOQ and call it done. That would ignore half of what makes e-commerce ordering complicated.

ReplenishRadar generates suggested order quantities using rolling demand forecasts instead of the constant-demand assumption. The system applies supplier constraints -- MOQs, casepacks, order multiples -- automatically to every suggested PO. When you buy multiple SKUs from one supplier, it groups them into a single shipment and accounts for shared freight costs. And if a suggested order would blow past your budget, working capital caps flag it before you commit.

You configure your supplier constraints once. After that, every suggested PO respects them. No manual rounding, no spreadsheet formulas, no hoping you remembered the casepack size.


EOQ gives you a rational starting point. The real work is adapting it for MOQs, casepacks, price breaks, variable demand, and cash constraints. The sellers who get ordering right are not the ones with the fanciest formula -- they are the ones who account for every real-world constraint, every time.

Start your free 14-day trial ->


Related Reading:

Frequently Asked Questions

Ready to prevent stockouts?

Start your 14-day free trial. Full access to all features.
Start Free Trial
14-day free trialCancel anytimeSupport responds within 24 hours