Economic Order Quantity (EOQ) is the order size that minimizes the joint cost of placing orders and carrying inventory. It is one of the foundational results of operations research, formalized by Ford W. Harris in 1913 and still widely taught in operations and supply-chain courses.
Quick answers
What is the Economic Order Quantity? EOQ is the order quantity that minimizes the total cost of ordering plus the cost of holding inventory. Order in smaller batches and you pay more in ordering costs (more POs, more receiving, more processing). Order in larger batches and you pay more in carrying costs (capital tied up, warehouse space, spoilage). EOQ is the mathematical balance point.
What is the EOQ formula? EOQ = √(2DS/H) where D is annual demand in units, S is the cost per order (admin + receiving + payment processing), and H is the cost to carry one unit in inventory for a year (capital cost + storage + spoilage as a fraction of unit cost). The square root means EOQ scales sub-linearly with demand — doubling demand only increases the optimal order size by ~41%.
How do you calculate EOQ quickly? Multiply 2 × annual demand × order cost, divide by annual holding cost per unit, then take the square root.
EOQ = sqrt((2 × D × S) / H)
| Symbol | Meaning | Practical source |
|---|---|---|
| D | Annual demand in units | POS sales, ecommerce orders, production usage, or a rolling consumption forecast |
| S | Cost to place one order | Buyer time, supplier follow-up, receiving labor, AP processing, payment fees |
| H | Annual holding cost per unit | Capital cost, storage, shrinkage, spoilage, insurance, and obsolescence |
For example, if annual demand is 12,000 units, ordering cost is $25, and holding cost is $0.60 per unit per year, EOQ is sqrt((2 × 12,000 × 25) / 0.60) = 1,000 units.
When does EOQ apply? Classical EOQ assumes constant demand, constant lead time, no quantity discounts, and a single product. In day-to-day operations, those assumptions are routinely violated, so EOQ is more useful as a directional guide than a precise prescription. Most operators end up with order quantities between EOQ and the closest pack size or supplier MOQ.
EOQ vs reorder point — what's the difference? EOQ tells you how much to order. Reorder point tells you when to order. They're complementary: when inventory drops to the reorder point, you place an order of EOQ size.
Should you buy software just to calculate EOQ? Usually no. EOQ is one input. A serious replenishment system also needs live sales data, supplier lead times, pack sizes, minimum order quantities, perishability, safety stock, and receiving history. If the software stops at EOQ, it will not fix the ordering workflow. If the problem is turning POS sales and supplier constraints into reviewed purchase quantities, see AI order quantity software.
Copy-paste EOQ formula and source
Use this version when you need the formula directly:
EOQ = sqrt((2 * D * S) / H)
Where:
D= annual demand in unitsS= ordering cost per purchase orderH= annual holding cost per unit
The formula is often written as √(2DS/H) or sqrt(2DS/H). Those are the same expression. The model is commonly traced to Ford W. Harris's 1913 lot-size paper, "How Many Parts to Make at Once." INFORMS' Operations Research later published a historical article and reprint: Ford Whitman Harris and the Economic Order Quantity Model.
The formula, derived
The total annual cost has two parts:
Total cost = (D / Q) × S + (Q / 2) × H
where Q is your order quantity. The first term (D/Q × S) is the annual ordering cost — placing D/Q orders per year at S each. The second term (Q/2 × H) is the annual carrying cost — averaging Q/2 units in inventory at H per unit per year.
Take the derivative with respect to Q and set to zero:
d(Total cost)/dQ = -DS/Q² + H/2 = 0
H/2 = DS/Q²
Q² = 2DS/H
Q = √(2DS/H)
That's EOQ.
A worked example
A retailer sells 12,000 units of a SKU per year (D = 12,000). The cost to place an order — combining the AP person's time, the receiving cost, and the payment processing — is $25 per PO (S = 25). The unit cost is $5, capital cost is 8% per year, storage is 4% of unit cost, spoilage is negligible — so H = $5 × 0.12 = $0.60 per unit per year.
EOQ = √(2 × 12,000 × 25 / 0.60) = √1,000,000 = 1,000 units
The EOQ model suggests ordering 1,000 units per PO, placing 12 POs per year. If the supplier's MOQ is 500, EOQ is binding (you order 1,000). If the supplier's MOQ is 2,000, MOQ is binding — EOQ is over-ridden by the constraint, and the retailer should look at whether the supplier MOQ is negotiable.
How to calculate EOQ in a spreadsheet
You only need three clean inputs. The hard part is not the square root; it is making sure each input reflects the business you actually run.
| Spreadsheet field | Formula or source | What to avoid |
|---|---|---|
| Annual demand | daily usage × 365 or trailing 12-month unit sales | Mixing units, cases, and packs in one column |
| Order cost | buyer time + receiving time + AP/payment cost | Treating ordering cost as zero because no one writes a check |
| Holding cost | landed unit cost × annual carry percentage | Using purchase price only and ignoring freight, shrink, decay |
| EOQ | =SQRT((2*D*S)/H) | Taking the number literally when pack size or MOQ makes it impossible |
The unit of measure has to stay consistent. If D is bottles, H must be annual holding cost per bottle, and pack rounding happens after the EOQ result. If D is cases, H must be annual holding cost per case. Many bad EOQ calculations come from mixing "we sell 12 units a day" with "the supplier sells cases of 24" in the same formula.
Once the raw EOQ is calculated, run three operational adjustments:
- Round to pack size. If EOQ is 1,000 units and the case pack is 144, the placeable order is 1,008 units.
- Raise to MOQ if needed. If EOQ is 1,000 but supplier minimum is 1,200, the realistic order is 1,200 unless you negotiate the minimum.
- Cap by shelf life or cash budget. If the EOQ creates 90 days of coverage on a product with 45-day usable life, the formula is economically invalid for that SKU.
EOQ should be a decision input, not an automatic purchase instruction.
EOQ with quantity discounts
Supplier discounts complicate EOQ because a larger order can reduce unit cost enough to justify more carrying cost. The safe method is:
- Calculate EOQ using the holding cost at the current price tier.
- Check whether the EOQ qualifies for the discount tier.
- If it does not, calculate total annual cost at the minimum quantity required for the discount.
- Compare total annual cost across tiers, including purchase cost, ordering cost, and holding cost.
The mistake is to chase the lower unit price without calculating the inventory cost. A 6% discount can be a bad deal if it forces 120 days of extra stock, ties up cash, increases shrink, or creates expiry risk. For stable, non-perishable C-items, discount tiers may be worth it. For perishables, trend-driven retail items, or regulated products with expiry, the carrying-cost side usually dominates.
EOQ by operating model
EOQ behaves differently across business types:
| Business type | Where EOQ helps | Where EOQ is dangerous |
|---|---|---|
| Specialty retail | Stable replenishment SKUs, accessories, supplies | Seasonal items, trend-led products, slow-moving variants |
| Restaurants and cafes | Dry goods, packaging, disposables | Fresh produce, dairy, proteins, baked goods |
| Ecommerce brands | Core SKUs with reliable sell-through | Launch products, influencer-driven spikes, products near redesign |
| Light manufacturing | Standard components and consumables | Long-lead custom parts with supplier allocation risk |
| Regulated retail | Non-expiring accessories and stable consumables | Lot-tracked or expiry-sensitive goods where compliance state matters |
This is why EOQ belongs beside ABC analysis, coefficient of variation, decay rate, and minimum order quantity. The formula works best when the item is stable enough for the assumptions to hold.
Where EOQ falls apart in practice
The classical EOQ formula assumes constant demand and constant lead time. In real ordering workflows:
- Demand is variable. Your bestseller's weekly sales swing 20% week to week. EOQ as derived assumes σ = 0.
- Lead time is variable. Suppliers slip. EOQ doesn't model lead-time variability.
- Quantity discounts exist. Suppliers often offer 5–15% off at higher tiers. The right answer with discounts is to compute EOQ at each tier and pick the lowest total cost.
- Pack sizes are fixed. You can't order 1,000 units when the case pack is 144. Real orders round up to the next pack.
- MOQs override. When the supplier minimum exceeds EOQ, you order MOQ.
- Perishability matters. EOQ ignores spoilage. For perishables, the carrying cost calculation needs decay added (carrying cost = capital + storage + spoilage rate × unit cost). Decay rate covers this.
- Landed cost is the correct H base. EOQ's holding cost H should be calculated from landed cost per unit — purchase price plus freight, duties, insurance, and handling — not purchase price alone. Using invoice price understates carrying cost and produces an EOQ that is smaller than the true optimum.
A statistical replenishment system that does demand-pattern classification and decay-aware PAR is the modern descendant of EOQ. Same intent (minimize total cost), updated math. EOQ is most defensible for C-items — stable demand, predictable order cycles, low per-unit value where carrying-cost optimization matters most. ABC inventory analysis is the framework for determining which items in a catalog qualify for EOQ-guided ordering vs tighter, safety-stock-heavy policies.
How LineNow uses EOQ-style logic
LineNow doesn't compute classical EOQ as such — for the reasons above, it's not the right answer in practice. Instead, the recommendation engine:
- Computes consumption rate from POS-driven sales over the last 30 days
- Classifies the demand pattern (smooth, intermittent, erratic, lumpy) via the SBC framework — routing intermittent and lumpy items to the Syntetos–Boylan Approximation (SBA), the bias-corrected forecast for non-daily demand
- Computes statistical safety stock with z-score by service level
- Adds decay-aware base demand for perishables
- Surfaces a single PAR-aligned reorder quantity, rounded to the supplier's pack size
- Raises to MOQ if the optimal quantity is below it (and flags the item as MOQ-bound, so you can negotiate)
- Keeps the recommended quantity tied to a live PO, supplier replies, receiving variance, and accounting handoff instead of leaving it as spreadsheet math
The output is the modern, real-world version of "what EOQ would say given your constraints." See PAR level for the formula and the PAR Level Calculator to compute it for your own items.
When EOQ becomes a software problem
EOQ becomes commercially relevant when the team has more than one buyer, more than a handful of suppliers, or enough SKU/ingredient movement that manual order quantities start causing stockouts, waste, or excess cash tied up in inventory.
At that point, the buying question is bigger than "what is the EOQ formula?" The operator needs:
- POS or sales data to measure consumption rate
- lead-time history by supplier
- reorder points and PAR levels by item
- supplier pack sizes and MOQs
- purchase orders created from the recommendation
- supplier replies captured after the PO is sent
- receiving and accounting updated from the final order state
That is the difference between an EOQ calculator and AI order quantity software, inventory management software, or procurement software that can run the order loop.
Related
- PAR level — the modern, decay-aware descendant of EOQ
- Reorder point — when to order
- Safety stock — buffer for variability
- Minimum order quantity (MOQ) — when supplier minimums override EOQ
- Inventory Management Software — POS-synced usage and reorder workflows
- AI Order Quantity Software — POS-driven order quantities that become purchase orders
- Procurement Software
- Closed-loop procurement, in plain English
- PAR Level Calculator