Skip to content
Thinking in Diagrams

What Accumulates

Stock & flow diagramsPart III · Accumulation · Chapter 6 of 12 · the first of two chapters on stock & flow diagrams

What would still be there if everything stopped? A stock & flow diagram shows what accumulates, which flows fill and drain it, and which readings set how fast each flow runs.

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

  • Something builds up or runs down: savings, a backlog, a population.
  • A cut in what comes in hasn’t stopped the total rising.
  • Something leaves one place and has to turn up in another.
  • Amounts have units, and the units have to agree.

With the plug in and the tap on, the water in a bathtub rises by the same amount every minute.

With the plug out, it rises more slowly as it deepens, since deeper water drains faster, until it drains as fast as it fills and holds one depth.

Turn off the tap and put the plug in: filling and draining stop, and the water is still there.

Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: tap setting; drain opening. Flows: filling, from a cloud to water in tub (liters per minute); draining, from water in tub to a cloud (liters per minute). Stock equation: change in water in tub = filling − draining. Signals: tap setting to filling, +; drain opening to draining, +; water in tub to draining, +. filling draining + + + literswater in tub tap setting drain opening change in water in tub = filling − draining

A stock is a quantity that accumulates: what would still be there if every flow stopped. The water in the tub can be measured at an instant; filling and draining exist only over time. A stock changes only through its flows.

It is drawn as a box around its name, its units beneath in smaller type. The world’s population is drawn the same way, filled by births and drained by deaths.

Stock & flow diagram: world population Stocks: world population (people). Auxiliaries: births per person; deaths per person. Flows: births, from a cloud to world population (people per year); deaths, from world population to a cloud (people per year). Stock equation: change in world population = births − deaths. Signals: world population to births, +; births per person to births, +; world population to deaths, +; deaths per person to deaths, +. births deaths + + + + peopleworld population births per person deaths per person change in world population = births − deaths
Check your understandingA phone charges overnight and runs down through the day. Which of these is a stock?

Yes. Unplug the phone and switch it off, and the charge is still there to be measured, as a percentage of a full battery. Charging fills it and use drains it.

Not quite. Charging is a flow: it fills the battery, counted in percent per hour, and it stops when the phone is unplugged. What it leaves behind, the charge, is the stock.

Not quite. Brightness is an auxiliary: a setting that changes how fast use drains the battery. Nothing builds up in it, so it is drawn as a name with a signal to the valve of the battery's outflow.

A flow moves material into or out of a stock. It is drawn as a double line, its material path, with an arrowhead where the material goes and, at its middle, a valve: a small circle crossed by an X, the flow’s name beside it.

A flow into a stock is one of its inflows, a flow out of it one of its outflows: filling is the tub’s inflow, draining its outflow. A flow’s value at an instant is its rate, such as 12 liters a minute.

A flow is named for what moves, filling or births, not for what sets it moving, such as tap.

A cloud, a small unnamed scalloped outline, is where a flow’s material comes from or goes to outside the model: the flow’s source where it starts, its sink where it ends. The bathtub’s model leaves out the water main and the sewer, so filling starts at a cloud and draining ends at one.

Each cloud ends one flow; whatever you name or count is a stock instead.

Every stock has units: liters for the water in the tub, people for the world’s population.

A diagram has one time unit, the unit every rate is per: the minute for the bathtub, the year for the population. A flow’s units are its stock’s units per time unit, so filling and draining run in liters per minute.

A transfer is a flow from one stock straight into another: an outflow of the first and an inflow of the second, such as pouring from water in bucket into water in tub.

Material that leaves a stock arrives somewhere, in another stock or at a cloud: conservation. So both stocks of a transfer count it in the same units, liters for the bucket and the tub.

An auxiliary is a variable that neither accumulates nor flows, such as a setting, a capacity or a ratio, drawn as its name alone: tap setting, drain opening, or the population’s births per person, the year’s births divided by the people alive. In Stella, a modeling program, an auxiliary is a converter.

A signal is a single thin line with an arrowhead, carrying a reading of one quantity to an auxiliary or to a flow’s valve; in the systems literature, an information link.

Tap setting → filling carries the tap’s setting, not water, and has a polarity as chapter 4’s effects do: +, since the further the tap is open, the faster the tub fills.

+ signals run from water in tub to draining and from world population to births and deaths. A signal from a stock to one of its own flows closes a loop through that stock (chapter 7).

A stock equation, one line beneath a stock’s box, adds its inflows and subtracts its outflows:

change in water in tub = filling − draining

Its right-hand side is the stock’s net flow. With filling at 12 liters a minute and draining at 8, the net flow is 4 liters a minute. In 2023 about 132 million people were born worldwide and 62 million died: a net flow of about 70 million people a year.

Auxiliaries and signals never appear in it; they change a stock only through a flow’s rate. A stock with no flows reads change in … = 0.

A delay on a flow, two short strokes across its double line, means its material arrives well after it leaves, as a change arrives late along a delayed effect. Grain shipped from a port reaches a mill weeks later: the flow from grain at the port to grain at the mill carries a delay, and the grain at sea is in neither stock.

A behavior-over-time graph shows one stock, flow or auxiliary over time: the quantity’s name (and a stock’s units) on the vertical axis, time on the horizontal, and one line of a named shape, rising or falling. The shapes are linear, exponential, approach (flattening toward a value), oscillation (swinging around a value), S-shaped and overshoot and collapse. A graph is a prediction from the structure, made before anything is measured.

A stock’s slope at any instant is its net flow: it rises while inflows exceed outflows, falls while outflows exceed inflows, and stays flat when they are equal.

With the plug in, the net flow is filling’s steady rate, so the water rises in a straight line.

Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: tap setting. Flows: filling, from a cloud to water in tub (liters per minute). Stock equation: change in water in tub = filling. Signals: tap setting to filling, +. Behavior-over-time graph of water in tub: rises steadily. filling + literswater in tub tap setting change in water in tub = filling water in tub (liters)time

With the plug out, draining speeds up as the water deepens, the net flow shrinks, and the water approaches the depth at which draining equals filling.

Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: tap setting; drain opening. Flows: filling, from a cloud to water in tub (liters per minute); draining, from water in tub to a cloud (liters per minute). Stock equation: change in water in tub = filling − draining. Signals: tap setting to filling, +; drain opening to draining, +; water in tub to draining, +. Behavior-over-time graph of water in tub: rises toward a value and flattens. filling draining + + + literswater in tub tap setting drain opening change in water in tub = filling − draining water in tub (liters)time

Asked to draw the water in a bathtub from graphs of its inflow and outflow, many graduate students at MIT’s business school drew a path its flows couldn’t produce (Booth Sweeney and Sterman, 2000); chapter 7’s Common misreading gives a later study’s numbers.

When nothing accumulates, or the question is only which way one quantity moves another, a sentence does: opening the drain wider empties the tub faster. With several such effects running in a circle, a causal loop diagram does. When the question is how much there is now, not how it changes, a list of amounts does.

The diagram holds no numbers: rates and amounts go in a sentence or a table beside it.

What’s wrong with this diagram of a bathtub filling from the tap and emptying down the drain?

Stock & flow diagram: tap; water in tub; drain Stocks: tap (liters per minute); water in tub (liters); drain (liters per minute). Flows: filling, from tap to water in tub (liters per minute per minute); draining, from water in tub to drain (liters per minute). filling draining liters per minutetap literswater in tub liters per minutedrain

The tap, the water in the tub and the drain are three stocks in a row, joined by filling and draining. The tap is counted in liters per minute and the tub in liters, so filling’s units come out as liters per minute per minute. The tap holds no water: its setting fixes how fast filling runs, as the drain’s opening fixes draining. The lab’s check reports:

2 transfers join stocks in different units: filling, from tap (liters per minute) to water in tub (liters); draining, from water in tub (liters) to drain (liters per minute). What leaves one stock arrives in the other, so both count it in the same units.

The tap and the drain become auxiliaries, tap setting and drain opening, each with a + signal to its flow’s valve. Filling starts at a cloud and draining ends at one, leaving water in tub, in liters, the one stock, and both flows in liters per minute.

Bad diagram
Stock & flow diagram: tap; water in tub; drain Stocks: tap (liters per minute); water in tub (liters); drain (liters per minute). Flows: filling, from tap to water in tub (liters per minute per minute); draining, from water in tub to drain (liters per minute). filling draining liters per minutetap literswater in tub liters per minutedrain
Corrected diagram
Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: tap setting; drain opening. Flows: filling, from a cloud to water in tub (liters per minute); draining, from water in tub to a cloud (liters per minute). Signals: tap setting to filling, +; drain opening to draining, +. filling draining + + tap setting literswater in tub drain opening

Changed: 2 labels. Stocks: 2 turned into auxiliaries. Flows: filling now starts at a cloud instead of tap, draining now ends at a cloud instead of drain. Signals: 2 added.

Notation moveWhenWhat it showsExample
Draw a stock, with unitsSomething would remain if every flow stoppedWhat accumulates, in what unitswater in tub, liters
Stock & flow diagram: water in tub Stocks: water in tub (liters). Time unit: minute. literswater in tub
Draw a flowMaterial moves into or out of a stockWhat moves, which wayfilling
Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: filling, from a cloud to water in tub (liters per minute). filling literswater in tub
End a flow at a cloudMaterial enters or leaves the modelWhere the model stopsdraining’s sink
Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: draining, from water in tub to a cloud (liters per minute). draining literswater in tub
Declare the time unitWhat every rate is perminute
Draw a transferMaterial moves between stocksWhere it goes, in the same unitswater in bucket → water in tub
Stock & flow diagram: water in bucket; water in tub Stocks: water in bucket (liters); water in tub (liters). Flows: pouring, from water in bucket to water in tub (liters per minute). pouring literswater in bucket literswater in tub
Draw an auxiliaryA setting, target or ratio sets a rateWhat a rate depends ontap setting
Stock & flow diagram Auxiliaries: tap setting. tap setting
Draw a signal to a valveA reading changes a flow’s rateWhich reading, which waytap setting → filling, +
Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: tap setting. Flows: filling, from a cloud to water in tub (liters per minute). Signals: tap setting to filling, +. filling + literswater in tub tap setting
Show the stock equationThe net flowchange in water in tub = filling − draining
Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: filling, from a cloud to water in tub (liters per minute); draining, from water in tub to a cloud (liters per minute). Stock equation: change in water in tub = filling − draining. filling draining literswater in tub change in water in tub = filling − draining
Mark a delay on a flowMaterial arrives well after it leavesMaterial in transitgrain shipped to a mill
Stock & flow diagram: grain at the port; grain at the mill Stocks: grain at the port (tons); grain at the mill (tons). Flows: grain shipped, from grain at the port to grain at the mill (tons per week, with a delay). grain shipped tonsgrain at the port tonsgrain at the mill
Draw a behavior-over-time graphThe predicted shapewater in tub, approach
Stock & flow diagram: water in tub Stocks: water in tub (liters). Time unit: minute. Behavior-over-time graph of water in tub: rises toward a value and flattens. literswater in tub water in tub (liters)time
Check your understandingEmails reach Dana's inbox at 60 a day, and she answers or archives 50 a day. This week, arrivals fall to 55 a day while she still clears 50. What do the emails in her inbox do this week?

Yes. change in emails in inbox = emails arriving − emails cleared: 55 − 50, so the net flow is 5 a day. The inflow fell but still exceeds the outflow, so the stock rises, more slowly.

Not quite. Fewer arrive than last week, but more still arrive than leave. The inbox falls only once arrivals drop below the 50 a day she clears.

Not quite. The inbox holds steady only while arrivals equal clearing, 50 a day each. At 55 in and 50 out, it holds 5 more emails each evening than the evening before.

Earth’s water, stored and moving, redrawn

Section titled “Earth’s water, stored and moving, redrawn”
Stock & flow diagram: atmospheric moisture over ocean; atmospheric moisture over land; water in the ocean’s mixed zone; water in rivers; soil moisture; groundwater Stocks: atmospheric moisture over ocean (cubic kilometers); atmospheric moisture over land (cubic kilometers); water in the ocean’s mixed zone (cubic kilometers); water in rivers (cubic kilometers); soil moisture (cubic kilometers); groundwater (cubic kilometers). Flows: ocean evaporation, from water in the ocean’s mixed zone to atmospheric moisture over ocean (cubic kilometers per year); precipitation over ocean, from atmospheric moisture over ocean to water in the ocean’s mixed zone (cubic kilometers per year); transport of moisture from ocean to land, from atmospheric moisture over ocean to atmospheric moisture over land (cubic kilometers per year); precipitation over land, from atmospheric moisture over land to soil moisture (cubic kilometers per year); evapotranspiration, from soil moisture to atmospheric moisture over land (cubic kilometers per year); runoff, from soil moisture to water in rivers (cubic kilometers per year); groundwater recharge, from soil moisture to groundwater (cubic kilometers per year); streamflow to ocean, from water in rivers to water in the ocean’s mixed zone (cubic kilometers per year); groundwater discharge to ocean, from groundwater to water in the ocean’s mixed zone (cubic kilometers per year); agricultural water use, from groundwater to a cloud (cubic kilometers per year). ocean evaporation precipitation over ocean transport of moisture from ocean to land precipitation over land evapotranspiration runoff groundwater recharge streamflow to ocean groundwater discharge to ocean agricultural water use cubic kilometersatmospheric moisture over ocean cubic kilometersatmospheric moisture over land cubic kilometerswater in the ocean’s mixed zone cubic kilometerswater in rivers cubic kilometerssoil moisture cubic kilometersgroundwater

Redrawn from U.S. Geological Survey, “The Water Cycle” (2022), also published as Hayley R. Corson-Dosch and others, The water cycle, USGS General Information Product 221 (2023), the diagram, in English. U.S. public domain; credit: U.S. Geological Survey.

Six of its fifteen pools drawn as stocks, the ocean’s mixed zone among them and its rivers named as the water in them; ten of its fluxes drawn as flows between them, each given one stock at each end, so precipitation over land ends in soil moisture; of its five kinds of human water use, agricultural water use alone, drawn from groundwater to a cloud; units added, cubic kilometers and a time unit of a year, since it gives no amounts; its pictures and colors left out.

Question 1 of 3USGS calls each place water is stored a pool, drawn here as a stock, and each way water moves between pools a flux, drawn as a flow. Which flow is not a transfer?

Not quite. The water changes state on the way, but it leaves soil moisture and arrives in atmospheric moisture over land, both stocks counted in cubic kilometers: a transfer.

Yes. A transfer runs from one stock straight into another. Agricultural water use leaves groundwater for a cloud: the irrigated fields, and wherever their water goes next, lie outside the model.

Not quite. It drains atmospheric moisture over ocean and fills atmospheric moisture over land. Air holds stocks as the sea does, so a flow between two of them is a transfer.

Question 2 of 3USGS gives no amounts. The redrawing counts every stock in cubic kilometers and declares the year as its time unit. In what units does ocean evaporation run?

Not quite. Those are the units of the two stocks it joins, the ocean’s mixed zone and atmospheric moisture over ocean. A flow is counted per time unit.

Not quite. A depth a year is one way to report evaporation, but a flow moves material between stocks, so it runs in their units per time unit, not in units of its own.

Yes. A flow’s units are its stock’s units per time unit. Ocean evaporation is a transfer, so the stock it drains and the stock it fills both count what it moves in cubic kilometers.

Question 3 of 3Which is the stock equation of groundwater?

Yes. Groundwater recharge is its one inflow; groundwater discharge to ocean and agricultural water use are its two outflows. Every flow into or out of the stock appears, the one to a cloud as much as the transfers.

Not quite. That leaves out agricultural water use, which drains groundwater too. A flow ending at a cloud still changes the stock it leaves.

Not quite. Runoff leaves soil moisture for the water in rivers and never reaches groundwater, so it belongs in those two stocks’ equations, not this one.

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

SF 01Words a language learner knows

One stock and one inflow

  • Reasoning1 of 5
  • Polish1 of 5

Lena is learning Portuguese from a box of flashcards. She knows about 300 words today and learns about forty new ones a week, a few each evening. Leave forgetting out: draw only the words she knows and the words she learns. Count what she knows in words, and time in weeks.

The brief

  1. Draw one stock: the words Lena knows. checked by the lab
  2. Fill it with one inflow. checked by the lab
  3. Draw one cloud, where the new words come from. checked by the lab
  4. Add a behavior-over-time graph of the stock, rising steadily. checked by the lab
  5. The stock is counted at an instant, in words; the flow per week, in words per week. you check this

Your palette

  • Stock & flow diagram: water in tub Stocks: water in tub (liters). literswater in tub
    stock
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: filling, from a cloud to water in tub (liters per minute). filling literswater in tub
    flow
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: draining, from water in tub to a cloud (liters per minute). draining literswater in tub
    cloud
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Behavior-over-time graph of water in tub: rises toward a value and flattens. literswater in tub water in tub (liters)time
    behavior-over-time graph

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

Drag a stock, a cloud or a graph to move it. Select a stock, a flow, a cloud or a graph to change it. Pressing an empty spot adds nothing. Double-click or double-tap a stock's name or units or a flow's name to edit its words in place, or select it and use Rename or the fields under the canvas.

Stock & flow diagram Nothing drawn yet.

Nothing selected. Select a stock, a flow, a cloud or a behavior-over-time graph on the canvas, and what you can change shows here.

Each flow is counted in its stock's units per this unit of time.

The tools

Arrange V
move a stock, a cloud or a graph (drag it), rename a stock (double-click it, or Rename under the canvas), or select anything.
Stocks S
add a stock (press an empty spot) and name it.
Flows M
draw a flow by dragging from a stock or an empty spot to a stock or an empty spot, and name it; clouds appear at empty ends.
Behavior-over-time graphs H
select a stock, an auxiliary or a flow, then press an empty spot, to add its behavior-over-time graph there.

Keys

  • R reverse the selected flow
  • 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 9 checks passed; 9 pending.

  1. Draw one stock: the words Lena knows. (Not started)No stocks yet. Brief: exactly 1.
  2. Fill it with one inflow. (Not started)No flows yet. Brief: exactly 1 inflow.
  3. Draw one cloud, where the new words come from. (Not started)No flows yet. Brief: exactly 1 cloud.
  4. Add a behavior-over-time graph of the stock, rising steadily. (Not started)No behavior-over-time graph yet. Brief: a behavior-over-time graph of a stock that rises steadily.

Always checked

  • Every stock has units (Not started)No stock drawn yet.
  • The time unit is given (Not started)No flow drawn yet.
  • Every stock has a flow in or out (Not started)No stock drawn yet.
  • Every flow has a name (Not started)No flow drawn 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 stock in the lab above. Your attempt saves as you draw.

One defensible answer

SF 02Firewood at a scout camp

Inflow and outflow

  • Reasoning1 of 5
  • Polish2 of 5

A scout patrol camps in a field for the weekend. Through Saturday afternoon the scouts gather fallen branches into a woodpile by the fire, about thirty kilograms an hour. After dark they gather about five kilograms an hour, and the campfire burns about twelve kilograms an hour. Count the wood in kilograms, and time in hours.

The brief

  1. Draw one inflow: the wood the scouts gather. checked by the lab
  2. Draw one outflow: the wood the fire burns. checked by the lab
  3. Put a cloud at each end, where the wood comes from and where it goes. checked by the lab
  4. Add a behavior-over-time graph of the stock, falling steadily. checked by the lab
  5. The graph covers the evening, after gathering slows. you check this

Your palette

  • Stock & flow diagram: water in tub Stocks: water in tub (liters). literswater in tub
    stock
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: filling, from a cloud to water in tub (liters per minute). filling literswater in tub
    flow
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: draining, from water in tub to a cloud (liters per minute). draining literswater in tub
    cloud
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Behavior-over-time graph of water in tub: rises toward a value and flattens. literswater in tub water in tub (liters)time
    behavior-over-time graph

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

Drag a stock, a cloud or a graph to move it. Select a stock, a flow, a cloud or a graph to change it. Pressing an empty spot adds nothing. Double-click or double-tap a stock's name or units or a flow's name to edit its words in place, or select it and use Rename or the fields under the canvas.

Stock & flow diagram Nothing drawn yet.

Nothing selected. Select a stock, a flow, a cloud or a behavior-over-time graph on the canvas, and what you can change shows here.

Each flow is counted in its stock's units per this unit of time.

The tools

Arrange V
move a stock, a cloud or a graph (drag it), rename a stock (double-click it, or Rename under the canvas), or select anything.
Stocks S
add a stock (press an empty spot) and name it.
Flows M
draw a flow by dragging from a stock or an empty spot to a stock or an empty spot, and name it; clouds appear at empty ends.
Behavior-over-time graphs H
select a stock, an auxiliary or a flow, then press an empty spot, to add its behavior-over-time graph there.

Keys

  • R reverse the selected flow
  • 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 9 checks passed; 9 pending.

  1. Draw one inflow: the wood the scouts gather. (Not started)No flows yet. Brief: exactly 1 inflow.
  2. Draw one outflow: the wood the fire burns. (Not started)No flows yet. Brief: exactly 1 outflow.
  3. Put a cloud at each end, where the wood comes from and where it goes. (Not started)No flows yet. Brief: exactly 2 clouds.
  4. Add a behavior-over-time graph of the stock, falling steadily. (Not started)No behavior-over-time graph yet. Brief: a behavior-over-time graph of a stock that falls steadily.

Always checked

  • Every stock has units (Not started)No stock drawn yet.
  • The time unit is given (Not started)No flow drawn yet.
  • Every stock has a flow in or out (Not started)No stock drawn yet.
  • Every flow has a name (Not started)No flow drawn 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 stock in the lab above. Your attempt saves as you draw.

One defensible answer

SF 03Goats on a family smallholding

Net flow and equations

  • Reasoning2 of 5
  • Polish2 of 5

The Mensah family keeps goats on a smallholding: twenty at the start of the year. Each spring the herd has about one kid for every goat in it, so a bigger herd has more kids. Each year the family buys about two goats at market and sells about fifteen. Count the herd in goats, and time in years.

The brief

  1. Draw two inflows: kids born, and goats bought. checked by the lab
  2. Draw one outflow: goats sold. checked by the lab
  3. Add an auxiliary for the kids each goat has in a year. checked by the lab
  4. Draw a path of signals from the herd to kids born. checked by the lab
  5. Show the herd's stock equation. checked by the lab
  6. Kids born reads two signals: one from the herd, one from kids per goat per year. you check this

Your palette

  • Stock & flow diagram: water in tub Stocks: water in tub (liters). literswater in tub
    stock
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: filling, from a cloud to water in tub (liters per minute). filling literswater in tub
    flow
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: draining, from water in tub to a cloud (liters per minute). draining literswater in tub
    cloud
  • Stock & flow diagram Auxiliaries: tap opening. tap opening
    auxiliary
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: tap opening. Flows: filling, from a cloud to water in tub (liters per minute). Signals: tap opening to filling, +. filling + literswater in tub tap opening
    signal
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: filling, from a cloud to water in tub (liters per minute); draining, from water in tub to a cloud (liters per minute). Stock equation: change in water in tub = filling − draining. filling draining literswater in tub change in water in tub = filling − draining
    stock equation
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: tap opening; drain blockage. Flows: filling, from a cloud to water in tub (liters per minute); draining, from water in tub to a cloud (liters per minute). Signals: tap opening to filling, +; drain blockage to draining, −. filling draining + − literswater in tub tap opening drain blockage
    polarity

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

Press an empty spot to add an auxiliary and type its name. Drag a stock, an auxiliary, a cloud or a graph to move it. Select anything drawn to change it. Double-click or double-tap a stock's name or units, an auxiliary or a flow's name to edit its words in place, or select it and use Rename or the fields under the canvas.

Stock & flow diagram Nothing drawn yet.

Nothing selected. Select a stock, an auxiliary, a flow, a signal or a cloud on the canvas, and what you can change shows here.

Each flow is counted in its stock's units per this unit of time.

The tools

Auxiliaries V
add an auxiliary (press an empty spot), move a stock, an auxiliary, a cloud or a graph (drag it), rename one (double-click it, or Rename under the canvas), or select anything.
Stocks S
add a stock (press an empty spot) and name it.
Flows M
draw a flow by dragging from a stock or an empty spot to a stock or an empty spot, and name it; clouds appear at empty ends.
Signals E
draw a signal by dragging from a stock, an auxiliary or a flow's valve to an auxiliary or a flow's valve.

Keys

  • R reverse the selected signal or flow
  • Q the selected stock's equation, on or off
  • +− the selected signal'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 10 checks passed; 10 pending.

  1. Draw two inflows: kids born, and goats bought. (Not started)No flows yet. Brief: exactly 2 inflows.
  2. Draw one outflow: goats sold. (Not started)No flows yet. Brief: exactly 1 outflow.
  3. Add an auxiliary for the kids each goat has in a year. (Not started)No stocks or auxiliaries yet. Brief: at least 1 auxiliary.
  4. Draw a path of signals from the herd to kids born. (Not started)No signals yet. Brief: at least 1 stock with a path of signals to its own flow.
  5. Show the herd's stock equation. (Not started)No stocks yet. Brief: at least 1 stock equation.

Always checked

  • Every stock has units (Not started)No stock drawn yet.
  • The time unit is given (Not started)No flow drawn yet.
  • Every stock has a flow in or out (Not started)No stock drawn yet.
  • Every flow has a name (Not started)No flow drawn 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 stock in the lab above. Your attempt saves as you draw.

One defensible answer

SF 04Diesel for an island's power station

Goal seeking with a delay

  • Reasoning2 of 5
  • Polish3 of 5

The power station on a small island burns about 40 tonnes of diesel a week. Its manager aims to keep 250 tonnes in the tanks. Each week she orders 40 tonnes plus a quarter of the gap between 250 tonnes and what the tanks hold, and a tanker delivers each order four weeks after she places it. After storms kept the tankers in port, the tanks hold 100 tonnes. Count diesel in tonnes, and time in weeks.

The brief

  1. Draw a path of signals from the stock to the flow that refills it. checked by the lab
  2. Mark the four weeks between an order and its delivery as a material delay. checked by the lab
  3. Add a behavior-over-time graph of the stock, overshooting and swinging around a value, with a line at the desired stock. checked by the lab
  4. Orders are an auxiliary and deliveries the flow; the path from the stock to deliveries passes through the gap. you check this

Your palette

  • Stock & flow diagram: water in tub Stocks: water in tub (liters). literswater in tub
    stock
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: filling, from a cloud to water in tub (liters per minute). filling literswater in tub
    flow
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: draining, from water in tub to a cloud (liters per minute). draining literswater in tub
    cloud
  • Stock & flow diagram Auxiliaries: tap opening. tap opening
    auxiliary
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: tap opening. Flows: filling, from a cloud to water in tub (liters per minute). Signals: tap opening to filling, +. filling + literswater in tub tap opening
    signal
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: tap opening; drain blockage. Flows: filling, from a cloud to water in tub (liters per minute); draining, from water in tub to a cloud (liters per minute). Signals: tap opening to filling, +; drain blockage to draining, −. filling draining + − literswater in tub tap opening drain blockage
    polarity
  • Stock & flow diagram: beans in warehouse Stocks: beans in warehouse (kilograms). Auxiliaries: beans ordered. Flows: deliveries, from a cloud to beans in warehouse (kilograms per week, with a delay). Signals: beans ordered to deliveries, +, with a delay. deliveries + kilogramsbeans in warehouse beans ordered
    delay
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: liters short of full. Flows: filling, from a cloud to water in tub (liters per minute). Signals: liters short of full to filling, +. filling + literswater in tub liters short of full
    gapdrawn as an ordinary variable
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Behavior-over-time graph of water in tub: rises toward a value and flattens. literswater in tub water in tub (liters)time
    behavior-over-time graph

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

Press an empty spot to add an auxiliary and type its name. Drag a stock, an auxiliary, a cloud or a graph to move it. Select anything drawn to change it. Double-click or double-tap a stock's name or units, an auxiliary or a flow's name to edit its words in place, or select it and use Rename or the fields under the canvas.

Stock & flow diagram Nothing drawn yet.

Nothing selected. Select a stock, an auxiliary, a flow, a signal, a cloud or a behavior-over-time graph on the canvas, and what you can change shows here.

Each flow is counted in its stock's units per this unit of time.

The tools

Auxiliaries V
add an auxiliary (press an empty spot), move a stock, an auxiliary, a cloud or a graph (drag it), rename one (double-click it, or Rename under the canvas), or select anything.
Stocks S
add a stock (press an empty spot) and name it.
Flows M
draw a flow by dragging from a stock or an empty spot to a stock or an empty spot, and name it; clouds appear at empty ends.
Signals E
draw a signal by dragging from a stock, an auxiliary or a flow's valve to an auxiliary or a flow's valve.
Behavior-over-time graphs H
select a stock, an auxiliary or a flow, then press an empty spot, to add its behavior-over-time graph there.

Keys

  • R reverse the selected signal or flow
  • +− the selected signal'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. Draw a path of signals from the stock to the flow that refills it. (Not started)No signals yet. Brief: at least 1 stock with a path of signals to its own flow.
  2. Mark the four weeks between an order and its delivery as a material delay. (Not started)No flows yet. Brief: exactly 1 material delay.
  3. Add a behavior-over-time graph of the stock, overshooting and swinging around a value, with a line at the desired stock. (Not started)No behavior-over-time graph yet. Brief: a behavior-over-time graph of a stock that overshoots and swings around a value, settling, with a line at an auxiliary’s value.

Always checked

  • Every stock has units (Not started)No stock drawn yet.
  • The time unit is given (Not started)No flow drawn yet.
  • Every stock has a flow in or out (Not started)No stock drawn yet.
  • Every flow has a name (Not started)No flow drawn 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 stock in the lab above. Your attempt saves as you draw.

One defensible answer

SF 05Bottles in a deposit-return scheme

Connected stocks and conservation

  • Reasoning3 of 5
  • Polish3 of 5

A country runs a deposit-return scheme for drink bottles. Bottlers deliver bottles to shops, where a bottle waits about two weeks on a shelf. A shopper keeps a bottle about five weeks before taking it back to a return machine; about one bottle in ten is thrown away instead. The machines are emptied twice a week, and the bottles collected for recycling. Count every stock in bottles, and time in weeks.

The brief

  1. Draw three stocks, one for each place a bottle waits: on shop shelves, with shoppers, in return machines. checked by the lab
  2. Join the stocks with transfers, so a bottle leaving one stage arrives in the next. checked by the lab
  3. Mark one material delay. checked by the lab
  4. The three stocks sit in a row in the order bottles pass through, and the delay is on the flow out of the stage where bottles wait longest. you check this

Your palette

  • Stock & flow diagram: water in tub Stocks: water in tub (liters). literswater in tub
    stock
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: filling, from a cloud to water in tub (liters per minute). filling literswater in tub
    flow
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: draining, from water in tub to a cloud (liters per minute). draining literswater in tub
    cloud
  • Stock & flow diagram: beans in warehouse Stocks: beans in warehouse (kilograms). Auxiliaries: beans ordered. Flows: deliveries, from a cloud to beans in warehouse (kilograms per week, with a delay). Signals: beans ordered to deliveries, +, with a delay. deliveries + kilogramsbeans in warehouse beans ordered
    delay

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

Drag a stock, a cloud or a graph to move it. Select a stock, a flow, a cloud or a graph to change it. Pressing an empty spot adds nothing. Double-click or double-tap a stock's name or units or a flow's name to edit its words in place, or select it and use Rename or the fields under the canvas.

Stock & flow diagram Nothing drawn yet.

Nothing selected. Select a stock, a flow or a cloud on the canvas, and what you can change shows here.

Each flow is counted in its stock's units per this unit of time.

The tools

Arrange V
move a stock, a cloud or a graph (drag it), rename a stock (double-click it, or Rename under the canvas), or select anything.
Stocks S
add a stock (press an empty spot) and name it.
Flows M
draw a flow by dragging from a stock or an empty spot to a stock or an empty spot, and name it; clouds appear at empty ends.

Keys

  • R reverse the selected flow
  • 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 9 checks passed; 9 pending.

  1. Draw three stocks, one for each place a bottle waits: on shop shelves, with shoppers, in return machines. (Not started)No stocks yet. Brief: exactly 3.
  2. Join the stocks with transfers, so a bottle leaving one stage arrives in the next. (Not started)No flows yet. Brief: at least 2 transfers.
  3. Mark one material delay. (Not started)No flows yet. Brief: exactly 1 material delay.

Always checked

  • Every stock has units (Not started)No stock drawn yet.
  • The time unit is given (Not started)No flow drawn yet.
  • Every stock has a flow in or out (Not started)No stock drawn yet.
  • Every flow has a name (Not started)No flow drawn yet.
  • Each transfer joins stocks in the same units (Not started)No transfer drawn yet: a flow from one stock straight into another.
  • 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 stock in the lab above. Your attempt saves as you draw.

One defensible answer

CS 06Kelsham Primary School: the roll, filled and drained

One stock, its two flows and the years of the roll

  • Reasoning2 of 5
  • Polish2 of 5

Ruth Okafor counts the pupils on roll each October: 126 in October 2020, 95 in October 2025 and 88 in October 2026. Children start in Reception each September, and pupils leave, Year 6 for secondary school and others for other schools. In the year to October 2026, 9 children started and 16 pupils left; in the year to October 2020, 19 started and 20 left. In every year between, fewer started than left. Count the roll in pupils, and time in years.

The brief

  1. Draw one stock: the pupils on roll, counted in pupils. checked by the lab
  2. Fill it with one inflow: the children starting each September. checked by the lab
  3. Drain it with one outflow: the pupils leaving. checked by the lab
  4. Show the roll's stock equation. checked by the lab
  5. Add a behavior-over-time graph of the roll, falling steadily. checked by the lab
  6. The stock equation balances for the year to October 2026: 95 pupils, plus 9 starters, less 16 leavers, is 88. you check this

Your palette

  • Stock & flow diagram: water in tub Stocks: water in tub (liters). literswater in tub
    stock
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: filling, from a cloud to water in tub (liters per minute). filling literswater in tub
    flow
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: draining, from water in tub to a cloud (liters per minute). draining literswater in tub
    cloud
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: filling, from a cloud to water in tub (liters per minute); draining, from water in tub to a cloud (liters per minute). Stock equation: change in water in tub = filling − draining. filling draining literswater in tub change in water in tub = filling − draining
    stock equation
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Behavior-over-time graph of water in tub: rises toward a value and flattens. literswater in tub water in tub (liters)time
    behavior-over-time graph

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

Drag a stock, a cloud or a graph to move it. Select a stock, a flow, a cloud or a graph to change it. Pressing an empty spot adds nothing. Double-click or double-tap a stock's name or units or a flow's name to edit its words in place, or select it and use Rename or the fields under the canvas.

Stock & flow diagram Nothing drawn yet.

Nothing selected. Select a stock, a flow, a cloud or a behavior-over-time graph on the canvas, and what you can change shows here.

Each flow is counted in its stock's units per this unit of time.

The tools

Arrange V
move a stock, a cloud or a graph (drag it), rename a stock (double-click it, or Rename under the canvas), or select anything.
Stocks S
add a stock (press an empty spot) and name it.
Flows M
draw a flow by dragging from a stock or an empty spot to a stock or an empty spot, and name it; clouds appear at empty ends.
Behavior-over-time graphs H
select a stock, an auxiliary or a flow, then press an empty spot, to add its behavior-over-time graph there.

Keys

  • R reverse the selected flow
  • Q the selected stock's equation, on or off
  • 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 10 checks passed; 10 pending.

  1. Draw one stock: the pupils on roll, counted in pupils. (Not started)No stocks yet. Brief: exactly 1.
  2. Fill it with one inflow: the children starting each September. (Not started)No flows yet. Brief: exactly 1 inflow.
  3. Drain it with one outflow: the pupils leaving. (Not started)No flows yet. Brief: exactly 1 outflow.
  4. Show the roll's stock equation. (Not started)No stocks yet. Brief: at least 1 stock equation.
  5. Add a behavior-over-time graph of the roll, falling steadily. (Not started)No behavior-over-time graph yet. Brief: a behavior-over-time graph of a stock that falls steadily.

Always checked

  • Every stock has units (Not started)No stock drawn yet.
  • The time unit is given (Not started)No flow drawn yet.
  • Every stock has a flow in or out (Not started)No stock drawn yet.
  • Every flow has a name (Not started)No flow drawn 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 stock 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, The Basics, on stocks, flows, clouds as sources and sinks, and the bathtub.
  • John D. Sterman, Business Dynamics: Systems Thinking and Modeling for a Complex World (Irwin/McGraw-Hill, 2000), chapter 4, Structure and Behavior of Dynamic Systems, on the shapes behavior over time takes; chapter 6, Stocks and Flows, on the notation and on telling a stock from a flow by freezing a system in time; and chapter 7, Dynamics of Stocks and Flows, on reading a stock’s path from its net flow.
  • Linda Booth Sweeney and John D. Sterman, “Bathtub Dynamics: Initial Results of a Systems Thinking Inventory”, System Dynamics Review 16, no. 4 (2000), on how well students with no training in system dynamics read stocks and flows.
  • isee systems, Working with Building Blocks (Stella help), on the parts of a model in Stella, a modeling program.
  • United Nations, World Population Prospects 2024, through Our World in Data, Number of births and Number of deaths, for the world’s births and deaths in 2023.