A Practical Method: Mapping a Real System Step by Step
So far in this book you have collected a toolbox: stocks, flows, feedback loops, delays, leverage points. This chapter is where you stop collecting tools and start using them. It gives you a single, repeatable, 8-step procedure for taking any messy real-world problem and turning it into a clear map you can actually act on.
Think of this as a recipe. You can follow it for a coffee shop queue, a team that keeps missing deadlines, a supply chain, or a public-health crisis. The steps are always the same. By the end you will have walked through two complete worked examples and a wallet-card summary you can keep beside you.
Step 1 — Name the problem as behavior over time, not as an event
The first move is to draw a reference mode: a rough sketch (no precise data needed) of how a key quantity has changed over time and how you fear it will keep changing. The system-dynamics scholar John Sterman calls this "problem articulation."
The reference mode forces you away from event thinking ("the queue was huge on Tuesday") toward pattern thinking ("average wait has grown from 4 minutes to 18 minutes over six months and is still climbing"). Until you have a behavior-over-time graph, you do not have a problem — you have an anecdote.
wait
time | .-- "and still climbing"
18m | .-'
| .-'
| .-'
4m | .-'
+------------------------------> time
Jan Jun
(a reference mode: a trend, not a Tuesday)
A handful of canonical shapes tell you what kind of structure is underneath, before you even draw a loop:
- Exponential growth — a reinforcing loop is in charge.
- S-shaped growth — a reinforcing loop that runs into a balancing limit.
- Oscillation — a balancing loop with a delay.
- Overshoot and collapse — a balancing loop with a long delay eating away an eroding resource.
- Goal-seeking decline — a balancing loop settling toward a lower target.
Step 2 — Set the boundary: endogenous, exogenous, excluded
Every map needs an edge. A system boundary chart sorts every relevant variable into three columns:
- Endogenous
- Inside the model — its value is produced by the system's own structure (e.g. wait time, error rate).
- Exogenous
- Outside, but it pushes on the system — treated as a given input (e.g. how many customers arrive per hour).
- Excluded
- Deliberately left out — but written down, so everyone knows it was a conscious choice (e.g. coffee bean pricing).
The boundary should be broad enough that the system's main behavior is explained by the endogenous structure. The classic trap is drawing it too tightly, then wondering why your fixes never hold — the loop that matters got left outside. A practical test: if you catch yourself saying "and then something outside our control makes it worse," that something probably belongs inside the boundary.
Step 3 — List the key stocks
A stock is an accumulation: something you could measure at a single frozen moment, and that would still exist if time stopped. Meadows' examples: water in a bathtub, money in a bank account, a population, self-confidence.
Stocks give a system inertia. As we will see again with delays, you cannot change a stock instantly — even with the drain wide open, the tub takes time to empty. This inertia is exactly why systems resist quick fixes. List stocks first, because everything else connects to them.
Step 4 — Find the flows
A flow is a rate, measured per unit of time: customers per hour, dollars per month. Flows are the valves — the things you can turn up or down. For every stock from Step 3, ask two questions: what fills it? and what drains it?
Every stock has at least one inflow and one outflow. Only inflows → it grows forever. Only outflows → it drains to zero. For sources and sinks outside your boundary, draw a "cloud" symbol — it keeps the map honest about what you are and are not modeling.
Step 5 — Find the feedback loops and delays
Now connect the dots into a causal loop diagram. Every arrow carries a polarity: "+" means "if A goes up, B goes up"; "−" means "if A goes up, B goes down." To classify a loop, count the "−" signs around it:
| Reinforcing loop (R) | Balancing loop (B) | |
|---|---|---|
| "−" signs around loop | Even number (incl. zero) | Odd number |
| What it does | Amplifies change | Resists change, seeks a goal |
| Behavior alone | Growth or collapse | Goal-seeking (or oscillation, if delayed) |
| Everyday image | Compound interest | A thermostat |
Every real system has both kinds. A reinforcing loop always eventually meets a balancing constraint. A balancing loop alone settles down — but add a delay and it oscillates.
List every significant delay, of two kinds: information delays (how long before someone notices the stock changed?) and material/process delays (how long before a decision becomes a physical change?).
Step 6 — Identify the dominant loop and the constraint
When several loops are present, one "wins" at any given moment and drives what you observe. Meadows called this shifting loop dominance. Early in an epidemic the reinforcing infection loop dominates (exponential spread); later the balancing immunity loop takes over and slows it. Address the loop that is dominant now.
Closely related is the constraint — the bottleneck that, if relieved, would most expand performance. This is Eliyahu Goldratt's central idea in The Goal. His five focusing steps: (1) identify the constraint; (2) exploit it (max output, no new spending); (3) subordinate everything else to it; (4) elevate it (invest to expand it); (5) go back to step 1. Improving anything that is not the constraint, by definition, does not increase throughput.
Step 7 — Find the leverage points
A leverage point is a place where a small change produces a large shift in behavior. In her 1999 essay, Meadows ranked 12 of them from weakest to strongest. Her uncomfortable finding: people spend most of their effort on the weakest ones.
- Weak (12–10): numbers/parameters (a tax rate); buffer sizes; physical stock-and-flow structure.
- Moderate (9–6): lengths of delays; strength of balancing loops; gain of reinforcing loops; structure of information flows (who knows what, when) — often cheap and powerful.
- Strong (5–1): the rules; power to change structure; the system's goals; its paradigms; and the ability to transcend paradigms.
Step 8 — Test interventions for second-order effects
A second-order effect is a consequence of your fix that travels through the loops from Step 5 and comes back — often delayed — to hit the very thing you were trying to improve. This is Peter Senge's "fixes that fail" archetype.
Before committing, trace every arrow out of your intervention and ask: does this path lead back to my target variable, and does it help or hurt? Four test questions: (1) Am I changing structure or just symptoms? (2) Does this create a new dependency? (3) Who else responds to the change? (4) What happens to stocks I didn't target?
The 8-step procedure (a wallet card)
- Draw a behavior-over-time graph; name the problem as a trend.
- Set the boundary: endogenous / exogenous / excluded.
- List key stocks (time-stop test).
- Find the flows for each stock (what fills, what drains).
- Draw causal links with polarity; mark all R and B loops and delays.
- Identify the dominant loop now and the binding constraint.
- Locate leverage points (prefer 9→3 over 12→10).
- Trace second-order effects before choosing an intervention.
Worked example: the team that keeps missing deadlines
Step 1 (behavior): Tasks remaining stay stubbornly flat for weeks, then a desperate spike of completions near the deadline, then a tail of rework. This has happened in three of the last four projects. Name it: "chronic deadline-slip and rework cycle," not an isolated failure.
Step 2 (boundary): Endogenous — tasks remaining, completion rate, rework generated, effective capacity, pressure, corners cut, defect rate. Exogenous — initial scope, deadline, headcount. Excluded — personalities, office politics.
Step 3 (stocks): Tasks Remaining; Rework Backlog; Team Morale / Effective Capacity.
Step 4 (flows): Tasks Remaining is filled by scope additions, drained by completion rate. Rework Backlog is filled by rework generation, drained by rework completion. Capacity is filled by rest/learning, drained by burnout.
Step 5 (loops + delays):
B1 (intended): Tasks Remaining -> Pressure -> Completion
-> (drains) Tasks Remaining [balancing]
R1 (vicious): Pressure -> Corners cut -> Rework generated
-> Rework Backlog -> Completion falls
-> Tasks Remaining stays high -> Pressure
[reinforcing spiral]
Loop B2: sustained pressure erodes morale → completion falls → more pressure (a balancing loop driving toward a worse equilibrium). Delays: a 1–2 week discovery delay before rework is spotted; a several-week capacity-recovery delay.
Step 6 (dominance + constraint): Weeks 1–6 B1 dominates; from week 7 R1 takes over as rework piles up. The constraint is not raw work rate — it's the rework backlog. In Goldratt's terms, the bottleneck is quality-at-source.
Step 7 (leverage): Extending the deadline or hiring a contractor (parameters, weak) just lets R1 generate rework faster. A daily "completed vs rework generated" dashboard shortens the discovery delay (#9, #6). A "definition of done" checklist (#5) starves the rework loop. Shifting the goal from "tasks completed" to "tasks done right first time" (#3) is the single most powerful change.
Step 8 (second-order):
- Work nights and weekends → more pressure → more corners cut → R1 accelerates → more rework in three weeks, plus morale drains. Self-defeating.
- Add a checklist alone → week-1 completions slow → pressure spikes → team may abandon the checklist under pressure. Fragile unless the goal changes too (classic "shifting the burden").
- Change the goal to quality-first AND show rework rate daily → B1 now seeks quality, the information delay shrinks, R1 loses its fuel. Highest-leverage and most durable; just manage stakeholders through a temporarily slower-looking week or two.
Why simple interventions fail over time: shifting dominance and the Beer Game
The deadline example shows a deep lesson: the dominant loop shifts as stocks change. A fix that works while a reinforcing loop is in charge (hire more staff to serve more customers) can stop working — or reverse — once a balancing limit (physical space, manager bandwidth) takes over. Skilled mappers anticipate the moment dominance will shift and design interventions that survive the shift.
Key Takeaways
- Start every map by drawing the problem as a trend over time (a reference mode), never as a single event — its shape already hints at the loop structure beneath.
- Set the boundary on purpose: endogenous, exogenous, excluded. Too tight a boundary leaves the real loop outside, and your fixes won't hold.
- Use the time-stop test to separate stocks (accumulations) from flows (rates); stocks give systems their inertia and resistance to quick fixes.
- Count "−" signs to label loops R or B, and list every information and material delay — delays are what turn balancing loops into oscillation and overshoot.
- Find the dominant loop and the constraint (Goldratt): improving a non-bottleneck improves nothing, and dominance shifts as stocks change.
- Aim for higher-leverage points (information, rules, goals, paradigms) over parameters, and always trace second-order effects before you act.