EOQ inside MRP
MRP (material requirements planning) explodes a bill-of-materials against a master production schedule to derive time-phased net requirements. The lot-sizing step turns net requirements into production orders. EOQ is one of several lot-sizing rules; others include lot-for-lot, fixed period, and Wagner-Whitin (1958), which is provably optimal for time-phased demand[1].
The algorithm that converts net requirements into discrete production / purchase orders.
Lot-sizing rules
- Lot-for-lot (L4L): order exactly net requirement each period. Zero lot-size inventory. Best when S approaches 0 (JIT).
- EOQ: order Q* = sqrt(2DS/H) using rolling annualised demand. Stable, suboptimal under spiky time-phased demand.
- Fixed period: order T weeks of demand at each trigger. Easy to administer; cost depends on T choice.
- Wagner-Whitin: dynamic program that solves the time-phased lot-size optimum exactly[2].
- Silver-Meal heuristic: period-by-period heuristic that approximates Wagner-Whitin at lower compute. Often within 1 to 2 percent of optimum.
When Wagner-Whitin beats EOQ
Wagner-Whitin wins when demand is genuinely time-phased and known (a deterministic MPS over a finite horizon). For stationary demand approximated as constant D, the two converge. For seasonal MPS with large period-to-period swings, Wagner-Whitin can save 10 to 15 percent of cycle costs[1].
How real MRP systems implement EOQ
NetSuite, SAP, Fishbowl, and Cin7 all let you set an EOQ field per SKU manually, or have the system compute it from supplier lead-time and your carrying-cost parameter. The practical implementation usually rounds Q* to a multiple of the case pack or pallet, capturing the supplier-imposed MOQ in the same field.