The South African System Dynamics Chapter introduced the first Annual System Dynamics Modelling Competition in South Africa in 2018, initiated and led by council members Corne du Plooy and Andries Botha. The competition software licences for the duration of the competition has always been sponsored by iSee Systems. The competition started off with entrants from South African and Africa but soon expanded to include modellers from around the world!

6th SASD Chapter Competition

This competition celebrated the spirit of inquiry, the pursuit of excellence, and the shared goal of crafting sustainable solutions for the future. It was a call to thinkers, dreamers, and change-makers who believe that through collaboration and sophisticated analysis, we can unlock insights that lead to a better world. We had participation from Egypt, United States, Ethiopia, China, Indonesia, Portugal, Iran, Bangladesh, Turkey and of course South Africa, a total of 30 participants. The competition was divided into 3 streams with separate winners and then an overall winner. Stream 1 was around the Fish Banks model, Stream 2 focused on ecological dynamics and Stream 3 on hydrological dynamics.

5th SASD Chapter Competition

The 2022 5th annual modeling competition had 38 Registrations globally. About 70% of registrants had less than 18 months experience with System Dynamics. We hosted 7 workshops throughout the year, 3 hours each. Additionally, we provided templates for the final submission report, where to learn more about system dynamics and for the first time we had interim submissions to help them make progress gradually. We only received 3 submissions, one from Egypt, USA and China. The winner was Linui Hou who constructed a simulation and full report on the Technology Diffusion System Model of China’s Communication industry. iSee Systems sponsored the software for the competition and a 6 months license to the winner of the competition.

4th SASD Competition

In 2021, we had 48 global registrations! The growth may have been due to our new marketing strategies or the support of the international community, or maybe the growing global interest in learning system dynamics. As we all know, system dynamics takes time to learn, and as such, we had six FREE online interactive workshops to get everyone on board. The following statistics revealed some interesting aspects of the participants:

The graphs show that about 37% of the group had practised systems thinking, yet only 23% had more than one year of system dynamics experience. The final graph revealed that more than 87% of participants had never created mathematical simulations or only simple ones! At the end of the competition, the participants produced a full, working simulation that system dynamics experts evaluated. The top submissions were discussed at the South African System Dynamics Conference in November.  We were excited to see how our participants learnt and grew throughout the year.

3rd SASD Competition

Participants were assisted with a template and some modelling guidance.

1) Recognize the Problem
a. It is not the system being modelled explicitly since systems are too large. It is a specific problem within the system. The first step is to identify the problem that needs investigating.
b. Identify the components in the system that interacts with the problem.
c. Determine the behaviour over time (reference modes) of these components.
d. Define a purpose for the model. This is critical as the model construction should address the purpose and the validity of the model needs to be measured against the purpose of the model. (What question(s) does the model need to answer)
e. Define a boundary of what you will include in the model. The boundary is a deliberate limitation that is put on the scope of the model. All models are simplifications of reality and need to focus on selected elements to prevent analysis paralysis.
2)Create a Causality Diagram OR Causal Loop Diagram
a. Start with the key variables (3 to 4) identified in step 1b.
b. Identify the causality between different variables. Indicate the strongest causal impacts. If the perceived causality is much weaker relative to the other causalities, exclude it.
c. After the first causalities are indicated, look for feedback between variables. For example, the more births there are in a population, the higher the population would become. The feedback then is that the higher the population becomes, the more births would take place.
d. Integrate more variables from step 1b to the diagram and identify their causalities.
e. Add more variables into the relationships that require more definition to make practical sense.
f. Ensure that the loops all close and that the diagram represents the challenge and purpose identified in step 1
3) Create a Stock flow diagram
a. Identify the stocks from the Causal Loop Diagram that have been created in the step 2f. A stock can be defined as the entities that remain when the system comes to a standstill or if time is stopped. As an example, consider the population model. When time is frozen, in that moment no person can be born or die and thus the flows, births and deaths, cease to exist. The population still exists and thus the population would be a stock and the other two would be flows.
b. Identify the flows. This is partly identified in the step 3a but the additional requirement for a flow is that it always removes or adds to the value of the stock. Births and deaths add and remove from the stock but something like birth rate or life expectancy would not. The latter two would not be flows.
c. The birth rate or life expectancy would be auxiliaries. Auxiliaries are equations, constants and relationships that may exist between variables that will affect the flows. Remember to make a differentiation between aspects like perceived, desired and actual variables.

d. Draw the stocks and flow diagram, linking all the auxiliaries together.
4) Define Equations:
a. Define the equations of each flow. A flow should be a function of a stock and not a function of other flows. Typical flow equations use fractional rates like birth rate (births / population) and life expectancy (deaths = population/life expectancy). Multipliers might also be used to increase or decrease a rate by multiplying or addition to the normal rate.
b. Define auxiliaries. These are the relationships between variables. A simple example is the population density. Which would be the population divided by the area.
c. Define non-linear / effect variables. This is where table functions are used to define the effect of one variable on another as discussed before. As an example, a non-linear relationship may exist between population density and life expectancy that can be found in literature. This can be used to translate the population density into a new dynamic life expectancy which will feed back into the deaths outflow.
d. Define the initial values of every stock which can often be found in literature or data collection. This is the starting position of the state variables (stocks) in the system.
5) Test the model
a. Start small. It is often best practise to start with one stock. Make sure the behaviour shown by the small model is consistent with the expectation of that stock(s). If the behaviour is satisfactory, iteratively expand on it. Remember to keep it simple.
b. Start model in equilibrium. At the start ensure that the stocks are in equilibrium which means the flows are either zero or every inflow and corresponding outflow is equal.
c. Step change. Make a step change on a key auxiliary variable and observe how the stocks in the system changes. Example, make a step change in birth rate from 0.02 to 0.01
d. Validate. The results that are obtained from step 5c should be compared to the purpose and reference modes identified in step 1. If the behaviour does not align, check all the equations associated with the stock. Check the causalities identified if the problem persists. If the problem still persists although all the methods followed are consistent, there might be a possibility that the reference mode has not been correctly defined or the structure identified needs alteration.
e. Iteration. In step 5d the validation might necessitate the alteration of the model structure or a complete redo of the understanding of the system. This is more than okay, it is really good. It shows that the modeller has deepened their level of understanding. During every iteration it will improve and reveal deeper insight.
f. Policy evaluation. Once the model is tested and produces validated results, current and new policies can be tested. An example would be something like ‘would the abolishment of abortion really increase birth rates and consequently the work force of a country?’ Or ‘what is the long term consequence on the work force of putting hefty tax laws on families with more than one child?’

2nd SASD Competition

1st SASD Competition