Exploring a targeted approach for public health capacity restrictions during COVID-19 using a new computational model

This work introduces the Queen's University Agent-Based Outbreak Outcome Model (QUABOOM). This tool is an agent-based Monte Carlo simulation for modelling epidemics and informing public health policy. We illustrate the use of the model by examining capacity restrictions during a lockdown. We find that public health measures should focus on the few locations where many people interact, such as grocery stores, rather than the many locations where few people interact, such as small businesses. We also discuss a case where the results of the simulation can be scaled to larger population sizes, thereby improving computational efficiency.


Introduction
Since emerging in 2019 in Wuhan, China (Wu & McGoogan, 2020), the novel coronavirus SARS-CoV-2 ("COVID-19"), has spread worldwide and led to the implementation of non-pharmaceutical policy interventions by public health authorities including social distancing, lockdowns, quarantine, and mask mandates.
In March 2020, Canada declared a COVID-19 pandemic (Statistics Canada, 2022a) leading to varying policies, such as lockdowns, being implemented over time.Many industrial sectors were negatively impacted by the pandemic.In particular, a large portion of small businesses (fewer than 99 employees) reported a 40% or more decline in revenue (Tam & Johnston, 2020).Small businesses comprise 98% of employer businesses in Canada (Sood et al., 2021), highlighting the importance of understanding how they affect the development of epidemic outbreaks.
Mathematical modelling has become an important tool in policy making for infectious disease control to mitigate and suppress the health impacts of COVID-19 (Ferguson et al., 2020;Ndaïrou et al., 2020;van der Vegt et al., 2022).An abundance of epidemic modelling techniques exist, with compartmental-based models, such as susceptible-infected-recovered (SIR), being the most common (Weissman et al., 2020;Tolles & Luong, 2020).Modelling techniques are often implemented using differential equations (Chowell et al., 2004;He et al., 2020), networks (Newman, 2019), and agent-based models (Ferguson et al., 2020).Our work presents a Monte Carlo agent-based model that includes network-like constraints between its agents in order to reduce the full random-mixing assumption implicit in differential equation-based models.
Our code was developed with the goal of modelling a city the size of Kingston, Ontario, Canada, with a population size of approximately 100 000.The city also includes a relatively large student population (approximately 20 000).In this first publication utilizing the model, we focus on examining how capacity restrictions on businesses of different sizes affect an epidemic outbreak during a lockdown.We use the model to present a method to inform public health capacity restriction decisions and examine how these can evolve as the vaccinated fraction of the population changes.
In Section 3, we describe the general software framework developed to model the spread of COVID-19.In Section 4, we describe how we use the code to determine a prescription for setting capacity restrictions.In Sections 5 and 6, we present and discuss the results of simulating various capacity restriction scenarios.

Agent-based modelling software framework
In our model, agents represent individuals that interact and can spread an infection.Agents are given a set of properties, such as age, that will affect their probability of getting infected and the outcome of any infection.
The model is referred to as the Queen's University Agent-Based Outbreak Outcome Model (QUABOOM).It is implemented using object-oriented code written in Python 3.8 and is available as an open-source python module (QUABOOM, 2023).The simulation tracks a population of agents during an epidemic.Agents are assigned an age, job, and house size through sampling from distributions derived from data for the city of Kingston.An initial number of agents, N 0 , are infected at the beginning of the simulation.The severity of the infection of an agent follows public health statistics for the frequency of infections that lead to hospitalization.Similarly, the number of days to recovery and the number of days showing symptoms are also obtained from data.
In each step of the simulation, corresponding to one day, agents can interact with each other in various "interaction sites" which represent establishments such as households, work places, restaurants, and grocery stores.Interactions between agents are modelled using probabilities of attending an interaction site and transmitting the virus.After each step, agents are randomly assigned a set of interaction sites that they will attend.The frequency and type of assigned interaction sites are based on input parameters associated with the generated occupation of the agent.Networks of agents are formed by associating subsets of agents to specific interaction sites, such as households.Various public health policies, such as masking, testing, quarantining, and lockdowns can also be implemented in the simulation.The hierarchy of classes developed for the model are shown in Fig. 1.The Simulation class creates and calls other classes to manage the agents, their interactions, and any public health policy in place.The agents are created by the Population class as Person objects.Interactions between agents are facilitated by the InteractionSites class.The Inter-actionSites class models how agents interact with each other in different interaction sites and is how agents spread the virus.The Policy class is used to implement public health policy.The following sections describe the details of the various classes implemented in the code.

Simulation class and configuration files
The Simulation class initializes all relevant classes and organizes the interaction between agents from the Person class as they interact in the various interaction sites.The Simulation class tracks daily cumulative counts from the simulation for the following quantities: The Simulation class uses parameters specified in two configuration files and distribution data from properties of the population.The first configuration file controls simulation-wide parameters such as the size of the population, the number of initially infected agents, any public health policies, and the distribution of the population's ages.The second configuration file controls parameters associated with the disease, including symptom severity distributions, length of stay in the hospital/ICU, and information regarding transmission probabilities.The disease parameters allow for multiple variants to be defined by treating each variant as a new virus type.The simulation is not limited to modelling COVID-19 since the disease parameters are inputs to the simulation.

Person class
The Person class represents the agent, assigning it a set of unique attributes set by the Population class to reproduce distributions from the configuration files.The interactions between agents are managed by the InteractionSites class and stored in the attributes of that agent, allowing for contact tracing to be simulated.Each agent also has a "compliance" attribute, used to account for individuals' varying adherence to public health policies.This can change during the simulation but is set to be constant for simplicity within the scope of this paper.The initial compliance of the agent is determined by different factors, including risk due to pre-existing conditions and age.Compliance can also be updated during the simulation to reflect real world tendencies during lockdowns and lifting of restrictions.

Population class
The Population class initializes the agents, which are of type "Person" from the Person class in order to reproduce a given distribution of ages in the population.The Population class also sets the initial state of agents (infected, susceptible, vaccinated), and is then responsible for tracking the state of all the agents in the population throughout the simulation.The Population class places agents into households.The Simulation class queries the Population class at each time step of the simulation to track the current number of agents in the various states.

InteractionSites class
Interactions between agents are modelled as taking place at various interaction sites and are managed by the Inter-actionSites class.There are three main interaction site levels that are designed to model different types of sites."Level A" represents facilities, such as clothing stores and restaurants, for which a given individual might have several locations with which they are associated."Level B" corresponds to sites for which an individual may have one or two instances with which they are associated, such as grocery stores, gyms, and gas stations.Finally, "Level C" corresponds to sites such as a workplace or school, where agents are associated with a single location.In addition, the code allows smaller scale dynamics to be studied by including a population of students in the general population.When the student population is enabled, additional types of interaction sites such as lecture theaters, study areas, food areas, student residences, and student housing are added to model a university.This allows for improved sensitivity of the model when applied to university towns, as is performed in this study.
In the simulation configuration file, the following parameters for each level of interaction site must be provided: C The number of interaction sites, n, of a particular level.This also determines the number of agents associated with each interaction site of a given level, as the agents in the populations are evenly distributed over the sites.C The "attendance" probability, p, is the probability that an agent will go to that level of interaction site on a given day.For example, for Level B sites, we use a mean of p B ¼ 2/7, corresponding to attending a grocery store type of establishment twice per week, assuming the same probability of attending a site on any given day, ignoring any weekend effects.C The "loyalty" mean and standard deviation are used to draw a normally distributed random number for the number of sites of a given level with which an agent is associated.
Agents are initialized to be associated with specific interaction sites by the InteractionSites class.The number of specific sites of a particular level that an individual can attend is fixed and drawn from a normal distribution whose parameters (loyalty mean and standard deviation) are specified in the simulation configuration file.The same distribution is used for all agents, independent of age, and it is assumed that the over-estimations and under-estimations of attending a specific site even out.An agent will then repeatedly "attend" the same set of interaction sites with a probability, p, of going each day.Different functions manage interactions between agents going to the same interaction site and interactions between members in the same household.This feature aims to replicate real world behaviours, where an individual is more likely to visit the same public locations, for example a workplace, and interact with the same individuals, for example at a house.
For each time step of the simulation, a list of agents that will interact in each site is built based on the attendance probability, p, for that level of site.For each agent, a number of interactions is drawn from a distribution that is peaked at zero and decreases linearly to the maximum number of contacts an agent could have in that site.By using this triangular distribution, the average number of interactions is less dependent on the input variables than using a Gaussian distribution (Peak et al., 2020).The maximum number of contacts is the total number of agents that could be in the site at a given time.In order to model the fact that all agents will not be at an interaction site at the same time, we introduce a site level-dependent parameter, f, corresponding to the fraction of time that people spend in an interaction site while the site is open.For example, if agents spend an average of 5 hours in a site that is open for 10 hours per day, f ¼ 1 2 .In a population of N agents, where there are n B interaction sites of level B, and agents have a probability to attend a site per unit day, p B , for a fraction, f B , of the time that site is open each day, the average number of interactions per day (per simulation step) per interaction site, i B , is given by 1 : where the agents are distributed such that each site has the same number of agents associated with it.The factor of 1/6 accounts for the mean of a triangular distribution being 1/3 of its maximal value and the number of interactions are double counted if they are not divided by by a factor of 2 (the number of agents per interaction).Individual contact networks are naturally generated between agents that visit the same interaction sites and are maintained throughout the simulation.This feature allows the model to naturally incorporate network-like features among the agents.
When an interaction occurs between two agents, there is a probability of transmitting the virus, P T , if one agent is in the infected state and the other is in the susceptible state.We model P T as a fixed number that should be a direct property of the virus.We examine the results of our simulation as a function of P T , since this probability will necessarily have a range of values depending on the variant of the virus and on the two agents in the interaction.
Furthermore, the chance of the virus spreading during an interaction is dependent on the vaccination status of both agents and the corresponding vaccine-dependent efficiencies.In addition, we consider whether one or both agents are wearing a mask and assign different reduced infection probabilities to wearing different efficiency masks (surgical or cloth).These additional efficiencies (vaccination and masking) affect the effective probability of transmission.

Policy class
The Policy class is responsible for managing the following public health policies in the simulation: C Masking mandate: whether or not agents should be wearing masks (affecting spread probability). 1The quantity in parenthesis is the average number of agents present at one site in a day; each agent can have a maximum of f B interactions.
C Lockdown: in a lockdown, only houses and level B sites are open, such as grocery stores (affecting number of interactions).C Testing: when testing is turned on, symptomatic agents must get tested and quarantined if positive.C Students: whether or not agents with the 'student' profession will be involved in the simulation.
Each policy can be triggered on or off by a daily case count, a specific date, or set to be static by initializing the mandate at the beginning of the simulation.Individual policy adherence is also affected by a person's compliance score.
A model for COVID-19 testing is implemented each day by selecting a group from the population that is wait-listed to get tested due to apparent infection symptoms and informing them if they are infected with COVID-19.A simulation parameter can be set to determine the probability that individuals will get tested without having COVID-19 to simulate those with symptoms from other infections.Individuals who test positive are quarantined.

Baseline parameters and example output
Our default configuration files specify a number of "baseline" parameters for the simulation and the virus properties.The most relevant disease parameters are shown in Table 1 and correspond to literature values for the original strain of SARS-CoV-2, while the most relevant simulation parameters are illustrated in Table 2.
Fig. 2 shows a sample of outputs from the first 50 days of a simulation run with the baseline parameters.The number of agents in each state is shown as a function of days in the simulation.As more agents become infected over time and there is a smaller susceptible population, less agents can become infected, and the epidemic comes to an end as expected.Five simulations were performed and the output of each were overlayed.The resulting curves were then averaged and a 95% confidence interval was determined.
Fig. 3 highlights the code's ability to simulate lockdowns, which restricts agents to attend only level B interaction sites when a certain percentage of the population becomes infected, and then turns off when the number of active infections goes below a threshold.This showcases how lifting capacity restrictions too early can result in another large wave of infections.
Fig. 4 demonstrates how a variant with a different probability of transmission can be introduced into the simulation and can quickly dominate.

Overview
In this section we describe how the model can be used to understand the effect of capacity restrictions during a lockdown.We focus on understanding how to determine capacity restrictions to prevent a small number of infections from causing an epidemic outbreak.We configured the model to approximate the conditions in Kingston at the beginning of the COVID-19 pandemic, when only essential businesses were open.
A lockdown mode is implemented such that only one type of interaction site (level B, grocery store-like) is available for agents to infect each other outside of their households.In the following sub-sections we describe how we define a basic reproductive number for the simulation, which is then used to define an epidemic threshold based on the number of agents infected at the peak of an epidemic.

Table 1
Disease baseline parameters, based on original strain of SARS-CoV-2.Onset of symptoms is the number of days before symptoms (Li et al., 2020); mild days is the number of days of symptoms onset for a mild case (Li et al., 2020), hospital days is the onset days to acute respiratory distress syndrome (Huang et al., 2020) plus days to onset of symptoms; ICU days is the days to symptom onset plus time to hospital admission for survivors plus length of ICU stay for survivors (Zhou et al., 2020); die days is the time to onset plus time from illness onset to death for non-survivors (Zhou et al., 2020); and the incubation period of COVID-19 is the days between exposure and symptom onset (Statistics Canada, 2022b Main baseline simulation parameters and default policies, where the default probability of testing is the percentage of the population that will get tested if they have COVID-19, s A is the default amount of agents associated with one site A, p A is the probability an agent will attend an interaction site A each day, and l A is how likely an agent is to visit the same interaction site (mean) or visit various interaction sites (std.); each type of interaction site has its own average size, attendance probability, and loyalty (mean and std.).Output of an epidemic with a population size of 10 000, a masking probability of 0.8, an attendance probability of 0.28, and a probability of transmission of 0.25.Each compartment (Susceptible, Infected, and Recovered) has a superposition of 5 runs (faded lines), the average of all the runs (thick line), and a 95% confidence interval (shaded region).

Fig.
Sample of a simulation with masking and testing always mandated, where the lockdown is triggered when 1% of the current population is showing infection symptoms and is turned off when below 0.1%.
Our results focus on understanding how this epidemic threshold varies as a function of two fundamentally independent parameters of the simulation: the probability of transmission, P T (a property of the virus in a given environment) and the average number of interactions that agents have per unit time per interaction site of a given level, i B (a quantity that capacity restrictions change).The resulting effective transmission probability depends on P T and other factors, such as whether agents are wearing masks and how often they meet.
By considering the epidemic threshold as a function of i B (see equation ( 1)), the results of a simulation can be interpreted for different population sizes, N, different probabilities of attending an interaction site per day, p B , and different number of interaction sites, n B .This is a result of distributing agents equally among the interaction sites and having only one level of interaction site open.This setup allows us to explore a rich parameter space by only varying i B and P T , while using a relatively small number of agents, N ¼ 10 000, to increase computational efficiency.
For each set of input parameters (i B , P T ), we run five simulations (as in Fig. 2).Each simulation outputs the number of agents in each category, such as susceptible, infected, quarantined, and recovered, each day.These values are then averaged over the five simulations and used to compute additional parameters, such as the basic reproduction rate and the average epidemic curves.

Definition of R 0
In order to define an epidemic threshold (section 4.3), based on the number of infected cases in a simulation, an effective R 0 (basic reproductive number) is introduced, which can be computed from both the simulation and real data for small epidemics and populations.The basic reproductive number is defined as the average number of secondary infections by one infected individual in a fully susceptible population (Hethcote, 2000).Our definition is based on a standard differential equation 3-compartment model for the number of susceptible (S), infected (I), and recovered (R) people in a population of N individuals (Hethcote, 2000): where b is the infection rate (per unit time) and g is the recovery rate (per unit time).A reproductive number can be defined as: (3) such that the number of infected agents will grow with time if R 0 > 1.In other words, to first order, if the rate at which people are being infected is larger that the rate at which they recover, the number of infected people will grow.
The change in the number of infected and recovered cases (dI and dR) can be obtained from either the simulation or real population data.We explicitly assume that R 0 , which depends on the ratio of dI to dR, is unaffected by under-counting cases in the real data.We also take N/S ~1, as we consider data only at the beginning of the pandemic.
The values of dI (change in infected/active cases) and dR (change in recovered cases) are taken at different instances in time in the simulation (or the data) so that the change in recovered individuals measured on a given day corresponds to the same Fig. 4. Sample of a simulation with a lockdown, masking, and testing always mandated, where a more infectious variant, called alpha, is introduced on day 40.The alpha variant is set to be 1.8 times more contagious than the original variant.
day as those individuals were infected.We implement a lag, L, as the number of days between the measures of dI and dR.L is treated as an unknown parameter that depends on various delays in reporting active and resolved cases in the real data.In the simulation data, the value of L is expected to be close to the average time to recover from an infection.
For this study, a running average with a window, w ¼ 7 days, is applied to the values of dI and dR before computing R 0 .A value of w ¼ 7 days was chosen to balance smoothing out statistical fluctuation and inconsistencies in daily case number reporting while not smoothing over the time variability of R 0 .Due to statistical fluctuations in small epidemics, it is possible for the value of R 0 to be negative.The value of R 0 is thus defined as the mean of the non-negative values computed over a given range of days, typically of order 2 months.The lag is then varied until a minimum in the standard deviation of the R 0 values is found.This simple definition was found to produce a stable and consistent value of R 0 in the small epidemics that we have studied, as illustrated in Fig. 5 with data from Kingston, Ontario.
Using this methodology, we infer a value of R 0 ¼ 1:7±0:5, as measured using 40 days of data from Kingston centred around an outbreak that occurred in July 2020, as illustrated in Fig. 5.This corresponds to the mean and standard deviation of the non-negative R 0 values calculated with a lag of L ¼ 12 days between the change in active cases and the change in resolved cases.

Defining epidemic threshold in the simulations
In order to examine factors that can trigger a large epidemic outbreak, an epidemic threshold based on the number of agents infected at the peak of the epidemic was defined.The threshold was determined using R 0 .It was verified that the proposed definition of R 0 behaves as expected and leads to large epidemics when R 0 > 1, as illustrated in Fig. 6.
The value of R 0 is subject to statistical fluctuations that are due to the small values of dR and dI for small epidemics, especially near the threshold value.By defining an epidemic threshold based on the maximum number of agents infected in a population, we compute the number of agents infected at the peak of an epidemic (averaged over five simulations) and use this "max infected", I max , as a measure of the size of the epidemic outbreak for a given set of simulation parameters.A threshold, T I , was introduced for the largest epidemic that we are willing to tolerate.The T I value is chosen from I max as seen in Fig. 6, allowing for a quantitative threshold to be chosen which is below R 0 ¼ 1:0 (where the number of infections is expected to grow).In this work, a baseline value of, T I ¼ 50 is used, corresponding to 0.5 % of the simulated population being infected and a value of R 0 slightly below 1, as illustrated in Fig. 6.

Results: behaviour of the epidemic threshold as a function of model parameters
Fig. 6 shows a two-dimensional plot of the maximum number of agents infected in an epidemic, I max , averaged over 5 simulations (logarithmic colour scale) as a function of the probability of transmission, P T , and the average number of interactions in level B sites per day per site, i B .The data in Fig. 6 were smoothed by a Gaussian filter (Virtanen et al., 2020) applied to each row.The smoothed data were then used to determine a contour (in solid red) at the value T I ¼ 50.The dashed grey contour line was determined from the same set of simulations using the condition that R 0 ¼ 1 and used to determine the threshold value T I , which can be calculated more reliably than R 0 due to the low statistics.
The results in Fig. 6 imply that when P T and i B are high, a large fraction of the population is infected at the peak of the infection.Conversely, if P T and i B are low, there are no large outbreaks.The contour line then gives the number of interactions per site per day that one can tolerate for a given probability of transmission.We discuss in the next section how these results can provide guidance to public health units.Fig. 7 shows how the contours determined in Fig. 6, with a third-order polynomial Savitzky-Golay filter applied to smooth the curves, changes as different fractions of the populations are vaccinated at the beginning of the simulation.Three vaccine efficacies of 94.1 %, 91.3 %, and 76.0 % were used to simulate the population being fully vaccinated; where 35 % of the Fig. 5. Epidemic data for Kingston, Ontario, from July 2020 that were used to calculate R 0 (right axis, dotted black line).Data from Ontario Public Health (2022) were obtained for active/infected (left axis, dashed line) and resolved cases (left axis, dashdot line).From those, the changes dI and dR are computed (left axis, solid lines), and a lag of approximately 12 days can be observed between those values.population received Moderna, 60 % Pfizer and 5 % Astrazeneca, with the respective efficacies.Since the simulation is run over a short time period, the vaccine efficiencies are assumed to be constant and do not account for varying efficiency for different variants.As expected, more interactions can be tolerated as the population is vaccinated, allowing one to inform the lifting of capacity restrictions.

Discussion: considerations in determining capacity restrictions
While the simulations were run with a population of 10 000 agents, in this particular scenario with only level-B sites open, we can interpret the contours on a population the size of Kingston, with a population 10 times larger.We verified that the max number of infections scaled with the population size by running a subset of these simulation using a larger population of 100 000 agents.
Consider a case when the probability of transmission is P T ¼ 0.2 so that the epidemic threshold will be crossed if the value of i B a 50 interactions/site/day, when referring to Fig. 6.In this case, a public health unit may decide that if people go once per week to a level B interaction site (e.g. a grocery store), p B ¼ 0.14, for 1 hour out of the 12 hours they are open, f B ¼ 1 12 , then the largest number of sites that should open is given by: (4) resulting in n B ¼ 74 sites that could open for a population of N ¼ 100 000.This is a sizeable number of sites open, where each would have an average of N/n B ¼ 1351 individuals associated with that site.One can then refer to Fig. 7 to understand how restrictions can be lifted as the population becomes vaccinated.
A public health unit may instead decide to open sites based on the assumption that people go twice per week, p B ¼ 0.28, in which case they could open half as many sites, n B ¼ 37, each with half as many customers associated (675).Similarly, a public health unit in a town of 10 000 could use the same simulated data to decide to open 10 times more sites (or that they do not need any significant capacity restrictions).
This model and the interpretation of its outputs in terms of the mean number of interactions per day per interaction site can provide useful guidance to public health units to create tailored measures.For example, rather than implementing large scale lockdowns across diverse establishments (different level interaction sites), one should tailor capacity restrictions to those businesses that have the largest impact.In our model, when the probability of transmission is 20%, the small interaction sites, with few customers associated with each, such as small businesses, lead to low values of i B and do not contribute significantly to epidemic outbreaks.
Conversely, we find that it is large interaction sites, with many interacting agents, that lead to large epidemic outbreaks.This would suggest that shutting down businesses with few employees while leaving businesses with many employees open, such as large grocery stores, is not optimal.Our study suggests it could be more effective to shut down the large businesses and encourage the population to attend small businesses while they are otherwise working remotely.
When we modify the simulation presented in Fig. 6 to include additional interaction sites of level A such as small businesses (n A ¼ 250, f A ¼ 1 12 , p A ¼ 0.28), each with 400 agents associated, the contour that is inferred is effectively unchanged, since this corresponds to adding approximately i A ¼ 174 interactions/site/day.This supports the conclusion that one can open a relatively large number of sites that have of Oð100Þ agents associated with them, as long as the probability of transmission between two agents in those sites is relatively small, as it would be in most small businesses.
6.A two-dimensional plot of mean max infected, I max (logarithmic colour scale), as a function of the probability of transmission, P T , and the average number of interactions in level B sites per day per site, i B , (logarithmic) in a population of N ¼ 10 000.The dashed white line corresponds to defining an epidemic threshold based on R 0 > ¼ 1.The solid red line shows that an equivalent and smoother threshold can be defined with the value I max ¼ 50 in this particular configuration of simulations.
Consider the decision to open a few "essential" large workplaces with a high transmission probability, such as a warehouse, in a population with 100 000 agents.We can model agents as going to a site for the entire time that it is open, f B ¼ 1, five out of seven days per week, p B ¼ 0.71, and have a high transmission probability, P T ¼ 0.5, to model a workplace.In this case, in order to remain below the epidemic threshold (Fig. 6), i B ~50, one finds that the number of interaction sites that could be open is n B ~4100.This does not mean that one can open 4100 warehouses; rather, it means that one can only open interaction sites where the average number of agents associated with any site is given by N/n B ¼ 24.In other words, interaction sites that results in large transmission probabilities and high attendance need significantly stronger restrictions in order to prevent an epidemic.If one only considered such workplaces, then one could conclude that wide-ranging lockdowns are required.In Ontario, approximately 50% of businesses have fewer than four employees (Statistics Canada, 2020), so opening these businesses may not significantly affect an epidemic outbreak.

Conclusion
The COVID-19 pandemic has resulted in the need for informed non-pharmaceutical policy interventions public health units.We presented an agent-based modelling framework that was developed to better understand the effect of public health policy and guide their future use.The model is implemented as an object-oriented Monte Carlo simulation in Python, called QUABOOM, that tracks a population of agents during an epidemic.The model implements network-like features by having households and different levels of interaction sites with which agents are associated.This allows us to model the effects of capacity restrictions on interaction sites such as workplaces, restaurants, gyms, and grocery stores.In this work, we used the code to examine capacity restrictions.
In order to define an epidemic threshold and to compare the epidemic dynamics to real data, we introduced a definition of the basic reproduction rate, R 0 , that we can compute from real outbreak data and the simulation.We also introduced a new quantity, i, the number of interactions per site per day, that allows us to develop rich interpretations of the simulations, independent of the size of the population used in the simulation.
We presented a new methodology for quantitatively examining capacity restrictions that would prevent an epidemic outbreak from a small number of infected agents.Resulting from the study of our model, we propose that capacity restrictions should be implemented in a targeted approach that depends on the size of the interaction site, the probability of transmission in that site, and the general attendance characteristics of that site.Our study suggests public health authorities can tailor capacity restrictions to businesses with a large number of interactions per day, as we found that smaller interaction sites, with fewer customers, have little impact on the epidemics.We believe this method can be used as a new tool for public health authorities during pandemics to set appropriate restrictions based on the level of interaction sites and vaccination rates within the population.This may allow interaction sites with low risks of transmission to remain open.We believe this targeted approach is beneficial for communities and the economy, in addition to being effective at stopping the spread of an infectious virus and protecting individuals.

Declaration of conflicts of interest
None of the authors of the study entitled "Exploring a targeted approach for public health capacity restrictions during COVID-19 using a new computational model" have any conflicts of interest in participating in this work.

Fig. 1 .
Fig. 1.Software framework used for mathematically modelling COVID-19 with QUABOOM.Each dark box corresponds to a class in the code which can be configured through a set of configuration files in TOML format.

C
Susceptible agents C Infected agents C Recovered agents C Dead agents C Hospitalized agents C Infected student agents C Agents tested C Agents in quarantine C Agents waiting to get tested C Daily tested agents C Daily quarantined agents C Daily infected agents CRediT authorship contribution statement Ashley N. Micuda: Data curation, Formal analysis, Methodology, Software, Validation, Writing e original draft, Writing e review & editing.Mark R. Anderson: Methodology, Software, Writing e review & editing, Supervision.Irina Babayan:

Fig. 7 .
Fig. 7. Epidemic thresholds as different fractions of the population are vaccinated as a function of probability of transmission, P T , and number of interactions per site per hour, i B .