METRIC and VARI-METRIC

Manuel D. Rossetti, PhD P.E.

Agenda

  • The depot turns out to be a single location, and why that matters
  • Little’s Law turns backorders into a wait
  • METRIC: four steps, no loop
  • What it gets exactly right, and the one thing it does not
  • VARI-METRIC: restoring a variance METRIC discarded
  • One step that rests on evidence rather than proof

Last Time

The depot’s backorders are the storeroom’s lead time.

\[ \mu_j = \phi_j\lambda_j T_j + (1-\phi_j)\lambda_j\left(O_j + \bar{W}\right) \]

We produced \(\bar{W}\) by hand, on twenty-six weeks of one realization.

We cannot run a ledger for every item at every storeroom, and we cannot run one at all for a system that has not been built yet.

Look at the Depot Again

Its demand is Poisson. Each storeroom’s requests are its failures thinned, and a superposition of independent Poisson processes is Poisson.

It replenishes one for one. Every request arrives with a carcass, and the carcass goes on the bench at once.

And it waits for nobody. Its supplier is its own shop, which has capacity to spare. There is no further echelon behind it.

So Palm Applies Without Qualification

\[ \mu_0 = \lambda_0 T_0 \]

and everything from the single-location deck applies to the depot unchanged:

\[ \bar{B}_0(S_0) = G^{1}(S_0) \]

evaluated on the Poisson with mean \(\mu_0\).

Notice What Is Absent

No \(S_j\). No \(O_j\). No \(T_j\).

The depot’s own performance does not depend on how much stock the storerooms hold.

So the depot can be solved first, once, and on its own, and the storerooms follow from it.

There is no circle to iterate around.

That is a property of \(Q = 1\), and it does not survive batching.

From Backorders to a Wait

Take the system to be the requests the depot has accepted but not filled.

Arrivals are requests it cannot fill on the spot. The average number in that system is \(\bar{B}_0\). The rate is \(\lambda_0\).

\[ \bar{W} = \frac{\bar{B}_0(S_0)}{\lambda_0} \]

This is the relation the ledger verified. Six backorder-weeks over five requests, 1.20 weeks, twice.

No Storeroom Subscript

The depot clears backorders in the order they arrived, without regard to who raised them.

So a request from a large storeroom waits no longer than one from a small storeroom.

\[ \mu_j = \phi_j\lambda_j T_j + (1-\phi_j)\lambda_j\left(O_j + \bar{W}\right) \]

with a single \(\bar{W}\) shared by all of them.

The storerooms still differ, through \(\phi_j\), \(T_j\), \(O_j\), \(\lambda_j\). What they do not differ in is the delay.

One Trap Worth Naming

\(\bar{W}\) is the average over all requests, including the ones filled immediately, which wait nothing.

It is not the average wait of the delayed requests.

In the ledger, two of five waited, four weeks and two weeks.

Delayed requests averaged three weeks. \(\bar{W}\) reports 1.20.

Both correct, different questions. The pipeline formula wants the first, because it multiplies by the rate of all requests.

What a Unit at the Depot Buys

\[ \bar{W}(S_0) - \bar{W}(S_0+1) = \frac{G^{0}(S_0)}{\lambda_0} \]

Diminishing, for the same reason as before.

But it is not the same decision. A unit at a storeroom helps that storeroom.

A unit at the depot shortens \(\bar{W}\), which shrinks the pipeline at every storeroom at once.

The Leverage, Measured

Four storerooms, \(\lambda_0 = 126\) a year, \(T_0 = 60\) days, so \(\mu_0 = 20.7123\).

\(S_0\) \(\bar{B}_0\) \(\bar{W}\) (days) \(\mu_j\) \(\bar{B}_j\) at \(S_j=4\)
16 5.0201 14.54 3.2276 0.4055
18 3.4443 9.98 2.8337 0.2638
20 2.1763 6.30 2.5167 0.1748
22 1.2550 3.64 2.2863 0.1238
24 0.6565 1.90 2.1367 0.0964

Six units at the depot cut the delay from 14.5 days to 3.6, and backorders by about seventy percent at all four storerooms at once.

Forward stocking would have needed twenty-four.

METRIC

Multi-Echelon Technique for Recoverable Item Control.

Sherbrooke, 1968. The oldest multi-echelon inventory model in continuous use.

The ancestor of everything in this chapter and the next.

The Procedure

metric(S_0, S_1 ... S_J):

    // 1, the demand the depot faces
    lambda_0 <- sum over j of (1 - phi_j) * lambda_j

    // 2, the depot's pipeline, then its backorders
    mu_0   <- lambda_0 * T_0
    Bbar_0 <- G1(S_0), Poisson with mean mu_0

    // 3, the delay it imposes on everybody
    Wbar <- Bbar_0 / lambda_0

    // 4, each storeroom in turn
    for each storeroom j:
        mu_j   <- phi_j*lambda_j*T_j + (1 - phi_j)*lambda_j*(O_j + Wbar)
        Bbar_j <- G1(S_j), Poisson with mean mu_j

Two Things to Notice

There is no loop. A straight line from rates to answers. Nothing iterated, nothing to converge.

It does not choose anything. Its arguments are stock levels and its returns are backorders: it evaluates a plan handed to it.

The search comes later, and it will call this many times.

The Utility’s Transformers

Four storerooms, \(S_0 = 16\), \(S_j = 4\). Twenty units in all.

Step 1. \(\lambda_0 = 126\) a year.

Step 2. \(\mu_0 = 126(60/365) = 20.7123\), so \(\bar{B}_0 = 5.0201\).

Step 3. \(\bar{W} = 5.0201/126 = 14.54\) days.

Step 4. \(\mu_j = 1.1096 + 2.1180 = 3.2276\), so \(\bar{B}_j = 0.4055\).

Across four: 1.6218 transformers owed to waiting crews at any moment.

Now the Debt Comes Due

We warned that applying Palm here is outside its warrant.

Paying that debt is the most useful thing in this chapter, because the model fails in a specific and repairable way.

First, What METRIC Gets Exactly Right

The depot’s pipeline really is Poisson, so \(\bar{B}_0\) is exact.

The delay is exact, because Little’s Law assumes almost nothing.

The storeroom’s pipeline mean is exact too, for the same reason: Little’s Law applied to the storeroom’s own resupply, with no independence assumed anywhere.

Every mean METRIC computes is exact. Say that before criticizing anything.

What Is Not Earned

That \(X_j\) is Poisson.

A Poisson has its variance equal to its mean, and here the model asserts something it has not shown.

Two requests arriving while the depot is empty wait for the same repairs to finish.

Their delays move together. Delays that move together make the count more variable than a Poisson count with the same mean.

None of This Is New

It was known to the model’s author at the time.

when the METRIC model was developed, it was clear that it understated base backorders. In most cases the error was not large, and the simplicity of METRIC seemed to overshadow the lack of precision.

Sherbrooke, 1986.

And the Direction Is the Unsafe One

Backorders are a tail quantity, so a distribution that is too tight produces too few of them.

[These models] understate the multi-echelon delay in the resupply of a base from a depot that has backorders [and] tend to understate expected backorders and overstate expected availability of repair items.

A utility sizing spares with METRIC will believe it is doing better than it is.

How Much Does It Matter?

Graves compares the stock levels the two models choose, not the backorders they report. That is the comparison a planner acts on.

Graves shows that in 11% of cases, the METRIC stock levels differ by at least one unit from the optimal results; the VARI-METRIC levels differ in only 1%.

And the qualification is the more useful half:

the 10-fold improvement of VARI-METRIC is probably more meaningful than the actual percentages, which depend on the number of bases, mean demands over the repair time, and other input values.

The size of the error is a property of the system, not of METRIC.

Do Not Fix It by Padding a Rate

The instinct on meeting a gap is to inflate a lead time until the answer matches.

Do not. The means are already right. It is the second moment that is missing.

A fudge to the first moment breaks the agreement that exists while only approximately repairing the one that does not. It will also fail on the next item.

VARI-METRIC

Slay, 1980. Graves, 1985, published the short derivation.

METRIC is a first-order model using mean values only, whereas VARI-METRIC is a second-order model incorporating variances as well.

Compute the variance METRIC threw away, and use a distribution that can hold it.

The Whole Method Turns on One Question

The depot owes \(B_0\) units at a random instant.

How many of them are owed to storeroom \(j\)?

It fills in arrival order without regard to who asked, so each outstanding backorder came from storeroom \(j\) with probability

\[ f_j = \frac{\lambda_{j0}}{\lambda_0} \]

and they are labelled independently.

Binomial, and Not by Assumption

Simon (1971) and Graves have shown that the number of units in resupply at base \(I\), conditional on the total number of units in resupply at all bases, has a binomial distribution when the original demand process is Poisson.

So conditional on \(B_0\), the units owed to storeroom \(j\) are \(\text{Binomial}(B_0, f_j)\).

Two Terms Fall Out

\[ E[B_{0j}] = f_j\bar{B}_0 \]

\[ \mathit{Var}[B_{0j}] = f_j(1-f_j)\bar{B}_0 + f_j^{2}\,\mathit{Var}[B_0] \]

Read the two separately. The first is the randomness in which storeroom each backorder belongs to. The second is the randomness in how many there are, scaled by \(f_j^2\).

METRIC keeps neither.

The Storeroom’s Two Moments

\[ \mu_j = \lambda_j\left[\phi_j T_j + (1-\phi_j)O_j\right] + f_j\bar{B}_0 \]

\[ \sigma_j^{2} = \lambda_j\left[\phi_j T_j + (1-\phi_j)O_j\right] + f_j(1-f_j)\bar{B}_0 + f_j^{2}\,\mathit{Var}[B_0] \]

The mean is unchanged. \(f_j\bar{B}_0 = (1-\phi_j)\lambda_j\bar{W}\), which is the term METRIC already had.

Set the last two terms to zero and you have METRIC back.

So the two are not rivals. They are one model read to one moment or to two.

We Need the Variance of a Backorder Level

Define \(E[B^{2}(s)] = \sum_{x>s}(x-s)^{2}g(x)\).

Sherbrooke gives a recursion, attributed to Konvalinka:

\[ E[B^{2}(s)] = E[B^{2}(s-1)] - E[B(s)] - E[B(s-1)] \]

started from \(E[B^{2}(0)] = \mu_0 + \mu_0^{2}\).

\[ \mathit{Var}[B_0] = E[B^{2}(S_0)] - \bar{B}_0^{2} \]

Or, If You Have a Library

Write the square as \((x-s)^{2} = (x-s)(x-s-1) + (x-s)\) and take expectations:

\[ E[B^{2}(s)] = 2\,G^{2}(s) + G^{1}(s) \]

The recursion is the right form for a worksheet, which has rows and no second order loss function.

The closed form is the right form for a program, which has the reverse.

Neither is a mistake. Hold them to each other.

Fitting a Distribution to Two Moments

We have \(\mu_j\) and \(\sigma_j^2 > \mu_j\).

The negative binomial is the family for \(\mathit{VMR} > 1\):

\[ p = \frac{\mu_j}{\sigma_j^{2}}, \qquad \beta = \frac{1-p}{p}, \qquad r = \frac{\mu_j}{\beta} \]

and every measure from the single-location deck applies, evaluated on this instead of a Poisson.

Why This Family?

A negative binomial is a Poisson whose rate is itself random, drawn from a gamma.

That is exactly the situation. The pipeline would be Poisson if the depot delay were fixed; what spoils it is that the delay varies.

This is not an analogy bolted on afterwards. It is the title of the paper that introduced the method: An Approach to Modeling Multi-Echelon Resupply when the Demand Process is Poisson with a Gamma Prior.

One Step Rests on Evidence, Not Proof

The fit needs \(\sigma_j^{2} > \mu_j\), or the formulas return nonsense.

extensive calculations by us (and Graves) indicate that if \(x\) […] is Poisson, then the function \(\mathit{Var}[B(s)]/E[B(s)]\) is unimodal and greater than one, except for \(s = 0\)

neither Graves or we have been able to supply a proof.

So: test it before fitting. A Poisson at a ratio of one, a gamma below it. Do not assume what the literature declines to.

Near One Is Not One

The fit divides by \(1 - p\), and \(p \to 1\) as the variance approaches the mean. The original code therefore used a Poisson for any ratio between 0.9 and 1.1.

At \(S_0 = 24\) the ratio is only 1.0641, and at \(S_j = 4\):

Poisson (METRIC) Negative binomial Simulated, 30 \(\times\) 1,000 years
0.0964 0.1095 0.1101 \(\pm\) 0.0007

So the software fits a negative binomial whenever \(\sigma_j^{2}/\mu_j > 1\), a Poisson only at one, and a gamma below it.

A band also makes backorders jump at its edge, and an allocation search buys to the jump.

The Transformers, Both Ways

\(S_0 = 16\), \(S_j = 4\), unchanged.

Depot: \(\bar{B}_0 = 5.0201\) and \(\mathit{Var}[B_0] = 16.6215\).

A variance-to-mean ratio of 3.31 at the depot. That is the quantity METRIC discards.

\(\mu_j = 3.2276\) (both models), \(\sigma_j^{2} = 3.9527\), so \(p = 0.8166\) and \(r = 14.37\).

The Answer

METRIC VARI-METRIC
\(\mu_j\) 3.2276 3.2276
\(\sigma_j^{2}\) 3.2276 3.9527
\(\bar{B}_j\) 0.4055 0.4815
across four 1.6218 1.9259

About 19 percent more backorders on a plan neither model changed.

The plan did not change. The system did not change. What changed is that the model now admits it does not know how long a request will wait.

The Direction Is Not Accidental

[VARI-METRIC] produces an estimate of backorders that exceeds that of METRIC in all cases except when stock levels are zero (when the two models agree).

Wherever they differ, VARI-METRIC is the pessimistic one.

The extra backorders are ones METRIC was concealing, not ones VARI-METRIC invented.

Where We Are

  • The depot solves first, alone, with no iteration
  • Little’s Law turns its backorders into everyone’s delay
  • METRIC gets every mean right and one distribution wrong
  • VARI-METRIC changes no mean; it restores a variance
  • One step is known to work and is not known to be safe

Still missing: nothing here chooses a stock level. Every example was handed one. Next deck.

⌂ Index