What is system dynamics?

A method for studying how a system changes over time by modeling its stocks, flows, feedback loops and delays with equations.

System dynamics diagram example

Public diagram from the Machinations Community. Open it on its own page

System dynamics is a modeling approach created by Jay Forrester in the 1950s to study how the structure of a system produces its behavior over time. It treats a system as stocks connected by flows, with feedback loops and delays. It is used for policy questions such as how a business, a city, or an epidemic will evolve under different choices.

How it works

A system dynamics model works at an aggregate level. It does not follow individuals but tracks totals like the number of customers or the amount of cash, and updates them in small time steps using rates. The method is strong at showing why a system behaves as it does, such as why growth stalls or why a fix backfires. It is weaker where individual differences matter, which is where agent-based models are used instead. Its results are usually trajectories over time that compare scenarios.

The method values simple, well-argued structure over fine detail. A small model that reproduces the main pattern of behavior, and that others can read and challenge, is usually more useful than a large one that nobody trusts.

Example

Say a hospital models bed occupancy. The stock is patients in beds, the inflow is admissions at 30 per day, and the outflow is discharges equal to occupied beds divided by an average stay of 5 days. The stock settles where discharges equal admissions: 30 times 5, which is 150 beds. If admissions rise to 36 per day, the stock climbs toward 180 over a few weeks. This is an illustration with round numbers.

How to model it in Machinations

Machinations is built on the same ideas. Pools are stocks, resource connections are flows, state connections close the loops, and Delays hold things back. Build the structure, set rates with Levers, and Play the diagram with charts to see trajectories. Use many Plays at once if randomness matters.

See system dynamics in a system you can Play

Build the rules in a Machinations diagram, change a value and Play it to watch how the system responds.