Economic Order Quantity (EOQ)
Find the order size that minimizes combined ordering and holding cost for a steady-demand part.
Your recent runs (stored only in your browser)
No calculations yet — results land here so you can compare runs.
The engineering
EOQ balances two opposing costs: order too often and you rack up fixed ordering/setup cost; order too rarely and you pay to hold a bloated average inventory (Q/2 units). The square-root formula lands on the order size where those two annual costs are exactly equal — which is also the minimum of their sum.
The cost curve is flat near the bottom, so EOQ is forgiving: being off by 20% on Q typically raises total cost by under 2%. That's why rounding EOQ up to a pallet, case pack, or MOQ is fine. The model assumes steady demand, instant replenishment, and constant unit price — add quantity discounts or lead-time variability and you move to the extended models.
Where this math comes from
Ford Whitman Harris, a young engineer at Westinghouse, derived the square-root lot-size formula in a 1913 article in Factory, The Magazine of Management. He was solving a shop-floor problem — how big a manufacturing lot to run — and worked out the trade-off between setup cost and carrying cost by hand, apologizing in print that the math might look intimidating to practical men.
The formula spread through R. H. Wilson, a consultant who promoted it heavily in the 1930s, which is why it's still often called the Wilson EOQ or Wilson lot-size formula even though Harris did the original work. It remains the first thing taught in every inventory-management course and the backbone of MRP order sizing.
- 1913Ford W. HarrisPublishes the original square-root lot-size derivation in a trade magazine.
- 1934R. H. WilsonPopularizes the formula in practice — hence 'Wilson EOQ'.
- 1958Thomson M. WhitinFormalizes inventory theory, cementing EOQ in the operations-research canon.
See the full timeline of the math behind every calculator →
Runs entirely in your browser — nothing you enter leaves this page. Your recent runs are stored only on your device.