Economic order quantity (EOQ) is the order size that minimizes the total annual cost of holding and ordering inventory. It balances the cost of placing orders against the cost of carrying stock, using the formula EOQ equals the square root of (2DS divided by H), where D is annual demand, S is cost per order, and H is annual holding cost per unit.
EOQ answers one practical question: how much should you buy at a time so total inventory cost is as low as possible. The formula pulls three inputs together:
The math is: EOQ = √(2DS / H). Ordering in bigger batches lowers how often you order (less S), but raises average stock and holding cost (more H). Ordering in small batches does the reverse. EOQ is the crossover point where the two curves meet and total cost bottoms out.
Here is EOQ applied to a common maintenance item: a drive-motor bearing kept for a critical line.
Plug in: EOQ = √(2 × 1,200 × 60 / 10) = √(144,000 / 10) = √14,400 = 120 units.
So the cost-optimal batch is 120 bearings. To sanity-check, orders per year = 1,200 / 120 = 10 orders. Annual ordering cost = 10 × 60 = 600 euros. Average inventory = 120 / 2 = 60 units, so annual holding cost = 60 × 10 = 600 euros. The two costs are equal, which confirms you are at the EOQ minimum. Total relevant cost is 1,200 euros per year, lower than any other batch size.
EOQ is a clean model, and its simplicity comes from firm assumptions. Know them before you trust the number:
When these hold roughly true, EOQ gets you very close to optimal. The total-cost curve is flat near the bottom, so small errors in your inputs move total cost only slightly, which makes EOQ forgiving in practice.
Spare-parts inventory often breaks EOQ's assumptions, so treat the result as a starting point, not a rule. The main gaps:
Use EOQ for steady, low-criticality, high-turnover consumables (filters, standard fasteners, common bearings). For rare, failure-driven critical spares, pair it with criticality analysis such as FMEA and a safety-stock policy instead.
EOQ tells you how much to order; a reorder point tells you when. Together they form a usable policy:
Accurate D is the hard part, and it comes from clean consumption records. A CMMS that logs every spare part issued against a work order gives you the real annual demand per item, so your EOQ rests on measured usage rather than a guess. This same discipline is what makes pull systems like kanban reliable on the shop floor.
There is no universal good number. EOQ is specific to each item and simply reflects its demand and cost structure. A high-turnover consumable may have an EOQ of several hundred units, while a slow-moving spare may compute to just a few. The right value is whichever quantity minimizes total ordering plus holding cost for that part.
No. EOQ only sets the order quantity that minimizes ordering and holding cost. It does not account for demand variability or lead-time risk. Safety stock is a separate buffer added at the reorder point to protect against stockouts. In practice you use both together: EOQ for how much, reorder point plus safety stock for when.
Recalculate when your inputs change materially, typically once a quarter or after a shift in usage, supplier pricing, or holding cost. Because the total-cost curve is flat near its minimum, minor input drift barely moves the optimal batch, so daily recalculation is unnecessary. A steady quarterly review using fresh consumption data keeps EOQ accurate without churn.
Book a Fabrico demo to see how real-time spare-parts tracking and work-order logging give you the accurate annual demand data that makes EOQ and smarter inventory decisions possible.