Quantity Discounts, and What the Cycle Delivers

Manuel D. Rossetti, PhD P.E.

Agenda

  • Why a price schedule changes the problem in kind
  • All-units discounting, and why break points become candidates
  • Incremental discounting, and why it produces smaller orders
  • The service measures the general cycle delivers, for nothing

The Purchase Term Wakes Up

For three sessions the purchase term \(c\lambda\) has been inert. Identical under every policy, so it could not influence the choice among them.

That rested on one thing: \(c\) was a constant.

Once the supplier prices in tiers, \(c\) depends on \(Q\).

The purchase term is now exactly what the decision moves, and it is far larger than the ordering and holding costs put together.

Two Things Break

The cost rate is no longer smooth. Under an all-units schedule it jumps down at each break point.

So differentiating no longer finds the answer. You cannot set a derivative to zero on a function with jumps in it.

The answer is instead selected from a candidate list.

And the flatness we relied on last session does not rescue you here. Flatness is a statement about the relevant cost. The purchase term is not in it.

All-Units: Every Unit Reprices

Reach the break point, and the whole order is priced at the lower figure.

An item has \(\lambda = 8000\) per year, \(k = \$30\), \(i = 0.30\).

Order quantity Unit price
\(0 \le Q < 500\) $10.00
\(Q \ge 500\) $9.00

Four steps: compute a candidate at each price, test feasibility, add the break points, evaluate.

Step 1, a Candidate at Each Price

With \(h_j = ic_j\):

\[ Q_1^{*} = \sqrt{\frac{2(30)(8000)}{10(0.3)}} = \sqrt{160{,}000} = 400 \]

\[ Q_2^{*} = \sqrt{\frac{2(30)(8000)}{9(0.3)}} = \sqrt{177{,}778} = 422 \]

Two candidates. Now the important part.

Step 2, Feasibility

\(Q_1^{*} = 400\) must lie in \([0, 500)\). It does. Feasible at $10.

\(Q_2^{*} = 422\) must lie in \([500, \infty)\). It does not.

You cannot buy 422 units at $9. That candidate is discarded.

An economic order quantity computed at a price you are not entitled to is not an option. It is arithmetic about a world that does not exist.

Step 3, the Break Point Joins the List

The $9 curve is still decreasing at 500.

So the best available quantity at that price is the break point itself.

500 joins the candidate list.

This is what makes all-units different. The discontinuity means the optimum can sit exactly at a break, and no derivative will ever find it.

Step 4, Evaluate

\[ \mathit{TC}(400) = 8000(10) + \frac{30(8000)}{400} + \frac{(0.3)(10)(400)}{2} \]

\[ = 80{,}000 + 600 + 600 = \mathbf{\$81{,}200} \]

\[ \mathit{TC}(500) = 8000(9) + \frac{30(8000)}{500} + \frac{(0.3)(9)(500)}{2} \]

\[ = 72{,}000 + 480 + 675 = \mathbf{\$73{,}155} \]

Order 500.

Look at Where the Money Went

Buying a quarter more than the EOQ at the $10 price saves $8,045 a year.

Almost all of it on the purchase term:

\[ 8000 \times (\$10 - \$9) = \$8{,}000 \]

The holding cost does rise, from $600 to $675.

Seventy-five dollars of extra holding against eight thousand dollars of price reduction is not a contest.

When a discount is worth taking at all, it is usually worth taking exactly at the break point and no further.

Incremental: Only the Units Above Reprice

An order of size \(Q\) pays \(c_1\) for the first tier, \(c_2\) for the next, and \(c_j\) only for the units above the last break crossed.

Let \(R_j\) be the cost of filling all the intervals below \(j\) completely:

\[ R_j = \sum_{i=2}^{j} c_{i-1}\left(q_i - q_{i-1}\right), \qquad R_1 \equiv 0 \]

\[ C(Q) = R_j + c_j\left(Q - q_j\right) \]

Unlike the all-units case, this is continuous. Crossing a break changes the slope of the purchase cost, not its level.

The Manipulation That Saves Us

Holding cost is charged on the value of what is held, and the average price per unit now depends on \(Q\).

Substituting and collecting terms in \(Q\):

\[ \mathit{TC}(Q) = \frac{k_j\lambda}{Q} + \frac{h_j Q}{2} + \underbrace{c_j\lambda + \frac{i\left(R_j - c_j q_j\right)}{2}}_{\text{independent of } Q} \]

\[ k_j = R_j - c_j q_j + k, \qquad h_j = ic_j \]

The \(Q\)-dependent part has exactly the form of the ordinary EOQ, with an effective ordering cost \(k_j\) in place of \(k\).

\[ Q_j^{*} = \sqrt{\frac{2k_j\lambda}{h_j}} \]

A Three-Level Schedule

\(\lambda = 3000\) per year, \(k = \$50\), \(i = 0.30\).

Interval Break \(q_j\) Price \(c_j\)
1 0 $3.00
2 500 $2.97
3 1500 $2.95

\[ R_1 = 0, \quad R_2 = 3.00(500) = 1500, \quad R_3 = 1500 + 2.97(1000) = 4470 \]

The Effective Ordering Costs

\[ k_1 = 0 - 3.00(0) + 50 = 50 \]

\[ k_2 = 1500 - 2.97(500) + 50 = 65 \]

\[ k_3 = 4470 - 2.95(1500) + 50 = 95 \]

The effective ordering cost rises with the discount level.

That is the mechanism by which incremental discounting encourages larger orders. Reaching a deeper level means having already paid for everything below it, and that paid amount behaves exactly like a larger fixed charge.

The Candidates, and Feasibility

\[ Q_1^{*} = \sqrt{\frac{2(50)(3000)}{0.3(3.00)}} = 577.4 \]

\[ Q_2^{*} = \sqrt{\frac{2(65)(3000)}{0.3(2.97)}} = 661.6 \]

\[ Q_3^{*} = \sqrt{\frac{2(95)(3000)}{0.3(2.95)}} = 802.5 \]

\(Q_1^{*} = 577.4\) must lie in \([0, 500)\). No.

\(Q_3^{*} = 802.5\) must lie in \([1500, \infty)\). No.

\(Q_2^{*} = 661.6\) lies in \([500, 1500)\). Yes.

One Candidate Survives

\[ \mathit{TC} = \frac{65(3000)}{661.6} + \frac{0.891(661.6)}{2} + 2.97(3000) + \frac{0.3\left(1500 - 2.97(500)\right)}{2} \]

\[ = 294.74 + 294.74 + 8{,}910 + 2.25 = \mathbf{\$9{,}501.73} \]

Notice the first two terms are $294.74 each.

The effective ordering cost substitution turned this into an ordinary EOQ, so the balance property still holds. Check it every time: it confirms both \(k_j\) and the quantity computed from it.

The Two Schedules Compared

All-units Incremental
What reprices Every unit Only units above the break
Purchase cost at a break Jumps down Continuous, slope changes
Break points are candidates Yes No
Effect on order size Pulls toward breaks Pulls up gently
Typical optimum At a break point Interior to an interval

Incremental generally produces the smaller order, because the average unit cost falls slowly with \(Q\) and there is little to be gained by buying past a break.

There is no jump to exploit.

Now, What the Cycle Delivers

Back to the general cycle from two sessions ago. We computed four segments and two averages.

We claimed then that the service measures would come for free, because they are ratios of segment lengths we had already computed.

Time to collect.

Recall: \(\lambda = 100\), \(p = 250\), \(Q = 400\), \(\hat{B} = 30\), giving \(T = 4\) years, segments \(0.2, 1.4, 2.1, 0.3\), and \(\bar{I} = 91.875\), \(\bar{B} = 1.875\).

Five Measures, No New Work

Order frequency. One order per cycle:

\[ \overline{N} = \frac{\lambda}{Q} = \frac{100}{400} = 0.25 \text{ orders per year} \]

Turnover.

\[ \mathit{TO} = \frac{\lambda}{\bar{I}} = \frac{100}{91.875} = 1.09 \text{ turns per year} \]

Fraction of time out of stock. The system is short over \(T_4\) and \(T_1\):

\[ \overline{\mathit{SO}} = \frac{T_1 + T_4}{T} = \frac{0.2 + 0.3}{4} = 0.125 \]

And Two More

Ready rate, the complement:

\[ \overline{\mathit{RR}} = 1 - 0.125 = 0.875 \]

Rate of unfilled demand. Demand arrives at a constant rate, so

\[ \lambda\overline{\mathit{SO}} = 100(0.125) = 12.5 \text{ units per year arrive to an empty shelf} \]

Average customer wait.

\[ \overline{W} = \frac{\bar{B}}{\lambda} = \frac{1.875}{100} = 0.01875 \text{ year} = \mathbf{6.8} \text{ days} \]

Read the Last Two Together

The system is out of stock one eighth of the time, which sounds poor.

A customer who is made to wait waits about a week.

Whether that is acceptable is not a question the model answers.

Here the ready rate of 87.5% and the fill rate are the same number.

Demand arrives continuously at a constant rate, so the fraction of demand arriving during a stockout equals the fraction of time in stockout.

Treat that equality as a consequence of the deterministic assumption, not as a general fact. It survives into stochastic models only under Poisson demand arriving one unit at a time.

What We Did Today

A price schedule changes the problem in kind. The purchase term stops being inert and becomes the thing the decision moves.

All-units jumps, so break points are candidates. 500 beat 400 by $8,045, and $8,000 of that was price.

Incremental is continuous, so they are not. The effective ordering cost rises with the level, which is how it encourages larger orders.

The service measures were free. Five of them, all ratios of segments computed two sessions ago.

For Next Time

Read before next session: When Items Stop Being Independent, and A Constrained Lot Sizing Problem.

That closes the single-item deterministic model. Next we keep every assumption about demand and remove the one that made it easy: that items can be decided independently.

Next session:

  • Three kinds of coupling, and why each needs different mathematics
  • A budget that binds, and the Lagrange multiplier that resolves it
  • What the multiplier means, in dollars, to whoever set the budget
  • Why a budget constraint rescales every order quantity and a space constraint does not

Check first whether the constraint binds. It is the free step, and it is the one most often skipped.

⌂ Index