Getting Started with System Dynamics

An introduction to systems modeling and causal loop diagrams by someone who has only recently learned about the fields.

Billy Pierce
6 min readFeb 27, 2020

“System dynamics (SD) is an approach to understanding the nonlinear behaviour of complex systems over time using stocks, flows, internal feedback loops, table functions and time delays.” — Wikipedia, Systems Dynamics

In 2013, the New Orleans Times-Picayune ran a piece trying to tackle the age-old question: why does selling more ice cream increase the murder rate?

Well, not really. In an article published in 2013, Slate discusses how this question, despite a clear correlation between the two, is somewhat misleading. Before we get into exactly why this connection is false, let’s look at the implications of it being true.

Part 1: Links and Loops

Fig. 1: The connection between Ice Cream Sales and Murder Rate

Figure 1 depicts what is known in Systems Dynamics as a Causal Loop Diagram, or CLD. A Causal Loop diagram is a way of graphically representing the relationships between a number of variables. In our case, the only variables we are using are Ice Cream Sales and Murder Rate.

Notice the arrow between the two variables. The direction of the arrow, from Ice Cream Sales to Murder Rate, indicates that Ice Cream Sales affect the Murder Rate (but not the other way around).

In addition, notice the “+” at the tip of the arrow. This indicates a property known as link polarity — that is, that increasing Ice Cream Sales increases the Murder Rate, and that decreasing Ice Cream Sales decreases the Murder Rate. A polarity of “ — ” would indicate, unsurprisingly, that higher Ice Cream Sales would decrease the Murder Rate, and that lower Ice Cream Sales would increase the Murder Rate.

Note: In some systems dynamics applications, “+” will be represented with “S” (same relationship), and “ — ” will be represented with “O” (opposite relationship).

The usage of the word “loop” in “Causal Loop Diagram” is intentional, as, for the vast majority of Systems Dynamics applications, you are representing the interactions of interconnected loops of variable interactions.

Fig. 2: The work habits of someone who is definitely not me.

Figure 2 depicts a causal loop diagram with which many high schoolers are quite familiar — that of the relationship between Stress and Procrastination. As stress over the amount of work left to do increases, the individual represented here starts procrastinating more, to avoid thinking about what they have left to do. As they procrastinate more, however, they get more stressed over the work they have left to do, and the cycle reinforces itself.

New in this diagram is what’s known as a loop identifier. The loop identifier (in this case the “R” in the center) shows how any given loop evolves over time. The direction of the loop identifier (not shown here) just shows in which direction the loop is going (as a true loop cannot go in multiple directions), and the actual loop polarity shows whether the loop is self-reinforcing (“R”) or self-balancing (“B”). In this case, because procrastination increases as stress increases and vice-versa, this is a self-reinforcing loop.

Fig. 3: An example of a self-balancing loop.

There are two ways to distinguish between self-balancing and self-reinforcing loops. The first, fast way, is to count the number of negative links in the loop. If it’s even, the loop is almost always self-reinforcing. If it’s odd, the loop is most likely self-balancing.

The second, more precise way to determine the loop polarity is by tracing the effect of a small change around the loop. While this will usually produce the same result as the fast way, certain circumstances will benefit from having this level of detail. Luckily enough, it also doesn’t matter where you start measuring loop polarity from!

Systems Dynamics, then, studies the interactions of these loops through a series of fundamental modes: exponential, goal-seeking, and oscillation.

Part 2: Fundamental Modes of Interaction

Exponential Growth

Fig 4. The classic self-reinforcing loop.

The first type of loop behavior is one that I’ve already hinted at: exponential growth. Arising in self-reinforcing loops, exponential growth describes the graph of any variable in that loop over time (when that loop is in isolation).

Fig 5.: Procrastination over time, for that self-reinforcing loop.

Some notes on exponential interaction:

  • The quantities in the loop always double in a fixed period of time (a property of exponential functions).
  • Often, rates and ratios are confused. (Rates = unit/time [Example: 20,000 people/year]; Ratios (fractional rates) = 1/time [Example: 2%/year])

Goal-Seeking

Fig. 6: A self-balancing loop that leads to goal-seeking.

Goal-seeking is the process by which a system naturally reaches a “desired” state, represented here as the quantity “goal”. Matching whatever units the system state is defined in, the difference between the goal and the system state becomes the discrepancy, which then leads to a corrective action that leads the system state closer to the goal.

Fig. 7: An example self-balancing loop graph.

Oscillation

The last fundamental mode of interaction, oscillating graphs, arises from something we haven’t yet covered — time delays (specifically, in self-balancing loops).

Fig. 8: An oscillation diagram.

The delays listed here would all contribute to oscillation.

  • Administrative delays increase the amount of time between a discrepancy being noticed and corrective action being taken, and during this time the system changes, thus making the corrective action improper for the “true” discrepancy.
  • Action delays increase the amount of time between the corrective action being known and being completed, and during that time the “true” discrepancy can also increase.
  • Measurement delays increase the amount of time between a system state changing and that change being noticed, during which time the “true” discrepancy can also increase.

While having all of these delays would add oscillation, having any delay anywhere in the system will lead to oscillation.

Fig. 9: An oscillating graph/time.

It’s also important to note that oscillations aren’t necessarily periodic. In real-world applications especially, oscillation can be unpredictable or semi-scattered.

Basic Applications and Final Notes

With these simple, fundamental modes of interaction and an understanding of loops and links, any real-world system can be modeled and better understood. For example, if a system is experiencing exponential growth, positive loops are dominant. If a system is oscillating, the self-balancing loops with time delays are dominant. You get the idea.

As these fundamental modes interact, they produce a number of secondary, yet common, dynamics: S-curves, S-curves with oscillation, overshoot & collapse, and more.

It’s also important to understand Latent Feedback Structures — i.e, bits of overarching loops that may stay dormant in a system at the initial stages of measurement, that begin becoming more active as certain variables in the system increase. Failure to characterize or recognize these feedback structures can lead to models that, while accurate in the short-term, fail to produce sustainable predictions in the long-run. One example of a latent feedback structure would be parents intervening if you procrastinated too much, causing you to work.

Overall, a clear, well-understood application of these feedback structures can help characterize business strategies, political maneuvers, mechanical systems, and more.

Coming up: stocks and flows, business applications, and control theory.

If you’re still wondering about ice cream and murder, it’s a simple correlation/causation mixup. Both of them increase on hotter days, leading to a spurious correlation between the two.

The causal loop diagrams used here were generated using kumu.io. The graphs used were created through Google Sheets. Most of the knowledge is based on “Business Dynamics: Systems Thinking and Modeling for a Complex World” by John Sterman. Special thanks to Ted T., John F., and Lee H.

--

--