personpersons1dmnlunitlessfractionday1/Dayspeople/person/dayEUR/(person-year)USD/jobsUSD/(worker-mo)jobs/(worker-mo)mo/yrpopulation_distribution*Total_Population - (Exposed + Infected + Recovered)becoming_exposedpeople0becoming_infectedrecoveringquarantining_infectedpeopleinfection_rate*susceptible_contacts_with_infectedpeople/days1000000peoplequarantine_effect_on_contact_rate*normal_contact_ratepeople per person per daythe probability that an adopter contact converts a potential adopter (the conversion rate)
0.025 is the value in the aggregate model - this model is disaggregated into 9 groups0.025dimensionlessSusceptible/Total_Population_by_Agedimensionlesscontact_rate*SUM(infected_contacts[*, Age])people/daysprobability_of_contact_with_susceptible*total_infected_contactspeople/days0recoveringrecovering_quarantinedpeopleDELAYN2OUT(becoming_infected, time_to_recover, distribution, 0, desired_quarantining)people/days14daysIF Age = Age.a30_to_39 THEN 1 ELSE 0becoming_exposedbecoming_infectedquarantining_exposedpeoplenewly_infected_peoplepeople/days5days60days0.80.70.50.60.70.80.90.980.99dimensionless45days10people per person per day1 - (STEP(isolated_effectiveness, quarantine_start) - STEP(isolated_effectiveness, quarantine_start + quarantine_length))dimensionless0quarantining_infectedbecoming_infected_quarantinedrecovering_quarantineddyingpeopleDELAYN2OUT2ND(becoming_infected, time_to_recover, distribution, 0, desired_quarantining)people/days0.5daysInfected_Quarantined/time_to_recover_quarantinedpeople/daysSUM(Infected[*]) + SUM(Infected_Quarantined[*])peopleSTEP(base_testing_resources, quarantine_start)people/daysMAX(testing_resources - SUM(quarantining_infected), 0)people/days0quarantining_exposedbecoming_infected_quarantinedpeopleExposed_Quarantined/(time_to_show_symptoms/2)people/daysDELAYN2OUT2ND(becoming_exposed, time_to_show_symptoms, distribution, 0, desired_testing_by_age)people/days15000people/days0.8dimensionlesstest_effectiveness*infection_rate*testing_resources_noninfectedpeople/days3dimensionless0.12230.076720.190440.133550.123680.130920.114360.069270.03876dimensionless0.30.150.050.30.050.050.050.050.050.150.30.20.10.300.050.050.05000.350.10.10.100.050.050.30.20.10.20.150.150.10.10.100.10.10.150.20.20.150.050.050.200.10.10.10.30.20.10.100.20.0500.050.10.250.20.10.05000.0500.10.10.30.200.050.0500.0500.10.10.3dimensionlesscontact_fractions*(Exposed[Age] + Infected[Age])people00.40.550.780.870.920.950.971dimensionlessdeath_rate*Infected_Quarantinedpeople/days0dyingpeopleoverall_death_rate/time_to_recover_quarantinedper day00.0020.0020.0020.0040.0130.0360.080.148dimensionlessSUM(Susceptible[*])peopleSUM(Exposed[*]) + SUM(Exposed_Quarantined[*])peopleSUM(Recovered[*])peopleSUM(Deaths[*])peopleDELAYN2OUT(becoming_exposed, time_to_show_symptoms, distribution, 0, desired_testing_by_age/SIZE(SELF))people/dayssymptomatic_fraction*Infected/time_to_quarantine_infectedpeople/days(time_to_recover - time_to_quarantine_infected)/2daysTesting resources are distributed based on a uniform draw from all age groups.desired_testing*Exposed//SUM(Exposed)people/days0dimensionlessIF Age < Age.a60_to_69 THEN (1 - vertical_isolation)*quarantine_effectiveness ELSE quarantine_effectivenessdimensionless100*Total_Deaths/Total_Populationdimensionlesspopulation_distribution*Total_Populationpeopleinfection_ratebecoming_exposedInfectedinfected_contactstotal_infected_contactssusceptible_contacts_with_infectedprobability_of_contact_with_susceptiblesusceptible_contacts_with_infectedTotal_PopulationTotal_Population_by_Agecontact_ratetotal_infected_contactssusceptible_contacts_with_infectedbecoming_exposedtime_to_recoverrecoveringExposedinfected_contactstime_to_show_symptomsnewly_infected_peoplenormal_contact_ratecontact_ratequarantine_effect_on_contact_ratecontact_ratequarantine_startquarantine_effect_on_contact_ratequarantine_lengthquarantine_effect_on_contact_rateInfecteddesired_quarantiningInfected_Quarantinedrecovering_quarantinedtesting_resourcestesting_resources_noninfectedtesting_resources_noninfectedExposed_Quarantinedbecoming_infected_quarantinedtime_to_show_symptomsbecoming_infected_quarantinedinfection_ratedesired_testingtesting_resources_noninfecteddesired_testingtesting_resourcesbase_testing_resourcestesting_resourcestest_effectivenessdesired_testingbecoming_exposednewly_infected_peoplebecoming_exposedquarantining_exposedtime_to_show_symptomsquarantining_exposeddistributionnewly_infected_peopledistributionquarantining_exposedcontact_fractionsinfected_contactsinfected_contactstotal_infected_contactsdeath_ratedyingInfected_Quarantineddyingoverall_death_ratedeath_ratenewly_infected_peoplebecoming_infectedbecoming_infectedrecoveringbecoming_infectedquarantining_infecteddistributionquarantining_infectedrecoveringtime_to_quarantine_infecteddesired_quarantiningsymptomatic_fractiondesired_quarantiningdesired_quarantiningrecoveringdesired_quarantiningquarantining_infectedtime_to_recoverquarantining_infectedtime_to_recover_quarantineddeath_ratetime_to_recover_quarantinedrecovering_quarantinedtime_to_quarantine_infectedtime_to_recover_quarantinedtime_to_recover_quarantineddesired_testingdesired_testing_by_agedesired_testing_by_agequarantining_exposeddesired_testing_by_agenewly_infected_peopleExposeddesired_testing_by_agevertical_isolationisolated_effectivenessquarantine_effectivenessisolated_effectivenessisolated_effectivenessquarantine_effect_on_contact_rateTotal_Deathsdeaths_in_percentdeaths_in_percentTotal_Population_by_Ageprobability_of_contact_with_susceptiblepopulation_distributionTotal_Population_by_AgeSusceptibleprobability_of_contact_with_susceptibletime_to_recoverquarantining_infectedquarantine_startdistributionTotal_Populationoutinputtime_to_delayNinitialdesired_early_exit3initial*per_stage_delayinto_stage_2early_exit_1PULSE(1, 1, 0)inputstage_1/per_stage_delay5time_to_delay/N0IF sum_of_stages <> 0 THEN possible_early_exit*stage_1/sum_of_stages ELSE 0initial*per_stage_delayin_stage_2to_stage_3early_exit_2IF N >= 2 THEN to_stage_2 ELSE 0stage_2/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_2/sum_of_stages ELSE 0initial*per_stage_delayin_stage_3to_stage_4early_exit_3IF N >= 3 THEN to_stage_3 ELSE 0stage_3/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_3/sum_of_stages ELSE 0initial*per_stage_delayin_stage_4to_stage_5early_exit_4IF N >= 4 THEN to_stage_4 ELSE 0stage_4/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_4/sum_of_stages ELSE 0initial*per_stage_delayin_stage_5to_stage_6early_exit_5IF N >= 5 THEN to_stage_5 ELSE 0stage_5/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_5/sum_of_stages ELSE 0initial*per_stage_delayin_stage_6to_stage_7early_exit_6IF N >= 6 THEN to_stage_6 ELSE 0stage_6/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_6/sum_of_stages ELSE 0initial*per_stage_delayin_stage_7to_stage_8early_exit_7IF N >= 7 THEN to_stage_7 ELSE 0stage_7/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_7/sum_of_stages ELSE 0initial*per_stage_delayin_stage_8to_stage_9early_exit_8IF N >= 8 THEN to_stage_8 ELSE 0stage_8/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_8/sum_of_stages ELSE 0initial*per_stage_delayin_stage_9exitearly_exit_9IF N >= 9 THEN to_stage_9 ELSE 0stage_9/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_9/sum_of_stages ELSE 0stage_1 + stage_2 + stage_3 + stage_4 + stage_5 + stage_6 + stage_7 + stage_8 + stage_90MIN(desired_early_exit, sum_of_stages/DT)early_exit_1 + early_exit_2 + early_exit_3 + early_exit_4 + early_exit_5 + early_exit_6 + early_exit_7 + early_exit_8 + early_exit_9inputIF N = 1
THEN to_stage_2
ELSE IF N = 2
THEN to_stage_3
ELSE IF N = 3
THEN to_stage_4
ELSE IF N = 4
THEN to_stage_5
ELSE IF N = 5
THEN to_stage_6
ELSE IF N = 6
THEN to_stage_7
ELSE IF N = 7
THEN to_stage_8
ELSE IF N = 8
THEN to_stage_9
ELSE exitinputinputinNper_stage_delaytime_to_delayper_stage_delaystage_1to_stage_2per_stage_delayto_stage_2stage_2to_stage_3to_stage_2in_stage_2per_stage_delayto_stage_3stage_3to_stage_4to_stage_3in_stage_3per_stage_delayto_stage_4in_stage_2in_stage_3stage_4to_stage_5in_stage_4to_stage_4in_stage_4per_stage_delayto_stage_5stage_5to_stage_6to_stage_5in_stage_5in_stage_5per_stage_delayto_stage_6stage_6to_stage_7in_stage_6in_stage_6to_stage_7stage_7to_stage_8to_stage_8to_stage_7in_stage_7in_stage_7stage_8to_stage_9to_stage_8in_stage_8to_stage_9in_stage_8stage_9exitto_stage_9in_stage_9exitin_stage_9desired_early_exitpossible_early_exitsum_of_stagespossible_early_exitstage_1early_exit_1possible_early_exitearly_exit_1sum_of_stagesearly_exit_1stage_2early_exit_2stage_3early_exit_3stage_4early_exit_4stage_5early_exit_5early_exit_2early_exit_2early_exit_3early_exit_3early_exit_4early_exit_4early_exit_5early_exit_5early_exit_6early_exit_6early_exit_7early_exit_7early_exit_8early_exit_8early_exit_9early_exit_9stage_6early_exit_6stage_7early_exit_7stage_8early_exit_8stage_9early_exit_9outoutoutoutoutoutoutoutoutoutNto_stage_6per_stage_delaysum_of_stagespossible_early_exitsum_of_stagessum_of_stagessum_of_stagespossible_early_exitpossible_early_exitpossible_early_exitsum_of_stagessum_of_stagessum_of_stagessum_of_stagespossible_early_exitpossible_early_exitpossible_early_exitpossible_early_exitNto_stage_2to_stage_3to_stage_4to_stage_5to_stage_6to_stage_7to_stage_8to_stage_9exitearly outinputtime_to_delayNinitialdesired_early_exit3initial*per_stage_delayinto_stage_2early_exit_1PULSE(1, 1, 0)inputstage_1/per_stage_delay5time_to_delay/N0IF sum_of_stages <> 0 THEN possible_early_exit*stage_1/sum_of_stages ELSE 0initial*per_stage_delayin_stage_2to_stage_3early_exit_2IF N >= 2 THEN to_stage_2 ELSE 0stage_2/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_2/sum_of_stages ELSE 0initial*per_stage_delayin_stage_3to_stage_4early_exit_3IF N >= 3 THEN to_stage_3 ELSE 0stage_3/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_3/sum_of_stages ELSE 0initial*per_stage_delayin_stage_4to_stage_5early_exit_4IF N >= 4 THEN to_stage_4 ELSE 0stage_4/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_4/sum_of_stages ELSE 0initial*per_stage_delayin_stage_5to_stage_6early_exit_5IF N >= 5 THEN to_stage_5 ELSE 0stage_5/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_5/sum_of_stages ELSE 0initial*per_stage_delayin_stage_6to_stage_7early_exit_6IF N >= 6 THEN to_stage_6 ELSE 0stage_6/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_6/sum_of_stages ELSE 0initial*per_stage_delayin_stage_7to_stage_8early_exit_7IF N >= 7 THEN to_stage_7 ELSE 0stage_7/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_7/sum_of_stages ELSE 0initial*per_stage_delayin_stage_8to_stage_9early_exit_8IF N >= 8 THEN to_stage_8 ELSE 0stage_8/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_8/sum_of_stages ELSE 0initial*per_stage_delayin_stage_9exitearly_exit_9IF N >= 9 THEN to_stage_9 ELSE 0stage_9/per_stage_delayIF sum_of_stages <> 0 THEN possible_early_exit*stage_9/sum_of_stages ELSE 0stage_1 + stage_2 + stage_3 + stage_4 + stage_5 + stage_6 + stage_7 + stage_8 + stage_90MIN(desired_early_exit, sum_of_stages/DT)early_exit_1 + early_exit_2 + early_exit_3 + early_exit_4 + early_exit_5 + early_exit_6 + early_exit_7 + early_exit_8 + early_exit_9inputIF N = 1
THEN to_stage_2
ELSE IF N = 2
THEN to_stage_3
ELSE IF N = 3
THEN to_stage_4
ELSE IF N = 4
THEN to_stage_5
ELSE IF N = 5
THEN to_stage_6
ELSE IF N = 6
THEN to_stage_7
ELSE IF N = 7
THEN to_stage_8
ELSE IF N = 8
THEN to_stage_9
ELSE exitinputinputinNper_stage_delaytime_to_delayper_stage_delaystage_1to_stage_2per_stage_delayto_stage_2stage_2to_stage_3to_stage_2in_stage_2per_stage_delayto_stage_3stage_3to_stage_4to_stage_3in_stage_3per_stage_delayto_stage_4in_stage_2in_stage_3stage_4to_stage_5in_stage_4to_stage_4in_stage_4per_stage_delayto_stage_5stage_5to_stage_6to_stage_5in_stage_5in_stage_5per_stage_delayto_stage_6stage_6to_stage_7in_stage_6in_stage_6to_stage_7stage_7to_stage_8to_stage_8to_stage_7in_stage_7in_stage_7stage_8to_stage_9to_stage_8in_stage_8to_stage_9in_stage_8stage_9exitto_stage_9in_stage_9exitin_stage_9desired_early_exitpossible_early_exitsum_of_stagespossible_early_exitstage_1early_exit_1possible_early_exitearly_exit_1sum_of_stagesearly_exit_1stage_2early_exit_2stage_3early_exit_3stage_4early_exit_4stage_5early_exit_5early_exit_2early_exit_2early_exit_3early_exit_3early_exit_4early_exit_4early_exit_5early_exit_5early_exit_6early_exit_6early_exit_7early_exit_7early_exit_8early_exit_8early_exit_9early_exit_9stage_6early_exit_6stage_7early_exit_7stage_8early_exit_8stage_9early_exit_9outoutoutoutoutoutoutoutoutoutNto_stage_6per_stage_delaysum_of_stagespossible_early_exitsum_of_stagessum_of_stagessum_of_stagespossible_early_exitpossible_early_exitpossible_early_exitsum_of_stagessum_of_stagessum_of_stagessum_of_stagespossible_early_exitpossible_early_exitpossible_early_exitpossible_early_exitNto_stage_2to_stage_3to_stage_4to_stage_5to_stage_6to_stage_7to_stage_8to_stage_9exit