A bank that closes at five o’clock has runs with a natural end. A storeroom does not: the item is stocked permanently and demand arrives forever. Every measure of the continuous review chapter is a long-run average, so a stock point is a non-terminating simulation, and what it estimates is the steady state.
That has two consequences: the run must be long enough for its average to approach the long-run one, and it must not be distorted by where it began.
Where to start. No state the modeler writes down is typical. Starting the transformer at \((8, 7)\) with 15 on hand and nothing on order puts the shelf far above its long-run 4.66.
The start is forgotten once two things have happened: a lead time has passed, so every unit in transit was ordered by the policy, and the position has cycled through its band of \(Q\) often enough, a few multiples of \(Q/\lambda\). For the transformer that is \(1/6\) year and \(7/45 = 0.16\) year: a year of simulated time is several of each.
Replication-deletion. Let \(n\) represent the number of replications, \(T\) each one’s length after the warm-up, and \(Y_j\) the time average of a measure over replication \(j\). The \(Y_j\) are independent and identically distributed:
\[ \bar{Y} = \frac{1}{n}\sum_{j=1}^{n} Y_j, \qquad \mathit{hw} = t_{n-1,\,\alpha/2}\,\frac{s_Y}{\sqrt{n}} , \]
a \(100(1-\alpha)\%\) interval \(\bar{Y} \pm \mathit{hw}\). Successive values of \(I(t)\) inside a replication are strongly dependent; the formula never uses them, only one number per replication, whose variance absorbs that dependence. That is why each replication must be long.
Measure the run in demands, not years. Information arrives with demands. The transformer sees 45 a year, so \(T = 1{,}000\) years is 45,000 demands. The fuse cutout sees 400 lots a year, so the same information takes about 112 years. A run length copied from one item to another is a guess.
A replication’s fill rate is a ratio of counts, \(N_F/N_D\). Across replications, average the \(n\) ratios, or add the counts and divide once; when replications see similar numbers of demands the two agree closely. Build the interval from the per-replication ratios, since those are the independent observations.
The larger question is which ratio to collect once a demand can be for more than one unit:
| Measure | Counts | Cutout at \((r, Q) = (25, 75)\), exact |
|---|---|---|
| Ready rate | time with stock on the shelf | 0.9060 |
| Unit fill rate | units filled on arrival over units demanded | 0.8978 |
| Lot fill rate | lots filled complete on arrival | 0.8957 |
Under single-unit Poisson demand all three coincide. Under job lots they separate: a lot of four finding two on the shelf is unfilled for the lot fill rate and half filled for the unit fill rate. A simulation collects all three at no extra cost. Name the one you report.
Fix the precision first. Since the half-width falls with \(\sqrt{n}\), a pilot of \(n_0\) replications with half-width \(\mathit{hw}_0\) gives, for a target \(\mathit{hw}^{*}\),
\[ \begin{aligned} n &\approx n_0\left(\frac{\mathit{hw}_0}{\mathit{hw}^{*}}\right)^{2} &&\text{rounded up}\\ \mathit{hw}^{*} &= 0.01 \times \$7{,}225.15 \approx \$72 &&\text{the transformer's cost to within 1}\%\\ T = 1{,}000: \; n &\approx 10\left(\frac{24.10}{72}\right)^{2} = 1.1 &&\text{the pilot already meets it}\\ T = 100: \; n &\approx 10\left(\frac{86.14}{72}\right)^{2} = 14.3 &&\text{so 15 replications of 100 years} \end{aligned} \]
Notice that \(n\) and \(T\) trade against each other: doubling \(T\) roughly halves each \(Y_j\)’s variance, which does what doubling \(n\) does, at the same total run time. Each replication spends a warm-up, but for a stock point the warm-up is short and either lever works.
A single run length does not deliver the same precision for every measure. Cost and on hand change at every demand and are estimated well. The backorder average is the hard one.
At \((9, 5)\) the mean backorder level is 0.1202 units but its standard deviation is 0.582: the typical state is no backorders, interrupted by occasional episodes of several. A time average of such a process is driven by how many episodes the run contains, and episodes are rare.
| Relative half-width, \(\mathit{hw}/\bar{Y}\) | \(\bar{I}\) | \(\bar{B}\) | Fill rate | Cost |
|---|---|---|---|---|
| \((8, 7)\) | 0.23% | 1.22% | 0.12% | 0.21% |
| \((11, 5)\), fill rate 0.9683 | 0.20% | 2.24% | 0.06% | 0.11% |
The backorder level is the least precise by a factor of five or more, and it is the only one that gets less precise as service improves.
Set the run length by the hardest measure you will quote, usually the backorder level of a well-served item, and check its relative half-width before quoting it.
The transformer’s supplier now passes each order through four stages averaging half a month each: an Erlang lead time, two months on average, one month standard deviation. Chapter 8’s best policy for it is \((10, 8)\) at $11,079.73, provided orders arrive in sequence. Two arrangements give every order the same Erlang lead time:
Neither is what chapter 8 assumed, since independent lead times and an unbroken sequence cannot both hold. Both are run with common random numbers: they face the same demands, place the same orders and draw the same lead times, and differ only in the delivery rule.
| Measure | Chapter 8 | Independent lead times | One supply line |
|---|---|---|---|
| \(\bar{I}\), units | 7.3360 | 7.1860 \(\pm\) 0.0250 | 7.0717 \(\pm\) 0.0257 |
| \(\bar{B}\), units | 0.3360 | 0.2047 \(\pm\) 0.0044 | 0.3652 \(\pm\) 0.0079 |
| \(\overline{\mathit{FR}}\) | 0.8913 | 0.9053 \(\pm\) 0.0012 | 0.8822 \(\pm\) 0.0015 |
| \(\overline{\mathit{IO}}\), units | 7.5 | 7.5183 \(\pm\) 0.0271 | 7.7930 \(\pm\) 0.0309 |
| Orders that overtake another | none | 9.11% \(\pm\) 0.16% | none |
| Total cost | $11,079.73 | $9,815.07 \(\pm\) 31.47 | $11,078.65 \(\pm\) 55.13 |
The check: \(\bar{I} - \bar{B} = r + (Q+1)/2 - \overline{\mathit{IO}} = 14.5 - \overline{\mathit{IO}}\). Independent: \(7.1860 - 0.2047 = 6.9813\) against \(14.5 - 7.5183 = 6.9817\). Supply line: \(6.7065\) against \(6.7070\). Both order rates cover \(\lambda/Q = 5.625\).
Independent lead times run $1,264.66, or 11.4%, cheaper than chapter 8 says, with 39% fewer backorders: a late order is often covered by the next one arriving early. One supply line matches chapter 8’s total, but only because fewer units on hand and more owed nearly cancel: agreement of a total is weak evidence that a model is right.
The fuse cutout: lots of 1, 2 or 4 units with probabilities 0.4, 0.4, 0.2 at 400 lots a year; two-week supplier; \(k = \$82.50\), \(h = \$28.75\), \(b = \$287.50\). Chapter 8 priced two \((s, S)\) policies exactly from a Markov chain, and this is a second route.
| \((36, 56)\) exact | simulated | \((25, 100)\) exact | simulated | |
|---|---|---|---|---|
| Cost, a year | $3,755.69 | $3,755.96 \(\pm\) 5.88 | $2,010.10 | $2,009.86 \(\pm\) 2.66 |
| Orders a year | 38.462 | 38.466 \(\pm\) 0.066 | 10.554 | 10.558 \(\pm\) 0.018 |
| Mean undershoot \(E[U]\) | 0.8 | 0.8015 \(\pm\) 0.0068 | 0.8 | 0.7966 \(\pm\) 0.0086 |
| Ready rate | Unit fill rate | Lot fill rate | |
|---|---|---|---|
| \((r, Q) = (25, 75)\), exact | 0.9060 | 0.8978 | 0.8957 |
| \((r, Q) = (25, 75)\), simulated | 0.9059 \(\pm\) 0.0010 | 0.8977 \(\pm\) 0.0010 | 0.8958 \(\pm\) 0.0010 |
| \((s, S) = (36, 56)\), simulated | 0.9219 \(\pm\) 0.0009 | 0.9107 \(\pm\) 0.0012 | 0.9076 \(\pm\) 0.0012 |
The check: mean order size is \(S - s + E[U]\): \(20.8015\) and \(75.7966\), each \(S - s\) plus the observed undershoot. Every exact figure is covered. The three service measures separate by about a point, ready above unit above lot, at every policy.
A crew finding no transformer buys one elsewhere, so demand is lost at \(\pi = \$5{,}700\) a unit. Chapter 8 found \((13, 6)\) best at $11,892.91, charging a unit short as owed. A lost demand departs, nothing is owed, and it does not lower the position.
| \((13, 6)\), backorder model | lost sales, simulated | \((8, 6)\), backorder model | lost sales, simulated | |
|---|---|---|---|---|
| \(\overline{\mathit{FR}}\) | 0.9934 | 0.9944 \(\pm\) 0.0002 | 0.8595 | 0.9070 \(\pm\) 0.0006 |
| Units short a year | 0.2961 | 0.2530 \(\pm\) 0.0077 | 6.3214 | 4.1872 \(\pm\) 0.0334 |
| Orders a year | 7.5 | 7.4633 \(\pm\) 0.0122 | 7.5 | 6.8075 \(\pm\) 0.0086 |
| Total cost | $11,892.91 | $11,678.73 \(\pm\) 46.09 | $41,660.17 | $29,867.92 \(\pm\) 186.80 |
The check: orders are placed at the rate filled demand consumes stock, \(\lambda\overline{\mathit{FR}}/Q\): \(45(0.9944)/6 = 7.458\) and \(45(0.9070)/6 = 6.8025\), each inside its interval.
At \((13, 6)\) the backorder model is close, 1.8% high: shortages are rare, so it hardly matters what happens to them. At \((8, 6)\) it overstates the cost by $11,792, 39%: a lost demand never lowers the position, so the system orders less, the shelf recovers, and the fill rate rises to 0.9070.
A stock point never terminates; the start is forgotten after a lead time and a few batch cycles, and the warm-up should be chosen long.
Replication-deletion gives one independent number per replication; run length is counted in demands; \(n \approx n_0(\mathit{hw}_0/\mathit{hw}^{*})^2\).
The backorder level needs the longest run, and gets less precise as service improves.
Crossing orders make a supplier better than the formula credits: 11.4% cheaper with independent lead times.
Under job lots the three service measures separate, and \((s, S)\) reproduces chapter 8’s Markov chain.
Charging lost sales as backorders is close when shortages are rare and 39% high when they are not.
Read before next session: Periodic Review and Comparing and Choosing Policies.
Today’s material was Output Analysis for a Stock Point and Where the (r, Q) Formulas Stop.
Next session:
Today’s crossing example ran two arrangements against the same demands. Next session makes that a method.