eCommerce
What is economic order quantity (EOQ)? The Wilson formula, a DTC worked example, and where it breaks
Economic order quantity (EOQ) is the reorder size that minimizes total ordering plus holding cost, calculated via the Wilson formula: square root of (2 times annual demand times ordering cost, divided by holding cost per unit). A typical DTC brand with $50 ordering cost and 25 percent annual holding cost reaches EOQ in the 300 to 600 unit range. The post covers seven places the formula breaks for real brands.
Economic order quantity (EOQ) is the order size that minimizes the sum of ordering cost and holding cost across a year. It is also called the Wilson formula, after the inventory math R.H. Wilson popularised in 1934. For direct-to-consumer (DTC) and ecommerce brands, EOQ is best used as a sanity-check and trade-off diagnostic, not a rigid rule. The textbook formula is EOQ = sqrt(2DS/H), where D is annual demand in units, S is the cost of placing one purchase order (PO), and H is the cost of holding one unit for a year.
Every operator eventually asks the same two questions: how much should I order, and how often? EOQ answers the first. Order too little and you burn cash on freight, brokerage, QC, and inbound receiving every six weeks. Order too much and you tie up working capital, pay 3PL storage, and eat shrink and obsolescence. The Wilson formula is the cleanest way to see that trade-off in one number. It will not tell you when to reorder, that is the reorder point. It will not handle minimum order quantities (MOQs), container fills, seasonality, or cash constraints. But it gives you a defensible base case to argue from when your factory pushes back on order size or your 3PL pitches a longer storage contract.
How it works
The full formula is EOQ = sqrt(2 multiplied by D multiplied by S, divided by H). Worked DTC example. A brand sells 24,000 units a year of a $12 landed-cost SKU. Carrying cost is 25% of inventory value per year, so H is 0.25 multiplied by $12 which equals $3.00 per unit per year. The cost of placing one PO (planning, freight booking, customs brokerage, wires, QC, inbound receiving) is $1,200. Plug it in: EOQ equals the square root of (2 multiplied by 24,000 multiplied by 1,200, divided by 3), which is the square root of 19,200,000, which is about 4,381 units. That means roughly 5.5 POs a year, or one every two months. Average cycle stock is EOQ divided by 2, so about 2,191 units. Annual holding cost is 2,191 multiplied by $3, about $6,573. Annual ordering cost is 5.48 multiplied by $1,200, about $6,576. Total minimized cost is about $13,149 a year. The intuition: at EOQ, annual ordering cost roughly equals annual holding cost. That balance point is what the formula is solving for.
Common triggers
- You are negotiating with a factory on MOQ and need a defensible target order size, not just 'whatever they will accept.'
- Your 3PL bill is climbing and you suspect you are over-ordering relative to your demand. Cycle-stock math will show it.
- You are planning Q3 and Q4 inventory buys and want to separate the EOQ base case from the seasonal override.
- Cash is tight and you are tempted to order half-loads. EOQ tells you the cost of that decision in ordering dollars.
- You are switching from one PO every quarter to one every month, or vice versa, and need to know which is cheaper before you commit.
The most common mistake
Treating EOQ as a policy instead of a diagnostic. The Wilson formula assumes constant demand, constant lead time, no MOQs, no container fills, fixed S and H, no stockout cost, and one SKU at a time. All seven of those assumptions break in real DTC. If your factory MOQ is 6,000 and EOQ says 4,400, you order 6,000. If a 40-foot container fills at 5,500, you fill the container. If Q4 demand is three times Q1, you do not order the same 4,400 in February that you order in October. The right way to use EOQ is to calculate the base case, then list the operator overrides (MOQ, container, seasonality, cash, 3PL tier penalties) and decide consciously which one is binding this PO cycle. A brand that orders to EOQ blindly will be short for Q4 and long for Q1, every year.
Browse the full ecommerce finance glossary for every metric and money term a DTC operator needs.
Frequently Asked Questions
what is the economic order quantity formula?
EOQ equals the square root of (2 multiplied by D multiplied by S, divided by H), where D is annual demand in units, S is the cost of placing one purchase order, and H is the holding cost per unit per year. The formula minimizes the sum of annual ordering cost and annual holding cost.
what's a realistic holding cost percentage for shopify and dtc brands in 2026?
20 to 30 percent of inventory value per year is the consensus DTC band, triangulated across Finale Inventory (18-30%), ShipBob (~30%), ATTN Agency (20-30%), and Opensend (20-30%). That covers 3PL storage and handling, capital cost, insurance, shrink and damage, and obsolescence. Sub-20% usually means you are missing components, above 30% means you have a working-capital problem.
what does ordering cost (s) actually include for an ecommerce brand?
Planning and PO creation labor ($50-$200), freight booking ($50-$300), customs brokerage ($100-$250), bank wire or letter-of-credit fees ($25-$100), QC inspection per shipment ($200-$500), and 3PL inbound receiving ($50-$300). Typical totals are $300-$800 for a small air shipment, $800-$2,000 for an ocean container, and $2,000-$5,000 plus for complex multi-factory POs.
why does eoq break down when my factory has a moq?
EOQ assumes you can order any quantity. A factory MOQ forces you above the EOQ. If MOQ is 6,000 and EOQ is 4,400, you order 6,000 and accept higher annual holding cost. The cleaner question is whether the MOQ is real or negotiable, because the holding-cost premium on the extra 1,600 units is what you are buying when you accept the MOQ.
how does eoq relate to reorder point and safety stock?
EOQ answers 'how much,' reorder point answers 'when.' Reorder point equals (average daily usage multiplied by lead time) plus safety stock. Safety stock is the buffer for demand and lead-time variability. You need both to run a complete policy. EOQ on its own will stock you out the first time a container is late.
