454. Joint Replenishment

454.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.

454.1.1. Setup

𝑛 items indexed 𝑖=1,…,𝑛:

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.)

454.1.2. Cost model

Per cycle:

Per unit time, divide by 𝑇:

TC(𝑇)=𝑆𝑇+∑𝑖=1𝑛ℎ𝑖𝐷𝑖𝑇2=𝑆𝑇+(𝑇2)∑𝑖=1𝑛ℎ𝑖𝐷𝑖

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

454.1.3. Derive 𝑇∗

𝑑𝑑𝑇TC=−𝑆𝑇2+12∑𝑖ℎ𝑖𝐷𝑖=0

Solve for 𝑇∗:

𝑇{∗2}=2𝑆∑𝑖ℎ𝑖𝐷𝑖𝑇∗=2𝑆∑𝑖ℎ𝑖𝐷𝑖

454.1.4. Final formulas

𝑇∗=2𝑆∑𝑖ℎ𝑖𝐷𝑖𝑄𝑖∗=𝐷𝑖𝑇∗=𝐷𝑖2𝑆∑𝑗ℎ𝑗𝐷𝑗TC∗=2𝑆∑𝑖ℎ𝑖𝐷𝑖

Sanity check: for a single item (𝑛=1), 𝑇∗=2𝑆/(ℎ1𝐷1), 𝑄1∗=𝐷1𝑇∗=2𝑆𝐷1/ℎ1 — 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.

454.1.5. Why is this cheaper than independent EOQs?

Order each item independently with its own EOQ: each pays 𝑆 per order, total cost is ∑𝑖2𝑆𝐷𝑖ℎ𝑖.

Joint replenishment: 2𝑆∑𝑖ℎ𝑖𝐷𝑖.

By Cauchy-Schwarz / Jensen, ∑𝑖𝑎𝑖2≤∑𝑖𝑎𝑖, so:

2𝑆∑𝑖ℎ𝑖𝐷𝑖≤∑𝑖2𝑆ℎ𝑖𝐷𝑖

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: 𝐷1=12000, ℎ1 = $2
  • Item 2: 𝐷2=6000, ℎ2 = $3
  • Item 3: 𝐷3=3000, ℎ3 = $4

Step 1 — aggregate holding rate

∑𝑖ℎ𝑖𝐷𝑖=2⋅12000+3⋅6000+4⋅3000=24000+18000+12000=54000

Step 2 — common cycle time

𝑇∗=2⋅5054000=10054000≈0.0430years≈16days

Step 3 — order quantities

𝑄1∗=𝐷1𝑇∗=12000⋅0.043≈516units𝑄2∗=𝐷2𝑇∗=6000⋅0.043≈258units𝑄3∗=𝐷3𝑇∗=3000⋅0.043≈129units

Step 4 — total cost

TC∗=2⋅50⋅54000=5400000≈2324

$/year

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

  • Item 1: 𝑄1=2⋅50⋅12000/2=775, TC1=2⋅50⋅12000⋅2≈1549
  • Item 2: 𝑄2=2⋅50⋅6000/3≈447, TC2=2⋅50⋅6000⋅3≈1342
  • Item 3: 𝑄3=2⋅50⋅3000/4≈274, TC3=2⋅50⋅3000⋅4≈1095
  • 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%.