EOQCalculator.com
Wilson EOQ, with the math
Model

Multi-item joint-replenishment EOQ

By Oliver Wakefield-Smith, Founder, Digital Signet
Direct answer

When N SKUs share one PO and one shared ordering cost S, run them on a common replenishment cycle T*. Optimal T* = sqrt(2 * S / sum_i(H_i * D_i)). Item-level quantities back-solve from T*: Q_i = D_i * T*[1].

joint optimal cycle
T* = sqrt( 2 * S / sum_i ( H_i * D_i ) )

When joint replenishment wins

The shared ordering cost S has to be meaningfully larger than the per-item incremental order cost s_i. If S is $200 and s_i is near zero (adding one more SKU to an existing PO costs almost nothing), joint replenishment is essentially free. The alternative is running N independent Wilson EOQs and accepting that some will reorder more often than others, paying the full S each time.

When it does not win

If incremental per-item costs s_i are non-trivial (separate inspection, separate receiving, separate quality checks per SKU), the joint-cycle assumption breaks. The right tool is the indirect-grouping heuristic where high-velocity items reorder every T* and slow movers reorder every kT* for integer k. Silver (1976) gives the standard algorithm[2].

Back-solving per-item quantities

Once T* is set, Q_i = D_i * T* for each item. Annual average inventory across the portfolio is (1/2) * sum_i(D_i * T*) = (T*/2) * sum_i(D_i). Compare against the sum of independent Wilson EOQs to decide whether to consolidate.