Economic order quantity balances annual ordering cost against cycle-stock holding cost under explicit assumptions. Finish this guide with a reproducible batch-size calculation, whole-unit neighbor checks and a record of the real purchasing constraints the model does not solve.
Updated: 29 October 2026
What does an economic order quantity calculation decide?
An economic order quantity calculation asks how many units to buy in a replenishment batch when the objective is to minimize a defined annual ordering-plus-holding cost. EOQ is the abbreviation. It does not determine the date to order, the safety buffer to hold or the amount of cash a purchase requires today.
Smaller batches reduce average cycle stock but require more orders. Larger batches reduce ordering frequency but increase average cycle stock. The calculation balances those two cost components. Product revenue and profit margin are not substitutes for either input. Keep the objective narrow enough that another person can reproduce the comparison.
This article delivers a theoretical quantity, neighboring whole-unit candidates and their annual comparison costs. It does not deliver an approved purchase order. The ABC inventory worksheet answers a different question about grouping annual consumption value. Prioritizing products is not the same as optimizing one product’s batch size.
Collect three inputs with compatible units
Use D for annual demand in units, S for a fixed cost per purchase order and H for annual holding cost per unit. Document the basis of each amount. An annual warehouse rent total is not automatically H, and a product purchase price is not the same thing as its annual holding cost.
For the main fictional exercise, set D to 1,200 units per year, S to 18 currency units per order and H to 3 currency units per item per year. These values are authored teaching inputs, not market quotations, an Anar client case or observed savings. The arithmetic has been executed, but no inventory application or live purchasing account has been used.
| Input | Value | Unit |
|---|---|---|
| D | 1,200 | items/year |
| S | 18 | currency/order |
| H | 3 | currency/item/year |
Bring all inputs to the same period and currency. If holding information is monthly, convert it explicitly before combining it with annual demand. Avoid putting the same expense into both S and H. Leave an unknown input unresolved rather than converting it into zero to obtain an attractive answer. The source record should show how each number was obtained.
Write the model assumptions before calculating
This simplified exercise assumes known constant demand, constant order cost and constant annual holding cost per unit. Each replenishment arrives in full at once. There are no stockouts, quantity discounts, capacity limits or budget constraints in the model. These are mathematical assumptions, not claims about a real supplier or business.
Average cycle stock is Q/2 because the assumed batch is depleted evenly from Q to zero. This is not a statement that a real warehouse follows that path every day. No safety stock is included here. If a constant buffer exists, distinguish it from cycle stock instead of describing Q/2 as the entire average inventory.
D divided by Q represents the long-run annual ordering rate used for costing. A fractional result is not an instruction to create a fraction of a purchase order. A finite calendar-year purchasing schedule needs opening stock, timing and end-of-year remainder rules. The model is a cost-rate comparison rather than that scheduling exercise.
A minimum order and pack-multiple constraint also changes the feasible choices. The unrestricted whole-unit candidates used below are insufficient if a supplier only sells complete cartons or requires a minimum batch. Confirm the feasible set before treating any calculated quantity as available.
Calculate the theoretical quantity and both costs
The theoretical EOQ is the square root of 2DS/H. With the main inputs, the expression inside the root is 2×1,200×18/3=14,400. Its square root is 120 units. Forgetting the root and entering 14,400 as the batch size would answer a very different question.
Q* = √(2 × D × S / H) Annual ordering cost = D / Q × S Annual cycle holding cost = Q / 2 × H Comparison cost = D × S / Q + H × Q / 2
At Q=120, the annual ordering rate is ten. Ordering cost is therefore 10×18=180. Average cycle stock is 60 units and its annual holding cost is 60×3=180. The comparison total is 360 per year. This total excludes the annual merchandise purchase bill and is not the entire cost of operating the business.
| Batch Q | Ordering | Holding | Annual total |
|---|---|---|---|
| 60 | 360 | 90 | 450 |
| 120 | 180 | 180 | 360 |
| 240 | 90 | 360 | 450 |
When unit purchase price remains constant across all quantities, annual demand times that price adds the same amount to every candidate and does not move this minimum. Quantity discounts invalidate that shortcut. Use the supplier total-cost comparison to investigate actual commercial inputs, without assuming that it has already solved the EOQ decision.
Compare neighboring whole units instead of trusting display rounding
Now change only S to 20. The theoretical quantity becomes the square root of 16,000, approximately 126.4911. For indivisible items, evaluate 126 and 127 in the original annual cost expression. At 126 the total is approximately 379.476190; at 127 it is approximately 379.476378. The lower comparison cost is at 126.
Both totals display as 379.48 when rounded to cents. That display is not proof of exact equality. Retain calculation precision, identify the modeled minimum and separately note that the cost difference is extremely small. Choosing 126 inside this exercise does not establish that a supplier will sell that quantity or that your premises can hold it.
For positive D, S and H, the cost function decreases up to the continuous minimum and increases afterward. That is why the two neighboring feasible whole units suffice when every positive integer is allowed. If the continuous result is already an integer, it is the candidate; checking its adjacent quantities can still be a useful arithmetic sanity test.
If the theoretical result is below one, do not evaluate zero. For example, D=1, S=0.10 and H=10 gives Q* approximately 0.1414. With positive integer batches, the feasible boundary is one unit, whose annual comparison cost is 5.10. Putting Q=0 into the cost formula would divide by zero rather than produce a valid cheap alternative.
Reject unsupported inputs and test sensitivity
Treat D=0 as a separate no-demand case. Do not apply the ordinary formula and create a zero-unit replenishment instruction. This exercise rejects negative demand, nonpositive S or H, missing values and nonnumeric inputs. A zero order cost or zero holding cost needs a different boundary analysis, not an unexplained standard EOQ result.
If H rises from 3 to 6 with the other main inputs unchanged, the theoretical quantity becomes the square root of 7,200, approximately 84.85. Higher holding cost moves this model toward smaller batches. That is an input-sensitivity check, not a forecast of real prices or proof that the business should immediately change purchasing behavior.
A whole-unit decision in that scenario still requires comparing 84 and 85. Keep the original scenario intact and create a new version so a colleague can see which input caused the result to move. Do not revise several inputs together and attribute the whole change to holding cost.
Cash timing, physical space, shelf life and supplier lead time remain outside this optimization. Record them in the business risk record and inspect payment dates in the cash-flow plan. A theoretical minimum across two cost components is not a general recommendation to buy the calculated batch.
Save a fifteen-minute calculation card
On Windows, open Notepad from Start, create a blank document and copy the card below. Enter the main fictional inputs D=1200 units/year, S=18 currency/order and H=3 currency/unit/year, with their source label. Mark assumptions confirmed, rejected or unknown. For arithmetic, open Calculator from Start and choose Scientific mode. Calculate 2×1200×18÷3 to obtain 14400, then use the square-root button to obtain 120. Calculate ordering and holding costs separately with the expressions above and record both in the card; Notepad does not calculate them. Preserve precision in other scenarios rather than rounding intermediate costs to cents. Fifteen minutes is a planning target, not a measured duration.
Item and source version: [...] D, units/year: [...] S, currency/order: [...] H, currency/unit/year: [...] Assumptions and missing evidence: [...] Continuous Q*: [...] Feasible whole-unit candidates: [...] Ordering, holding and total for each: [...] Theoretical choice and excluded constraints: [...]
Record Q=120, annual ordering 180, annual holding 180 and total 360 in the card. Choose File → Save As, select Documents and save eoq-card-V1.txt. Use another name if it exists; do not overwrite it. Close Notepad and reopen that saved file from Documents in File Explorer. Check D/S/H, their units, assumptions and 120/180/180/360. Use File → Save As to create a separate eoq-card-S20.txt, change only S to 20, and recalculate and record costs for 126 and 127 without changing V1. Save and reopen the second file too. Confirm that two displayed 379.48 amounts have not replaced the precise comparison. These steps are proposed reader actions, not claims of an observed save/reopen, Excel test or ERP integration. The artifact is not a live purchase instruction.
Frequently asked questions
Does EOQ tell me when to place an order?
No. This exercise calculates a theoretical batch quantity from annual demand and costs. Reorder timing is a separate decision.
Can I simply round a fractional EOQ?
When all positive integer quantities are feasible, compare the neighboring whole units in the original annual cost expression.
What if annual holding cost is zero?
This exercise rejects zero, negative or unknown H for ordinary EOQ calculation. Clarify the input or use a separately defined boundary model.
Is the example total of 360 the annual purchase bill?
No. It is the annual ordering-plus-cycle-holding comparison cost. The merchandise purchase amount is excluded.


