EOQ Formula and Calculator
Economic order quantity, worked properly. See the formula substituted with your own numbers, the order cycle it implies, and what a different order quantity would cost.
Calculate Economic Order Quantity
Enter figures for one SKU. Everything runs in your browser and no data leaves this page.
D is annual demand in units, S is the fixed cost of one order, H is the cost of holding one unit for a year.
S is the cost of the transaction, not the cost of the goods. Leave purchase price out of it unless you are comparing supplier price breaks.
Your numbers in the formula
Enter demand, cost per order and holding cost to see the substitution.
At the optimum, annual ordering cost and annual holding cost are equal.
Cost of ordering a different quantity
Total cost = (D ÷ Q) × S + (Q ÷ 2) × H, at each multiple of your EOQ.
| Order quantity | Units | Ordering cost | Holding cost | Total annual cost | Extra vs optimum |
|---|
Every Variable in the EOQ Formula
Most wrong EOQ answers come from wrong inputs, not wrong arithmetic. Here is each symbol, the unit it must be in, and the mistake that shows up most often.
| Symbol | Name | Unit | Where the number comes from | Most common mistake |
|---|---|---|---|---|
| Q* | Economic order quantity | units per order | The output: the order size where ordering and holding cost balance. | Treating it as a rule. Round it to a carton or pallet multiple. |
| D | Annual demand | units per year | Units sold in the last 12 months for this SKU, adjusted for known growth. | Using revenue instead of units, or a product family instead of one SKU. |
| S | Cost per order | currency per order | The cost of placing and receiving one replenishment, whatever its size. | Including the cost of the goods. S is the transaction, not the stock. |
| H | Annual holding cost per unit | currency per unit per year | Storage, capital, insurance, shrinkage and obsolescence for one unit for a year. | Using only the storage fee. Capital and obsolescence are usually larger. |
Keep the time units consistent
D and H must both be annual, or both monthly. Mixing annual demand with a monthly holding cost inflates EOQ by a factor of about 3.5.
A US SKU, Start to Finish
A brand sells one accessory SKU across the US from a Texas warehouse, buying from an overseas supplier.
| Input | Value | How it was built |
|---|---|---|
| Annual demand (D) | 24,000 units | 2,000 units a month across both markets, from 12 months of order data. |
| Cost per order (S) | US$450 | Admin, freight booking, brokerage, bank fee and receiving for one inbound shipment. |
| Holding cost (H) | US$3.00 per unit per year | A 25% holding rate on a US$12 unit cost: capital, storage, insurance, write-offs. |
| Days per year | 365 | Calendar days, because the warehouse receives on any weekday. |
The substitution
Q* = √(2 × 24,000 × 450 ÷ 3) = √7,200,000 = 2,683 units per order.
| Output | Arithmetic | Result |
|---|---|---|
| Economic order quantity | √(2 × 24,000 × 450 ÷ 3) | 2,683 units |
| Orders per year | 24,000 ÷ 2,683.28 | 8.94 |
| Days between orders | 365 ÷ 8.94 | 40.8 days |
| Annual ordering cost | 8.94 × US$450 | US$4,024.92 |
| Annual holding cost | (2,683.28 ÷ 2) × US$3.00 | US$4,024.92 |
| Total annual inventory cost | US$4,024.92 + US$4,024.92 | US$8,049.84 |
| Same total, direct | √(2 × 24,000 × 450 × 3) | US$8,049.84 |
Nobody runs 8.94 shipments a year. Nine orders of 2,667 units, or eight of 3,000, both land within a fraction of a percent of that cost.
Ordering Cost and Holding Cost Meet at the Optimum
Order more often and you pay the fixed cost more times. Order less often and you sit on more stock. The table shows the crossing point.
| Order quantity | Orders per year | Annual ordering cost | Annual holding cost | Total annual cost |
|---|---|---|---|---|
| 1,000 units | 24.00 | US$10,800.00 | US$1,500.00 | US$12,300.00 |
| 2,000 units | 12.00 | US$5,400.00 | US$3,000.00 | US$8,400.00 |
| 2,683 units (Q*) | 8.94 | US$4,024.92 | US$4,024.92 | US$8,049.84 |
| 3,500 units | 6.86 | US$3,085.71 | US$5,250.00 | US$8,335.71 |
| 5,000 units | 4.80 | US$2,160.00 | US$7,500.00 | US$9,660.00 |
Three things this gives you for free
- A check: if ordering and holding cost are not equal, the quantity is not optimal.
- A shortcut: total cost at the optimum is √(2DSH), or twice either half.
- A direction: whichever cost is larger tells you which way the order size should move.
Being Wrong About EOQ Is Cheap
The total cost curve is flat near its minimum, so an order quantity that is somewhat off costs far less than the formula's precision suggests.
| Order quantity | Units in the example | Total annual cost | Extra vs optimum | What it means |
|---|---|---|---|---|
| 0.50 × Q* | 1,342 | US$10,062.31 | +25.00% | Halving the order is the direction that hurts. |
| 0.75 × Q* | 2,012 | US$8,385.25 | +4.17% | A quarter under optimum costs about four percent. |
| 1.00 × Q* | 2,683 | US$8,049.84 | 0.00% | The minimum of the curve. |
| 1.25 × Q* | 3,354 | US$8,251.09 | +2.50% | Rounding up to a pallet multiple is near free. |
| 1.50 × Q* | 4,025 | US$8,720.67 | +8.33% | Half again as much stock, under nine percent more. |
Where the percentages come from
For any ratio r between your order quantity and EOQ, total cost is (r + 1 ÷ r) ÷ 2 times the optimum. At r = 1.25 that is (1.25 + 0.8) ÷ 2 = 1.025, the 2.5% penalty in the table.
D, S and H cancel out of that expression, so the same percentages hold for every SKU.
Round to the packaging
Move EOQ to the nearest full carton or pallet. Handling savings beat the small cost penalty.
Round to the calendar
An 8.94-order year runs better as nine orders on a fixed cycle. Regular timing beats a decimal place.
Stop refining the inputs
If S is 20% out, EOQ moves about 10% and total cost well under 1%. Estimate S and H once, then move on.
What Belongs in Cost Per Order
Add up a recent inbound shipment line by line, then keep only the parts that would not change if the order doubled.
| Cost component | What it covers | How it behaves |
|---|---|---|
| Purchasing admin | Raising the PO, chasing the supplier, approvals, filing. | Fixed per order |
| Inbound freight | Booking, minimum charges, consolidation. | Fixed per shipment |
| Customs and brokerage | Entry filing and broker fees at destination. | Fixed per declaration |
| Inbound handling | Receiving, count, quality check, putaway. | Part fixed, part per unit |
| Payment and FX | Transfer fees, letter of credit, bank charges. | Fixed per transaction |
| Inspection | Pre-shipment inspection or lab testing per run. | Fixed per order when used |
Anything that scales with units belongs in H, not in S. If your 3PL bills both a shipment fee and a per-unit fee, split them.
What Belongs in Annual Holding Cost
Teams that count only the storage line understate H badly and end up ordering too much.
| Cost component | What it covers | Where the rate comes from |
|---|---|---|
| Cost of capital | What the cash tied up in stock would earn elsewhere. | Your own capital rate |
| Storage | Pallet, bin or cubic-metre charges and long-stay surcharges. | Your storage rate card |
| Obsolescence | Value lost when stock ages out or is discounted to clear. | Your markdown history |
| Shrinkage and damage | Damage, miscounts and write-offs during storage. | Your cycle-count history |
| Insurance | Cover on stored inventory, usually a share of stock value. | Your policy |
| Handling of held stock | Cycle counts and relocations caused by holding it. | Small but real |
Build your own rate, do not borrow one
Holding rates are often quoted as a share of unit cost, but the right figure varies by category, market and cost of capital. Derive yours from your own capital rate, storage invoices and write-offs.
The calculator accepts either form: an amount per unit, or a percentage of unit cost.
What the Model Assumes, and What Really Happens
EOQ is a clean model of a messy process. Each assumption below is one you will break, and each has a known fix.
| The model assumes | What actually happens | What to do about it |
|---|---|---|
| Demand is constant and known | Ecommerce demand moves with promotions and seasons. | EOQ still gives a sound average order size. Hold safety stock for the variability. |
| Cost per order is fixed | Freight steps up at container or weight breaks. | Check EOQ against the shipping breaks and take the nearest one. |
| Unit price is the same at any quantity | Suppliers offer price breaks at volume. | Run the quantity-discount version and compare total cost at each break. |
| Stock arrives all at once | Own production or drip-fed supply arrives gradually. | Use the production order quantity model, which allows a larger batch. |
| No stockouts occur | Some businesses accept backorders on slow movers. | The planned-backorder variant allows a larger order quantity. |
| Lead time does not matter | Lead time decides when to order, not how much. | Pair EOQ with a reorder point covering demand during lead time. |
Situations Where EOQ Is the Wrong Tool
The formula answers one question: how much to order when the same item is bought repeatedly. Outside that pattern the answer looks precise but is not useful.
| Situation | Why EOQ does not fit |
|---|---|
| Very short life cycle | Fashion drops have one selling window, not a repeating cycle. |
| Demand still unknown | A new SKU with no sales history gives EOQ nothing to work from. |
| Perishable or dated stock | Shelf life caps the order long before ordering economics do. |
| Supply is the constraint | When a supplier minimum sets the quantity, EOQ is not binding. |
| Cash is the constraint | A working-capital ceiling can make the optimal order unfundable. |
| Highly lumpy demand | A few large B2B orders a year are better planned directly. |
EOQ answers how much, not when
Timing is a separate calculation built from lead time and safety stock. Use EOQ for the quantity and a reorder point for the trigger.
Extensions of the Basic EOQ Model
When an assumption breaks predictably, there is a standard extension for it. Each keeps the same cost balance and changes only what enters the equation.
| Model | Use it when | How the answer changes |
|---|---|---|
| Quantity discount model | The unit price drops at a volume break. | Purchase cost enters the total, so the answer can jump to a break point. |
| Production order quantity | Stock arrives gradually, not in one drop. | Average stock is under half the batch, so the optimal batch is larger. |
| Planned backorder model | Backorders carry a known cost. | Allows a larger order and a deliberate short period each cycle. |
| Newsvendor model | One decision, one short selling window. | Balances overstock against lost sales, not ordering against holding. |
Turning the number into an order plan
- Round EOQ to your carton or pallet multiple, then check the penalty above.
- Compare it against the supplier minimum and any nearby price break.
- Check it against a container or LCL consolidation point before fixing freight mode.
- Turn orders per year into a review cycle your purchasing team can run.
- Set the trigger from lead time, and re-run EOQ when demand or freight cost shifts.
From Order Quantity to Storage and Fulfilment
EOQ sets the size of every inbound shipment, which sets your storage footprint. These tools cover the steps either side of it.
Where the storage cost actually lands
A larger EOQ means higher average stock, and average stock is what a warehouse bills for. Half your order quantity, plus safety stock, is the level to plan against.
In the worked example that is 1,342 units of cycle stock.
If your storage rate changes, H changes and EOQ moves with it. Re-run this after any rate card change.
EOQ Formula Questions
Planning Inventory Across Markets?
Talk to Locad about warehousing and fulfilment for your stock.