So far \(c\) was constant, so the purchase term \(c\lambda\) was inert. Suppliers price in tiers, and then the purchase term is what the decision moves.
Under all-units discounting the whole order is priced at the rate its size reaches. Under incremental discounting only the units above each break point get the lower price. On a schedule breaking at 500, an order of 600 pays the lower price on all 600 under the first and on the last 100 under the second.
Let \(m\) represent the number of price levels, \(q_j\) the break point beginning level \(j\), with \(q_1 = 0 < q_2 < \cdots < q_m\), and \(c_j\) the unit price for \(q_j \le Q < q_{j+1}\), with \(c_1 > c_2 > \cdots > c_m\).
The underlying model is the classical one: one item, no shortages, instantaneous replenishment, \(h_j = ic_j\).
Within interval \(j\):
\[ \mathit{TC}_j(Q) = c_j\lambda + \frac{k\lambda}{Q} + \frac{ic_jQ}{2}, \quad q_j \le Q < q_{j+1} \]
Each price has its own curve, drawn solid where it applies. The $9 curve lies wholly below the $10 curve: a lower price lowers both the purchase term and the holding term.
Notice the dashed break point. The realized cost drops vertically from one curve to the next, and that drop is why the minimum cannot be found by differentiating.
| Case | What happens | Why |
|---|---|---|
| Minimum at a break point \(q_j\) | \(Q_j^{*}\) lies below \(q_j\), so the interval’s best feasible point is its left end | the discount saves more than the extra stock costs |
| Minimum inside the interval | \(Q_j^{*}\) falls within \([q_j, q_{j+1})\) | the extra carrying outweighs the price cut |
| A local minimum only | the interval’s minimum is beaten by another interval | compare across intervals, not within one |
The third case is why every candidate must be evaluated, rather than accepting the first feasible one.
\(\lambda = 8{,}000\) a year, \(k = \$30\), \(i = 0.30\); $10 below 500 units, $9 at 500 or more.
| Question | Answer |
|---|---|
| What is stocked? | One item, bought on a tiered price |
| What is the demand process? | Constant and known, 8,000 a year |
| What triggers replenishment, and how much? | The shelf reaching zero; the order quantity is the decision |
| What costs are incurred, and when? | $30 per order, 30% a year on value, and the price the order size reaches |
\[ \begin{aligned} Q_1^{*} &= \sqrt{\frac{2(30)(8000)}{0.3(10)}} = \sqrt{160{,}000} = 400 \in [0, 500) &&\text{step 1, 2: feasible at \$10}\\ Q_2^{*} &= \sqrt{\frac{2(30)(8000)}{0.3(9)}} = \sqrt{177{,}778} = 422 \notin [500, \infty) &&\text{step 2: discarded}\\ &\text{add } q_2 = 500 &&\text{step 3: the \$9 curve is still falling} \end{aligned} \]
\[ \begin{aligned} \mathit{TC}(400) &= 8000(10) + \frac{30(8000)}{400} + \frac{0.3(10)(400)}{2} = 80{,}000 + 600 + 600 = \$81{,}200 &&\text{at \$10}\\ \mathit{TC}(500) &= 8000(9) + \frac{30(8000)}{500} + \frac{0.3(9)(500)}{2} = 72{,}000 + 480 + 675 = \$73{,}155 &&\text{at \$9} \end{aligned} \]
Order 500. Buying a quarter more than the economic quantity saves $8,045 a year, almost all of it on the purchase term. Holding rises from $600 to $675; $75 of extra holding against $8,000 of price reduction is not a contest.
The check: at 400 the ordering and holding terms are equal, $600 each, as they must be at an unconstrained optimum. At 500 they are not, and should not be: 500 is a boundary point.
This is the first case, and it is the common one. When a discount is worth taking at all, it is usually worth taking exactly at the break point and no further.
Only the units above each break point get the lower price. Let \(R_j\) represent the cost of filling every interval below \(j\) completely:
\[ \begin{aligned} R_j &= \sum_{i=2}^{j} c_{i-1}(q_i - q_{i-1}), \qquad R_1 = 0 &&\text{the filled intervals}\\ C(Q) &= R_j + c_j(Q - q_j), \qquad q_j \le Q < q_{j+1} &&\text{purchase cost of one order}\\ \frac{C(Q)}{Q} &= c_j + \frac{R_j - c_jq_j}{Q} &&\text{the average price now depends on } Q \end{aligned} \]
Crossing a break point changes the slope of the purchase cost, not its level, so \(C(Q)\) is continuous.
Holding is charged on the value held, so the holding cost per unit is \(i\,C(Q)/Q\), not \(ic_j\).
The purchase rate is \(\lambda\,C(Q)/Q\) and the holding rate is \(i\,C(Q)/2\). Expand each with \(C(Q) = c_jQ + (R_j - c_jq_j)\):
\[ \begin{aligned} \frac{\lambda C(Q)}{Q} &= c_j\lambda + \frac{(R_j - c_jq_j)\lambda}{Q} &&\text{purchase}\\ \frac{iC(Q)}{2} &= \frac{ic_jQ}{2} + \frac{i(R_j - c_jq_j)}{2} &&\text{holding}\\ \mathit{TC}(Q) &= \frac{k\lambda}{Q} + \frac{\lambda C(Q)}{Q} + \frac{iC(Q)}{2} &&\text{add ordering}\\ &= \frac{k_j\lambda}{Q} + \frac{h_jQ}{2} + \Big[c_j\lambda + \frac{i(R_j - c_jq_j)}{2}\Big] &&k_j = R_j - c_jq_j + k, \;\; h_j = ic_j \end{aligned} \]
The bracket does not depend on \(Q\).
The \(Q\)-dependent part is the classical model with an effective ordering cost \(k_j\). Thus, the square-root formula applies level by level: \(Q_j^{*} = \sqrt{2k_j\lambda/h_j}\). Keep those inside their own interval, evaluate, take the smallest.
No break-point candidates are needed: the cost is continuous, with no downward jumps to exploit.
\(\lambda = 3{,}000\) a year, \(k = \$50\), \(i = 0.30\); $3.00 from 0, $2.97 from 500, $2.95 from 1,500.
\[ \begin{aligned} R_1 = 0, \quad R_2 &= 3.00(500) = 1{,}500, \quad R_3 = 1{,}500 + 2.97(1{,}000) = 4{,}470 &&\text{filled intervals}\\ k_2 &= 1{,}500 - 2.97(500) + 50 = 65 &&\text{effective, with } k_1 = 50\\ k_3 &= 4{,}470 - 2.95(1{,}500) + 50 = 95 &&\text{effective}\\ Q_1^{*} &= \sqrt{\frac{2(50)(3000)}{0.3(3.00)}} = 577.4 \notin [0, 500) &&\text{infeasible}\\ Q_2^{*} &= \sqrt{\frac{2(65)(3000)}{0.3(2.97)}} = 661.6 \in [500, 1500) &&\text{feasible}\\ Q_3^{*} &= \sqrt{\frac{2(95)(3000)}{0.3(2.95)}} = 802.5 \notin [1500, \infty) &&\text{infeasible} \end{aligned} \]
The effective ordering cost rises with the level. Reaching a deeper level means having already paid for everything below it, and that paid amount behaves like a larger fixed charge. That is the mechanism by which incremental discounts encourage larger orders.
\[ \begin{aligned} \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} &&h_2 = 0.3(2.97) = 0.891\\ &= 294.74 + 294.74 + 8{,}910.00 + 2.25 = \$9{,}501.73 &&\text{term by term} \end{aligned} \]
The check: the first two terms are $294.74 each. The substitution has turned this into an ordinary economic order quantity problem, so the balance property still holds. You should perform that check every time, because it confirms both the effective ordering cost and the quantity computed from it.
The incremental cost is continuous but kinked at every break point, and each interval can carry its own minimum. When more than one level survives, only evaluating all of them tells the local minima apart.
The deterministic cycle is fully known, so every service measure has a closed form:
\[ \begin{aligned} \overline{N} &= 1/T = \lambda/Q &&\text{order frequency: one order per cycle}\\ \mathit{TO} &= \lambda/\bar{I} &&\text{inventory turnover}\\ \overline{\mathit{SO}} &= \frac{T_1 + T_4}{T}, \qquad \overline{\mathit{RR}} = 1 - \overline{\mathit{SO}} &&\text{fraction of time short; ready rate}\\ \lambda_{\ell} &= \lambda\,\overline{\mathit{SO}} &&\text{demand arriving to an empty shelf}\\ \overline{W} &= \bar{B}/\lambda &&\text{average customer wait} \end{aligned} \]
Recall the cycle worked last time: \(\lambda = 100\), \(p = 250\), \(Q = 400\), \(\hat{B} = 30\), \(T = 4\), segments \(0.2, 1.4, 2.1, 0.3\), \(\bar{I} = 91.875\), \(\bar{B} = 1.875\).
\[ \begin{aligned} \overline{N} &= 100/400 = 0.25 \text{ orders a year} &&\text{one every four years}\\ \mathit{TO} &= 100/91.875 = 1.09 \text{ turns a year} &&\\ \overline{\mathit{SO}} &= (0.2 + 0.3)/4 = 0.125, \qquad \overline{\mathit{RR}} = 0.875 &&\text{short one eighth of the time}\\ \lambda\,\overline{\mathit{SO}} &= 100(0.125) = 12.5 \text{ units a year} &&\text{arrive to an empty shelf}\\ \overline{W} &= 1.875/100 = 0.01875 \text{ yr} = 6.8 \text{ days} &&\text{times 365} \end{aligned} \]
Out of stock an eighth of the time sounds poor, and a customer who waits waits about a week. Whether that is acceptable is not a question the model answers.
The ready rate of 87.5% and the fill rate are the same here: demand arrives continuously at a constant rate, so the fraction of demand arriving short equals the fraction of time short. Treat that as a consequence of the deterministic assumption, not as a general fact.
Once the price depends on the quantity, the purchase term moves the decision.
All-units cost jumps at each break point, so differentiate within intervals, add break points for discarded levels, and evaluate every candidate: the example orders 500 and saves $8,045 a year.
Incremental cost is continuous but kinked; the filled intervals act as an effective ordering cost \(k_j = R_j - c_jq_j + k\), and the balance check survives: $294.74 twice.
The cycle’s service measures are closed forms: 87.5% ready rate and a 6.8-day wait for the worked cycle, with ready rate equal to fill rate only because demand is deterministic.
Read before next session: Building These Models in a Spreadsheet, Designing the Software and The Same Models in Code.
Today’s material was Quantity Discounts and Performance Measures for the Cycle.
Next session:
MOD callNext session’s incremental worksheet has two feasible levels, not one. Watch which one its evaluator was left holding.