Stocks Inside Feedback
Stock & flow diagramsPart III · Accumulation · Chapter 7 of 12 · the second of two chapters on stock & flow diagrams
Where do things wait on their way through a system? In stocks, between the flows that fill and drain them. A stock & flow diagram with loops shows which loops pass through each stock, where material waits along a chain of stocks, and which delays hold material and which hold news of it.
Print this chapter, with a sheet for each exercise and the answers at the back, from its PDF.
A flu season in a region
Section titled “A flu season in a region”A new strain of flu reaches a region of a million people, none of whom has had it. Each day people who are ill meet people who have never had it, and some of those catch it. Each person who falls ill is ill for about a week, then recovers and doesn’t catch this strain again that season.
Reported cases reach the news a week after people fall ill. As the reports rise, people stay home and keep apart, and fewer fall ill.
The number of people ill rises for weeks, peaks and falls away. When the season ends, some people have never caught it.
What the notation expresses
Section titled “What the notation expresses”Loops through stocks
Section titled “Loops through stocks”A loop through a stock is a loop whose path runs along one of the stock’s flows: a signal from the stock reaches the flow’s valve, directly or through auxiliaries, and the flow changes the stock. The parity rule counts the flow as one step: + from the flow into the stock it fills, − from the flow out of the stock it drains.
Infectious contacts are meetings between someone ill and someone susceptible, so they rise with both stocks. Three loops run through falling ill:
- R1, contagion: people ill → infectious contacts → falling ill, which fills people ill. No
−step: reinforcing. - B1, depletion: people susceptible → infectious contacts → falling ill, which drains people susceptible. One
−step: balancing. - B2, caution: people ill → reported cases → caution → infectious contacts (
−) → falling ill, which fills people ill. One−step: balancing.
Falling ill counts + in R1 and − in B1, since it fills one stock and drains the other.
Loop dominance shifts as stocks fill and empty. Early in the season nearly everyone is susceptible, R1 dominates, and people ill grows exponentially. As people susceptible empties, each person ill meets fewer people who can catch flu; B1 dominates, falling ill drops below recovering, and people ill falls.
Conservation
Section titled “Conservation”Falling ill and recovering are transfers, and the diagram has no cloud, so everyone who leaves one stock arrives in the next. The three stock equations,
change in people susceptible = − falling ill
change in people ill = falling ill − recovering
change in people recovered = recovering
add up to zero: the three stocks always total the region’s million people.
Births, deaths and moves are left out. Drawn in, each would run from a source or to a sink, and people would cross the region’s boundary only along those flows. An external driver reaches a stock through a signal to an auxiliary or a valve, never to the stock: if school holidays cut contacts, ‹school holidays› → infectious contacts is −.
Evidence coding marks signals only. A flow is never dashed: that people move from susceptible to ill isn’t in question, only how fast, which the signals into its valve set.
Aging chains
Section titled “Aging chains”An aging chain is a row of stocks joined by transfers, through which material passes in order: people susceptible, then ill, then recovered.
The time material spends in a stock is a delay. Someone who falls ill on a Monday is counted in people ill until about the next Monday, so a rise in falling ill shows in recovering about a week later, on average. People ill → recovering is +: with each person ill for about a week, about a seventh of those ill recover each day. Recovering carries no delay: the stock holds the week, and a delay on the flow would count it twice.
Material and signal delays
Section titled “Material and signal delays”A delay in a stock & flow diagram, the two strokes of chapter 4’s delays, sits on a flow or on a signal. A material delay, on a flow, holds material in transit, in neither stock: grain at sea between a port and a mill. A signal delay, on a signal, holds news: the people are already ill, and the reading of how many arrives late. People ill → reported cases carries a signal delay of a week.
Caution is set by reported cases, a reading of people ill a week old, so after people ill peaks, reported cases and caution go on rising for about a week, and caution is highest once fewer people are ill.
Capacity limits
Section titled “Capacity limits”A stock’s capacity is the most it can hold. As the stock nears it, the flow into it slows sharply: a nonlinear effect on a signal from the stock to its own inflow, its threshold an amount the stock holds. If the flu filled the region’s hospital beds, people in hospital → admissions would be − and nonlinear: weak while beds are free, strong as the last ones fill.
The bad diagram
Section titled “The bad diagram”What’s wrong with this diagram of a town library’s books, lent from the shelves, returned to a trolley and reshelved?
The books on the shelves, on loan and in the returns trolley are three stocks, but lending runs from the shelves to a cloud, borrowing from a cloud into the books on loan, returning to a cloud and dropping off from a cloud. Between each stage and the next the same books leave the model and come back into it, so the three stocks’ total can rise or fall with no book bought or lost. The lab’s check for at least three transfers reports:
No transfers. Brief: at least 3. A transfer runs from one stock straight into another, with no cloud between them.
The corrected diagram
Section titled “The corrected diagram”Corrected, lending, returning and reshelving are transfers around the three stocks; purchases arrive from a source and lost books leave to a sink, so each book is counted in one stock from the day it is bought until it is lost.
Labels unchanged. Flows: 3 added, 2 removed, lending now ends at books on loan instead of a cloud, returning now ends at books in the returns trolley instead of a cloud.
Notation moves
Section titled “Notation moves”| Notation move | When | What it shows | Example |
|---|---|---|---|
| Declare a loop through a flow | A signal from a stock reaches the valve of one of its own flows | Which loops change the stock, and through which flow | R1 contagion, through falling ill |
| Chain stocks with transfers | Material passes through stages in order | Where it waits, with none lost between stages | people susceptible → people ill → people recovered |
| Mark a signal delay | A reading arrives well after what it reads | News running behind a stock | people ill → reported cases |
| Mark a material delay | Material is in transit between stocks | Material in neither stock | grain shipped to a mill |
| Mark a nonlinear signal from a stock to its inflow | A stock nears the most it can hold | Where the capacity lies | people in hospital → admissions |
| Graph a stock in a loop | The shape the shifts in dominance produce | people ill, overshoot and collapse | |
Common misreading
Section titled “Common misreading”Reading a stock’s graph as the shape of its inflow, the stock highest when the inflow is fastest, is the correlation heuristic (Cronin, Gonzalez and Sterman, 2009). Falling ill peaks first. At its peak more people still fall ill each day than recover, so people ill goes on rising; it peaks later, on the day falling ill has dropped to equal recovering.
Shown graphs of people entering and leaving a department store each minute, 96 percent of 173 graduate students in a business simulation course at MIT found the minute the most people entered, and 44 percent the minute the most people were in the store; 29 percent chose the minute of the largest net flow into the store.
The strongest objection
Section titled “The strongest objection”Without equations and simulation, a stock & flow diagram is a causal loop diagram with boxes: when loops trade dominance, and how far a stock overshoots, depend on numbers the diagram doesn’t hold. Homer and Oliva (2001), answering Coyle (2000), argue that simulation lets a modeler draw behavioral inferences reliably “in a way that is rarely possible with maps alone”.
A behavior-over-time graph drawn from the structure is a hypothesis until the model is simulated or the system measured: the graph of people ill shows an overshoot and collapse, not how high it peaks or in which week.
Units and conservation are checked on the drawing, before any number. The lab’s checks catch a transfer between stocks in different units, books that vanish between the shelves and the loans, and a signal drawn into a stock; a causal loop diagram has no mark they could catch.
Check your understanding
Section titled “Check your understanding”Waits for heart attack care, redrawn
Section titled “Waits for heart attack care, redrawn”Redrawn from Luciano de Andrade, Catherine Lynch, Elias Carvalho, Clarissa Garcia Rodrigues, João Ricardo Nickenig Vissoci, Guttenberg Ferreira Passos, Ricardo Pietrobon, Oscar Kenji Nihei and Maria Dalva de Barros Carvalho, “System Dynamics Modeling in the Evaluation of Delays of Care in ST-Segment Elevation Myocardial Infarction Patients within a Tiered Health System”, PLOS ONE 9(7): e103577 (2014), Figure 4. CC BY 4.0.
Its four stages, first medical contact (FMC), ECG and diagnosis (ECG), the ECG sent by fax to the PCI center, where the blocked artery is opened, and its reply (TXF), and the wait for transfer there (TWT), named for the patients at each; each Retained stock named for the patients held there, and its retain and back flows renamed retaining and returning; each output named for where its patients go, the last door out; its auxiliaries and their signals left out; its B1 to B4, each labeled inside a stage’s path of retaining and returning, which carries no signal, each drawn as the loop through the signal from its stage’s patients to their outflow, which it draws, and named moving on; the chain drawn downward.
Exercises
Section titled “Exercises”Passing the checks means meeting the brief, not being right.
SF 06Players of an online game
Stocks embedded in feedback
Players around the world join an online puzzle game only by invitation: each day about one player in fifty invites a friend, who joins. Matches run on a fixed number of servers, so the more players there are, the longer each waits for a match, and the longer the wait, the more players quit each day. Count the stock in players, and time in days.
The brief
- Draw two flows: players joining, and players quitting. checked by the lab
- Declare one reinforcing loop. checked by the lab
- Declare one balancing loop. checked by the lab
- Run each loop through a flow, so that it passes through the stock. checked by the lab
- Each loop is named for what goes around it, such as word of mouth or queue frustration. you check this
Your palette
stock flow cloud auxiliary signal polarity loop reinforcing loop 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 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, a flow's name 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.
Nothing selected. Select a stock, an auxiliary, a flow, a signal, a cloud or a loop label on the canvas, and what you can change shows here.
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.
- Loop L
- declare a loop by selecting its signals and flows in order, then label and name it.
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 11 checks passed; 11 pending.
- Draw two flows: players joining, and players quitting. (Not started)
- Declare one reinforcing loop. (Not started)
- Declare one balancing loop. (Not started)
- Run each loop through a flow, so that it passes through the stock. (Not started)
Always checked
- Each loop's kind matches its − effects (Not started)
- Loop labels are unique and match their kind (Not started)
- Every stock has units (Not started)
- The time unit is given (Not started)
- Every stock has a flow in or out (Not started)
- Every flow has a name (Not started)
- No variable's name breaks the more test's three rules (Not started)
Written feedback
One defensible answer
It opens here once you've drawn at least one stock in the lab above. Your attempt saves as you draw.
SF 07Dogs at a rescue shelter
Capacity and nonlinear rates
A town's dog rescue shelter has 40 places. Owners and the council refer about eight dogs a week to its waiting list, and owners withdraw about one a week after finding a home elsewhere. Staff take dogs in from the list, but intake slows sharply as the places fill: about six dogs a week while 30 are in care, almost none at 38. Crowding lengthens stays: a dog waits about four weeks for adoption while the shelter is half full, seven while it is full. The manager proposes recruiting foster homes, each adding a place. Count both stocks in dogs, and time in weeks.
The brief
- Draw two stocks: dogs on the waiting list, and dogs in care. checked by the lab
- Join them with intake, a transfer. checked by the lab
- Mark the signal by which filling places slow intake as nonlinear. checked by the lab
- Mark what foster homes would add to as the one leverage point. checked by the lab
- The nonlinear signal reaches intake through occupancy. you check this
Your palette
stock flow cloud auxiliary signal polarity nonlinear effect 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 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.
Nothing selected. Select a stock, an auxiliary, a flow, a signal or a cloud on the canvas, and what you can change shows here.
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
- +− 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.
- Draw two stocks: dogs on the waiting list, and dogs in care. (Not started)
- Join them with intake, a transfer. (Not started)
- Mark the signal by which filling places slow intake as nonlinear. (Not started)
- Mark what foster homes would add to as the one leverage point. (Not started)
Always checked
- Every stock has units (Not started)
- The time unit is given (Not started)
- Every stock has a flow in or out (Not started)
- Every flow has a name (Not started)
- Each transfer joins stocks in the same units (Not started)
- No variable's name breaks the more test's three rules (Not started)
Written feedback
One defensible answer
It opens here once you've drawn at least one stock in the lab above. Your attempt saves as you draw.
SF 08Seedlings raised on a windowsill
Aging chain
Amira raises tomatoes and peppers from seed on her kitchen windowsill. Each spring she sows about 60 seeds in trays; about one in five fails to sprout, and the rest come up within two weeks. Seedlings grow on the sill for about five weeks, and a few die of damping off. Before going into the garden, each seedling spends exactly ten days in a cold frame, hardening off, and cold nights kill a few there. The cold frame holds 24, so seedlings wait on the sill until it has room. Count every stage in seedlings, a seed counted from the day it is sown, and time in days.
The brief
- Draw a stock for each stage: sown in trays, seedlings on the sill, in the cold frame, planted out. checked by the lab
- Chain the stages with transfers, so a seedling leaving one arrives in the next. checked by the lab
- Mark the ten days in the cold frame as a material delay. checked by the lab
- Add a behavior note. checked by the lab
- Where seedlings pile up, and why, is in the note. you check this
Your palette
stock flow cloud delay behavior note
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. Drag a behavior note to move it. Double-click or double-tap a stock's name or units, a flow's name or a behavior note to edit its words in place, or select it and use Rename or the fields under the canvas.
Nothing selected. Select a stock, a flow, a cloud or a behavior note on the canvas, and what you can change shows here.
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.
- Note N
- place a behavior note (press where it goes).
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.
- Draw a stock for each stage: sown in trays, seedlings on the sill, in the cold frame, planted out. (Not started)
- Chain the stages with transfers, so a seedling leaving one arrives in the next. (Not started)
- Mark the ten days in the cold frame as a material delay. (Not started)
- Add a behavior note. (Not started)
Always checked
- Every stock has units (Not started)
- The time unit is given (Not started)
- Every stock has a flow in or out (Not started)
- Every flow has a name (Not started)
- No variable's name breaks the more test's three rules (Not started)
Written feedback
One defensible answer
It opens here once you've drawn at least one stock in the lab above. Your attempt saves as you draw.
SF 09A city's bike-share fleet
Multiple stocks, a boundary and evidence
A city's bike-share scheme has docks on a hilltop and by the river. Riders seldom pedal uphill, so rides between the two run downhill and bikes collect at the riverside docks; on rainy days about a third fewer bikes are ridden. Vans collect bikes from the riverside docks and bring them to the scheme's workshop, where mechanics check and repair them; the vans then deliver them to the hilltop docks. Bikes beyond repair are scrapped. Staff record rides, collections and deliveries each day. They believe the vans deliver more bikes the lower the hilltop docks run, but nobody has checked. Rain, and scrapped bikes once they leave, lie outside the scheme. Count every stock in bikes, and time in days.
The brief
- Draw a stock for each place bikes wait: the hilltop docks, the riverside docks, the workshop. checked by the lab
- Join the stocks with transfers, so no bike appears or vanishes between them. checked by the lab
- Declare a balancing loop through the vans' deliveries. checked by the lab
- Draw the scheme's boundary, with rain outside it as an external driver. checked by the lab
- Code the signal you judge less supported as a hypothesis. checked by the lab
- Rain's signal rests on ride counts and is solid; the vans' response, a belief, is the hypothesis, and the legend shows the coding. you check this
Your palette
stock flow cloud auxiliary signal polarity loop balancing loop boundary external driver evidence coding
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. Drag a boundary by its outline or its name to move it, and by the square at its corner to resize it. Double-click or double-tap a stock's name or units, an auxiliary, a flow's name, a loop's label or name or a boundary's name to edit its words in place, or select it and use Rename or the fields under the canvas.
Nothing selected. Select a stock, an auxiliary, a flow, a signal, a cloud, a loop label or a boundary on the canvas, and what you can change shows here.
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.
- Loop L
- declare a loop by selecting its signals and flows in order, then label and name it.
- Boundary B
- drag out a boundary around the system, and name it.
Keys
- G legend on or off
- 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 17 checks passed; 17 pending.
- Draw a stock for each place bikes wait: the hilltop docks, the riverside docks, the workshop. (Not started)
- Join the stocks with transfers, so no bike appears or vanishes between them. (Not started)
- Declare a balancing loop through the vans' deliveries. (Not started)
- Draw the scheme's boundary, with rain outside it as an external driver. (Not started)
- Code the signal you judge less supported as a hypothesis. (Not started)
Always checked
- Each loop's kind matches its − effects (Not started)
- Loop labels are unique and match their kind (Not started)
- No effect runs into an external driver (Not started)
- External drivers sit outside every boundary (Not started)
- The legend is on when effects are coded or tagged (Not started)
- Every stock has units (Not started)
- The time unit is given (Not started)
- Every stock has a flow in or out (Not started)
- Every flow has a name (Not started)
- Each transfer joins stocks in the same units (Not started)
- Clouds sit outside every boundary (Not started)
- No variable's name breaks the more test's three rules (Not started)
Written feedback
One defensible answer
It opens here once you've drawn at least one stock in the lab above. Your attempt saves as you draw.
SF 10Teachers in a country's schools
A complete model
Student teachers take a one-year course; about one in ten drops out. Newly qualified teachers count as experienced after three years, and about one in eight leaves each year before then; about one experienced teacher in fourteen leaves each year. Pupil numbers are rising, and the fewer experienced teachers there are, the heavier each one's workload. In exit surveys, teachers name workload as their main reason for leaving, and resignations rise a year or two after workload does. Head teachers believe that mentoring by experienced teachers keeps new teachers from leaving, but nobody has measured it. The education ministry proposes funding more training places; whether they would fill is untested. Pupil numbers lie outside the schools. Count every stage in teachers, student teachers included, and time in years.
The brief
- Draw a stock for each stage: student teachers, newly qualified teachers, experienced teachers. checked by the lab
- Join the stages with transfers. checked by the lab
- Declare two or more loops. checked by the lab
- Run every loop through a stock. checked by the lab
- Code each signal you judge less supported as a hypothesis. checked by the lab
- Mark what the ministry proposes to change as the one leverage point. checked by the lab
- Mark the year or two between heavier workload and more resignations as a signal delay. checked by the lab
- The leverage point's signal is a hypothesis, as mentoring's is; the legend shows the coding, and every other signal is solid. you check this
Your palette
stock flow cloud auxiliary signal stock equation polarity delay loop reinforcing loop balancing loop boundary external driver nonlinear effect evidence coding leverage point behavior note 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. Drag a boundary by its outline or its name to move it, and by the square at its corner to resize it. Drag a behavior note to move it. Double-click or double-tap a stock's name or units, an auxiliary, a flow's name, a loop's label or name, a boundary's name or a behavior note to edit its words in place, or select it and use Rename or the fields under the canvas.
Nothing selected. Select a stock, an auxiliary, a flow, a signal, a cloud, a behavior-over-time graph, a loop label, a boundary or a behavior note on the canvas, and what you can change shows here.
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.
- Loop L
- declare a loop by selecting its signals and flows in order, then label and name it.
- Boundary B
- drag out a boundary around the system, and name it.
- Note N
- place a behavior note (press where it goes).
- 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
- G legend on or off
- 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 19 checks passed; 19 pending.
- Draw a stock for each stage: student teachers, newly qualified teachers, experienced teachers. (Not started)
- Join the stages with transfers. (Not started)
- Declare two or more loops. (Not started)
- Run every loop through a stock. (Not started)
- Code each signal you judge less supported as a hypothesis. (Not started)
- Mark what the ministry proposes to change as the one leverage point. (Not started)
- Mark the year or two between heavier workload and more resignations as a signal delay. (Not started)
Always checked
- Each loop's kind matches its − effects (Not started)
- Loop labels are unique and match their kind (Not started)
- No effect runs into an external driver (Not started)
- External drivers sit outside every boundary (Not started)
- The legend is on when effects are coded or tagged (Not started)
- Every stock has units (Not started)
- The time unit is given (Not started)
- Every stock has a flow in or out (Not started)
- Every flow has a name (Not started)
- Each transfer joins stocks in the same units (Not started)
- Clouds sit outside every boundary (Not started)
- No variable's name breaks the more test's three rules (Not started)
Written feedback
One defensible answer
It opens here once you've drawn at least one stock in the lab above. Your attempt saves as you draw.
CS 07Kelsham Primary School: four classes in a chain
A chain of stocks, and a loop through the flow that fills it
Since 2023 Kelsham Primary School has taught four classes: Reception, Years 1 and 2, Years 3 and 4, and Years 5 and 6. Children start in Reception each September; each September after that every pupil moves up a year, those finishing Reception, Year 2 and Year 4 into the next class, and Year 6 leaves for secondary school. Each October's count of every pupil sets the school's funding for the school year after it, at £4,800 a pupil. With less funding, Years 3 and 4 were taught as one class, and Priya Shah and other parents weigh mixed-age classes when they choose a school for a child about to start. Leave out pupils who move school during a school year. Count every class in pupils, and time in years.
The brief
- Draw a stock for each class: Reception, Years 1 and 2, Years 3 and 4, Years 5 and 6. checked by the lab
- Join the classes with transfers, as pupils move up each September. checked by the lab
- Close one reinforcing loop from the classes through the school's funding to the flow of children starting. checked by the lab
- Run the loop through a stock. checked by the lab
- Mark the school year between the October count and the funding it sets as a signal delay. checked by the lab
- The October count reads every class, not only Reception: the funding follows every pupil on roll. you check this
Your palette
stock flow cloud auxiliary signal polarity delay loop 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 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, a flow's name 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.
Nothing selected. Select a stock, an auxiliary, a flow, a signal, a cloud or a loop label on the canvas, and what you can change shows here.
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.
- Loop L
- declare a loop by selecting its signals and flows in order, then label and name it.
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 13 checks passed; 13 pending.
- Draw a stock for each class: Reception, Years 1 and 2, Years 3 and 4, Years 5 and 6. (Not started)
- Join the classes with transfers, as pupils move up each September. (Not started)
- Close one reinforcing loop from the classes through the school's funding to the flow of children starting. (Not started)
- Run the loop through a stock. (Not started)
- Mark the school year between the October count and the funding it sets as a signal delay. (Not started)
Always checked
- Each loop's kind matches its − effects (Not started)
- Loop labels are unique and match their kind (Not started)
- Every stock has units (Not started)
- The time unit is given (Not started)
- Every stock has a flow in or out (Not started)
- Every flow has a name (Not started)
- Each transfer joins stocks in the same units (Not started)
- No variable's name breaks the more test's three rules (Not started)
Written feedback
One defensible answer
It opens here once you've drawn at least one stock in the lab above. Your attempt saves as you draw.
Sources
Section titled “Sources”- Matthew A. Cronin, Cleotilde Gonzalez and John D. Sterman, “Why Don’t Well-Educated Adults Understand Accumulation? A Challenge to Researchers, Educators, and Citizens”, Organizational Behavior and Human Decision Processes 108, no. 1 (2009), on the correlation heuristic and the department store task.
- John D. Sterman, Business Dynamics: Systems Thinking and Modeling for a Complex World (Irwin/McGraw-Hill, 2000), chapter 9, S-Shaped Growth: Epidemics, Innovation Diffusion, and the Growth of New Products, on epidemics; chapter 11, Delays, on delays in material and in information; and chapter 12, Co-Flows and Aging Chains.
- Jack B. Homer and Rogelio Oliva, “Maps and Models in System Dynamics: A Response to Coyle”, System Dynamics Review 17, no. 4 (2001), on what simulation adds to maps.
- Geoff Coyle, “Qualitative and Quantitative Modelling in System Dynamics: Some Research Questions”, System Dynamics Review 16, no. 3 (2000), the paper Homer and Oliva answer.