Chapter 9 solved two levels under one-for-one ordering: the demand a location passes up is its own demand, arrival for arrival. This chapter removes that. A storeroom ordering \(Q_j\) at a time sends one request per \(Q_j\) customers: nothing for a while, then \(Q_j\) at once.
Three things change at the hub:
One move carries the chapter
Condition on the position, then average. Chapter 8 built \(\bar{B}(r, Q)\) by averaging base-stock measures over \(Q\) equally likely positions. The chapter makes that move four more times.
What does not change: Little’s Law turns a supplier’s backorders into a delay, averaged over every request.
The fuse cutout, at a hub and four identical storerooms. In Parts I and II each customer takes one unit; the job lots return in Part III.
| Question | Answer |
|---|---|
| What is stocked? | One item, the fuse cutout, at five locations |
| What is the demand process? | Poisson, one unit a week at each storeroom |
| When is inventory reviewed? | Continuously, everywhere |
| What triggers replenishment, and how much? | Storerooms: every customer, base stock \(S_j = 3\). Hub: position at \(r_0 = 9\), order \(Q_0 = 8\) |
| What happens to unmet demand? | Backordered at both levels, first come first served, part orders shipped |
| What costs are incurred, and when? | Holding \(h\) at both levels, shortage \(b\) at storerooms only |
\[ h = \frac{\$28.75}{\text{unit-year}} \times \frac{1 \text{ year}}{52 \text{ weeks}} = \$0.5529, \qquad b = \frac{\$287.50}{52} = \$5.5288 \text{ per unit-week} \]
One row per event, at the week it occurs, state recorded after posting. When two events share a week: the hub’s receipts first, then the storeroom’s, then demands in order.
Hub: \((r_0, Q_0) = (1, 4)\), \(L_0 = 3\) weeks, starts with 5.
Storeroom: base stock \(S_j = 2\), \(O_j = 1\) week, starts with 2.
Failures in weeks 1, 3, 6, 8, 9, 10 and 14; a storm in week 8 takes out three, so week 8 has three failures.
The check on every row. At the hub,
\[ \mathit{IP}_0 = I_0 + \text{on order} - B_0 \]
and at the storeroom, on-hand less backorders plus in transit plus what the hub still owes. Compute both ways; stop when they disagree.
| Week | Event | \(I_j\) | \(B_j\) | \(\mathit{IP}_j\) | In transit | \(I_0\) | \(B_0\) | On order | \(\mathit{IP}_0\) |
|---|---|---|---|---|---|---|---|---|---|
| 0 | start | 2 | 0 | 2 | 0 | 5 | 0 | 0 | 5 |
| 1 | failure, request to hub | 1 | 0 | 2 | 1 | 4 | 0 | 0 | 4 |
| 2 | storeroom receives 1 | 2 | 0 | 2 | 0 | 4 | 0 | 0 | 4 |
| 3 | failure, request to hub | 1 | 0 | 2 | 1 | 3 | 0 | 0 | 3 |
| 4 | storeroom receives 1 | 2 | 0 | 2 | 0 | 3 | 0 | 0 | 3 |
| 6 | failure, request to hub | 1 | 0 | 2 | 1 | 2 | 0 | 0 | 2 |
| 7 | storeroom receives 1 | 2 | 0 | 2 | 0 | 2 | 0 | 0 | 2 |
| 8 | failure, request to hub, hub orders 4 | 1 | 0 | 2 | 1 | 1 | 0 | 4 | 5 |
| 8 | failure, request to hub | 0 | 0 | 2 | 2 | 0 | 0 | 4 | 4 |
| 8 | failure, request backordered | 0 | 1 | 2 | 2 | 0 | 1 | 4 | 3 |
| Week | Event | \(I_j\) | \(B_j\) | \(\mathit{IP}_j\) | In transit | \(I_0\) | \(B_0\) | On order | \(\mathit{IP}_0\) |
|---|---|---|---|---|---|---|---|---|---|
| 8 | (carried from the last slide) | 0 | 1 | 2 | 2 | 0 | 1 | 4 | 3 |
| 9 | storeroom receives 2, serves the waiting crew | 1 | 0 | 2 | 0 | 0 | 1 | 4 | 3 |
| 9 | failure, request backordered | 0 | 0 | 2 | 0 | 0 | 2 | 4 | 2 |
| 10 | failure backordered, request backordered, hub orders 4 | 0 | 1 | 2 | 0 | 0 | 3 | 8 | 5 |
| 11 | hub receives 4, fills three waiting requests | 0 | 1 | 2 | 3 | 1 | 0 | 4 | 5 |
| 12 | storeroom receives 3, serves the waiting crew | 2 | 0 | 2 | 0 | 1 | 0 | 4 | 5 |
| 13 | hub receives 4 | 2 | 0 | 2 | 0 | 5 | 0 | 0 | 5 |
| 14 | failure, request to hub | 1 | 0 | 2 | 1 | 4 | 0 | 0 | 4 |
| 15 | storeroom receives 1 | 2 | 0 | 2 | 0 | 4 | 0 | 0 | 4 |
The mean wait, two ways. Follow the nine requests: six waited nothing, and those from weeks 8, 9 and 10 waited 3, 2 and 1 weeks, so \(6/9 = 0.667\) weeks. Weight the hub’s backorders by duration: \(1 + 2 + 3 = 6\) unit-weeks over the nine requests, the same 0.667. That is Little’s Law.
The three waits of week 11 are one event. One delay, seen three times, not three independent draws. For a base-stock storeroom that turns out not to matter, and we will see why.
The crews waited because the hub did. The storeroom’s stock never changed; its two shortages were manufactured by a storm draining a hub that had been spending its stock one unit at a time.
A request arriving with the hub’s position high waits nothing. In weeks 1 to 7 the position was 4, 3 or 2 and every request shipped at once. Whether a request waits depends on where the hub’s position sits when it arrives.
One-at-a-time storerooms send one request per customer, so four Poisson streams merge into a Poisson stream at \(\lambda_0 = 4\). The hub is the \((r, Q)\) location of chapter 8, and its measures come with no change. \(D_0(3)\) is Poisson, mean \(\theta_0 = 4 \times 3 = 12\); at \((r_0, Q_0) = (9, 8)\):
\[ \begin{aligned} \bar{B}_0 &= \frac{G^{2}(9) - G^{2}(17)}{8} = \frac{8.3910 - 0.1726}{8} = 1.0273 &&\text{expected backorders}\\ \overline{\mathit{RR}}_0 &= 1 - \frac{G^{1}(9) - G^{1}(17)}{8} = 1 - \frac{3.3212 - 0.1451}{8} = 0.6030 &&\text{ready rate}\\ \bar{I}_0 &= \frac{8 + 1}{2} + 9 - 12 + 1.0273 = 2.5273 &&\text{expected on hand} \end{aligned} \]
The check. \(\bar{I}_0 - \bar{B}_0 = 1.5000\), and the average position less the mean lead time demand is \(9 + 4.5 - 12 = 1.5\).
Interpretation. Stock only 60% of the time and about two and a half cutouts on hand: thin for a central warehouse, and deliberate. The hub has no shortage cost; its shortages matter only through the storerooms, each of which holds three.
Little’s Law gives the mean: \(\bar{W} = \bar{B}_0/\lambda_0 = 1.0273/4 = 0.2568\) weeks, which is \(0.2568 \times 7 = 1.80\) days, over every request. A random lead time needs more than its mean.
The lead-time shift (van der Wal). If the hub’s supplier were \(w\) weeks faster, a request waiting at most \(w\) in the real system is one filled at once in the faster one: the position one lead time earlier covered all the demand since.
\[ P(W \le w) = \frac{1}{Q_0}\sum_{u=r_0+1}^{r_0+Q_0} P\big(D_0(L_0 - w) \le u - 1\big), \qquad 0 \le w < L_0 \]
and \(P(W \le L_0) = 1\). At \(w = 0\) it is the ready rate. At any other \(w\) it is the ready rate the hub would have with a lead time \(w\) shorter.
Three conditions, each of which can fail
Requests filled first come first served; supplier deliveries do not overtake; \(r_0 \ge 0\), or a request can wait for an order placed after it arrives.
At \(w = 0\), \(D_0(3)\) has mean 12 and the positions are \(10, \ldots, 17\):
\[ \begin{aligned} P(W = 0) &= \tfrac{1}{8}(0.2424 + 0.3472 + \cdots + 0.8987)\\ &= 0.6030 \end{aligned} \]
At \(w = 1\) the mean is 8 and the same eight entries average to 0.9117; at \(w = 2\) the mean is 4, giving 0.9985.
The check. \(P(W = 0)\) is the ready rate. The area under \(P(W > w)\) is 0.2575 on a day grid, against 0.2568.
Six requests in ten ship at once, nine in ten within a week, almost none past two weeks. The mean of 1.8 days hides that shape.
Little’s Law has a distributional form (Bertsimas and Nakazato) for Poisson arrivals served first come first served, in factorial moments:
\[ \begin{aligned} E\big[B_0(B_0 - 1)\big] &= \lambda_0^{2}\,E[W^{2}] &&\text{distributional Little's Law}\\ E[W^{2}] &= \frac{E[B_0^{2}] - \bar{B}_0}{\lambda_0^{2}} &&\text{expand the factorial moment}\\ \mathit{Var}[W] &= \frac{E[B_0^{2}] - \bar{B}_0 - \bar{B}_0^{2}}{\lambda_0^{2}} = \frac{\mathit{Var}[B_0] - \bar{B}_0}{\lambda_0^{2}} &&\text{subtract } \bar{W}^{2} = \bar{B}_0^{2}/\lambda_0^{2} \end{aligned} \]
\(\mathit{Var}[B_0]\) is chapter 8’s second moment of the backorder level, built for this use.
Notice the subtraction. The variance of the wait is not the variance of the backorder level scaled; it is that variance less the mean.
For the running example, \(\mathit{Var}[W] = 0.1825\) weeks squared, and integrating \(2wP(W > w)\) from the distribution gives the same figure to nine decimals.
Both levels one for one first. Let \(C(S_0, S_j)\) represent the system’s cost per week with the hub’s position at \(S_0\) and each storeroom’s at \(S_j\).
Track one unit. A unit the hub orders fills the \(S_0\)th hub demand after the order, and at the storeroom the \(S_j\)th demand after that storeroom’s order. Poisson demand makes its cost computable. Let \(\pi^{S_j}\) represent the cost per unit at a storeroom whose supplier never runs out, \(\Pi^{S_j}(S_0)\) the storeroom’s cost per unit at hub position \(S_0\), and \(\gamma(S_0)\) the hub’s holding cost per unit. Then \(C = \lambda_0\big(\Pi^{S_j}(S_0) + \gamma(S_0)\big)\), and
\[ \begin{aligned} \Pi^{S_j}(S_0 - 1) = {} & \frac{\lambda_j}{\lambda_0}\Pi^{S_j - 1}(S_0) + \frac{\lambda_0 - \lambda_j}{\lambda_0}\Pi^{S_j}(S_0)\\ & + \frac{\lambda_j}{\lambda_0}\big(1 - P(D_0(L_0) \ge S_0)\big)\big(\pi^{S_j} - \pi^{S_j - 1}\big) \end{aligned} \]
started where the hub never runs out. It is exact, it runs down a column, and the chapter refers to Axsäter (1990) for the derivation.
The costs give the stock levels too. Every term is linear in the cost rates: set shortage to one and holding to zero, and the “cost” is expected backorders.
A hub order of \(Q_0\) units: the \(k\)th fills the \((r_0 + k)\)th hub demand after the order, as if the hub ran base stock at \(S_0 = r_0 + k\). Averaging over a batch’s units is averaging over the hub’s positions:
\[ C = \frac{1}{Q_0}\sum_{S_0 = r_0+1}^{r_0+Q_0} C(S_0, S_j) \]
The chapter’s move, a second time.
The running example, \(S_j = 3\), hub positions \(10, \ldots, 17\):
| \(S_0\) | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
|---|---|---|---|---|---|---|---|---|
| \(C(S_0, 3)\) | 7.2105 | 6.7516 | 6.5493 | 6.5587 | 6.7352 | 7.0373 | 7.4296 | 7.8837 |
Average: \(56.1559/8 = \$7.0195\) a week. With the backorder-only rates the same recursion gives 0.2906 backorders across four storerooms, 0.0726 at each.
The check. The recursion’s hub on-hand is 2.5273, the \(\bar{I}_0\) computed from chapter 8 by an entirely different route.
The storeroom’s lead time is \(O_j + W\). Three ways to feed chapter 8:
Which of the three matches Axsäter’s exact 0.0726?
| Route | Backorders per storeroom | Against exact |
|---|---|---|
| Conditioned on the wait | 0.0726 | exact |
| Two moments | 0.0712 | 2% low |
| The mean wait only | 0.0505 | 30% low |
Conditioning is exact here. With first come first served and \(r_0 \ge 0\), a request’s wait is fixed by what happened before it arrived, and the storeroom’s later customers are independent of all that. The linked waits of week 11 are real, but for a base-stock storeroom they do not matter.
A batching location passes up something other than its demand. Condition on the position, then average, carries the chapter.
The ledger showed one delivery clearing three requests, a mean wait of 0.667 weeks by two routes, and crews waiting because the hub did.
With one-at-a-time storerooms the hub is a chapter 8 location: 60% ready, by design.
The wait’s whole distribution comes from the lead-time shift, and its variance from the distributional Little’s Law.
Axsäter’s recursion is exact, and conditioning on the wait matches it; the mean alone is 30% low.
Read before next session: When the Storerooms Batch Too, Orders in a Window, The Hub With Other Demand, The Storeroom Behind a Batching Hub and Random Lead Times.
Today’s material was the chapter’s opening through Exact Storeroom Measures.
Next session:
Next session the hub’s demand stops being Poisson. Bring the order-count idea: the position, again, is uniform.