The spread of infection can be simulated using System Dynamics (SD) models such as the SIR model. A simulator, based on this type of simplified models (cf. citation below), is provided at this link. Although very basic, the ‘sim’ can provide useful insights into the dynamics of Covid-19 propagation.

“Epidemic modelling is extremely complex, and small changes in the way it’s done can have huge impacts on the results.” — Kathryn Snow

Visualizing the impact of social distancing measures

Countries around the world are implementing social distancing measures to keep people from mixing and to prevent the collapse of the health system. Using the ‘sim’, you can attempt to “flatten the curve” by reducing the average number of people contacted per person per day, dividing it by 4, for example, as shown Figure 1.

Need for Hospital Beds
Figure 1: Need for Hospital Beds

When hospitals are overwhelmed, the mortality due to SARS-CoV-2 is likely to increase (non-Covid-19 patients can also be affected, if the medical services, ordinarily available for these patients, are redirected to those who suffer from the virus).

Covid-19 Mortality (Deaths per Day)
Figure 2: Covid-19 Mortality (Deaths per Day)

You can see this effect when using the ‘sim’: when the hospitals’ bed occupancy rate reaches 100% (about 75 days after the beginning of the outbreak), a sudden change in the Covid-19 mortality rate (Figure 2) causes a two-fold increase in the number of deaths at the end of the simulation (Figure 3).

Covid-19 Mortality (Cumulative Deaths)
Figure 3: Covid-19 Mortality (Cumulative Deaths)

Structure of the System Dynamics (SD) model

The model is basically a SIR model, very similar to the one described by John Sterman in his book Business Dynamics: Systems Thinking and Modeling for a Complex World.

It consists of 6 “Nodes” (where “Stocks” accumulate) and 7 “Junctions” (circulating “Flows” between “Nodes”), as shown in Figure 4. Their characteristics are provided in the table below.

Modelling Covid-19’s Spread
Figure 4: Modelling Covid-19’s Spread
Object Comments Default values
nP Node, susceptible population (virus-free). Initial value: 100,000.
jPI Junction, infection rate (people per day). Four dependencies:
(1) Susceptible population, virus-free (nP).​
(2) Average number of people an average person physically meets in a day (contact rate).​
(3) Probability that a random person within the population has the virus.​
(4) Probability that a contact between an infected and a susceptible person leads to infection (infectivity).
(2) Contact rate: 5 (arbitrary value).​
(3) (nI + α × nC) / (Total population – nD). Total population: 100,000. α is the proportion of nC that show no symptoms, 25% according to NPR.org (visited on April 5, 2020). We assume people with symptoms ((1-α) × nC) will undergo quarantine and isolation.
(4) Covid-19 infectivity: 5.8% according to dwh.at (visited on April 5, 2020).
nI Node, infectious population (incubation period, no symptoms). Initial value: 1.
jIC Junction, people (per day) with the virus for whom the incubation period is over.​ Two dependencies:
(1) Infectious population (nI).
(2) Incubation period.
(2) Time elapsed between exposure to the virus and when symptoms are first apparent, 5% according to the WHO (visited on April 5, 2020).
nC Node, people with the virus for whom the incubation period is over.​ Initial value: 0.
α is the proportion of nC that show no symptoms, 25% according to NPR.org (visited on April 5, 2020).
β is the proportion of people with symptoms ((1-α) × nC) who will recover without having to be hospitalized, 86.2% ​according to LaLibre.be (visited on April 5, 2020).
jCR Junction, people (per day) who will recover without having to be hospitalized.​ Two dependencies:
(1) (α + (1-α) × β) × nC.
(2) Recovery period.
(1) jCR accounts for (a) people who show no symptoms (α × nC), and, (b) people with symptoms who will recover without having to be hospitalized, (1-α) × nC × β.
(2) Time taken for a full recovery, 20 days after symptoms started according to the Fei Zhou et al. (visited on April 5, 2020).
jCH Junction, people (per day) requiring hospitalization.​ Two dependencies:
(1) (1-β) × (1-α) × nC.​
(2) Delay to hospitalization.​
(2) Mean delay (days) from the onset of symptoms to hospitalization, 4 days (arbitrary value).
nH Node, people in hospitals. Initial value: 0.
jH_out Junction, people (per day) leaving hospitals.​ Two dependencies:
(1) People in hospitals (nH).​
(2) Hospitalization duration.​
(2) Hospitalization duration: 10.4 (8 days if critical care is not required and 16 days if critical care is required) according to Neil Ferguson et al. (visited on April 5, 2020).
nR Node, people who have recovered from the virus. Initial value: 0.
jR_in Junction, people (per day) recovering from the virus.​ Three dependencies:
(1) People with symptoms, (1-α) × nC.​
(2) Infection fatality ratio.
(3) Recovery period.
(2) Infection fatality ratio (IFR): 0.9% according to Neil Ferguson et al. (visited on April 5, 2020). IFR takes a higher value (1.35%, arbitrary value) when hospitals are overwhelmed (no more beds available).
(3) Recovery period: 20 days after symptoms started according to the Fei Zhou et al. (visited on April 5, 2020).
nD Node, deaths from Covid-19. Initial value: 0.
jD_in Junction, people (per day) dying from the virus.​ Three dependencies:
(1) People with symptoms, (1-α) × nC.​
(2) Infection fatality ratio.
(3) Delay to death.
(3) Formula (arbitrary): delay to hospitalization + µ × hospitalization duration.
µ = 75% when hospitals are working normally.
When hospitals are overwhelmed (no more beds available), µ = 25%.

[Copyright Notice] Our Simulation Models and Scripts are shared under a Creative Commons License