This survey asks you to think about the structure and behavior of a complex system, emphasizing the dynamics of stocks and flows. Please read the material on this page carefully before proceeding. For more information see Sterman, J. (2000), Business Dynamics: Systems Thinking and Modeling for a Complex World, chapters 6 & 7.
The behavior of complex systems arises from their structure. That structure includes networks of stocks and flows, interacting through many feedback loops.
Note for people with strong mathematics background
Note for people without strong mathematics background
A stock is a quantity accumulated or depleted over time by flows.
A flow is the rate of movement of items in or out of a stock. A flow that moves items into a stock is called an inflow. A flow that moves items out of a stock is called an outflow.
A stock-flow system is a combination of connected stocks and flows.
A bathtub is a simple example. The quantity of water in the tub is a stock. The level of water in the tub accumulates the flow of water added by the faucet, and is depleted by the flow of water exiting through the drain.
| System | Stock | Inflow | Outflow |
|---|---|---|---|
| Bathtub | Water in tub (liters) | Water entering through faucet (liters/second) | Water leaving through drain (liters/second) |
| Bank Account | Balance ($) | Deposits ($/day) | Withdrawals ($/day) |
| Department Store | People in store (people) | People entering (people/minute) | People leaving (people/minute) |
| National Debt and Deficit | National Debt ($) | Government Revenue ($/year) | Government Expenditure ($/year) |
Note the units of measure in each example. The units for a stock are quantities of an item -- for example, the amount of water in the tub, the number of people in a store, the size of the national debt. The flows are measured in the same units per time period: water flowing in or out per second, people entering or leaving a store per minute, money being received or spent by the government per year.
You can choose any unit of measure for the time period as long as you are consistent. The water flowing into your tub can be measured in liters per second, liters per minute, or liters per hour. A rate of 1 liter per second is the same as 60 liters per minute and 3600 liters per hour. You could even measure the flow as 31,536,000 liters per year. All of these measures refer to the rate at which water is flowing into your tub right now, at this instant. Whether the cumulative amount of water flowing into your tub over any given interval such as a second, minute, hour, or year is 1, 60, 3600, or 31,536,000 liters depends on whether the flow remains constant over that interval (or averages out to that rate). Most likely it won't: you shut off the faucet when your tub fills up, and if you don't, it might overflow. That is, there is feedback from the level of water in the tub to the flows.
The net flow affecting a stock is the inflow minus the outflow, where the inflow is the sum of all inflows and the outflow is the sum of all outflows. For example, the population of a country like the United States is increased by births and immigration (two inflows), and decreased by deaths and emigration (two outflows). The stock, population, accumulates the total inflow less the total outflow.
The net flow determines the rate at which the stock changes over time. If the net flow is positive, the stock will increase. If the net flow is negative, the stock will decrease. If the net flow is zero, the stock will not change. For example, the amount of water in your bathtub will increase only if water flows in through the faucet faster than it exits through the drain. The water level will fall only if drains out faster than it flows in. And the amount of water will stay constant only if the inflow equals the outflow.
Consider the example below. The first graphs show the rate at which water flows into and out of a bathtub. Time is shown on the horizontal axis and the flows (in liters/minute) are shown on the vertical axis.
The corresponding stock for this system, assuming there is no water in the tub at the beginning, is shown below:
In this example the outflow from the tub is zero -- the drain is shut. Initially, the faucet is turned off, so there is also no inflow. The amount of water in the tub remains constant. At t = 1 the faucet is turned on, and water begins to flow in at a rate of 2 liters/minute. After one minute, the tub contains 2 liters; after 2 minutes it contains 4 liters, and after 3 minutes it contains 6 liters. At this point the faucet is shut off, and the inflow falls to zero. Since inflow and outflow are now equal, the level of water in the tub remains constant (at 6 liters).
This simple example illustrates some key features of the process of accumulation:
The applet below allows you to experiment with simple stock-flow systems consisting of a stock with a single inflow and single outflow.
You can set the initial level of the stock in the "Model" panel at the bottom-left.
You set the paths for the inflow and outflow by inserting, moving, and removing points on the corresponding graphs.
For additional instructions, click on the "Instructions" menu item under the "Help" menu.
The applets used in this exercise require version 5.0 or greater of the Java runtime. If you are unable to see an applet (there is only a red X on a grey background), try updating your Java runtime. The version 5.0 Java runtime can be obtained here: http://java.sun.com/j2se/1.5.0/download.jsp. Make sure to download the JRE -- the JDK is not needed.
Try to construct the following systems before proceeding:
For each example, consider the following questions: