Get in Touch

Stock And Flow Diagrams

An introduction
The last section on Causal Loop Diagrams showed that to go beyond simply analyzing and visualizing the feedback structure of a system, a more powerful technique is needed:
  • a technique that visually distinguishes between the parts of the system and what causes them to change
  • a technique that allows for the precise – quantitative – specification of all the system’s parts and their interrelation
  • a technique that can provide a basis for simulating the behavior of the system over time
In short: we need a technique that enables us to create a business prototype of the system that will allow us to explore its behavior and to test the effect of changes to the system’s structure and the policies governing its behavior. Stock and flow diagrams, along with the mathematical expressions that specify each construct, provide such a technique.

What Exactly Are Stock And Flow Diagrams?

Stock and flow diagrams provide a richer visual language than causal loop diagrams, we distinguish between six main kinds of elements: stocksflowsconverters, connectors, sources and sinks. These elements are explained below and visualized in the following diagram:
Distance velocity
Stocks. A stock represents a part of a system whose value at any given instant in time depends on the system's past behavior. The value of the stocks at a particular instant in time cannot simply be determined by measuring the value of the other parts of the system at that instant in time – the only way you can calculate it is by measuring how it changes at every instant and adding up all these changes.
This sounds more complicated than it is, so let us look at a simple example: driving a car along the motorway. Say you start driving at 8:00 AM and you want to know how far you have driven at 10:00 AM. We know that the only factor that determines this is the speed you were driving at. But it is not enough to just know your current speed at 10:00 AM, you actually need to know exactly how fast you were driving at every instant in time between 8:00 AM and 10:00 AM to calculate this. In this example, the distance you have driven is a stock – if you look at the dashboard in your car, you will most likely find a representation of this stock on your car’s dashboard: the mileage counter (odometer). On diagrams, stocks are represented by rectangles.
Flows. Flows represent the rate at which the stock is changing at any given instant, they either flow into a stock (causing it to increase) or flow out of a stock (causing it to decrease).
To continue our example above, the car’s velocity at any particular instant is a flow that flows into the mileage counter stock. It is important to note here that the distinction between stock and flow is not absolute – from the point of view of the mileage counter the velocity is a flow. But the velocity itself most likely also changes and depends on the acceleration and deceleration. So, even though we can determine the current velocity almost instantaneously (this is done by the speedometer), we again cannot explain why the velocity is at its current level without knowing the system's past behavior. On diagrams, flows are represented by small valves attached to flow pipes that lead into or out of stocks.
Converters. Converters either represent parts at the boundary of the system (i.e. parts whose value is not determined by the behavior of the system itself) or they represent parts of a system whose value can be derived from other parts of the system at any time through some computational procedure.
To continue our motorway example, we could assume that acceleration and deceleration are determined by outside circumstances (e.g. such as the positions of the accelerator and brake). In this case, we would model both the accelerator and brake positions as converters. On diagrams, converters are represented by small circles.
Connectors. Much like in causal loop diagrams the connectors of a system show how the parts of a system influence each other. Stocks can only be influenced by flows (i.e. there can be no connector that connects into a stock), flows can be influenced by stocks, other flows, and by converters. Converters either are not influenced at all (i.e. they are at the systems' boundary) or are influenced by stocks, flows and other converters.
Source/Sink. Sources and sinks are stocks that lie outside of the model's boundary – they are used to show that a stock is flowing from a source or into a sink that lies outside of the model's boundary. On diagrams, sources and sinks are represented by small clouds.
The notation used in stock and flow diagrams was originated by Jay Forrester in his book “Industrial Dynamics”. It was based on a hydraulic metaphor: the flow of water into and out of reservoirs. Hence the names of these elements and their visualization.
The key feature of a stock and flow diagram is that each construct can be precisely specified using a mathematical formalism – viewed from a mathematical perspective, such fully specified stock and flow models are just a way of visualizing a corresponding set of integral equations.
In most cases these integral equations cannot be solved analytically, but due to the computing power available today even on portable laptops, it is possible to solve these equations numerically using computer simulation techniques.
To make these definitions even more tangible, let us continue the simple project management example we started in the section on causal loop diagrams – to make reference easier, the diagram is repeated here:
cld elaborate schedule pressure
Let us try and sort the parts in this diagram according to the categories we identified above:
Stock and Flow Diagram in English
We can make our thinking explicit in the following stock and flow diagram (note that we have added a new stock to represent the closed tasks):
Stock Flow
In the next section on System Dynamics Simulation , we will create a simulation model based on this stock and flow diagram.