System dynamics

Track totals that build up or drain over time, and model feedback between those totals and their rates of change.

On this page
  1. An aggregate view of a system
  2. Stocks and flows
  3. Feedback and delays
  4. Check dimensions on every stock-and-flow equation
  5. Test feedback with extreme conditions
  6. When to use system dynamics

An aggregate view of a system

System dynamics tracks totals rather than individuals. A customer model, for example, might track potential customers, active customers, and churn without representing each person.

Stocks and flows

A stock is an accumulation: inventory, population, cash, installed capacity, or another quantity carried through time. Inflows and outflows are rates that change the stock. The stock rises whenever total inflow exceeds total outflow, falls when outflow exceeds inflow, and stays level when the rates balance.

System dynamicsStocks remember the net effect of flows

The stock changes by the difference between its incoming and outgoing rates.

Inflow8 / min
Stock40 unitscurrently accumulated
Outflow5 / min

d(stock) / dt = inflow − outflow = +3 / min

Feedback and delays

Feedback occurs when a system's current state influences changes that later alter that same state. Reinforcing loops amplify change; balancing loops resist it. Delays can make apparently sensible policies overshoot, oscillate, or respond too late.

Check dimensions on every stock-and-flow equation

A stock has units such as people, tonnes, or dollars. A flow must use that stock unit per unit time, such as people per day. Adding quantities with incompatible dimensions is a modeling error even when the equation produces a number.

Dimensional checks catch common mistakes such as adding a percentage directly to a population or using an annual rate as if it were a monthly amount.

Test feedback with extreme conditions

Set important inflows, outflows, delays, or feedback gains to simple extremes and predict what the stocks should do. A zero inflow should not increase a stock unless another inflow remains; a closed system should conserve the quantity it claims to conserve.

These tests make sign errors and accidental feedback loops easier to find than tuning a full model until its graph looks plausible.

When to use system dynamics

Use system dynamics for long-term questions about feedback, policy, growth, depletion, or interacting rates. Use another method when individual paths or queues matter to the answer.