Vithanco

"VGL Guide — Example 18: Causal Loop Diagram (CLD)"

Estimated reading time: 1 minutes.

Example 18: Causal Loop Diagram (CLD)

A systems analysis diagram modelling population dynamics with reinforcing and balancing feedback loops. Causal Loop Diagrams use "same" links (solid, marked "s") where both variables change in the same direction and "opposite" links (dashed, marked "o") where they change in opposite directions:

vgraph populationCLD: CLD "Population Dynamics" {
    node births: Stock "Births";
    node population: Stock "Population";
    node deaths: Stock "Deaths";
    node foodSupply: Stock "Food Supply";
    node crowding: Stock "Crowding";

    // Reinforcing loop: more births increase population, larger population increases births
    edge births -> population: same;
    edge population -> births: same;

    // Balancing loop: population increases deaths, deaths decrease population
    edge population -> deaths: same;
    edge deaths -> population: opposite;

    // Balancing loop: population reduces food supply, less food reduces births
    edge population -> foodSupply: opposite;
    edge foodSupply -> births: same;

    // Crowding effects
    edge population -> crowding: same;
    edge crowding -> deaths: same;
}

Note: CLD graphs model feedback loops in systems. Loops with an even number of "opposite" links (including zero) are reinforcing loops that produce exponential growth or decline. Loops with an odd number of "opposite" links are balancing loops that reach equilibrium. In this example, the births-population loop is reinforcing, while the population-deaths loop and population-food supply-births loop are balancing.