Skip to content
Thinking in Diagrams

Loops That Amplify, Loops That Correct

Causal loopsPart II · Feedback · Chapter 4 of 12 · the first of two chapters on causal loops

Why do some changes snowball while others settle? A causal loop diagram shows the loops a change runs around, and whether each amplifies the change or corrects it.

Print this chapter, with a sheet for each exercise and the answers at the back, from its PDF.

  • A change seems to feed itself.
  • Something keeps drifting back to where it was, however hard anyone pushes on it.
  • A fix worked for a while, then stopped, or began working against you.
  • An explanation’s becauses run in a circle.
  • People disagree about what causes what, and arguing hasn’t settled it.

A deadline costs you two nights’ sleep. Foggy on Wednesday afternoon, you have a coffee at three, finish the job, and lie awake until one. On Thursday, foggier, you have a double at two. By Friday the caffeine has you sleeping five hours a night.

At the weekend, noticing how tired you are, you go to bed at nine two nights running, and by midweek you’re yourself again.

One change fed itself: less sleep, more coffee, less sleep. The other corrected itself: the further behind you fell, the harder you caught up, until there was nothing left to catch up on.

Every name on the diagram is a variable: a quantity that can rise or fall, such as sleep debt or hours slept.

That rules out actions and events. Test a name by putting more in front of it: more afternoon caffeine makes sense; more drink coffee doesn’t. Naming a variable as an action is the bad diagram’s mistake.

Check your understandingWhich of these names could be a variable on a causal loop diagram?

Not quite. That's an action: something you do, not something there can be more or less of. The quantity inside it is early nights, a count that rises and falls from week to week.

Yes. It's a quantity that can rise or fall, and “more hours slept” makes sense. Every effect into or out of it can show which way it moves.

Not quite. That's an event: it happens once, on a date. What rises and falls around it is something like work still to do, and that would be the variable.

Not quite. The increase doesn't belong in the name: which way tiredness moves is what the effects' polarity shows. The variable is tiredness.

An effect means that a change in one variable causes a change in another; its polarity shows which way. A + effect means they move in the same direction: more sleep debt, more afternoon caffeine. A − effect means they move in opposite directions: more afternoon caffeine, fewer hours slept.

+ doesn’t mean good and − doesn’t mean bad, and neither gives size: caffeine might cost ten minutes of sleep or two hours.

In a causal loop diagram every effect carries a polarity; an influence claim, drawn in an influence map, carries none until it is upgraded to a causal claim.

Sleep debt raises afternoon caffeine, caffeine cuts hours slept, and fewer hours slept raise sleep debt. A closed path of effects like this is a loop. A chain shows how one thing affects another; a loop shows how a thing ends up affecting itself.

Causal-loop diagram: R1 spiral Variables: sleep debt; afternoon caffeine; hours slept. Effects: sleep debt to afternoon caffeine (+, same direction); afternoon caffeine to hours slept (−, opposite direction); hours slept to sleep debt (−, opposite direction). Loop R1 spiral, reinforcing: sleep debt, afternoon caffeine, hours slept, and back to sleep debt. + − − sleep debt afternoon caffeine hours slept R1spiral

A reinforcing loop makes a change snowball, in whichever direction it starts: debt brings coffee and more debt, but a good night likewise brings less coffee and another good night. A balancing loop makes a change settle, moving a variable toward a target and opposing any push away from it: the further behind on sleep you fall, the harder you try to catch up.

Each loop’s label, drawn inside it with a curved mark showing which way it circulates, is its kind and a number: R1, R2 for reinforcing loops, B1, B2 for balancing ones. Its name describes what it does, not what it’s about: spiral, not coffee.

The parity rule: a loop with an even number of − effects is reinforcing, and one with an odd number is balancing. Zero counts as even.

Each − effect reverses a change passing through it. Two reversals cancel, so the change comes back pointing the way it set out, and grows; one or three leave it pointing against itself, and it shrinks.

For the spiral, the lab’s check gives this working:

R1 (spiral) has 2 − effects (afternoon caffeine → hours slept, hours slept → sleep debt): an even number, so it is reinforcing, as declared.

At planetary scale, less Arctic sea ice reflects less sunlight, so the ocean warms, and warmer water melts more ice: again two − effects, so reinforcing.

Causal-loop diagram: R1 runaway melt Variables: Arctic sea ice; sunlight reflected; ocean warmth. Effects: Arctic sea ice to sunlight reflected (+, same direction); sunlight reflected to ocean warmth (−, opposite direction); ocean warmth to Arctic sea ice (−, opposite direction). Loop R1 runaway melt, reinforcing: Arctic sea ice, sunlight reflected, ocean warmth, and back to Arctic sea ice. + − − Arctic sea ice sunlight reflected ocean warmth R1runaway melt
Check your understandingA loop has four effects. Three are + and one is −. What kind of loop is it?

Not quite. A + effect passes a change on unchanged, so only the − effects count, and one is an odd number.

Yes. One − effect is an odd number. A change that goes around the loop comes back reversed, so the loop opposes it.

Not quite. Each − effect reverses a change wherever it sits, so only the number of reversals counts.

Not quite. You need the variables to judge whether the diagram is true. You don't need them to know its kind: the parity rule works from the polarities alone.

A balancing loop closes a gap: the difference between the value someone wants and the value they have. Here it’s sleep debt, the sleep you need minus the sleep you get.

Draw it as its own variable, fed by the target from outside the loop. That shows the loop’s target, and raises two questions about any balancing loop: who set it, and could it move?

In a feedback control diagram, the words target, gap and measured value (the reading the target is compared with) are written above the names of the variables in those parts, and a person chooses the target: chapter 8’s target and gap.

A delay, two short strokes across an effect, means that the change arrives later than the cause: late enough to change what the loop does. Sleep debt builds for days before anyone acts on it, so the effect from sleep debt to early nights carries a delay, and the spiral, whose changes arrive within a day, gets a head start.

In a balancing loop with a delay, the correction continues after the gap closes; the variable overshoots its target and oscillates instead of settling.

In a stock & flow diagram, a delay on a flow holds material in transit and a delay on a signal holds a reading of the material: chapter 7’s material and signal delays.

A behavior note names, on the diagram, the behavior you expect the structure to produce: oscillation, overshoot, decline, then recovery. It makes the diagram a prediction: if what happens differs, the structure you drew is missing something.

Loops that share a variable are coupled: a change in one loop changes the other. In the full sleep diagram, the spiral and catching up share sleep debt, hours slept and the effect between them.

Causal-loop diagram: R1 spiral; B1 catching up Variables: sleep needed; sleep debt; afternoon caffeine (leverage point); hours slept; early nights. Effects: sleep needed to sleep debt (+, same direction); sleep debt to afternoon caffeine (+, same direction); afternoon caffeine to hours slept (−, opposite direction); hours slept to sleep debt (−, opposite direction); sleep debt to early nights (+, same direction, with a delay); early nights to hours slept (+, same direction). Loop R1 spiral, reinforcing: sleep debt, afternoon caffeine, hours slept, and back to sleep debt. Loop B1 catching up, balancing: sleep debt, early nights, hours slept, and back to sleep debt. Behavior note: Sleep declines, then recovers: R1 acts within a day, B1 only once the debt is felt.. + + − − + + sleep needed sleep debt ????afternoon caffeine hours slept early nights R1spiral B1catching up Sleep declines, thenrecovers: R1 acts within aday, B1 only once the debtis felt.

Which loop dominates depends on which is stronger at the time: early in the week, the spiral; once the debt is felt, catching up.

A leverage point is a variable proposed as the place to intervene, drawn as a box with a question mark on each side. In the sleep diagram it’s afternoon caffeine: cutting it weakens the spiral and leaves the slow balancing loop less to correct.

It’s a hypothesis, not a proven fix: someone else might propose early nights, arguing that noticing the debt sooner would help more. Either proposal can be tested against the diagram.

A causal loop diagram shows structure only, not size: when amounts decide the question you need numbers, which chapter 6’s stocks begin to supply.

Nor does it show sequence: for the order in which things happen, use a numbered list. A loop diagram of a sequence is the bad diagram’s mistake.

Nor everything: the sleep diagram leaves out stress, exercise and the deadline, keeping only the loops that explain the behavior in question.

When nothing feeds back, a sentence does the job.

What’s wrong with this diagram of keeping a household pantry stocked?

Causal-loop diagram: B1 restocking Variables: stock the shelves; order groceries; receive the delivery. Effects: stock the shelves to order groceries (−, opposite direction); order groceries to receive the delivery (+, same direction, with a delay); receive the delivery to stock the shelves (+, same direction). Loop B1 restocking, balancing: stock the shelves, order groceries, receive the delivery, and back to stock the shelves. − + + stock the shelves order groceries receive the delivery B1restocking

Its structure is sound: a closed loop, one − effect, labeled B1, a delay on the right effect. But its names, stock the shelves, order groceries and receive the delivery, are actions done in order and fail the more test, so the diagram is a to-do list bent into a circle, and its polarities mean nothing: what would more receive the delivery cause?

In the lab it passes every check, with a notice on each of its three names.

The correction keeps every effect, every polarity, the delay and the loop, and renames the three variables as quantities.

Bad diagram
Causal-loop diagram: B1 restocking Variables: stock the shelves; order groceries; receive the delivery. Effects: stock the shelves to order groceries (−, opposite direction); order groceries to receive the delivery (+, same direction, with a delay); receive the delivery to stock the shelves (+, same direction). Loop B1 restocking, balancing: stock the shelves, order groceries, receive the delivery, and back to stock the shelves. − + + stock the shelves order groceries receive the delivery B1restocking
Corrected diagram
Causal-loop diagram: B1 restocking Variables: food in the pantry; groceries ordered; groceries delivered. Effects: food in the pantry to groceries ordered (−, opposite direction); groceries ordered to groceries delivered (+, same direction, with a delay); groceries delivered to food in the pantry (+, same direction). Loop B1 restocking, balancing: food in the pantry, groceries ordered, groceries delivered, and back to food in the pantry. − + + food in the pantry groceries ordered groceries delivered B1restocking

Changed: 3 labels. Effects unchanged.

Now each effect is a checkable claim: more food in the pantry, fewer groceries ordered (−); more ordered, more delivered a few days later (+, delayed); more delivered, more food in the pantry (+). One − effect, so the loop is balancing: it holds the pantry near full. With the delay: reorder before the first delivery arrives and the pantry overfills.

Notation moveWhenWhat it showsExample
Name a variable as a quantityWhat rises or fallsafternoon caffeine, not drink coffee
Causal-loop diagram Variables: afternoon caffeine. afternoon caffeine
Mark an effect + or −Which way each change runsafternoon caffeine → hours slept is −
Causal-loop diagram Variables: afternoon caffeine; hours slept. Effects: afternoon caffeine to hours slept (−, opposite direction). − afternoon caffeine hours slept
Close a loop and label itA chain returns to its startHow a change comes back to itselfR1 spiral
Causal-loop diagram: R1 spiral Variables: sleep debt; afternoon caffeine; hours slept. Effects: sleep debt to afternoon caffeine (+, same direction); afternoon caffeine to hours slept (−, opposite direction); hours slept to sleep debt (−, opposite direction). Loop R1 spiral, reinforcing: sleep debt, afternoon caffeine, hours slept, and back to sleep debt. + − − sleep debt afternoon caffeine hours slept R1spiral
Count the − effectsBefore labeling a loopThe loop’s kindtwo − effects, so reinforcing
Causal-loop diagram Variables: sleep debt; afternoon caffeine; hours slept. Effects: sleep debt to afternoon caffeine (+, same direction); afternoon caffeine to hours slept (−, opposite direction); hours slept to sleep debt (−, opposite direction). + − − sleep debt afternoon caffeine hours slept
Draw the gap as a variableA balancing loop has a targetWhat the loop closes, and its targetsleep debt, fed by sleep needed
Causal-loop diagram Variables: sleep needed; sleep debt. Effects: sleep needed to sleep debt (+, same direction). + sleep needed sleep debt
Mark a delayThe change arrives late enough to alter the loop’s behaviorWhere a correction can overshootsleep debt → early nights
Causal-loop diagram Variables: sleep debt; early nights. Effects: sleep debt to early nights (+, same direction, with a delay). + sleep debt early nights
Add a behavior noteYou expect a pattern over timeA prediction to checkdecline, then recovery
Causal-loop diagram Variables: hours slept. Behavior note: decline, then recovery. hours slept decline, then recovery
Propose a leverage pointYou choose where to interveneA hypothesis to testafternoon caffeine
Causal-loop diagram Variables: afternoon caffeine (leverage point). ????afternoon caffeine
Check your understandingYou're warming a pan of soup on an electric stove that takes several minutes to respond. Whenever the soup seems too cool you turn the heat up, and whenever it seems too hot you turn it down. What does the structure predict?

Not quite. That's what a balancing loop does when nothing in it is delayed. Here the stove goes on heating for minutes after you turn it down, so the soup can't stop where you meant it to.

Yes. It's a balancing loop with a delay on the effect from the heat setting to the soup's warmth. Each correction goes on acting after the gap has closed, so the soup overshoots, and the next correction overshoots the other way. A behavior note would read oscillation.

Not quite. That would take a reinforcing loop. Turning the heat down when the soup is too hot puts one − effect in the loop, an odd number, so the loop is balancing.

Not quite. Without numbers you can't say how large the swings are or how long they last. The structure alone still predicts that they'll happen.

Overdoses, calls to 911 and burnout, redrawn

Section titled “Overdoses, calls to 911 and burnout, redrawn”
Causal-loop diagram: R1 risk renewed; B1 calls withheld Variables: people with opioid use disorder; overdoses; calls to 911; lives saved; overdose deaths; trauma and burnout of first responders; mistreatment of patients by first responders. Effects: people with opioid use disorder to overdoses (+, same direction); overdoses to calls to 911 (+, same direction); calls to 911 to lives saved (+, same direction); lives saved to overdose deaths (−, opposite direction); overdose deaths to people with opioid use disorder (−, opposite direction); overdoses to trauma and burnout of first responders (+, same direction); trauma and burnout of first responders to mistreatment of patients by first responders (+, same direction); mistreatment of patients by first responders to calls to 911 (−, opposite direction). Loop R1 risk renewed, reinforcing: people with opioid use disorder, overdoses, calls to 911, lives saved, overdose deaths, and back to people with opioid use disorder. Loop B1 calls withheld, balancing: overdoses, trauma and burnout of first responders, mistreatment of patients by first responders, calls to 911, lives saved, overdose deaths, people with opioid use disorder, and back to overdoses. + + + − − + + − people with opioid use disorder overdoses calls to 911 lives saved overdose deaths trauma and burnout of first responders mistreatment of patients by first responders R1risk renewed B1calls withheld

Redrawn from Rachel L. Thompson, Nasim S. Sabounchi, Syed Shayan Ali, Robert Heimer, Gail D’Onofrio and Rebekah Heckmann, “Using qualitative system dynamics modeling to understand overdose bystander behavior in the context of Connecticut’s Good Samaritan Laws and identify effective policy options”, Harm Reduction Journal 21, 124 (2024), Fig. 2, panels a and b. CC BY 4.0.

Panels a and b drawn as one diagram; the heavier red lines that pick out each panel’s loop drawn like every other line; Overdose, Calling 911 and Saving a Life renamed as amounts; OUD spelled out; the two names about first responders shortened; each loop named; panel c, the whole model, left out.

Question 1 of 3R1 runs from people with opioid use disorder through overdoses, calls to 911, lives saved and overdose deaths, and back. By the parity rule, what kind of loop is it?

Yes. Lives saved → overdose deaths and overdose deaths → people with opioid use disorder are the two, and their reversals cancel. More calls to 911 save more lives, so fewer people die and more remain at risk of another overdose: the change comes back the way it set out.

Not quite. Only an odd number of − effects makes a loop balancing. Each − effect reverses a change, and two reversals cancel.

Not quite. A loop’s kind comes from its effects’ polarities, not from anyone’s purpose. R1 has two − effects, so it is reinforcing, whatever each caller intends.

Question 2 of 3B1 leaves overdoses through trauma and burnout of first responders, then mistreatment of patients, joins R1 at calls to 911 and follows it back. What kind of loop is it?

Not quite. Loops that share effects are coupled, but each has its own kind. B1’s own path adds a − effect, mistreatment → calls to 911, which makes three.

Yes. Mistreatment → calls to 911 is the third, beside R1’s two. More overdoses bring more burnout, more mistreatment and fewer calls, so fewer lives are saved, more people die, and fewer remain to overdose: the change comes back against itself.

Not quite. Those two effects are +, and a + effect changes no loop’s kind. Its kind comes from the − effects counted around the whole loop: three, so balancing.

Question 3 of 3Burnout among first responders keeps growing, so mistreatment keeps more people from calling 911. Which loop comes to dominate, and what happens to overdose deaths?

Not quite. B1 does come to dominate, but it runs through lives saved → overdose deaths, a − effect: fewer lives saved, more deaths. Balancing names what the loop does to a change, not whether the result is good.

Not quite. Both loops run through overdoses. Growing burnout strengthens only the path through mistreatment, which B1 alone runs through, so B1 gains on R1.

Yes. B1 strengthens through its own path, so it brings overdoses down, but by fewer calls, fewer lives saved and more deaths. A balancing loop makes a change settle; nothing in its kind makes the outcome welcome.

Passing the checks means meeting the brief, not being right.

CL 01A riverbank cleanup that grows by word of mouth

One reinforcing loop

  • Reasoning1 of 5
  • Polish1 of 5

Neighbors meet one Saturday a month to clear litter from a city riverbank. Each cleared stretch shows from the footpath, and people who walk there talk about it. Some of them come to the next cleanup, and some of those keep coming. Show the smallest complete feedback explanation. Leave out the weather and the litter the river carries in.

The brief

  1. Use exactly four variables. checked by the lab
  2. Close one loop. checked by the lab
  3. Mark every effect + or −. checked by the lab
  4. Label the loop R1. checked by the lab
  5. Give the loop a short name. you check this

Your palette

  • Causal-loop diagram Variables: customers. customers
    variable
  • Causal-loop diagram Variables: price; sales. Effects: price to sales (polarity not yet set). price sales
    effect
  • Causal-loop diagram Variables: price; sales; revenue. Effects: price to sales (−, opposite direction); sales to revenue (+, same direction). − + price sales revenue
    polarity
  • Causal-loop diagram: R1 practice habit Variables: practice; skill; enjoyment. Effects: practice to skill (+, same direction); skill to enjoyment (+, same direction); enjoyment to practice (+, same direction). Loop R1 practice habit, reinforcing: practice, skill, enjoyment, and back to practice. + + + practice skill enjoyment R1practice habit
    loop
  • Causal-loop diagram: R1 compounding Variables: savings; interest. Effects: savings to interest (+, same direction); interest to savings (+, same direction). Loop R1 compounding, reinforcing: savings, interest, and back to savings. + + savings interest R1compounding
    reinforcing loop

To draw in the lab, use a tablet or a larger screen. Everything else reads normally here.

Press an empty spot to add a variable and type its name. Drag a variable to move it. Select a variable, an effect or a loop label to change it. Double-click or double-tap a variable or a loop's label or name to edit its words in place, or select it and use Rename or the fields under the canvas.

Causal-loop diagram Variables: .

Nothing selected. Select a variable, an effect or a loop label on the canvas, and what you can change shows here.

The tools

Variables V
add a variable (press an empty spot), move one (drag it), rename one (double-click it, or Rename under the canvas), or select anything.
Effects E
draw an effect by dragging from one variable to another.
Loop L
declare a loop by selecting its effects in order, then label and name it.

Keys

  • R reverse the selected effect
  • +− the selected effect's polarity
  • Delete delete what's selected
  • Ctrl+Z undo
  • Ctrl+Shift+Z redo
  • Esc clear the selection
  • Enter finish the words you're writing
  • Esc cancel them

Keys act on the lab you last used, or on the open lab view, and never while you type.

0 of 7 checks passed; 7 pending.

  1. Use exactly four variables. (Not started)No variables yet. Brief: exactly 4.
  2. Close one loop. (Not started)No loop declared yet. Brief: exactly 1 loop.
  3. Mark every effect + or −. (Not started)No effects yet.
  4. Label the loop R1. (Not started)No loop declared yet. Brief: exactly 1 reinforcing loop.

Always checked

  • Each loop's kind matches its − effects (Not started)No loop declared yet.
  • Loop labels are unique and match their kind (Not started)No loop declared yet.
  • No variable's name breaks the more test's three rules (Not started)No variable drawn yet.
Written feedback
Export

One defensible answer

It opens here once you've drawn at least one variable in the lab above. Your attempt saves as you draw.

One defensible answer

CL 02Hunger and eating

One balancing loop

  • Reasoning1 of 5
  • Polish2 of 5

When hunger rises, a person eats. Food eaten fills the stomach, and as fullness grows, hunger falls. Once hunger is low, eating stops until it returns hours later. Show this correction as feedback, not as a sequence of meals. One effect reverses direction, and the loop's kind follows from it.

The brief

  1. Use three or four variables. checked by the lab
  2. Find the single − effect. checked by the lab
  3. Label the loop B1. checked by the lab
  4. Name its target-seeking behavior. you check this

Your palette

  • Causal-loop diagram Variables: customers. customers
    variable
  • Causal-loop diagram Variables: price; sales. Effects: price to sales (polarity not yet set). price sales
    effect
  • Causal-loop diagram Variables: price; sales; revenue. Effects: price to sales (−, opposite direction); sales to revenue (+, same direction). − + price sales revenue
    polarity
  • Causal-loop diagram: R1 practice habit Variables: practice; skill; enjoyment. Effects: practice to skill (+, same direction); skill to enjoyment (+, same direction); enjoyment to practice (+, same direction). Loop R1 practice habit, reinforcing: practice, skill, enjoyment, and back to practice. + + + practice skill enjoyment R1practice habit
    loop
  • Causal-loop diagram: R1 compounding Variables: savings; interest. Effects: savings to interest (+, same direction); interest to savings (+, same direction). Loop R1 compounding, reinforcing: savings, interest, and back to savings. + + savings interest R1compounding
    reinforcing loop
  • Causal-loop diagram: B1 warming up Variables: room heat; heating. Effects: room heat to heating (−, opposite direction); heating to room heat (+, same direction). Loop B1 warming up, balancing: room heat, heating, and back to room heat. − + room heat heating B1warming up
    balancing loop

To draw in the lab, use a tablet or a larger screen. Everything else reads normally here.

Press an empty spot to add a variable and type its name. Drag a variable to move it. Select a variable, an effect or a loop label to change it. Double-click or double-tap a variable or a loop's label or name to edit its words in place, or select it and use Rename or the fields under the canvas.

Causal-loop diagram Variables: .

Nothing selected. Select a variable, an effect or a loop label on the canvas, and what you can change shows here.

The tools

Variables V
add a variable (press an empty spot), move one (drag it), rename one (double-click it, or Rename under the canvas), or select anything.
Effects E
draw an effect by dragging from one variable to another.
Loop L
declare a loop by selecting its effects in order, then label and name it.

Keys

  • R reverse the selected effect
  • +− the selected effect's polarity
  • Delete delete what's selected
  • Ctrl+Z undo
  • Ctrl+Shift+Z redo
  • Esc clear the selection
  • Enter finish the words you're writing
  • Esc cancel them

Keys act on the lab you last used, or on the open lab view, and never while you type.

0 of 6 checks passed; 6 pending.

  1. Use three or four variables. (Not started)No variables yet. Brief: 3 or 4.
  2. Find the single − effect. (Not started)No effect has a polarity yet. Brief: exactly 1 − effect.
  3. Label the loop B1. (Not started)No loop declared yet. Brief: exactly 1 balancing loop.

Always checked

  • Each loop's kind matches its − effects (Not started)No loop declared yet.
  • Loop labels are unique and match their kind (Not started)No loop declared yet.
  • No variable's name breaks the more test's three rules (Not started)No variable drawn yet.
Written feedback
Export

One defensible answer

It opens here once you've drawn at least one variable in the lab above. Your attempt saves as you draw.

One defensible answer

CL 03A housing shortage and the building boom that overshoots it

Balancing loop with delay

  • Reasoning2 of 5
  • Polish2 of 5

A growing city has fewer homes than its households need, and rents climb. High rents lead developers to start new buildings, which take two to three years to finish. Starts continue while rents stay high, so the homes arrive together and overshoot the need. Draw the intended correction, with the delay on an effect, not in a new variable.

The brief

  1. Show the homes needed, the shortage, building starts, and the housing stock. checked by the lab
  2. Put a delay on building starts → housing stock. checked by the lab
  3. Use one behavior note. checked by the lab
  4. Name the likely behavior in it: oscillation. you check this

Your palette

  • Causal-loop diagram Variables: customers. customers
    variable
  • Causal-loop diagram Variables: price; sales. Effects: price to sales (polarity not yet set). price sales
    effect
  • Causal-loop diagram Variables: price; sales; revenue. Effects: price to sales (−, opposite direction); sales to revenue (+, same direction). − + price sales revenue
    polarity
  • Causal-loop diagram Variables: orders; deliveries. Effects: orders to deliveries (+, same direction, with a delay). + orders deliveries
    delay
  • Causal-loop diagram: R1 practice habit Variables: practice; skill; enjoyment. Effects: practice to skill (+, same direction); skill to enjoyment (+, same direction); enjoyment to practice (+, same direction). Loop R1 practice habit, reinforcing: practice, skill, enjoyment, and back to practice. + + + practice skill enjoyment R1practice habit
    loop
  • Causal-loop diagram: B1 warming up Variables: room heat; heating. Effects: room heat to heating (−, opposite direction); heating to room heat (+, same direction). Loop B1 warming up, balancing: room heat, heating, and back to room heat. − + room heat heating B1warming up
    balancing loop
  • Causal-loop diagram Variables: staffing gap; hiring. Effects: staffing gap to hiring (+, same direction). + staffing gap hiring
    gapdrawn as an ordinary variable
  • Causal-loop diagram Variables: . Behavior note: oscillation. oscillation
    behavior note

To draw in the lab, use a tablet or a larger screen. Everything else reads normally here.

Press an empty spot to add a variable and type its name. Drag a variable to move it. Select a variable, an effect or a loop label to change it. Drag a behavior note to move it. Double-click or double-tap a variable, a loop's label or name or a behavior note to edit its words in place, or select it and use Rename or the fields under the canvas.

Causal-loop diagram Variables: .

Nothing selected. Select a variable, an effect, a loop label or a behavior note on the canvas, and what you can change shows here.

The tools

Variables V
add a variable (press an empty spot), move one (drag it), rename one (double-click it, or Rename under the canvas), or select anything.
Effects E
draw an effect by dragging from one variable to another.
Loop L
declare a loop by selecting its effects in order, then label and name it.
Note N
place a behavior note (press where it goes).

Keys

  • R reverse the selected effect
  • +− the selected effect's polarity
  • Delete delete what's selected
  • Ctrl+Z undo
  • Ctrl+Shift+Z redo
  • Esc clear the selection
  • Enter finish the words you're writing
  • Esc cancel them

Keys act on the lab you last used, or on the open lab view, and never while you type.

0 of 6 checks passed; 6 pending.

  1. Show the homes needed, the shortage, building starts, and the housing stock. (Not started)No variables yet. Brief: at least 4.
  2. Put a delay on building starts → housing stock. (Not started)No loop declared yet. Brief: a delay on an effect inside a balancing loop.
  3. Use one behavior note. (Not started)No loop declared yet. Once one is, add a behavior note naming what it predicts.

Always checked

  • Each loop's kind matches its − effects (Not started)No loop declared yet.
  • Loop labels are unique and match their kind (Not started)No loop declared yet.
  • No variable's name breaks the more test's three rules (Not started)No variable drawn yet.
Written feedback
Export

One defensible answer

It opens here once you've drawn at least one variable in the lab above. Your attempt saves as you draw.

One defensible answer

CL 04A friendship group that grows until gatherings feel crowded

Coupled R and B loops

  • Reasoning2 of 5
  • Polish3 of 5

A group of friends meets every Friday evening, and members invite friends of their own; some of those stay. As the group grows, the gatherings get crowded, conversations split up, and members enjoy them less and invite fewer people. Build one reinforcing loop of growth and one balancing loop of crowding around the group's size, which they share.

The brief

  1. Create one R loop. checked by the lab
  2. Create one B loop. checked by the lab
  3. Share at least one variable between them. checked by the lab
  4. Place the variables so that no two effects cross. you check this

Your palette

  • Causal-loop diagram Variables: customers. customers
    variable
  • Causal-loop diagram Variables: price; sales. Effects: price to sales (polarity not yet set). price sales
    effect
  • Causal-loop diagram Variables: price; sales; revenue. Effects: price to sales (−, opposite direction); sales to revenue (+, same direction). − + price sales revenue
    polarity
  • Causal-loop diagram: R1 practice habit Variables: practice; skill; enjoyment. Effects: practice to skill (+, same direction); skill to enjoyment (+, same direction); enjoyment to practice (+, same direction). Loop R1 practice habit, reinforcing: practice, skill, enjoyment, and back to practice. + + + practice skill enjoyment R1practice habit
    loop
  • Causal-loop diagram: R1 compounding Variables: savings; interest. Effects: savings to interest (+, same direction); interest to savings (+, same direction). Loop R1 compounding, reinforcing: savings, interest, and back to savings. + + savings interest R1compounding
    reinforcing loop
  • Causal-loop diagram: B1 warming up Variables: room heat; heating. Effects: room heat to heating (−, opposite direction); heating to room heat (+, same direction). Loop B1 warming up, balancing: room heat, heating, and back to room heat. − + room heat heating B1warming up
    balancing loop

To draw in the lab, use a tablet or a larger screen. Everything else reads normally here.

Press an empty spot to add a variable and type its name. Drag a variable to move it. Select a variable, an effect or a loop label to change it. Double-click or double-tap a variable or a loop's label or name to edit its words in place, or select it and use Rename or the fields under the canvas.

Causal-loop diagram Variables: .

Nothing selected. Select a variable, an effect or a loop label on the canvas, and what you can change shows here.

The tools

Variables V
add a variable (press an empty spot), move one (drag it), rename one (double-click it, or Rename under the canvas), or select anything.
Effects E
draw an effect by dragging from one variable to another.
Loop L
declare a loop by selecting its effects in order, then label and name it.

Keys

  • R reverse the selected effect
  • +− the selected effect's polarity
  • Delete delete what's selected
  • Ctrl+Z undo
  • Ctrl+Shift+Z redo
  • Esc clear the selection
  • Enter finish the words you're writing
  • Esc cancel them

Keys act on the lab you last used, or on the open lab view, and never while you type.

0 of 6 checks passed; 6 pending.

  1. Create one R loop. (Not started)No loop declared yet. Brief: exactly 1 reinforcing loop.
  2. Create one B loop. (Not started)No loop declared yet. Brief: exactly 1 balancing loop.
  3. Share at least one variable between them. (Not started)No loop declared yet. Brief: two loops that share a variable.

Always checked

  • Each loop's kind matches its − effects (Not started)No loop declared yet.
  • Loop labels are unique and match their kind (Not started)No loop declared yet.
  • No variable's name breaks the more test's three rules (Not started)No variable drawn yet.
Written feedback
Export

One defensible answer

It opens here once you've drawn at least one variable in the lab above. Your attempt saves as you draw.

One defensible answer

CL 05Borrowing to get to the end of the month

Short-term gain, long-term erosion

  • Reasoning3 of 5
  • Polish3 of 5

A household's bills outrun its income, and it covers the month's gap with a credit card. The cash closes the gap at once. Weeks later, repayments with interest start taking money from every month, and the gap reopens wider.

The brief

  1. Separate fast relief from slow consequence. you check this
  2. Mark at least one delayed effect. checked by the lab
  3. Make the variable you would monitor first a leverage point. checked by the lab

Your palette

  • Causal-loop diagram Variables: customers. customers
    variable
  • Causal-loop diagram Variables: price; sales. Effects: price to sales (polarity not yet set). price sales
    effect
  • Causal-loop diagram Variables: price; sales; revenue. Effects: price to sales (−, opposite direction); sales to revenue (+, same direction). − + price sales revenue
    polarity
  • Causal-loop diagram Variables: orders; deliveries. Effects: orders to deliveries (+, same direction, with a delay). + orders deliveries
    delay
  • Causal-loop diagram: R1 practice habit Variables: practice; skill; enjoyment. Effects: practice to skill (+, same direction); skill to enjoyment (+, same direction); enjoyment to practice (+, same direction). Loop R1 practice habit, reinforcing: practice, skill, enjoyment, and back to practice. + + + practice skill enjoyment R1practice habit
    loop
  • Causal-loop diagram: R1 compounding Variables: savings; interest. Effects: savings to interest (+, same direction); interest to savings (+, same direction). Loop R1 compounding, reinforcing: savings, interest, and back to savings. + + savings interest R1compounding
    reinforcing loop
  • Causal-loop diagram: B1 warming up Variables: room heat; heating. Effects: room heat to heating (−, opposite direction); heating to room heat (+, same direction). Loop B1 warming up, balancing: room heat, heating, and back to room heat. − + room heat heating B1warming up
    balancing loop
  • Causal-loop diagram Variables: reorder point (leverage point). ????reorder point
    leverage point

To draw in the lab, use a tablet or a larger screen. Everything else reads normally here.

Press an empty spot to add a variable and type its name. Drag a variable to move it. Select a variable, an effect or a loop label to change it. Double-click or double-tap a variable or a loop's label or name to edit its words in place, or select it and use Rename or the fields under the canvas.

Causal-loop diagram Variables: .

Nothing selected. Select a variable, an effect or a loop label on the canvas, and what you can change shows here.

The tools

Variables V
add a variable (press an empty spot), move one (drag it), rename one (double-click it, or Rename under the canvas), or select anything.
Effects E
draw an effect by dragging from one variable to another.
Loop L
declare a loop by selecting its effects in order, then label and name it.

Keys

  • R reverse the selected effect
  • +− the selected effect's polarity
  • Delete delete what's selected
  • Ctrl+Z undo
  • Ctrl+Shift+Z redo
  • Esc clear the selection
  • Enter finish the words you're writing
  • Esc cancel them

Keys act on the lab you last used, or on the open lab view, and never while you type.

0 of 5 checks passed; 5 pending.

  1. Mark at least one delayed effect. (Not started)No effects yet. Brief: at least 1 delay.
  2. Make the variable you would monitor first a leverage point. (Not started)No variables yet. Brief: exactly 1 leverage point.

Always checked

  • Each loop's kind matches its − effects (Not started)No loop declared yet.
  • Loop labels are unique and match their kind (Not started)No loop declared yet.
  • No variable's name breaks the more test's three rules (Not started)No variable drawn yet.
Written feedback
Export

One defensible answer

It opens here once you've drawn at least one variable in the lab above. Your attempt saves as you draw.

One defensible answer

CS 04Kelsham Primary School: funding that follows its pupils

Coupled loops, a delay and a leverage point

  • Reasoning3 of 5
  • Polish3 of 5

Kelsham Primary School is paid £4,800 a year for each pupil, set from the count each October and paid through the school year after it. In October 2020 it had 126 pupils in five classes. By October 2023 it had 108, the governors could pay for four teachers, and Years 3 and 4 became one class. Ruth Okafor, the head teacher, hears from some parents that mixed-age classes are why they chose Brayford Primary School, six miles away, where classes hold up to 30. Others stay because Kelsham's classes are smaller: 88 pupils in four classes in October 2026. Tom Hale, who chairs the governors, asks where the school could act. Draw both stories as loops through the pupils on roll, and mark the variable you would change first as a leverage point.

The brief

  1. Close one reinforcing loop through the school's funding and its teachers. checked by the lab
  2. Close one balancing loop through class size. checked by the lab
  3. Let the two loops share at least one variable. checked by the lab
  4. Mark the delay the October count makes. checked by the lab
  5. Make the variable you would change first a leverage point. checked by the lab
  6. Name each loop by what it does. you check this

Your palette

  • Causal-loop diagram Variables: customers. customers
    variable
  • Causal-loop diagram Variables: price; sales. Effects: price to sales (polarity not yet set). price sales
    effect
  • Causal-loop diagram Variables: price; sales; revenue. Effects: price to sales (−, opposite direction); sales to revenue (+, same direction). − + price sales revenue
    polarity
  • Causal-loop diagram Variables: orders; deliveries. Effects: orders to deliveries (+, same direction, with a delay). + orders deliveries
    delay
  • Causal-loop diagram: R1 practice habit Variables: practice; skill; enjoyment. Effects: practice to skill (+, same direction); skill to enjoyment (+, same direction); enjoyment to practice (+, same direction). Loop R1 practice habit, reinforcing: practice, skill, enjoyment, and back to practice. + + + practice skill enjoyment R1practice habit
    loop
  • Causal-loop diagram: R1 compounding Variables: savings; interest. Effects: savings to interest (+, same direction); interest to savings (+, same direction). Loop R1 compounding, reinforcing: savings, interest, and back to savings. + + savings interest R1compounding
    reinforcing loop
  • Causal-loop diagram: B1 warming up Variables: room heat; heating. Effects: room heat to heating (−, opposite direction); heating to room heat (+, same direction). Loop B1 warming up, balancing: room heat, heating, and back to room heat. − + room heat heating B1warming up
    balancing loop
  • Causal-loop diagram Variables: reorder point (leverage point). ????reorder point
    leverage point

To draw in the lab, use a tablet or a larger screen. Everything else reads normally here.

Press an empty spot to add a variable and type its name. Drag a variable to move it. Select a variable, an effect or a loop label to change it. Double-click or double-tap a variable or a loop's label or name to edit its words in place, or select it and use Rename or the fields under the canvas.

Causal-loop diagram Variables: .

Nothing selected. Select a variable, an effect or a loop label on the canvas, and what you can change shows here.

The tools

Variables V
add a variable (press an empty spot), move one (drag it), rename one (double-click it, or Rename under the canvas), or select anything.
Effects E
draw an effect by dragging from one variable to another.
Loop L
declare a loop by selecting its effects in order, then label and name it.

Keys

  • R reverse the selected effect
  • +− the selected effect's polarity
  • Delete delete what's selected
  • Ctrl+Z undo
  • Ctrl+Shift+Z redo
  • Esc clear the selection
  • Enter finish the words you're writing
  • Esc cancel them

Keys act on the lab you last used, or on the open lab view, and never while you type.

0 of 8 checks passed; 8 pending.

  1. Close one reinforcing loop through the school's funding and its teachers. (Not started)No loop declared yet. Brief: exactly 1 reinforcing loop.
  2. Close one balancing loop through class size. (Not started)No loop declared yet. Brief: exactly 1 balancing loop.
  3. Let the two loops share at least one variable. (Not started)No loop declared yet. Brief: two loops that share a variable.
  4. Mark the delay the October count makes. (Not started)No loop declared yet. Brief: a delay on an effect inside a reinforcing loop.
  5. Make the variable you would change first a leverage point. (Not started)No variables yet. Brief: exactly 1 leverage point.

Always checked

  • Each loop's kind matches its − effects (Not started)No loop declared yet.
  • Loop labels are unique and match their kind (Not started)No loop declared yet.
  • No variable's name breaks the more test's three rules (Not started)No variable drawn yet.
Written feedback
Export

One defensible answer

It opens here once you've drawn at least one variable in the lab above. Your attempt saves as you draw.

One defensible answer
  • Donella H. Meadows, Thinking in Systems: A Primer (Chelsea Green, 2008), chapter 1, on reinforcing and balancing loops, and chapter 2, on delays.
  • Donella H. Meadows, Leverage Points: Places to Intervene in a System (Sustainability Institute, 1999), on leverage points.
  • John D. Sterman, Business Dynamics: Systems Thinking and Modeling for a Complex World (Irwin/McGraw-Hill, 2000), chapter 5, on causal loop diagrams: polarity, a loop’s kind, delays, and naming variables as nouns rather than actions.
  • John D. Sterman, “System Dynamics Modeling: Tools for Learning in a Complex World”, California Management Review 43, no. 4 (2001), a short introduction to the same ideas.
  • George P. Richardson, “Problems with Causal-Loop Diagrams”, System Dynamics Review 2, no. 2 (1986), on what polarity does and doesn’t mean.
  • National Snow and Ice Data Center, Why sea ice matters, on why melting ice speeds further melting.