EOQ Formula: Economic Order Quantity, Example, and Reorder Limits
Calculate EOQ under its assumptions and compare feasible quantities against packs, minimums and holding costs.
Jainul Vaghasia/Published /Updated /9 min read
Use the definition
Turn procurement terms into an operating system.
This reference page should help you understand the concept first. When the term affects purchasing execution, LineNow connects it to live POs, supplier replies, receiving, and accounting handoff.
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 (unit acquisition cost multiplied by an annual carrying rate, plus any separately measured annual per-unit holding costs). 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
Read before ordering
A dense operator briefing for teams that need sharper buying, cleaner supplier follow-up, and fewer expensive surprises.
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 inventory management 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 units
S = ordering cost per purchase order
H = 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:
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.
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.
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. Compare feasible pack multiples around the model result and any minimum; always rounding up is not a general cost optimum.
MOQs override. When the supplier minimum exceeds EOQ, you order MOQ.
Perishability matters. EOQ ignores spoilage. An annual holding-cost estimate can include expected loss, but do not add a daily decay percentage directly to annual rates. Shelf life and time-dependent loss can require a different model. 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 larger than the result using the full holding cost.
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.
Apply this to a real purchasing record
LineNow's purchasing workflow connects purchase orders, supplier replies, receiving and accounting handoff. In a demonstration, inspect the order-frequency target, supplier minimum and case-pack rounding; the current engine does not claim a classical EOQ cost optimization.
Use the result to agree the fields, decision owner and exception process. A linked purchasing record supplies evidence for this analysis; it does not by itself prove a particular dashboard, financial outcome or automatic approval policy.
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