Like any other model, SABCoM needs several inputs to run. There are two types of inputs: parameters, and (city) data.


The model reads parameters from a json file that should be named ‘parameters.json’ and should be situated in your input folder. The parameters in the file are:

  • time: number of days that the model runs;

  • number_of_agents: The total population of people in the model simulation. The default number is 100 000 agents;

  • exposed_days: average number of days before an agent will be able to infect others;

  • asymptom_days: average number of days agents are infected without symptoms;

  • symptom_days: average number of days agents with mild symptoms are infectious;

  • critical_days: average number of days agents are in critical condition;

  • probability_symptomatic: determines whether an agent will become asymptomatic or symptomatic;

  • no_hospital_multiplier: the increase in probability if a critical agent cannot go to the hospital;

  • probability_transmission: the probability that the virus is transmitted when two agents interact;

  • probability_critical: the probability that a symptomatic agent needs to go to the hospital;

  • probability_to_die: the probability that an agent in the hospital will die;

  • private_shock_stdev: the standard deviation for a truncated normal distribution shock that is part of the private signal for the deGroot learning used by the agents;

  • weigh_private_signal: the weight of the private signal vis à vis the social signal, used in the deGroot learning process.

  • health_system_capacity: number of hospital beds available

  • stringency_index: a list of the observed stringency index in the city;

  • total_initial_infections: the number of infections with which the simulation starts;

  • time_4_new_infections: the time period at which a second wave of infections might be inserted through travel;

  • new_infections_scenario: determines where the initial infections will be if either initial (infections will pop up in the same place as initially), or random (infections pop up in random districts). Alternatively, this parameter is None and then no second re-seeding will occur;

  • empirical_population: specifies the population for the city that is modelled;

  • empirical_fatalities: a list of fatalities observed in the city that is modelled;


The second input that goes into the model is a data folder that contains the following files:

  • f_age_distribution.csv: contains the age distribution per Ward;

  • f_distance_matrix.csv: contains the distance between Wards;

  • f_household_contacts.csv: contains average number of contact moments between household members of different age groups;

  • f_household_size_distribution.csv: contains number of people per household for each Ward;

  • f_informality.csv: contains informality score for each Ward;

  • f_initial_cases.csv: contains average number of initial cases per Ward;

  • f_nonhousehold_contacts.csv: contains average number of contact moments between non-household members of different age groups;

  • f_population.csv: contains total population per Ward;

  • f_travel.csv: contains the probability of travel between Wards.

Click on the below link to download the sample data files for the following cities: