Operations & Supply Chain
EOQ with Planned Backorders: Optimal Lot Size, Peak On-Hand & Max Shortage
Extend classical Wilson EOQ when customers tolerate backorders at finite annual shortage cost b, computing critical fill fraction b/(h+b), expanded lot size Q*, peak inventory, and annual cost savings.
How finite backorder cost reshapes the sawtooth inventory cycle
Classical Wilson EOQ = SQRT(2 * D * S / h) assumes stockouts are strictly prohibited (b -> infinity), forcing every replenishment receipt to cover 100% positive on-hand stock. In B2B industrial distribution and MRO spare parts where customers wait briefly for backordered items at penalty cost b per unit-year, intentionally allowing a small planned backorder trough reduces average on-hand inventory and lowers total annual cost.
With holding cost h and backorder cost b per unit-year, the optimal in-stock service fraction is f = b / (h + b). The optimal order quantity expands to Q* = EOQ * SQRT((h + b) / b), split into peak positive inventory I_max = Q* * f and maximum planned backorder queue B_max = Q* * (1 - f), while minimum total annual cost drops by SQRT(f) relative to classical EOQ.
| Backorder EOQ Metric | Formula | Example (D=7200, S=100, h=9, b=16) |
|---|---|---|
| Standard No-Shortage EOQ | SQRT(2 * D * S / h) | 400 units (Annual cost = 3,600) |
| Critical In-Stock Fraction | b / (h + b) | 0.6400 (64% of cycle in stock) |
| Backorder-Optimal Lot Q* | EOQ * SQRT((h + b) / b) | 500 units |
| Peak On-Hand / Max Backorder | Q* * f and Q* * (1 - f) | 320 on-hand / 180 backordered (Cost = 2,880) |
Backorder-Adjusted Optimal Lot Size Q* Formula
Multiply classical EOQ by SQRT((h + b) / b) so Q* smoothly approaches classical EOQ as backorder penalty b grows large.
=ROUND(SQRT((2 * B2 * B3) / B4) * SQRT((B4 + B5) / B5), 2)Minimum Total Annual Setup + Holding + Backorder Cost
Evaluate optimal annual variable cost SQRT(2 * D * S * h * (b / (h + b)))—which equals h * I_max identically at optimality.
=ROUND(SQRT(2 * B2 * B3 * B4 * (B5 / (B4 + B5))), 2)Try the example
Use the original values or change them to test your understanding.