436. Quantity Discounts

436.1. EOQ with quantity discounts

Relax one dimension from basic EOQ: unit price is no longer flat. The supplier offers per-unit discounts at break quantities — buy more, pay less per unit. Now purchase cost depends on (via the chosen price tier), so we cannot drop it from TC.

Two discount rules are common; we treat both.

436.1.1. All-units discount

The discounted price applies to every unit once you cross the break.

Tiers indexed with break quantities and unit costs :

(Last tier has no upper bound: .)

Holding cost is typically where is the annual carrying-cost rate (% of unit value), so the effective holding rate scales with the unit cost.

436.1.2. Cost model

Total cost (now keep purchase cost — it depends on tier):

The new term is the only addition vs basic-EOQ TRC, but it’s the dominant one.

436.1.3. Algorithm (all-units case)

  1. For each tier , compute the within-tier EOQ:

  2. Feasibility: is ?

    • If yes: candidate .
    • If (EOQ too small for this tier): candidate (snap up to the break).
    • If (EOQ too large for this tier): tier is dominated by a lower tier ( at least), skip it.
  3. Evaluate at each candidate.
  4. Pick the candidate with the smallest — that’s .

Geometric intuition: each tier has its own U-shaped TRC curve, sitting on top of a tier-specific constant . Lower tiers have a higher floor but the same shape. The optimum is the lowest feasible point across all tiers’ curves.

436.1.4. Incremental discount (briefly)

Each break only discounts units beyond the threshold. So the cost is piecewise linear in (no jump at breaks):

The TC curve is continuous (no jumps). Optimization is similar but there’s no need to snap to break quantities — you just minimize TC piecewise within each segment.

436.1.5. Final formulas

For the all-units case, no closed-form — must enumerate tiers as above.

Sanity check: with a single tier (), the algorithm reduces to basic EOQ exactly.

Example

Given (shared EOQ params + a 3-tier discount schedule):

  • Annual demand: units/year
  • Order cost: = $50 / order
  • Carrying-cost rate: (20%/year)
  • Discount schedule:
Tier Quantity range Unit cost
1 $10.00
2 $9.50
3 $9.00

Step 1 — within-tier EOQ for each tier

Holding cost is :

Step 2 — feasibility check

  • Tier 1 (range ): is outside (too large). Tier 1 is dominated. Skip.
  • Tier 2 (range ): is inside ✓. Candidate .
  • Tier 3 (range ): is outside (below the break). Snap to break: candidate .

Step 3 — evaluate TC at each candidate

Tier 3 wins.

Step 4 — compare to basic EOQ at the cheapest flat price

  • Basic EOQ at $10 (no discount available): , .
  • With discount (use ): . Save $12049/year by ordering just past the break to capture the volume discount.

The savings come almost entirely from the lower unit cost ($9 vs $10 saves $12000/year on purchase alone). The order/holding penalty for ordering above the unconstrained optimum is small because EOQ is forgiving (square-root cushion).