Stock-and-Flow Diagram
Why it matters
A stock-and-flow diagram is the bathtub picture made formal — it separates the two kinds of quantity that human intuition keeps confusing. Stocks are accumulations, the things that pile up and exist at a moment: water in the tub, money in an account, people in a city, carbon in the atmosphere. Flows are the rates that fill or drain them: the faucet and the drain. Drawing them apart matters because a stock and its flows behave nothing alike, and almost everyone — including experts — reasons about them as if they were the same thing.
For example: ask people what happens to atmospheric CO2 if we cut emissions. Most say the concentration falls. It does not. Emissions are an inflow; concentration is the stock. The tub keeps filling as long as the faucet runs faster than the drain — so cutting emissions slows the rise, but the stock keeps climbing until inflow drops all the way to the outflow. John Sterman ran exactly this experiment on MBA students and watched them get it wrong again and again. A stock-and-flow diagram externalizes the structure that intuition cannot hold, so the right answer becomes something you can read off the page.
- What it shows. The difference between what accumulates (stocks, drawn as rectangles) and what merely flows (rates, drawn as pipes with valves) — and how the flows wire up to change the stocks over time.
- When to reach for it. A system whose behavior depends on accumulation: a population, a budget, an inventory, a reservoir, a disease spreading through a community — anywhere “how much is there now” is governed by “how fast it comes in versus goes out.”
- How to read it. Find the rectangles (the things that pile up), trace the pipes that fill and drain each one, and ask whether inflow currently beats outflow — that single comparison tells you whether the stock is rising or falling right now.
- What you’d miss without it. That a stock can keep rising even while its inflow is falling — the counterintuitive fact behind almost every misjudgment about debt, climate, and headcount.
- Where it misleads. Get the stock/flow distinction wrong — call a rate an accumulation, or vice versa — and the diagram does not merely look off; it predicts the system’s behavior incorrectly. The discipline of deciding what truly accumulates is the whole burden of drawing it.
How to read it
Picture a bathtub. The water in the tub is a stock — an accumulation, drawn as a labeled rectangle. The faucet pouring in and the drain letting out are flows — rates of change, drawn as pipes with a valve symbol (a little bow-tie or knob) on each. The valve is the control point: it is what a flow’s rate equation acts on. Where the water comes from before the faucet, and where it goes after the drain, sit outside the picture — drawn as clouds, the sources and sinks beyond the model’s boundary that the analyst has deliberately chosen not to track. Finally, thin connectors (light curved arrows) run from other variables to the valves, carrying information — they say “this rate depends on that quantity,” without moving any water themselves.
So the vocabulary is small and physical: rectangles hold stuff, pipes-with-valves move it, clouds mark the edge of the world, thin arrows tell the valves how fast to open. Read a diagram by finding every rectangle, then for each one tracing the pipes that fill it and the pipes that drain it. The behavior follows from one comparison: a stock keeps rising as long as inflow exceeds outflow — even while inflow is falling. That last clause is the insight the picture exists to make obvious, and it is exactly the CO2 emissions-versus-concentration confusion: emissions can be dropping every year while concentration still climbs, because the inflow, though shrinking, has not yet fallen below the outflow.
This is what sets it apart from its closest relative. A causal loop diagram shows feedback qualitatively — arrows and signs telling you which things push on which, where the reinforcing and balancing loops are. It is fast and it is honest about influence, but it cannot tell a stock from a flow, so it cannot tell you whether something is climbing or settling. The stock-and-flow diagram makes that distinction explicit, and that is precisely what lets it be simulated: once every stock has a starting value and every flow has a rate equation, the diagram is no longer just a sketch of causes — it is a model you can run forward in time.
When to use it
The stock-and-flow diagram belongs to the CAUSAL/SYSTEMS family — the diagrams that make cause-and-effect structure visible — and within it, this is the quantitative-accumulation tool: the one you reach for when you need to model not just what influences what, but how much piles up and how fast. A properly drawn stock-and-flow diagram is the basis of a simulatable system-dynamics model: every flow carries a rate equation, every stock an integral, and the whole thing can be numerically integrated to produce the time paths the stocks actually follow. Knowing the boundaries with its two nearest relatives is how you pick the right tool:
- A Causal Loop Diagram captures feedback qualitatively — the loops, the polarities, the vicious and virtuous cycles — but draws no distinction between what accumulates and what flows, so it cannot be run forward. Use it to sketch the feedback hypothesis; use stock-and-flow to test whether that hypothesis actually generates the observed behavior.
- A Causal DAG is acyclic and has no accumulation — a directed graph for reasoning rigorously about which causes to control for when estimating an effect from data. Reach for it for statistical identification, not for dynamics over time.
Reach for a stock-and-flow diagram when accumulation is the heart of the question — population, supply chains, cash position, atmospheric carbon, an epidemic, technical debt, institutional trust — and when you may eventually want to simulate, not just argue qualitatively. Skip it when feedback structure is all you need at this stage (start with a causal loop diagram) or when the goal is to measure a causal effect from data rather than model its dynamics (use a causal DAG). It is the bridge from the qualitative feedback sketch to the running simulation.
How Ora builds it
Ora produces a stock-and-flow diagram from a semantic spec — a structured description that declares the stocks (rectangle nodes, each named for what it accumulates and in what units), the flows (pipe edges with valve markers, each connecting a source to a stock, a stock to a sink, or one stock to another), the sources and sinks (cloud nodes at the model boundary), the information links (thin curved arrows from auxiliary variables to the flow valves), and optionally the equations (an initial value on each stock and a rate equation on each flow). That spec is rendered into the familiar Vensim/Stella-style picture — rectangles for stocks, valved pipes for flows, clouds at the edges, light arrows for influence — with an accessible four-level description (what each stock accumulates, what changes it, the influences and their signs, and the behavior the structure implies) and keyboard navigation across the typed graph. When the equations are supplied, the rendered diagram is a complete simulation model that external tools (Vensim, Stella, AnyLogic, or a Python integrator) can numerically integrate.
The diagram is the visual face of Ora’s Systems Dynamics (Structural) producing mode: when you ask Ora to map a system’s stocks and flows, that mode runs the discipline of deciding what truly accumulates, what merely flows, and where the boundary sits — and this artifact is how it shows its work.
The technique is the work of Jay Forrester, who founded the field of system dynamics at MIT in the late 1950s and set out the visual conventions in Industrial Dynamics (1961). The discipline’s standard graduate reference is John Sterman’s Business Dynamics: Systems Thinking and Modeling for a Complex World (2000), whose “bathtub” experiments are the empirical case for why these diagrams matter cognitively; and its most beloved introduction is Donella Meadows’ Thinking in Systems: A Primer (2008). The underlying formalism is a system of coupled ordinary differential equations — integrate the inflows minus the outflows, and the diagram becomes graphically explicit calculus.
Related
- Causal Loop Diagram — the family member for qualitative feedback: the loops, delays, and polarities, drawn without the stock/flow distinction that makes a model simulatable. The sketch that stock-and-flow turns into a runnable model.
- Causal DAG — the acyclic, accumulation-free member of the family: a directed graph for identifying which causes to control for when estimating an effect from data.
- Fishbone Diagram — the qualitative cause-enumeration tool from the same family: a fish-skeleton map of every candidate cause of one defined problem, organized by category.
- Systems Dynamics (Structural) (mode) — the analytical operation this diagram renders: the mode that decides what accumulates, what flows, and where the boundary sits.