This model is an initial draft co-produced with the The Virginia Modeling Analysis & Simulation Center. It has been superseded by their Vaccine Distribution Simulation.
The simulation models distributor agents - pharmacies, hospitals, clinics - administering vaccines to patients. Every timestep represents one day. A stochastic number of patients arrive each day to the distributors to receive a vaccine, and as the simulation runs these same patients return for a second dose.
Agents
Distributors: The distributor agent is the primary agent in the simulation. It receives patients and vaccines and attempts to maximize the number of patients treated.
Shipper: The shipper agent sends vaccines to each distributor agent. It sends vaccines weekly, on different days to different agents.
Population: The population agent generates patients who visit distributors. It also records appointments for second dose visits.
Globals
Reserve Policies
second_dose_storage
:If true, model uses second dose storage. This should be set to true if second_dose_divert_to_storage > 0 or second_dose_matching is true. second_dose_separate_storage
:Number of vials per vaccine to set aside in reserve for second dose appointments. second_dose_matching
:If true set aside a dose for every vaccine administered to a first dose patient in reserve shuffle_turn_away
:If true will ignore the array order in prioritize_group_options and randomize who is turned away.
General Parameters
pfizer_expiry
:timesteps for pfizer shelflife. If pfizer vaccine age is greater than pfizer_expiry will spoil. moderna_expiry
:timesteps for moderna shelflife. If moderna vaccine age is greater than _expiry will spoil. appt_delay
:timesteps after which patient will return for second dose staff
:Staff per clinic. doses_handled_per_staff_day
:Doses a staffer can administer a day. num_distributors
:Number of distributor agents moderna_doses_per_week
:number of moderna vials each distributor receives. pfizer_doses_per_week
:number of pfizer vials each distributor receives provider_split
: <Float (0 to 1)> Bias between provider in administration //TODO potentially remove if distributors receive one typeprioritize_group
: Key for prioritize_group_options. Selected array will determine which groups are turned away first (the last group type in the array). So [num_of_first_dose, second_dose_moderna] will, if a distributor is over subscribed, turn away people coming for their second_dose_moderna.