Font size


Element used to identify causal loops in System Dynamics models.

Loop is just a graphical identifier, consisting of a label with a brief description of the loop meaning and an arrow showing the loop direction. It does not define the causal loop itself, but only shows information about existing causal dependencies in your stock and flow diagram, i.e. shows how variables affect one another.

Adding loops, you can help other users of this model to understand influences and causal dependencies that exist in the stock and flow diagram.

Reinforcing and balancing loops

Loops can be either reinforcing or balancing. To determine if a causal loop is reinforcing or balancing, one can start with an assumption, e.g. “VariableN increases” and follow the loop around.

The loop is:

  • reinforcing if, after going around the loop, one ends up with the same result as the initial assumption.
  • balancing if the result contradicts the initial assumption.

Or you can use the alternative definition:

  • reinforcing loops have an even number of negative links (zero also is even)
  • balancing loops have an uneven number of negative links.

There are two loops in the diagram shown in the figure below: one reinforcing and one balancing:

  • Depletion loop is balancing. Starting with an assumption that SusceptiblePopulation grows and going around the loop counterclockwise (according to the direction of the link going from SusceptiblePopulation to InfectionRate), we get growth of InfectionRate, but at the same time this leads to decrease of SusceptiblePopulation, so the result contradicts the initial assumption. Alternative check of number of negative links: in this loop we have one negative link — the flow link that decreases the stock value, so again this loop is balancing.
  • Contagion loop is reinforcing. Let`s go around the loop clockwise. The increase of InfectiousPopulation leads to increase of InfectionRate, and that by-turn leads to greater increase of InfectiousPopulation. Both links in this loop are positive.

To add a loop

  1. Drag the  Loop element from the  System Dynamics palette to the graphical diagram of the agent.
  2. Go to the Properties view to set up properties of the loop.
  3. Set the Direction of this loop — either Clockwise or Counterclockwise.
  4. Choose the symbol that you want to be shown for this loop from the Type group of buttons. You can choose B (stands for Balancing), R (Reinforcing), or specify your own text in the edit box to the right. We recommend you to number your loops (R1, B1, R2, etc.) to simplify referencing them by the users of the model.
  5. You can specify a brief description of the loop (usually — two or three words) that will be shown on presentation in the Text property.
  6. Optionally you can type more detailed description of this loop on the Description property page (but it will not be visible on the presentation, users will be able to see it only on this particular property page and in the model documentation).



Direction — Here you can specify the direction of the loop — whether it is Clockwise or Counterclockwise.

Type — Here you can choose the symbol that will be shown by the loop element. You can choose B (stands for Balancing), R (Reinforcing), or specify your own text in the edit box to the right.

Color — The color of the loop (both the text label and the arrow). By default loops are shown blue. However, you can change the default color to any other you want.

Text — Here you specify a brief description of the loop that will be shown on presentation.

How can we improve this article?