Skip to content

Home / Supply Chain / EOQ Calculator

Supply Chain and Inventory

EOQ Calculator (Economic Order Quantity, Total Relevant Cost, and Reorder Point per the Harris-Wilson Model and APICS)

By Zeeshan Abbas · Reviewed by Rimsha Nadeem Anwar, Six Sigma Black Belt

In short: the economic order quantity is the order size that minimizes the combined ordering and holding cost, equal to the square root of (2 × demand × ordering cost / holding cost per unit). Enter your annual demand, ordering cost, and holding cost below to get the EOQ, the total-cost breakdown, orders per year, and more, with quantity-discount and production-batch modes built in.

Calculate your economic order quantity

EOQ = √(2 × Demand × Ordering cost / Holding cost per unit)

Economic order quantity

447units

Total annual cost
–
Annual ordering cost
–
Annual holding cost
–
Orders per year
–
Days between orders
–
Average inventory
–
Maximum inventory
–
Holding cost per unit
–

Enter annual demand, ordering cost, and holding cost to size the economic order quantity.

Industrial engineering methodology and inventory-cost workflow

This calculator sizes a replenishment order: it computes the order quantity that minimizes the total annual cost of holding inventory plus placing orders for a single item under steady demand. Every replenishment decision trades two costs that move in opposite directions. Order in large lots and you place few orders, so ordering cost is low, but average inventory is high and carrying cost climbs. Order in small lots and carrying cost falls but you place many orders, so ordering cost climbs. The economic order quantity, or EOQ, is the lot size where those two curves cross and their sum is at its minimum, which is why the Harris-Wilson model has anchored lot-sizing since 1913.

The data workflow runs end to end. You enter annual demand, the fixed cost to place and receive one order, and the cost to hold one unit in stock for a year. The tool returns the EOQ, the number of orders per year, the time between orders, and the total relevant cost, and it exposes the trade directly: at the EOQ the annual ordering cost and the annual holding cost are equal, so the tool is really solving for the point where those two flows balance.

A naive approach picks a round lot size, a full pallet or a supplier minimum, and never tests it against cost. The shop floor pays for that: an order quantity set by habit sits well off the cost minimum, tying up working capital in excess stock or burning labor on too many orders. The EOQ curve is famously flat near its base, so being roughly right matters more than being exactly right, but a lot size chosen with no reference to demand and cost is usually not even roughly right. The sections below make the cost structure explicit so the quantity you order is the one the economics actually support.

Governing equation: order quantity from demand and cost

The model is the classic Harris-Wilson square-root formula.

EOQ = √(2 × D × S / H)

The variables and units:

  • EOQ (Q*) = economic order quantity, in units per order.
  • D = annual demand, in units per year.
  • S = ordering cost, the fixed cost to place and receive one order (setup, paperwork, freight, receiving), in currency per order.
  • H = holding (carrying) cost, the cost to keep one unit in stock for one year, in currency per unit per year. It is often expressed as H = i × C, where i is the annual carrying rate as a fraction and C is the unit cost.

Four derived numbers follow. The number of orders per year is N = D / Q. The time between orders (cycle time) is the planning year divided by N, for example 250 working days / N. The total relevant cost is TRC = (D / Q) × S + (Q / 2) × H, the sum of annual ordering and annual holding cost; at the EOQ this reduces to TRC = √(2 × D × S × H), and the two terms are equal. Keep the demand window and the holding-cost period on the same annual basis before dividing, because a monthly demand with an annual holding rate throws the quantity off by a factor of twelve.

Applicable standards and lot-sizing frameworks

EOQ sits inside the recognized bodies of inventory and planning practice.

Governing references and how they frame the calculation
ReferenceScopeEffect on this calculation
Harris-Wilson model (1913)Original economic lot-size derivationDefines the square-root EOQ formula and the ordering-versus-holding cost balance the tool minimizes.
APICS/ASCM Dictionary and CPIMOperations and inventory management terminologyFixes the definitions of ordering cost, carrying cost, lot size, reorder point, and total cost used across planning.
Wagner-Whitin and Silver-MealDynamic (time-varying demand) lot sizingProvide the successor models when demand is lumpy and the constant-demand EOQ assumption fails.
IAS 2 / GAAP inventory accountingInventory valuation and carrying costGoverns how unit cost and the carrying rate that feed H are measured and reported.

Compliance shapes the number. APICS defines carrying cost as the full cost of holding, including capital, storage, insurance, and obsolescence, not just warehouse rent, so an H that omits the cost of capital understates holding cost and inflates the EOQ. The Harris-Wilson derivation assumes constant demand and instantaneous replenishment, so when demand is time-varying the Wagner-Whitin or Silver-Meal frameworks apply instead. Because H is usually i times unit cost, the accounting basis for unit cost feeds straight into the lot size. State the carrying rate and what it includes, or the EOQ is not defensible.

Key input variables and cost classifications

Three inputs drive the quantity, and each has a definition to pin. Annual demand is the expected consumption over the planning year, reasonably steady, not a peak month annualized. Ordering cost is the fixed cost that does not scale with lot size: the labor and system cost to raise, transmit, receive, and reconcile one order, plus any fixed freight. Holding cost is the annual cost of one unit in stock, most often computed as a carrying rate times unit cost. The table gives typical carrying-rate components; measure your own rather than defaulting to a round number.

Typical annual carrying-cost components as a percent of unit value (illustrative)
ComponentTypical annual rateNotes
Cost of capital6% to 15%Weighted cost of the working capital tied up in stock.
Storage and handling2% to 5%Space, equipment, and labor to store and move the item.
Insurance and taxes1% to 3%Property insurance and inventory taxes on held value.
Obsolescence, shrinkage, damage2% to 10%Higher for perishable, fashion, or fast-changing items.
Total carrying rate (i)15% to 30%Sum of the above; multiply by unit cost to get H.

Deration factors: why the textbook EOQ shifts on the shop floor

The bare formula assumes clean, constant conditions. Three real-world factors move the practical order quantity away from the textbook number, and each has to be handled deliberately.

Quantity discounts and price breaks

When a supplier offers a lower unit price above a break quantity, the EOQ is no longer the whole story: a larger lot can lower purchase cost and the carrying rate (through a lower unit cost) enough to beat the pure EOQ. The correct method computes the EOQ at each price level, checks feasibility against the break points, and compares total cost including purchase cost across the candidates. The lowest-total-cost feasible quantity, not the raw EOQ, wins.

Finite replenishment rate (EPQ)

Classic EOQ assumes the whole order arrives at once. When you produce the item yourself and consume it as you make it, replenishment is gradual, average inventory is lower, and the economic production quantity (EPQ) formula applies, EPQ = √(2DS/H) × √(p/(p-d)), where p is the production rate and d the demand rate. Ignoring the finite rate understates the economic lot for made-in-house parts.

Lumpy demand and rounding to practical lots

The formula assumes steady demand; when demand is intermittent, the constant-demand EOQ is the wrong model and a dynamic method (Wagner-Whitin, Silver-Meal) fits better. Even under steady demand, the EOQ rarely lands on a full pallet, case, or truckload, so it is rounded to a practical handling unit. Because the cost curve is flat near the base, moderate rounding costs little, but the direction and size of the rounding should be checked against the curve, not assumed harmless.

Flat-bottom rule: total relevant cost near the EOQ is insensitive to the exact quantity, so ordering within roughly 20 percent of the EOQ adds only a few percent to cost. That is why a defensible lot rounded to a convenient handling unit is usually preferable to an exact but impractical EOQ, and why a wildly wrong lot (double or half the EOQ) is what actually costs money.

The EOQ, the reorder point, and safety stock together

The EOQ answers how much to order; it does not answer when. Those are separate decisions that work as a pair. The reorder point is the inventory level that triggers a new order, ROP = d × LT + safety stock, where d is the demand rate, LT is the replenishment lead time, and safety stock covers demand and lead-time variability during that lead time. The EOQ sets the size of each replenishment and therefore the average cycle stock (Q / 2), while the safety stock sits underneath as a variability buffer that the EOQ does not touch. Confusing the two is a common error: raising the order quantity does not protect against a stockout during lead time, and raising safety stock does not make the lot size economic. A sound policy computes the EOQ from demand and cost, sets the reorder point from lead time and service level, and reviews both when demand, lead time, or costs shift.

Reverse-engineering cost and cadence from a target

The relationships invert, turning EOQ into a design and diagnostic tool.

  • Ordering cost implied by a chosen lot: S = (Q² × H) / (2 × D); the ordering cost at which a lot you already run would be optimal, useful for testing whether a habitual lot is defensible.
  • Demand a lot suits: D = (Q² × H) / (2 × S); the demand level for which a fixed lot is the EOQ.
  • Order frequency from a target cycle: if you want to order every T years, Q = D × T and N = 1 / T, letting a desired review cadence set the quantity.
  • Minimum total cost: TRC* = √(2 × D × S × H); the floor on annual ordering-plus-holding cost, the benchmark any real policy is measured against.

For example, if a plant habitually orders 1,200 units of an item with D = 12,000/yr and H = $3, the implied ordering cost is S = (1,200² × 3) / (2 × 12,000) = $180, far above a realistic $50, which tells you the 1,200-unit lot is roughly double the economic quantity and worth cutting.

Five EOQ case studies and worked calculations

Case 1: baseline economic order quantity

Annual demand D = 12,000 units, ordering cost S = $50 per order, holding cost H = $3 per unit per year. EOQ = √(2 × 12,000 × 50 / 3) = √(400,000) = 632 units. The plant places N = 12,000 / 632 = 19 orders per year, one about every 250 / 19 = 13 working days. At the EOQ the annual ordering cost (19 × $50 = $949) and annual holding cost (316 × $3 = $949) are equal, and total relevant cost is TRC = √(2 × 12,000 × 50 × 3) = $1,897.

Case 2: a higher ordering cost lengthens the lot

The same item, but the true ordering cost is $200 once freight and receiving are counted. EOQ = √(2 × 12,000 × 200 / 3) = √(1,600,000) = 1,265 units, roughly double Case 1, with only N = 9.5 orders per year and a TRC of √(2 × 12,000 × 200 × 3) = $3,795. Doubling S multiplies the EOQ by √2, not by 2, which is the square-root model at work.

Case 3: a quantity discount

The supplier drops the unit price from $20 to $19.40 above 2,000 units, and the carrying rate is 15 percent (so H = 0.15 × C). At the EOQ quantity, total cost is purchase plus ordering plus holding at H = $3.00; at the 2,000-unit break, H rises to 0.15 × $19.40 = $2.91 but purchase cost falls by $0.60 on all 12,000 units, a $7,200 saving that dwarfs the small rise in holding cost. Comparing total cost including purchase price, the 2,000-unit break wins, so the discount overrides the raw EOQ.

Case 4: economic production quantity

The item is made in-house at a production rate p = 48,000 units/yr against demand d = 12,000 units/yr, with S = $50 setup and H = $3. EPQ = 632 × √(48,000 / (48,000 – 12,000)) = 632 × √(1.333) = 730 units. Because inventory builds gradually rather than all at once, the economic lot is larger than the pure EOQ, and the correction factor √(p/(p-d)) is what captures it.

Case 5: reverse check on a habitual lot

A buyer orders 3,000 units at a time out of habit. With D = 12,000 and H = $3, the ordering cost that would justify 3,000 units is S = (3,000² × 3) / (2 × 12,000) = $1,125, wildly above the real $50. The habitual lot is nearly five times the EOQ, so cycle stock and holding cost are far too high; cutting to about 632 units returns roughly $1,900 a year in holding cost, which the reverse calculation exposes at a glance.

Shop-floor implementation and continuous improvement best practices

Attack ordering cost, not just lot size

The EOQ rises with the square root of ordering cost, so cutting setup, paperwork, and receiving cost through faster changeovers and electronic ordering lets you order smaller lots economically, which lowers cycle stock and shortens flow time. Reducing S is the lean lever that makes small lots affordable.

Round to a practical handling unit, then verify on the curve

The cost curve is flat near the EOQ, so round the answer to a full case, pallet, or truckload for handling efficiency, but check the rounded lot against total relevant cost so the rounding stays inside the flat zone rather than drifting toward a costly extreme.

Keep the carrying rate honest and current

Holding cost drives the EOQ as strongly as ordering cost. Include the cost of capital, storage, insurance, obsolescence, and shrinkage, and revisit the rate when interest rates or product risk change, because a stale carrying rate quietly biases every lot size.

Set the reorder point separately from the lot size

The EOQ answers how much; the reorder point and safety stock answer when. Compute them independently, from lead time and service level, so a large lot is not mistaken for stockout protection and a large safety stock is not mistaken for an economic quantity.

Boundary conditions, mathematical limits, and model assumptions

The EOQ formula rests on a specific set of assumptions and strains when they break. It assumes constant, known demand; when demand is lumpy or seasonal, a dynamic lot-sizing method (Wagner-Whitin, Silver-Meal, or a periodic order quantity) fits better than a single constant-demand lot. It assumes instantaneous replenishment; for made-in-house parts consumed as they are produced, the EPQ variant applies. It assumes a constant unit price; quantity discounts require the price-break comparison rather than the raw formula. It assumes ordering and holding costs are known and stable, yet ordering cost in particular is notoriously hard to isolate, and the answer is only as good as those inputs. The model ignores stockout cost, capacity limits, and joint replenishment of multiple items sharing an order, all of which can dominate real decisions. Finally, the flat cost curve is a feature, not a loophole: it forgives small errors but not order quantities set with no reference to the formula at all.

Common EOQ mistakes and data interpretation pitfalls

  • Mismatched time bases. Monthly demand with an annual carrying rate, or the reverse, throws the lot size off by a large factor; put demand and holding cost on the same annual basis.
  • Understating holding cost. Omitting the cost of capital or obsolescence shrinks H and inflates the EOQ, pushing lot sizes and cycle stock too high.
  • Confusing lot size with reorder point. The EOQ is how much to order, not when; raising it does not protect against a lead-time stockout, which is the job of the reorder point and safety stock.
  • Ignoring quantity discounts. The raw EOQ can be beaten by a price break; total cost including purchase price must be compared across candidate quantities.
  • Applying EOQ to lumpy demand. The constant-demand assumption fails for intermittent items; a dynamic lot-sizing method is the right tool there.

Integration into ERP, MRP, and inventory planning

EOQ links lot-sizing policy to the wider planning stack. In an ERP or MRP system the EOQ becomes the item’s lot-sizing rule, so planned orders are grouped to the economic quantity rather than raised one net requirement at a time, and the reorder point and safety stock become the order-triggering parameters. The carrying rate and unit cost that feed H are drawn from the inventory accounting module, so a consistent carrying rate keeps every item’s lot size on the same basis. In a purchasing workflow, the EOQ and its price-break comparison inform the buyer’s order quantity and the supplier agreement, while the number of orders per year sizes the transactional workload. Because the EOQ sets cycle stock (Q / 2) and the reorder point sets safety and pipeline stock, the two together define the average inventory the balance sheet carries, tying operational lot-sizing directly to working-capital planning.

Economic order quantity frequently asked questions

How is the economic order quantity calculated?

EOQ is the square root of two times annual demand times ordering cost, divided by the annual holding cost per unit: EOQ = sqrt(2 x D x S / H). It is the lot size where annual ordering cost and annual holding cost are equal and their sum is minimized.

What are ordering cost and holding cost?

Ordering cost (S) is the fixed cost to place and receive one order, including setup, paperwork, freight, and receiving. Holding cost (H) is the annual cost of keeping one unit in stock, usually the carrying rate (cost of capital, storage, insurance, obsolescence) times the unit cost.

Why are ordering and holding cost equal at the EOQ?

Ordering cost falls and holding cost rises as the lot size grows. Their sum is minimized where the two curves cross, and at that crossing the annual ordering cost equals the annual holding cost, which is a property of the square-root formula.

How do quantity discounts change the EOQ?

A price break can make a larger lot cheaper overall. Compute the EOQ at each price level, check it against the break quantities, and compare total cost including purchase price. The lowest-total-cost feasible quantity wins, which may be a break quantity rather than the raw EOQ.

What is the difference between EOQ and EPQ?

EOQ assumes the whole order arrives at once. EPQ (economic production quantity) applies when the item is produced and consumed at the same time, so inventory builds gradually. EPQ multiplies the EOQ by sqrt(p/(p-d)), where p is the production rate and d the demand rate, giving a larger economic lot.

Does the EOQ tell me when to reorder?

No. The EOQ sets how much to order. When to order is set by the reorder point, which is demand during the lead time plus safety stock. The two are separate decisions and should be computed independently.

Why is the EOQ cost curve described as flat?

Total relevant cost changes little for order quantities near the EOQ, so ordering within roughly 20 percent of it adds only a few percent to cost. This lets you round the EOQ to a practical handling unit without much penalty, while a lot far from the EOQ still costs real money.

Sources, disclaimer, and editorial transparency

The EOQ formula, the quantity-discount procedure, and the production-batch (EPQ) variant used here follow recognized operations-management sources, including Ford W. Harris’s original 1913 derivation, the APICS/ASCM body of knowledge, and standard inventory-management texts. This calculator and guide were built by Zeeshan Abbas and technically reviewed by Rimsha Nadeem Anwar, a Six Sigma Black Belt industrial engineer; see our Editorial Policy for how each tool is researched, built, and tested.

Results are accurate estimates for planning and education, not certified engineering or financial advice. Validate outputs against your own measured demand, cost data, and supplier terms before changing inventory policy or committing capital. See our full Disclaimer. OpsCalculators.com is operated by MAFHH INTERNATIONAL LTD. Your inputs are processed in your browser and are never stored; see our Privacy Policy.