What a Parent’s Rule Does Below It, and the Same Arithmetic on a Network

Manuel D. Rossetti, PhD P.E.

Agenda

  • One rule changes at the deck assembly, and everything below it moves
  • Why the cost below a level counts the level above’s orders, exactly
  • Why the rule that is best at a level is not the rule that is best for the product
  • What the variability coefficient does, and does not, tell you
  • The same arithmetic on a distribution network, and the bullwhip effect
  • Nervousness in a structure, and what requirements planning assumes

The Claim

Last session every item ordered lot-for-lot. Recall from the dynamic lot sizing chapter that every rule there can be used instead, applied to the net requirement row of whichever record it is planning. None of them is restated here.

What is new is something a single-item chapter could not see. Recall the explosion equation:

\[ G_{jt} = \sum_{i \in \text{parents}(j)} q_{ij} \, \mathit{Rel}_{it} . \]

A parent’s lot sizing rule does not only decide what the parent costs. Through its releases it decides when and in what sizes the components are asked for, and so it decides what their problem looks like before they have made any choice at all.

One Rule Changes, and Everything Moves

Rule on the deck assembly Orders \(VC\) at level 1 Cost at DA Cost below Total
Lot-for-lot 11 0.6191 $5,500 $9,000 $14,500
Periodic order quantity 11 0.6191 $5,500 $9,000 $14,500
Wagner-Whitin 9 0.6701 $4,860 $7,500 $12,360
Silver-Meal 8 0.9650 $4,936 $6,700 $11,636
Least unit cost 7 1.0274 $5,588 $6,100 $11,688
Part-period balancing 7 1.5463 $5,444 $6,100 $11,544
Adjusted economic order quantity 7 0.8459 $5,588 $5,900 $11,488

Every component stays on lot-for-lot. The variability coefficient is measured on what the deck assembly has arrive, which by the explosion equation is what the belt is asked for.

We draw three things out of this table.

One: Lot-for-Lot Changes Nothing

Lot-for-lot’s receipts are the master schedule, so the components see the schedule itself. Recall the variability coefficient, written as the mean of the squares less the square of the mean, over the square of the mean:

\[ \begin{aligned} \bar{d} &= \tfrac{1}{12}(40 + 60 + \cdots + 220) = \tfrac{1{,}840}{12} = 153.33 &&\text{the mean requirement}\\ \overline{d^2} &= \tfrac{1}{12}(40^2 + 60^2 + \cdots + 220^2) = \tfrac{456{,}800}{12} = 38{,}066.67 &&\text{the mean of the squares}\\ VC &= \frac{38{,}066.67 - 153.33^2}{153.33^2} = \frac{14{,}555.56}{23{,}511.11} = 0.6191 &&\text{the schedule's own figure} \end{aligned} \]

Every rule that batches raises it, as far as 1.5463 under part-period balancing.

Two: The Cost Below Counts the Orders Above

Read the Orders column against the Cost below column: seven orders cost $5,900 to $6,100 below, eight cost $6,700, nine $7,500, eleven $9,000. The reason is the explosion equation and nothing else: every release is a requirement the components must meet, and meeting a requirement costs a setup.

\[ \begin{aligned} \text{per DA release} &: \$300 + \$250 + \$150 = \$700 &&\text{one setup each at B, S and H}\\ \text{per bearing order} &: \$100 &&\text{once in every period either parent releases}\\ \text{lot-for-lot} &: 11 \times \$700 + 13 \times \$100 = \$9{,}000 &&\text{the Cost below entry} \end{aligned} \]

DA orders 7 8 9 11
\(\$700 \times\) orders $4,900 $5,600 $6,300 $7,700
Bearing orders, at $100 10 to 12 11 12 13
Cost below $5,900 to $6,100 $6,700 $7,500 $9,000

Three: Best at a Level Is Not Best for the Product

Wagner-Whitin is optimal at the deck assembly, and optimal there by construction: the dynamic lot sizing chapter proved no rule can beat it on that item’s own requirements.

\[ \begin{aligned} \$5{,}588 - \$4{,}860 &= \$728 &&\text{what Wagner-Whitin saves at the deck assembly}\\ \$12{,}360 - \$11{,}488 &= \$872 &&\text{what it loses over the structure}\\ \$872 / \$11{,}488 &= 7.59\% &&\text{the cost of choosing by the level you can see} \end{aligned} \]

Thus, the rule that is best at a level is not the rule that is best for the product. Wagner-Whitin orders nine times, so the components below it pay for nine releases; the adjusted economic order quantity orders seven.

What the Variability Coefficient Does Not Tell You

You will be tempted to read the \(VC\) column as a cost, and it is not one. Part-period balancing produces much the lumpiest pattern, 1.5463, and is not the most expensive plan. Wagner-Whitin produces nearly the smoothest, 0.6701, and is the second most expensive.

Notice that the order count explains the cost below, and the variability coefficient does not.

The variability coefficient is still the right thing to look at when you ask whether a component’s own planner needs dynamic lot sizing at all. The threshold was 0.2, and every row of the table clears it comfortably.

Dependent demand does not merely happen to be variable. It is made variable, by a decision taken one level up.

What Is Actually Done

Most installed systems run lot-for-lot below the top level or two. Reading the table it is easy to see that as laziness. It is not, quite.

It leaves the level beneath alone, and in a structure several levels deep that matters more at each level down.

It produces the smallest projected balances, which is what a planner wants when the requirements above are going to be revised anyway.

It needs no cost parameters. A bill of material with ten thousand items has ten thousand order costs that nobody has ever measured.

The defensible position is that batching pays where the setup is large and known, usually the end item and the major subassemblies, and that below that the information needed to do it well does not exist.

Distribution Requirements Planning

The dynamic lot sizing chapter’s distributor holds belts at three regional warehouses and replenishes all three from a central warehouse.

A region’s demand is independent: dealers buy what they buy. The center’s demand is not. It is whatever the three regions order, a consequence of their own plans, as a component’s demand is a consequence of its parent’s.

Thus, the center is planned the same way a component is.

It Is the Same Calculation

Writing the explosion equation for the center, its parents are the three regions and the quantity per is one belt per belt:

\[ G_{\mathit{CW},t} = \sum_{r \in \text{regions}} 1 \cdot \mathit{Rel}_{rt} . \]

That is the explosion equation with every \(q_{ij} = 1\). Transit time plays the part of lead time, the regions are the level-0 items, the center is their component, and the explosion algorithm runs unchanged. Nothing in it has to know which kind of graph it is walking.

Two differences are real, and neither is arithmetic.

The quantity per is one everywhere. A deck needs two spindle assemblies; a region needs one belt per belt.

The relationship reads backwards. In a bill of material the parent is what the child goes into. In a network the parent is the customer and the child is the supplier. The arrow points the way the requirement travels, upstream in both cases, and that is why the same code carries both.

The Three Regions and the Center

Question Answer
What is stocked? Belts, at three regions and one central warehouse
What is the demand process? Known: the regions’ twelve-month sales, 830 north, 640 south, 370 west, 1,840 in all; the center’s is computed
When is inventory reviewed? Once a month, over a common horizon
What triggers replenishment, and how much? A net requirement, lot-for-lot at every location
What happens to unmet demand? None occurs inside a long enough horizon
What costs are incurred, and when? A setup per order, $200 at a region and $400 at the center; carrying at 2% of $50 a month

Transit is one month to the north and west and two to the south, and the center’s supplier takes two months. The deepest path is south then center, \(2 + 2 = 4\) months, so the horizon leads the first sale by four.

The Roll-Up

Period 3 4 5 6 7 8 9 10 11 12 13 14 15
North releases, \(L = 1\) 0 20 30 60 140 180 110 50 20 0 40 80 100
South releases, \(L = 2\) 10 20 40 100 160 100 50 10 0 20 60 70 0
West releases, \(L = 1\) 0 10 10 20 60 80 50 20 10 0 20 40 50
Center’s gross requirements 10 50 80 180 360 360 210 80 30 20 120 190 150

Each region’s releases are its own sales pulled back by its transit time, and the center’s row is the three above it added down the column. Notice that the south is a month out of step with the other two, because its transit time is longer: the center’s requirement in period 3 is the south’s alone.

The check. The center’s row sums to \(1{,}840\), every belt the regions sell.

What the Regions Do to the Center

Now change the rule the regions use, and watch what the center sees.

Rule at every region \(VC\) at the center Ratio to 0.6191 Regions Center Total
Lot-for-lot 0.6334 1.02 $6,600 $5,200 $11,800
Part-period balancing 0.8692 1.40 $3,860 $3,200 $7,060
Wagner-Whitin 1.1403 1.84 $3,830 $3,200 $7,030
Silver-Meal 1.3715 2.22 $3,980 $3,600 $7,580
Periodic order quantity 1.5896 2.57 $4,310 $3,200 $7,510

The regions sell a pattern whose variability coefficient is 0.6191. Under every batching rule the center faces demand 1.4 to 2.6 times as variable, and the regions’ customers did nothing to cause it.

This is the bullwhip effect, and the table is its mechanism: batching at one stage is amplification at the next.

Two Things Before the Conclusion Runs Away

Amplification is caused by batching, and not by the network. Under lot-for-lot the center sees 0.6334, within three percent of the 0.6191 the regions sell. Three transit times spread the same 1,840 belts over thirteen periods instead of twelve, and that spreading is the whole of the difference.

Every batching row is cheaper than lot-for-lot, at the regions and at the center both. In a world where demand is known, amplification costs nothing: the center sees the lumpy pattern coming and plans for it, as it just did.

The bullwhip effect is expensive when demand is uncertain. Then the center cannot tell an amplified pattern from a change in the market, and must hold stock against both. Pricing that needs a model of uncertainty, which this chapter does not have.

Nervousness, Propagated

Recall nervousness from the dynamic lot sizing chapter: the horizon rolls, the plan is recomputed, and the new plan disagrees with the old about orders not yet placed. In a product structure the disagreement propagates.

For example, a change to the master schedule in a distant period changes the deck assembly’s releases. Those are the belt’s requirements, so the belt replans, and with a two-month lead time its releases move into periods nearer than the change that caused them.

Three things make it worse than the single-item case.

Lot sizing amplifies it. A batching rule has thresholds, and a small change moves a plan across one. That instability is multiplied by every level beneath.

Lead times concentrate it. A change far out arrives at the bottom of the structure much sooner, because each level’s lead time pulls it earlier.

Low-level codes spread it. An item with several parents is replanned when any of them moves.

The Devices, Plus One

A firm planned order is a planned order the system is forbidden to move. It is the freeze fence applied to a single order instead of a span, and it is how a planner overrides the calculation without turning it off.

A time fence does the same for a span of periods. A change penalty is rare here, and rarer still because it would have to be defined for every item at every level.

Safety lead time is this chapter’s addition. Instead of holding extra stock, the item is planned to arrive a period early. It buffers a late delivery in a way safety stock does not, and it costs a period of carrying on everything instead of a permanent balance on one item.

Which you should use depends on whether the uncertainty is in the quantity or in the timing, and requirements planning gives you no way to tell.

What Requirements Planning Assumes

The arithmetic of this chapter is exact, and every assumption made to get it is questionable.

  1. Capacity is infinite. Nothing asks whether the shop can build 1,980 bearings in period 8. Capacity requirements planning compares the releases with what the work centers can do, and that loop is outside this book.
  2. Lead times are fixed and known. A real lead time is mostly queueing, so it depends on shop load, which depends on the lot sizes the plan is choosing.
  3. Requirements are known. The master schedule is a forecast, and everything below inherits its error with the amplification just measured applied.
  4. The records are right. An explosion nets against on-hand balances, so one wrong balance becomes a wrong order for every item beneath it.
  5. Everything is deterministic. No demand distribution appears anywhere, and the only concession to uncertainty is a safety stock the model cannot justify.

Assumption 5 is the one the rest of the course removes.

What We Did Today

A parent’s rule sets its components’ problem, through the explosion equation and nothing else.

The cost below a level counts the orders above it: $700 a release here, plus the bearing’s orders.

The locally optimal rule is not the globally optimal rule, and here the gap is $872, or 7.59%.

The variability coefficient is not a cost. The order count explains the cost below; the coefficient says whether lot sizing is worth doing at all.

DRP is the same algorithm with every quantity per equal to one, and batching at one stage amplifies what the next sees, 1.4 to 2.6 times here, at no cost while demand is known.

Requirements planning assumes infinite capacity, fixed lead times, known requirements, accurate records and determinism.

For Next Time

Read before next session: Building These Models in a Worksheet and Designing the Software.

Today’s material was What Lot Sizing Does to the Level Below, Distribution Requirements Planning, Nervousness and What Requirements Planning Assumes.

Next session:

  • The four sheets of Chapter6Models.xlsx, and why the periods run across
  • The software: one record, one plan, one interface for every lot sizing rule
  • Why a distribution network is built as a bill of material, with no second class

Bring the comparison table. Next session shows the one line of code that changes between its rows.

⌂ Index