EOQ vs JIT
EOQ wins when setup cost S is non-trivial and unit holding cost H is moderate; JIT wins when S has been engineered down toward zero (Toyota Production System changeover work) or when H is dominated by obsolescence or perishability rather than financial carrying[1]. The one-line rule: if your setup-to-holding ratio S/H is above the demand period, batch with EOQ; if it’s below, pull with JIT.
The boundary, in one formula
Wilson’s Q* = sqrt(2DS/H) collapses to one as S approaches zero. At Q* = 1 you are ordering or producing one unit per demand event, which is the JIT idealisation. So the boundary is engineered: anything you do to drop S (SMED changeover, supplier kanban, EDI ordering) shifts the optimal toward JIT without abandoning the Wilson math.
When EOQ beats JIT
- Supplier setup or freight cost per order is fixed and material ($50, $200, $1,000 minimum freight).
- Demand is reasonably stable; coefficient of variation under ~30 percent.
- Shelf life is long; no obsolescence loader.
- Carrying cost percentage is moderate (15 to 25 percent) so larger Q is forgiving.
When JIT beats EOQ
- Setup cost has been engineered toward zero (Toyota cell, supplier kanban, EDI auto-replenish).
- Holding cost is dominated by obsolescence or perishability - fashion apparel, fresh food, short-cycle electronics. The H in Wilson’s formula is then much larger than the financial carrying rate suggests.
- Demand variability is high and forecastable only at very short horizons.
- Floor space is the binding constraint, not working capital.
The hybrid most operations actually run
In practice few shops run pure JIT or pure EOQ. The common pattern: EOQ on A-class items where S is significant, JIT-style continuous replenishment on C-class items via kanban, and a Newsvendor single-period buy on fashion or seasonal SKUs. ABC analysis is the partition rule.
The decision in one sentence
If S/H is larger than one demand period, batch with Wilson Q*. If you’ve engineered S close to zero or H is obsolescence-loaded, pull JIT.