EOQ Calculator: Free Economic Order Quantity Template (Excel)
Free EOQ calculator template for ecommerce warehouses. Find the order quantity per SKU that minimizes total cost using demand and cost inputs.
TL;DR
This EOQ calculator template uses the classic EOQ = sqrt(2DS/H) formula to find the order quantity that minimizes total inventory cost per SKU. Inputs are annual demand (D), ordering cost per order (S), and holding cost per unit per year (H). The template also outputs annual ordering cost, holding cost, and total cost at EOQ.
An EOQ calculator takes three numbers per SKU and tells you the order quantity that minimizes total inventory cost. Without it, most teams pick order quantities on gut feel or supplier minimums. Both leave money on the table.
Holding costs typically run 20-30% of inventory value per year when you factor in storage, insurance, tied-up capital, and obsolescence. For a warehouse carrying $300,000 in stock, that is $60,000-$90,000 annually just to keep items on shelves. A 2023 study by the Warehousing Education and Research Council found that warehouses optimizing order quantities cut total inventory costs by 12-18% in the first year.
Get Excel TemplateThe math behind this template follows the economic order quantity formula developed by Ford W. Harris in 1913 and still the standard model in supply chain management today.
What the EOQ calculator computes
What is the economic order quantity formula?
The core formula is:
EOQ = sqrt(2 x D x S / H)
Where:
- D: annual demand in units
- S: ordering cost per order (admin time, shipping setup, receiving labor)
- H: holding cost per unit per year (storage + insurance + capital cost, usually 20-30% of unit cost)
The template runs the formula across all your SKUs and outputs the optimal order quantity plus a cost breakdown showing annual ordering cost, annual holding cost, and total cost at EOQ. That breakdown shows you exactly where you are overpaying and by how much.
Input table: 5 columns per SKU
| Column | Type | Purpose |
|---|---|---|
| SKU | Manual | Product variant identifier |
| Annual demand (D) | Manual | Total units sold per year (or 52 x avg weekly demand) |
| Unit cost ($) | Manual | Your landed cost per unit |
| Ordering cost per order (S) | Manual | Fixed cost each time you place a PO |
| Holding rate (%) | Manual | Annual holding cost as % of unit cost (default: 25%) |
The holding cost per unit (H) is calculated automatically as unit cost x holding rate. If you do not know your exact holding rate, start with 25%. That covers typical storage, insurance, and capital costs for ecommerce operations and lines up with the benchmark from the Council of Supply Chain Management Professionals (CSCMP).
For ordering cost, count the real labor and overhead per PO: time to create and send the order, AP time to process the invoice, and any fixed receiving labor cost. A realistic figure for most small warehouses is $25-$75 per order. Larger operations with dedicated procurement teams often land at $40-$100.
Output table: 4 columns per SKU
| Column | Formula | Example |
|---|---|---|
| EOQ (units) | sqrt(2 x D x S / H) | 223 units |
| Annual ordering cost | (D / EOQ) x S | $224 |
| Annual holding cost | (EOQ / 2) x H | $224 |
| Total annual cost | Ordering + holding | $447 |
At EOQ, annual ordering cost and annual holding cost are always equal. That is not a coincidence — it is the mathematical property that defines the optimal quantity. If those two numbers diverge significantly in your sheet, you are ordering in batches that are too large (high holding cost) or too small (high ordering cost).
How to use the EOQ calculator: step by step
- List all active SKUs you want to optimize. Start with your top 20 by annual spend: that is where EOQ savings are largest.
- Pull annual demand from your sales channel or order history. For a new SKU with less than 12 months of data, use monthly demand x 12.
- Enter your landed unit cost including duties and inbound freight if applicable.
- Estimate your ordering cost by timing how long it takes to create, send, and receive a typical PO, then multiply by your hourly labor rate. Add any fixed freight minimums.
- Set the holding rate to 25% unless you have a more precise figure from your accounting team.
- Review the EOQ column: compare it to your current order quantities. SKUs where you are ordering 3x or more above the EOQ are your biggest holding cost problems.
- Check supplier minimums: if the EOQ falls below a supplier’s minimum order quantity, use the MOQ as your practical order quantity and note the cost delta.
Worked example: calculating EOQ for a single SKU
Consider a warehouse that sells 5,000 units per year of SKU BLK-TEE-M at a landed cost of $12.00 per unit. The ordering cost is $50 per PO, and the holding rate is 25%.
- H = $12.00 x 0.25 = $3.00 per unit per year
- EOQ = sqrt(2 x 5,000 x $50 / $3.00) = sqrt(166,667) = 408 units
- Annual ordering cost = (5,000 / 408) x $50 = $613
- Annual holding cost = (408 / 2) x $3.00 = $612
- Total cost at EOQ = $1,225
If the same team had been ordering 1,000 units per batch, their holding cost would be $1,500 and ordering cost just $250, totaling $1,750. Switching to EOQ saves $525 per year on this single SKU alone. Across 50 A-class SKUs, those savings compound to $15,000-$25,000 annually for a mid-size ecommerce operation.
EOQ assumptions and when they break down
When does the EOQ formula not work?
EOQ works best for SKUs with stable, predictable demand. It is less reliable when:
- Demand is seasonal: a single annual demand number averages out peaks and troughs. For seasonal SKUs, calculate separate EOQs for peak and off-peak periods.
- Lead times are long or variable: EOQ tells you how much to order, not when. Pair it with the reorder point calculator to get both the quantity and the trigger.
- Supplier discounts apply: if your supplier offers a 10% discount above a certain quantity, you may want to deviate from EOQ. The template includes a discount analysis tab for this.
- Storage space is constrained: if your warehouse is at capacity, you cannot always store the theoretical EOQ even if the math says to order it.
SKU prioritization guide
Not every SKU needs a precise EOQ calculation. Focus your effort where it counts:
- A-class SKUs (top 20% by annual spend): always run EOQ, review quarterly. These SKUs typically represent 70-80% of your total inventory cost.
- B-class SKUs (middle 30%): run EOQ annually, or when your supplier lead time or unit cost changes by more than 10%.
- C-class SKUs (bottom 50% by spend): use a simple rule-of-thumb (e.g., 60-day supply per order) unless one of them is surprisingly high-volume.
- Single-source or long-lead-time SKUs: run EOQ and add extra safety stock buffer; these are where stockouts hurt most.
For safety stock buffers to pair with your EOQ quantities, use the safety stock calculator. Both templates share the same demand and lead time inputs, so you can populate them from a single data pull.
Sensitivity analysis: how inputs affect EOQ
Warehouses optimizing order quantities cut inventory costs by 12-18% in year one
Small changes in inputs can shift the optimal order quantity significantly. The table below shows how EOQ changes for a SKU with baseline values of D=5,000, S=$50, H=$3.00:
| Input change | New EOQ | % change from baseline |
|---|---|---|
| Demand increases 50% (D=7,500) | 500 units | +23% |
| Ordering cost doubles (S=$100) | 577 units | +41% |
| Holding cost increases 50% (H=$4.50) | 333 units | -18% |
| Demand drops 50% (D=2,500) | 289 units | -29% |
EOQ is more sensitive to ordering cost than holding cost. If your ordering cost estimate is rough, run the calculator at $25, $50, and $75 to see the range of practical order quantities. The carrying cost of inventory guide breaks down how to calculate a precise holding rate for your operation.
When to move beyond a spreadsheet
The EOQ template works well for catalogs up to about 150-200 active SKUs. Beyond that, a few limitations surface:
- Annual demand figures go stale fast: you are always running on last quarter’s numbers unless you update manually.
- The spreadsheet cannot flag when actual order quantities drift away from the calculated EOQ over time.
- It does not connect to your purchasing workflow, so the “optimal quantity” lives in one document while the actual PO gets created somewhere else.
- Multi-supplier scenarios (same SKU, two suppliers with different costs and lead times) require duplicate rows and manual reconciliation.
Small business inventory software calculates EOQ automatically from live sales data and feeds it directly into purchase order creation. If you are placing more than 20 POs a month, the manual spreadsheet step becomes the bottleneck.
Quick Reference
- Formula:
EOQ = sqrt(2 x D x S / H)where D = annual demand, S = ordering cost per order, H = holding cost per unit per year. - At EOQ, annual ordering cost and annual holding cost are always equal: that is how you know the formula is working.
- Default holding rate:
25%of unit cost per year for ecommerce warehouse operations. - Typical ordering cost range:
$25-$75per purchase order for small-to-mid-size warehouses. - Holding costs run
20-30%of inventory value per year on average. - Warehouses optimizing order quantities reduce total inventory costs by
12-18%in year one. - Focus EOQ optimization on your top
20%of SKUs by annual spend.
| SKU tier | EOQ review frequency | Notes |
|---|---|---|
| A-class (top 20% spend) | Quarterly | Most impactful; review after any supplier change |
| B-class (middle 30%) | Annually | Refresh when unit cost or lead time changes by 10%+ |
| C-class (bottom 50%) | As needed | Rule-of-thumb order quantity usually sufficient |
| Seasonal SKUs | Per season | Use peak and off-peak demand figures separately |
| New SKUs (under 6 months) | Monthly | Demand estimate improves fast; recalculate often |
Operational validation should not require budget approval first. Start a free 14-day Upzone trial and test it on live orders.
Start free trial →