Blog · Procurement and supply chain · Supply chain
Economic order quantity balances annual ordering and inventory holding costs. Work through the formula, compare purchase quantities, and check the assumptions against your demand and cost exports.
EOQ supply chain analysis calculates the order quantity that balances annual ordering cost against inventory holding cost. It gives buyers a useful cost benchmark when demand and costs are stable. The result needs a feasibility check before it becomes a purchasing decision.
Ordering less at a time creates more orders. Ordering more at a time leaves more inventory between deliveries. EOQ identifies the lowest combined cost under a specific set of assumptions, rather than simply favoring fewer orders or lower stock.
NC State's supply chain tutorial defines EOQ as the quantity that minimizes annual holding and ordering costs. Its assumptions include relatively uniform demand, fixed item costs, fixed ordering and holding costs, and constant lead time.
This is a static scenario analysis. It does not determine an automatic replenishment schedule or prove that the company can meet every customer order. A supply chain dashboard can place the chosen cost assumption alongside service and inventory results without replacing the underlying calculation.
EOQ = square root of (2 × D × S / H)
Annual ordering cost = D / Q × S
Annual cycle-stock holding cost = Q / 2 × H
Total relevant annual cost = ordering cost + holding cost
D is annual demand in units. S is the incremental cost of placing and receiving an order. H is the cost of holding one unit for one year. Q is the quantity ordered each time. The numeral in the EOQ formula follows from inventory falling evenly from the full delivery quantity to zero between receipts.
H must be a dollar amount per unit per year. If finance supplies an annual carrying rate instead, multiply that rate by the unit inventory cost. Do not put the percentage directly into H.
Use inventory issue or sales shipment rows to establish demand, depending on whether the item is a production input or a resale item. Keep SKU, site, transaction date, quantity, and unit of measure. Remove internal transfers when they would count the same external demand again.
Use purchasing records and an approved activity-cost estimate for S. Include costs that change with the number of orders. Do not automatically allocate the entire procurement department budget to each order: a cost comparison based on avoidable effort answers a different question from a full departmental allocation.
An Ohio distributor reviews one replacement component using a complete annual issue export. Finance and purchasing approve these inputs. The example excludes safety stock and assumes a constant purchase price.
| Annual demand, units | Ordering cost per order (USD) | Unit inventory cost (USD) | Annual carrying rate | Holding cost per unit per year (USD) |
|---|---|---|---|---|
| 12,000 | 75 | 20 | 25% | 5 |
Annual demand comes from the net external demand rows. The other inputs are approved cost assumptions; annual holding cost is $20 × 25% = $5 per unit.
The following steps preserve the units of the calculation. Quantities are whole units here because the calculated answer is already whole.
| Step | Calculation | Result |
|---|---|---|
| Calculate numerator | 2 × 12,000 × 75 | 1,800,000 |
| Divide by annual holding cost | 1,800,000 / 5 | 360,000 |
| Take the square root | Square root of 360,000 | 600 units |
| Calculate annual order rate | 12,000 / 600 | 20 orders |
| Calculate average cycle stock | 600 / 2 | 300 units |
In a spreadsheet, with annual demand in B2, ordering cost in C2, and annual holding cost in D2, the quantity formula is:
=SQRT(2*B2*C2/D2)
The input values should remain visible beside the formula. A computed quantity without the underlying cost assumptions is difficult for a buyer to challenge or approve.
Purchasing compares the calculated quantity with smaller and larger deliveries. Order rates are rounded to two decimals; dollar costs use the unrounded rate.
| Order quantity, units | Annual order rate | Average cycle stock, units | Ordering cost (USD) | Holding cost (USD) | Total relevant cost (USD) |
|---|---|---|---|---|---|
| 300 | 40.00 | 150 | 3,000 | 750 | 3,750 |
| 600 | 20.00 | 300 | 1,500 | 1,500 | 3,000 |
| 900 | 13.33 | 450 | 1,000 | 2,250 | 3,250 |
The central check is equality: at the unconstrained EOQ, annual ordering cost equals annual cycle-stock holding cost. Both are $1,500 here. The neighboring quantities have higher combined costs, consistent with the calculated minimum.
At the fixed unit price, annual purchase spending is 12,000 × $20 = $240,000 for every alternative. Adding it produces annual purchase-plus-relevant costs of $243,750, $243,000, and $243,250 respectively. Keep purchase spending visible if a supplier introduces a quantity discount; then it stops being constant.
The 900-unit choice costs $250 more annually than the 600-unit choice under these assumptions. A buyer can now weigh that explicit premium against practical constraints. The fractional annual order rate describes a repeating long-run cost pattern; it is not an instruction to place part of an order during the fiscal year.
Virginia Cooperative Extension's inventory guide identifies constant demand, known constant lead time, instantaneous replenishment, and quantity-independent unit cost among the basic EOQ assumptions. Compare those assumptions with actual receipts and demand before applying the result.
Instantaneous replenishment means the ordered lot arrives together. It does not mean a supplier has no lead time. Partial deliveries and gradual production change the average inventory pattern used in the holding-cost calculation.
Ask the warehouse owner to confirm capacity and shelf life. Ask purchasing to confirm pack sizes and order minimums. Ask finance whether carrying cost includes capital, storage, insurance, and obsolescence consistently. For ways to present these decisions, use supply chain dashboard examples; for the broader file-based workflow, see supply chain analytics.
Bring your demand export and approved ordering and holding assumptions to Covirage; it maps the columns, and its tools compute and check the alternative costs. The external AI model explains the comparisons with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See Covirage for supply chain teams for the wider procurement and continuity context.
EOQ addresses how much to order. A reorder point addresses when to order, using demand during replenishment lead time and any approved safety stock. Keep the quantity decision and the timing decision separate when reviewing a purchasing policy.
Purchase price helps determine holding cost when carrying cost is a percentage of inventory value. Annual purchase spending is constant across order quantities if price is fixed. Quantity discounts require comparing purchase spending as well as ordering and holding costs.
The basic calculation assumes a steady demand rate. An annual average can hide seasonal peaks and leave the wrong quantity available at the wrong time. Use it as a cost comparison, then test quantities against the actual seasonal demand pattern.
Evaluate the feasible quantities around the calculated result, including case packs, minimum orders, and storage limits. Calculate total relevant cost for each feasible quantity. Ordinary numerical rounding alone can produce an order a supplier cannot accept.