438. Joint Replenishment

438.1. Joint replenishment (multi-item EOQ with shared setup)

Relax one dimension from basic EOQ: number of items is no longer one. Multiple items share a single supplier (or a single delivery truck, or a single setup operation), so the order cost is paid once per coordinated order — not separately per item.

Single supplier, multiple SKUs: order them all together on the same cadence, save on setup.

438.1.1. Setup

items indexed :

This is the simplest joint-replenishment formulation. (Variants with item-specific minor setups in addition to a major exist — see Roundy / Federgruen-Zheng — but we’ll keep it minimal here.)

438.1.2. Cost model

Per cycle:

Per unit time, divide by :

The single decision trades off setup cost (decreases with ) against aggregate holding (increases with ).

438.1.3. Derive

Solve for :

438.1.4. Final formulas

Sanity check: for a single item (), , — exactly basic EOQ ✓.

The aggregation comes through the single — items with small contribute little to the optimal cycle, so they’re ordered alongside the big- items at no extra setup cost.

438.1.5. Why is this cheaper than independent EOQs?

Order each item independently with its own EOQ: each pays per order, total cost is .

Joint replenishment: .

By Cauchy-Schwarz / Jensen, , so:

Joint always wins. The savings grow with the number of items and the unevenness of across them.

Example

Given (3 items sharing a single supplier with shared setup):

  • Common setup: = $50 / order
  • Item 1: , = $2
  • Item 2: , = $3
  • Item 3: , = $4

Step 1 — aggregate holding rate

Step 2 — common cycle time

Step 3 — order quantities

Step 4 — total cost

$/year

Compare to independent EOQs (each item ordered separately with full ):

  • Item 1: ,
  • Item 2: ,
  • Item 3: ,
  • Total independent: $1549 + $1342 + $1095 = $3986.

Joint replenishment saves $1662/year (42% lower) by sharing the setup across items. The savings scale with the number of items — at 10 SKUs of similar size, savings would approach 70%.