Inventory how-to

How to calculate economic order quantity

Economic order quantity (EOQ) is the order size that minimizes the combined cost of ordering and holding stock.

Short answer: Economic order quantity (EOQ) is the order size that minimizes the combined cost of ordering and holding stock. For most small Shopify stores, a simpler reorder-quantity formula based on lead time and days of cover gets you most of the benefit without the extra data collection EOQ needs.

The EOQ formula

EOQ = square root of (2 x D x S / H)

D is annual demand in units, S is the fixed cost to place one order (admin time, shipping fees if flat), and H is the annual holding cost per unit (storage, insurance, capital tied up, usually a percentage of unit cost).

Why it is hard for small stores

EOQ assumes steady demand, a fixed order cost, and a known holding cost per unit. Most small Shopify stores do not track holding cost per SKU and demand is not steady across the year. If you plug in rough guesses, the answer is a rough guess too. It can still be useful as a sanity check against what you are currently ordering.

A simpler practical alternative

Instead of EOQ, many small stores just set a target days-of-cover per SKU (say 30 or 45 days) based on how fast it sells and how reliable the supplier is. Order quantity = daily sales x (lead time + days of cover) - (on hand + on order). This reacts to actual sales pace and lead time, and does not require estimating a holding cost figure.

Step by step

  1. List your annual demand (D) per SKU, or 12x your average monthly sales if you don't have a full year.
  2. Estimate your order cost (S): time spent per PO, flat shipping or processing fees per order.
  3. Estimate your annual holding cost per unit (H): usually 15-30% of unit cost per year, covering storage, capital, and shrinkage risk.
  4. Run EOQ = sqrt(2 x D x S / H) per SKU.
  5. Round the result to the supplier's case pack or minimum order quantity.
  6. Compare it to what you currently order and adjust gradually, don't jump straight to a big change.
  7. If EOQ feels too abstract, switch to a days-of-cover reorder quantity instead, it needs less guesswork.

Worked example

Say a SKU sells 1,200 units a year (D = 1,200), it costs $20 in staff time to place each order (S = 20), and holding cost is $2 per unit per year (H = 2). EOQ = sqrt(2 x 1,200 x 20 / 2) = sqrt(24,000) = about 155 units. If the supplier's case pack is 50, you would round to 150 or 200 units per order rather than ordering 155 exactly.

How SteadyShelf helps

SteadyShelf does not calculate EOQ because it does not track holding cost or order cost per SKU. It forecasts daily sales and suggests order quantities based on lead time, safety days, and your chosen days of cover, then rounds to case packs and minimums. If you want true EOQ, you need to work out holding and order costs yourself outside the app.

$29/month flat, unlimited products and suppliers, 30-day free trial. Run the numbers now with the free reorder point calculator.

SteadyShelf is launching on the Shopify App Store. Join early access to get the install link first.

Related guides

All inventory how-to guides ยท Inventory glossary

FAQ

Is EOQ the same as reorder point?

No. Reorder point tells you when to order (daily sales x lead time plus safety days). EOQ tells you how much to order each time based on cost tradeoffs. You can use one without the other.

What if I don't know my holding cost?

A common shortcut is to use 20% of the unit cost per year as a rough holding cost if you have no better figure. It is imprecise, so treat the EOQ result as a starting point to round and adjust, not a fixed answer.

Let SteadyShelf do this math for every SKU

Order-by dates per supplier, seasonal forecasts and draft POs for your Shopify store. $29/month after a 30-day free trial.

Get early access