1Demonstration 1 of 4
A decision rule that never goes negative
What does a guarded gap rule do when demand is below capacity?
The max(0, ...) guard turns every negative gap into zero, so the rule only reacts to a shortfall and the adjustment time divides the size of that reaction.
demand and capacity are in the same units; the gap is demand minus capacity. adjustment is the time over which the gap is closed. The rate is the share of the gap acted on per period.
Predict first. With demand 80 and capacity 100, is the adjustment rate negative, zero or positive?
Choose an example
Constructed example: the chapter's guarded expression with demand and adjustment values chosen for this reader.
Calculated values
- Gap (demand - capacity)
- 20
- Adjustment rate
- 5.0
- Round(3.7) in a model expression
- 'round' is not an allowed function
max(0, 120 - 100) / 4 = max(0, 20) / 4 = 20 / 4 = 5.0. The gap is positive, so the rule asks for one adjustment-time share of it.
Use the idea
State what a rule may never output, and test it at the boundary where the gap is zero or negative.
Where the conclusion applies
Capacity fixed at 100 and a rule that fires every period. A real owner might act monthly, which would make this rule more responsive than the organization.
Check your understanding: With demand 150 and adjustment 8, what is the adjustment rate?
Chapter 13 source: section "The expression problem". Demonstration C13-D01.
2Demonstration 2 of 4
A belief that lags the truth
How far behind an observed step does a smoothed belief stay?
Each period closes 1 / smoothing_time of the remaining gap, so a longer smoothing time leaves a larger gap for longer. The belief approaches the observed value without passing it.
observed is the true demand from period 1 on, starting at 100. expected is the decider's belief and carries forward from period to period. smoothing_time is how many periods the belief takes to close the gap.
Predict first. With a smoothing time of 8, is the belief closer to the observed value after 5 periods than with a time of 2?
Choose an example
Constructed example: the chapter's smoothing rule evaluated by the pack, with the step size and smoothing times chosen for this reader.
Calculated values
- Expected after period 1
- 105.0
- Expected after period 5
- 115.3
- Expected after period 10
- 118.9
- Gap to observed at period 5
- 4.7
- Overshoots the observed value
- no
First update: 100 + (120 - 100) / 4 = 105.0. Each period closes 1 / 4 of the remaining gap, so at period 5 the belief is 115.3, still 4.7 from 120. The belief approaches the observed value and does not overshoot it.
Use the idea
If the decider cannot see a quantity directly and at once, model the belief with its own state instead of reading the true value.
Where the conclusion applies
One step change from 100 and a belief that starts at the old value. A decider who also reads a trend or a pipeline would not lag in this way.
Check your understanding: With a smoothing time of 2 and demand stepping from 100 to 120, what is the belief after the first period?
Chapter 13 source: section "Perceptions have their own state". Demonstration C13-D02.
3Demonstration 3 of 4
Dependencies fall out of the parse
Which names does an expression read, and what happens when one has no value?
Parsing yields the set of names read before anything runs. Evaluation then refuses a name with no value instead of substituting zero, so a missing quantity cannot pass as a zero one.
Each bar is the value supplied for one name the expression reads. The names read are the expression's edges in the model's dependency graph.
Predict first. If the last name in alphabetical order has no value, does evaluation return 0 for it?
Choose an example
Constructed example: the chapter's expressions with values defined for this reader and evaluated by the pack.
Calculated values
- Expression
- backlog / production_delay + safety
- Names read (dependency edges)
- backlog, production_delay, safety
- Number of edges
- 3
- Result
- 25.00
The parse finds 3 names: backlog, production_delay, safety. With all of them supplied, 80 / 4 + 5 = 25.00.
Use the idea
Compare the names an expression reads with the names the model defines, and treat the difference as the list of what is missing.
Where the conclusion applies
Numeric values defined for this reader, one expression at a time. A cycle among auxiliaries is a separate defect, found by the compiler of a later chapter.
Check your understanding: For backlog / production_delay + safety with backlog 80, production_delay 4 and safety 5, what is the result?
Chapter 13 source: section "Dependencies fall out of the parse". Demonstration C13-D03.
4Demonstration 4 of 4
An auxiliary is tested by arithmetic
What are the cases worth testing for a coverage auxiliary?
An auxiliary holds no state, so each input set has one expected value that plain division gives. The case worth adding is a zero denominator, which has no value at all.
inventory is in units, shipment_rate in units per week, so coverage is in weeks. The target coverage of 2 weeks is a parameter.
Predict first. With 200 units and shipments of 100 per week, is coverage above or below the target of 2 weeks?
Choose an example
Constructed example: the chapter's two hundred units against fifty per week, with other inputs chosen for this reader.
Calculated values
- Inventory coverage
- 4.0 weeks
- Target coverage
- 2 weeks
- Against target
- 2.0 weeks above the target
Coverage = 200 / 50 = 4.0 weeks, 2.0 weeks above the target. An auxiliary has no state, so this arithmetic is its whole test.
Use the idea
Write the substitution test for every auxiliary, including the case where its denominator is zero.
Where the conclusion applies
A single week of shipments taken as the rate. If shipments swing, the coverage computed from one week is not the coverage over the next several.
Check your understanding: With 400 units and shipments of 50 per week, how many weeks of cover and how far from the target?
Chapter 13 source: section "Testing algebra". Demonstration C13-D04.