The EOQ knew its demand and ordered forever.
The newsvendor did not know its demand, and ordered once.
Now: the item is stocked permanently, demand arrives at random forever, and a replenishment decision is available at every instant.
Two numbers. Let \(r\) be the reorder point and \(Q\) the order quantity.
Whenever the inventory position reaches or falls below \(r\), order \(Q\) units.
Written \((r, Q)\).
This is the policy most stock rooms actually run, under the name of a two-bin system or a min-max when the numbers are set by hand.
The position is checked after every demand, including one that could not be filled. A backordered demand moves the position exactly as a filled one does, so it can trigger an order.
Unmet demand is backordered, not lost. Backorders accumulate and are filled when a replenishment arrives.
The lead time is a constant quoted by the supplier. For now. That assumption is the subject of a later chapter.
\(I(t)\), units on hand, physically on the shelf. Never negative.
\(B(t)\), units backordered, owed to customers. Never negative.
\(\mathit{IO}(t)\), units on order, ordered but not yet arrived.
\(\mathit{IN}(t) = I(t) - B(t)\), the net inventory, which may be negative.
\(\mathit{IP}(t) = \mathit{IN}(t) + \mathit{IO}(t)\), the inventory position.
The position, never the shelf.
A rule watching the shelf orders again while stock is already on its way, and orders far too much.
We will see that happen on the ledger in a moment.
A municipal electric utility. Pad-mount transformer, $3,800 a unit.
Demand about 45 a year, one at a time. Supplier quotes eight weeks.
The storekeeper is running \(r = 4\), \(Q = 5\). Six on the shelf, none on order, nothing owed.
\(r = 4\) is not what we will end up recommending. It is set low deliberately, so the ledger passes through every state the system can occupy.
One row per event, at the week it occurs.
State recorded after that event has been processed.
Review is continuous, so there are no periods and no buckets: something happens, the books are posted, and the next thing happens whenever it happens.
A demand arrives in week 1. There is stock, so it is filled and \(I\) falls to 5. Position falls to 5. Since \(5 > 4\), no order.
A second demand in week 2. The shelf falls to 4 and the position with it.
The position has reached the reorder point. Order 5. They arrive in week 10.
| Week | Event | \(I\) | \(\mathit{IO}\) | \(B\) | \(\mathit{IN}\) | \(\mathit{IP}\) |
|---|---|---|---|---|---|---|
| 0 | start | 6 | 0 | 0 | 6 | 6 |
| 1 | demand | 5 | 0 | 0 | 5 | 5 |
| 2 | demand, order 5 | 4 | 5 | 0 | 4 | 9 |
The moment the order is placed the position jumps to \(4 + 5 = 9\).
| Week | Event | \(I\) | \(\mathit{IO}\) | \(B\) | \(\mathit{IN}\) | \(\mathit{IP}\) |
|---|---|---|---|---|---|---|
| 3 | demand | 3 | 5 | 0 | 3 | 8 |
| 5 | demand | 2 | 5 | 0 | 2 | 7 |
| 6 | demand | 1 | 5 | 0 | 1 | 6 |
| 7 | demand | 0 | 5 | 0 | 0 | 5 |
| 8 | demand backordered, order 5 | 0 | 10 | 1 | \(-1\) | 9 |
| 9 | demand backordered | 0 | 10 | 2 | \(-2\) | 8 |
Week 7. The shelf is empty. The position is 5, which is above \(r\), so no order is placed.
A rule watching the shelf would have ordered here. The ledger shows why it must not: five units are already in transit.
The demand in week 8 cannot be filled, and it still moves the position, from 5 to 4.
That reaches \(r\), so a second order is placed.
A backordered demand triggers an order exactly as a filled one does. If your system only decrements the position when it ships, it will under-order precisely when it is already short.
| Week | Event | \(I\) | \(\mathit{IO}\) | \(B\) | \(\mathit{IN}\) | \(\mathit{IP}\) |
|---|---|---|---|---|---|---|
| 10 | receipt of 5 | 3 | 5 | 0 | 3 | 8 |
| 11 | demand | 2 | 5 | 0 | 2 | 7 |
| 13 | demand | 1 | 5 | 0 | 1 | 6 |
The receipt fills the two backorders first and puts three on the shelf.
\(\mathit{IN}\) goes from \(-2\) straight to 3. It never passes through the shelf.
The position moves within a band of width \(Q\). It falls one unit at a time from just above \(r + Q\) down to \(r\), and an order restores it.
Everything that can go wrong happens during a lead time. Between placing an order and receiving it, nothing the storekeeper does changes the outcome.
So the only random quantity the policy is exposed to is demand over the lead time.
The position decides when to order.
The shelf decides whether a customer is served.
A model that confuses them will get the ordering right and the service wrong, or the reverse.
Long-run time averages of the ledger’s columns:
The order frequency needs no analysis at all. Every order is for \(Q\) units and all demand is eventually filled, so orders are placed at the rate demand consumes them.
It depends on \(Q\) alone. Nothing else here is that simple.
An organization that has agreed on a number without agreeing which of the five it measures has agreed on nothing.
The ready rate is the fraction of time stock is on the shelf: measure (c).
The fill rate is the fraction of demands filled from the shelf: measure (b).
When demand arrives one unit at a time in a Poisson process, PASTA makes them equal: arrivals see time averages.
Let demand arrive in lots and they come apart again. We will see that later.
Little’s Law, applied to the set of backordered demands:
\[ \bar{B} = \lambda \overline{\mathit{BW}} \]
A constraint on the average number of units backordered is the same constraint as one on how long a customer waits.
Two service targets an organization would argue about separately are one target in two units.
\(k\), the fixed cost of placing an order.
\(h\), the holding cost per unit per unit time, usually \(\gamma c\) with \(\gamma\) a carrying charge.
\(b\), the backorder cost per unit per unit time.
\[ C(r, Q) = k\,\overline{\mathit{OF}} + h\bar{I} + b\bar{B} \]
For the transformer: \(h = 0.25(3800) = \$950\), and the utility judges \(b = \$8{,}550\).
Next deck: the one random quantity, and what family to give it.