Systems Thinking with AI, illustrated chapter reader ยท Chapter 25

25Turn Models into Management Flight Simulators

A scenario runner is worth what its record can replay and what its constraints can catch.

Four experiments on the chapter's adoption model. Compare three scenarios against a declared ceiling, see why the run settings belong in the record, see what averaging scenarios hides, and check what a narrative may cite.

Every example in these readers is a constructed teaching example built from the chapter's own numbers. Chapters 36 to 39 start from committed public records; their fitted values are inferred from those records, and nothing here is a forecast.

1Demonstration 1 of 4

Three scenarios against a declared ceiling

Which scenarios breach a bound the model was told about?

Each scenario runs the same model with one override. The constraint is checked on the whole path after the run, so a scenario breaches if its highest value is above the ceiling.

Equation: breaches: adopters reached 1000, above 900.0

imitation is the strength of word of mouth per week. adopters count people after twenty weeks from a market of 1000. The ceiling is a declared bound on adopters.

Predict first. With the ceiling at 900, which of the three scenarios record a breach?

Choose an example

Figure: Three scenarios against a declared ceiling. Adoption path of the base scenario over twenty weeks ending at 937.7, against a dashed ceiling at 900; 1 breach recorded.
Word-of-mouth strength (imitation): 0.30 (base), Declared ceiling on adopters: 900
Constructed example: the chapter's scenario table, imitation 0.05, 0.30 and 0.60, run with the pack's ScenarioRunner; the ceiling of 1100 is a value defined for this reader.

Calculated values

Scenario
Base (imitation 0.30)
Adopters at week 20
937.7
Highest adopters
937.7
Ceiling
900
Constraint breaches
1

Week 1 adds (0.01 + 0.30 x 1 / 1000) x (1000 - 1) = 10.29 adopters, giving 11.29, and twenty such weeks end at 937.7. Breach: 937.7 - 900 = 37.7 above the ceiling, so the record carries the warning "adopters reached 937.7, above 900.0".

Use the idea

Declare the bound the organization cares about before running scenarios, so every run reports against it.

Where the conclusion applies

One parameter varied, Euler at a step of 1, twenty weeks, a market of 1000. The result fails to generalise if other parameters, never varied here, also move the outcome.

Check your understanding: With the ceiling at 1100, how many scenarios breach, and what is the aggressive peak?
None. The aggressive scenario peaks at 999.97, which is below 1100, so 999.97 - 1100 is negative and nothing is recorded.

Chapter 25 source: section "Scenarios, not predictions". Demonstration C25-D01.

2Demonstration 2 of 4

The settings belong in the record

Can two scenarios run at different settings be compared as policies?

The difference in settings moves the answer by a few adopters, which is more than the gap the policy difference makes. The comparison then reflects the solver, not the policies.

Equation: settings are run settings with solver Euler, step 1.0, horizon 20, seed 0

Scenario A has imitation 0.300 and B has 0.302, so B truly has more adopters. B always runs with Euler at a step of 1; A runs with the chosen solver and step.

Predict first. If A is run with the fourth-order solver at a step of 1.0, does B still read as higher?

Choose an example

Figure: The settings belong in the record. Two dots on a zoomed axis: scenario A at 937.70 adopters under euler with step 1.00, and scenario B at 939.87 under euler with step 1.00; a dashed line marks A at B's settings, 937.70.
Solver used for A: Euler, Step used for A: 1
Constructed example: the chapter's base scenario, plus a second scenario with a gap chosen for this reader, run with the pack's ScenarioRunner.

Calculated values

A settings
euler, step 1.00
A adopters
937.70
B adopters (euler, step 1.00)
939.87
B minus A as read
2.17
B minus A at equal settings
2.17
Model hash A
05bc66d66e9fe2a0
Model hash B
d8a46a6f96bf7fa6

At equal settings B - A = 939.87 - 937.70 = 2.17, so stronger word of mouth (0.302 against 0.300) gives more adopters. As recorded, B - A = 939.87 - 937.70 = 2.17. B reads as higher, which is the true order. The hashes differ because the override differs; the settings travel in the record beside them.

Use the idea

Compare scenarios only when the record shows identical settings, and re-run at equal settings when it does not.

Where the conclusion applies

A small true gap of about two adopters, chosen to make the point. A larger policy gap would survive the settings difference.

Check your understanding: If B had imitation 0.31 (948.0 adopters under Euler at step 1), would the settings difference of A still reverse the order?
No. A under rk4 at step 1.0 is 942.37, and 947.95 - 942.37 = 5.58 is positive, so B stays ahead.

Chapter 25 source: section "What the record has to hold". Demonstration C25-D02.

3Demonstration 3 of 4

Averaging scenarios shows a path nobody ran

What does the average of two scenarios describe?

The average of two paths is a third path that the model never generated. Reading it as a forecast hides the spread, which is the information the scenarios were run to show.

Equation: overrides, imitation set to 0.60

Each line is one scenario, set by its imitation override. The dashed line is the plain average of the two emphasised lines at each week.

Predict first. Averaging the cautious and aggressive scenarios at week 20, is the result near either scenario or between them?

Choose an example

Figure: Averaging scenarios shows a path nobody ran. Three adoption paths over twenty weeks with the base and aggressive paths emphasised and a dashed line for their average, read at week 20, where the average is 968.8.
Which two scenarios are averaged: Base and aggressive, Week read: 20
Constructed example: the chapter's three scenarios, averaged by this reader to illustrate the dashboard rule; the pack runs the scenarios, the averaging is plain arithmetic.

Calculated values

Scenarios averaged
base and aggressive
Week read
20
Base at that week
937.7
Aggressive at that week
1000.0
Average
968.8
Nearest scenario
Base (937.7) and Aggressive (1000.0) (a tie)
Distance to nearest scenario
31.1

At week 20: (937.7 + 1000.0) / 2 = 968.8. The closest of the three scenario values is Base (937.7) and Aggressive (1000.0), a tie, since the average sits halfway between them, at a distance of |968.8 - 937.7| = 31.1. No scenario produced the average, which is why the contract displays the lines side by side.

Use the idea

Show scenarios as separate lines or a range, and say that no line is a prediction.

Where the conclusion applies

Three scenarios and an equal weighting. Any other weighting would also be a path the model never generated.

Check your understanding: At week 20, what is the average of the cautious and base scenarios?
(275.9 + 937.7) / 2 = 606.8, which is 330.9 from each of them (a tie), so it is near neither.

Chapter 25 source: section "The dashboard contract". Demonstration C25-D03.

4Demonstration 4 of 4

A narrative may cite only the record

Which quantities in a proposed narrative does the replay record fail to support?

The check is a set difference: the names in the narrative minus the names in the record. It is mechanical, so a fluent narrative cannot talk its way past it.

Equation: supported by record, for the variables adopters and marketing spend

The record holds the reported outputs and the overrides of one run. A narrative names variables; the check lists names the record does not hold.

Predict first. If the narrative names adopters and marketing_spend, which name is flagged?

Choose an example

Figure: A narrative may cite only the record. A list of 2 variable names, each marked as in the record or flagged; the record holds adopters, imitation and 1 name is flagged.
Variables the narrative names: adopters, marketing_spend, What the run overrode: imitation
Constructed example: the chapter's aggressive scenario, with the narrative name sets and the second override defined for this reader, checked with the pack's supported_by_record.

Calculated values

Record holds
adopters, imitation
Narrative names
adopters, marketing_spend
Flagged as unsupported
marketing_spend

Names {adopters, marketing_spend} minus the record {adopters, imitation} leaves ['marketing_spend']: 2 - 1 = 1 flagged. A narrative citing these quantities is rejected rather than edited.

Use the idea

Reject a narrative that cites unflagged-looking quantities the run never produced, instead of editing it.

Where the conclusion applies

Only names are checked. A name in the record can still be described wrongly, and the check does not read the sentence.

Check your understanding: If the run overrides imitation and total_market and reports adopters, is total_market flagged when the narrative names it?
No. total_market is among the overrides, so it is in the record: {adopters, imitation, total_market} minus the record is empty.

Chapter 25 source: section "Where AI belongs". Demonstration C25-D04.