Skip to content
Mental Models

Stocks & Flows

The Grammar of Accumulation

A rate is not a level — and almost every reasoning error about debt, climate, weight, and inventory comes from confusing the two. Meet the bathtub, the one model underneath all of them.

8 min Updated Jun 30, 2026

A politician steps up to a microphone and announces, with a straight face and a proud smile, that the deficit has fallen for the third year running. The room applauds. Somewhere in the back, one person quietly does the arithmetic and realizes the national debt is, at this very moment, the highest it has ever been in history — and still climbing. Both facts are true. Neither contradicts the other. And the gap between them — between a rate that is falling and a level that is rising — is the single most useful idea you are going to meet in all of systems thinking.

That gap has a name. It is the difference between a flow (the deficit: new borrowing per year) and a stock (the debt: total amount owed). Once you can see the difference, you cannot unsee it, and a startling fraction of confident-sounding claims about debt, climate, weight, hiring, and inventory fall apart in your hands. This whole course is about that one distinction — what systems thinkers call the grammar of accumulation — and how to wield it.

You’ve met the tub before — now we drain it

If you came here straight from Feedback Loops, you’ve already shaken hands with the bathtub. There, it was a two-minute warm-up: you needed to know that a stock is a level and a flow is a rate just so you could go study the loops that wrap around them — the thermostat reading a temperature and switching a heater. We borrowed the vocabulary and ran.

This course goes back and pours the foundation properly. Because stocks and flows aren’t just preamble to loops — they are a complete model in their own right, and the place where most people’s reasoning about the world quietly breaks. We’re going to spend real time on the things the feedback course had to skip: why a stock smooths and lags its flows, how fast a system can actually change (and why it overshoots when it tries), and how to turn “stock or flow?” into a debugging reflex you run on every headline. Same tub. Much deeper water.

Tip:

The one-sentence version

A stock is a quantity that has accumulated — a level you could freeze time and count. A flow is a rate that fills or drains it — an amount per unit of time. The entire course hangs on never confusing the two.

The bathtub, in one picture

Forget debt for a second and picture an actual bathtub. Water pours in from the faucet. Water leaves through the drain. And water sits in the tub. That’s the whole model, and every term has a precise home:

  • The water in the tub is the stock — the level, the amount that has piled up, the thing you could measure at a single frozen instant (40 liters, right now).
  • The faucet and the drain are flows — rates, measured in amount per time (10 liters per minute in, 6 liters per minute out).

The faucet doesn’t have water; it delivers water at a rate. The tub has water; it doesn’t flow. Already you can feel the trap: the level and the rates are different kinds of thing, measured in different units, and yet ordinary language smears them together constantly. The rest of this course is a long, careful campaign against that smear.

Here’s the tub itself. The faucet and the drain are two independent sliders — set them however you like — and the time slider lets you scrub forward and watch the level respond. Start by doing the most boring possible thing: set the faucet and the drain to the same number, then drag time all the way across.

Fill the tub

The bathtub: a stock and two flows

Set the faucet and the drain — two independent rates — then drag the time slider. Watch the level integrate the net flow: it ramps up when the faucet wins, drains when the drain wins, and holds perfectly steady when they match (at any level).

74 L
LevelTime →
The flows (constant)
Inflow
6 L/min
Outflow
4 L/min

Inflow 6 beats outflow 4 L/min: a net of +2 L/min. The stock climbs by 2 L every single minute — a straight ramp — even though neither flow ever changes. By minute 12 the level has reached 74 L. The level is the running total of the net flow, not the flow itself.

6
4
12 min
Stock (the level)InflowOutflow
The faucet and the drain are flows (rates). The water is the stock (a level). Set them equal and the level freezes at any height — even though water is roaring through. Make the faucet win and it ramps up; make the drain win and it falls — but never instantly.

Did you catch the strange part? With the faucet and drain set equal, the level doesn’t move at all — it just sits there, flat as a table, even though water is gushing through at full tilt. A busy, roaring system that nonetheless holds perfectly still. That’s your first clue that the level and the rates lead separate lives. Now nudge the faucet one notch higher than the drain and scrub again: a slow, relentless climb that never stops, from flows that never change. We’ll take both of those apart in the lessons ahead.

Before you read — take a guess

A bathtub holds 40 liters. The faucet runs at 10 L/min; the drain runs at 10 L/min. You leave for an hour and come back. Roughly how much water is in the tub?

Why this is worth a whole course

You might reasonably ask: it’s a bathtub. How hard can it be? And the answer is that the model is trivial and the mistakes are everywhere — made daily, in public, by people who should know better, with real money and real consequences riding on them. A few you’ll be able to dismantle by the end:

The claim (about a flow)What people hear (about a stock)Why it’s wrong
”The deficit fell this year.""The debt fell this year.”A smaller deficit is a smaller inflow — the debt still grows, just slower.
”Emissions have plateaued.""The CO2 problem is leveling off.”Flat emissions still exceed absorption, so atmospheric carbon keeps rising.
”I cut my calories today.""I’m losing weight.”Eating less trims the inflow; you lose weight only when burn beats intake, sustained.
”We slowed our hiring.""Our headcount is shrinking.”Slower hiring is still positive hiring — the team grows until people leave faster than they join.

Every row is the same shape: a comforting statement about a rate that the listener silently upgrades into a statement about a level. It is the cardinal error of accumulation, and it has fooled treasuries, newsrooms, and dieting apps alike. You’re about to become immune.

Warning:

The pitfall this whole course hunts

A falling flow is not a falling stock. Slowing how fast something fills is not the same as draining it. Anytime someone celebrates a rate going down — the deficit, emissions, the pace of hiring — ask the only question that settles it: is the inflow now below the outflow? If not, the tub is still filling.

How this connects to what you already know

This course is the floor beneath several you may have already walked. Feedback loops work by sensing a stock and adjusting a flow — a thermostat reads the temperature (stock) and toggles the heater (flow) — so you literally cannot describe a loop without this vocabulary. Compounding is what happens when a stock feeds back to swell its own inflow (your savings earn interest that becomes more savings). Bottlenecks are a statement about flows — the slowest stage caps the rate — while the work piling up in front of one is a stock. Stocks and flows are the shared alphabet under all of it.

And it reaches back to second-order thinking, too. Remember how a consequence can compound over time rather than firing once and stopping? A stock is why. Effects don’t evaporate the instant they happen; they accumulate in a stock, and stocks remember. The reason a decision’s effects pile up over years is that there’s a bathtub catching them.

The map of the course

Five teaching lessons, then one exam you can’t undo:

  1. Stock or Flow? — the two-second test that sorts any quantity into level or rate, the units giveaway, and dynamic equilibrium (a flat stock with roaring flows).
  2. Stocks Integrate — the one accumulation rule, why a stock is the running total (integral) of its flows, and full worked examples with real numbers.
  3. The Deficit Fallacy — the signature error in depth: why a falling inflow can still leave a rising stock, across debt, carbon, weight, and headcount.
  4. Inertia, Lags & Overshoot — why stocks make systems slow, why “slow” causes overshoot, and how to estimate how long a change actually takes.
  5. Stock-Flow Thinking — the distinction as a daily debugging tool, with a checklist, and the threads back to compounding, bottlenecks, and loops.

Then a Final Exam — graded, one question at a time, one-way: once you answer, it locks. No back button, no retries.

How to use this course

One rule does most of the work: guess before you peek. Commit to an answer in your head before you reveal any explanation. Systems thinking is full of answers that feel obvious and turn out backwards — the deficit one got a whole room to applaud the wrong thing. The small sting of guessing wrong is exactly what makes the right model stick.

Next up: Stock or Flow? — because before you can reason about accumulation, you have to be able to tell, instantly, which of the two things you’re even looking at.

Mark lesson as complete