Economic order quantity: sizing a feasible replenishment lot

A cost-based order size needs consistent annual inputs and a separate check against supplier minimums, storage, and demand assumptions.

Kartik Deshpande··6 min read

Your replenishment trigger has fired, and purchasing needs a quantity. Economic order quantity (EOQ) = √(2 × D × S / H), where D is annual demand, S is fixed cost per order, and H is annual holding cost per unit. It minimizes annual ordering plus cycle-stock holding cost under the model’s assumptions. Oracle’s Inventory Optimization documentation defines those inputs on that annual basis.

Use the result as a cost benchmark before choosing a feasible purchase quantity. EOQ answers how much to order; the reorder point formula addresses when the replenishment signal should occur. Supplier minimums, storage constraints, and seasonal demand can change the decision even when the calculation is correct.

Separate order cost from annual unit holding cost

Start with one purchased item at one replenishment location, expressed in one stocking unit. Purchasing should confirm what cost recurs with each order; finance should approve the annual unit holding-cost basis. Record the owner and revision date of each assumption so you can explain the next change in order quantity.

D is units per year. Use the approved annual requirement for the item and location. Check unmet demand before treating shipments during a stockout as the full requirement. If purchase orders use cartons and consumption uses pieces, convert quantities before calculating the lot.

S is dollars per order, regardless of its size. A fixed delivery or avoidable processing charge may belong here; purchase price per piece does not. ACCA’s inventory-control explanation uses costs affected by order quantity and excludes fixed purchasing and storekeeper salaries from its relevant-cost calculation.

H is dollars per unit per year. If finance supplies an annual carrying rate, multiply it by the agreed unit value. A hypothetical $20 unit value and 20% annual carrying rate give H = $4 per unit per year. That rate is an example assumption, not an industry benchmark. Document its components so a separate storage estimate does not count the same expense twice.

Use one currency and time basis. Monthly demand combined with annual H understates the demand input by a factor of twelve if demand is steady across those months. Annualize on a defensible basis, or convert both to the same shorter period. A seasonal peak needs more examination than multiplying a recent month by twelve.

For production lots, keep fixed cost per setup separate from annual unit holding cost. Also check how stock arrives: MITx’s Supply Chain Fundamentals notes distinguish finite-rate production from receiving a whole lot at once. A production-rate model is needed when the full-lot receipt assumption does not fit.

Calculate the lot and check annual cost

Assume a hypothetical component has D = 12,000 pieces per year, S = $60 per order, and H = $4 per piece per year. Assume steady demand, a constant purchase price, full-lot receipts, no shortages, and no binding supplier or storage constraints. These inputs are a worked example, not observed purchasing results.

EOQ = √(2 × 12,000 × 60 / 4) = √360,000 = 600 pieces per order. Annual order count is 12,000 / 600 = 20. With cycle stock falling at a steady rate from 600 to zero between receipts, average cycle stock is 600 / 2 = 300 pieces.

The EOQ chapter in Fundamentals of Operations Management gives annual relevant cost = (D / Q) × S + (Q / 2) × H, where Q is the lot being evaluated. Applying it gives $1,200 of ordering cost plus $1,200 of cycle-stock holding cost, or $2,400 per year. The table changes Q while retaining the hypothetical inputs.

Order quantityAnnual ordering costAnnual cycle-stock holding costAnnual relevant cost
300 pieces$2,400$600$3,000
600 pieces$1,200$1,200$2,400
900 pieces$800$1,800$2,600

Ordering and holding costs are equal at this unconstrained EOQ, which checks the arithmetic under these assumptions. Purchase spend (constant across these lots), safety-stock holding cost, and costs outside the stated model are excluded from $2,400. The result does not establish that a receipt will fit in the warehouse.

How lot size changes modeled costs
Smaller lots
More orders; less cycle stock
Larger lots
Fewer orders; more cycle stock
Compare combined annual cost. A lower ordering-cost line alone does not establish that a larger lot is economical.

Test changed inputs and the demand assumptions

For the same hypothetical item, increasing annual demand to 18,000 pieces while keeping S and H fixed gives √540,000, or about 735 pieces. Doubling H to $8 while retaining the original demand and order cost gives √180,000, or about 424 pieces. These separate sensitivity cases follow the square-root relationship; neither is an instruction to release an order.

NC State’s EOQ tutorial assumes known, relatively uniform demand, fixed item and cost inputs, and constant lead time. An annual total cannot establish those conditions. Examine dated requirements when a promotion, project, or shutdown concentrates consumption into a short period.

EOQ does not select a service target or uncertainty buffer. Keep the safety stock calculation separate and state whether its quantity remains fixed when comparing lots. If the buffer changes with the policy, evaluate that change’s cost and service implications outside the base comparison.

Compare lots after minimums, capacity, and discounts

Confirm supplier minimum order quantity (MOQ), pack multiples, and receiving capacity before approving Q. Oracle’s Inventory order-modifier documentation treats minimums, maximums, and fixed-lot multiples as separate controls. Retain the unconstrained EOQ beside the chosen quantity so the adjustment remains visible.

Suppose the example supplier requires at least 800 pieces, without a pack restriction. At Q = 800, annual relevant cost is (12,000 / 800 × $60) + (800 / 2 × $4) = $2,500. This is the lowest modeled cost at or above that minimum under the unchanged assumptions, subject to room for the receipt.

If the maximum feasible receipt is 500 pieces with no supplier minimum, Q = 500 costs $2,440 per year. If the supplier requires 800 while capacity permits only 500, no feasible lot satisfies both constraints. Resolve that conflict through agreed delivery terms or another approved operating change; rounding cannot resolve it.

For pack multiples, compare feasible quantities bracketing the calculated EOQ, subject to minimums and maximums. Check peak stock after receipt, including stock already present, and shelf life against expected consumption. Receiving limits and total storage limits are different constraints, so state which one applies.

ACCA’s bulk-discount method adds annual purchase spend to ordering and holding costs. For all-units discounts, compare feasible EOQs within price bands and qualifying break quantities using D × unit price + (D / Q) × S + (Q / 2) × H. Recalculate H if it depends on discounted unit value, and check storage before accepting the lowest-cost candidate.

Where Permute fits in an order-quantity review

Permute sells connected business data, custom applications, and governed context for AI tools. We can scope an order-quantity review around permitted NetSuite records and Excel assumptions, matching item identifiers while preserving source units and dates. Conflicting pack sizes or missing cost evidence should remain visible for resolution.

We use declared definitions so demand, order cost, and annual holding cost have a consistent basis. An inventory planner can ask why a lot changed and inspect its source records through a scoped application or an AI tool such as Claude or ChatGPT. Verify access and refresh behavior for the proposed sources before relying on that output.

Bring one item’s evidence together

Start with a permitted demand history and the cost assumptions behind its current order quantity.

Keep forecasting and order approval outside the calculation

We are not a forecasting engine; we supply governed evidence for demand assumptions you approve. This review reads source records and does not authorize or automatically place orders. Purchasing execution requires a separately verified, supported workflow with explicit approval and current permissions. A computed lot does not establish that such an integration exists.

Review actual costs alongside shortages and excess stock after a policy change. The inventory turnover ratio assesses usage over a period, but cannot isolate one lot-size change. Preserve the old assumptions and the revision so demand or unit-value changes are not mistaken for an EOQ outcome.

Economic order quantity provides a cost-based lot size when demand and costs satisfy the stated assumptions. Calculate it with consistent annual units, then compare quantities your supplier and operation permit. Include purchase spend when discounts change unit price. Keep timing, uncertainty buffers, and purchase approval explicit before turning the calculation into an order.

Review a replenishment decision across sources

Bring one item’s demand, supplier terms, and cost evidence to examine where the order quantity needs a firmer basis.

Questions about using EOQ

What if holding cost or order cost is zero?

Do not use zero as a placeholder for an unknown cost. With positive demand and order cost, zero H leaves no finite EOQ; zero S with positive H makes the unconstrained model favor quantities approaching zero. Establish actual costs and feasible order constraints before making a purchasing decision.

Should I round an EOQ up to a whole unit?

Compare adjacent feasible quantities using the annual cost equation. Pack sizes or minimums may make both neighboring whole units infeasible, so apply those restrictions first. Retain the calculated quantity and selected purchase lot as separate values.

Why is supplier lead time absent from the EOQ formula?

Under constant demand and constant lead time, lead time affects when you need to order. The lot-size expression balances ordering and cycle-stock holding costs. If a larger order changes supplier lead time or shortage exposure, evaluate that effect outside the base expression.