COVID-19 Classroom Calculator

Disclaimers: I am not an epidemiologist, and this math has NOT been double-checked by anyone. If you see an error (or there's an assumption you'd like to be able to edit that you can't currently) feel free to contact me via email: pmawhort (at) wellesley.edu.

What is the probability per class meeting that you will have a student who is actively transmitting COVID-19 in your classroom? This calculator attempts to answer that question by combining data you enter about the prevalence of COVID-19 in your school and your classroom size. Note that it does NOT attempt to calculate the risk of actually catching COVID-19: a site like microcovid calculator can help you estimate that, although it involves a lot more assumptions. In general, if everyone in a classroom is masked and vaccinated and if there's good ventilation, the chances of it spreading in the classroom even when someone infectious is present are not necessarily high.

Obviously faculty and staff are potential sources of infection as well as students, but accurate numbers for their COVID-19 rates are often less available. This calculator only takes students into account, although if you have faculty data you can simply increase the school population and students/class numbers to include them.








Assumptions about disease transmission (click to expand) You can change these from the defaults (based on this article) if you want to model different scenarios. Although infectiousness actually gradually decreases with time, to simplify things we are modelling it as a binary yes/no variable which completely cuts off after a certain amount of time. This is one way in which this calculator is definitely not accurate. Also note that different people have different levels of infectiousness, and for example, being vaccinated reduces infectiousness. We do not model that, since we're only trying to calculate the probability that an infectious individual is present, not exactly how infectious they are.



Based on the numbers you entered above, here's what we compute:
The average number of days of infectiousness per case for four conditions based on vaccinated/unvaccinated and symptomatic/asymptomatic. This takes into account vaccination status, testing, and isolation periods; the numbers are:
For vaccinated, symptomatic cases: ? days/case
For vaccinated, asymptomatic cases: ? days/case
For unvaccinated, symptomatic cases: ? days/case
For unvaccinated, asymptomatic cases: ? days/case

Show formulae Separately for the vaccinated and unvaccinated conditions, we use the values you entered for infected days for that group, call this a.
If there's asymptomatic testing, we divide 7 days/week by your tests/week number to get days/test, and subtract 1 (since testing can detect the virus before you are infections; this is just a very rough estimate), call this b. If there's no asymptomatic testing b is set to 100.
The number you entered for isolation period is c.
Then the formula for symptomatic cases is: a - c. This assumes that isolation is immediate following the onset of symptoms, so it only counts the period of infectiousness after isolation. If your isolation period is long enough, this will be zero.
And the formula for asymptomatic cases is: min(a, b) + (a - (b + c)). The second term accounts for infectiousness after isolation, and is not included when it would be less than zero.
Both of these formula run twice for the two different values of a to get numbers for vaccinated/unvaccinated people.

Based on that plus your estimate of the number of infected people per week, the number of infectious people on campus each day is: ? cases/day
The contributions from various groups were:
For vaccinated symptomatic cases: ? cases/day
For vaccinated asymptomatic cases: ? cases/day
For unvaccinated symptomatic cases: ? cases/day
For unvaccinated asymptomatic cases: ? cases/day

Show methodology We need some algebra to use the risk-reduction number entered above for vaccination to compute the number of vaccinated/unvaccinated cases. Our variables are: And we have the following equations:
  1. rv = cv / pv
  2. ru = cu / pu
  3. rv / ru = (1 - f)
  4. cv + cu = c
Here are the steps for solving these equations for cv:
  1. rv = (1 - f) * ru
    (isolating rv in Eq. 3)
  2. cv / pv = (1 - f) * ru
    (substituting Eq. 1)
  3. cv = (1 - f) * ru * pv
    (isolating cv)
  4. cv = (1 - f) * (cu / pu) * pv
    (substituting Eq. 2)
  5. cv = (1 - f) * ( (c - cv) / pu ) * pv
    substituting cu based on Eq. 4)
  6. cv = ( (1 - f) * pv * (c / pu) ) - ( (1 - f) * pv * (cv / pu) )
    (splitting cases / vax_cases terms on RHS)
  7. cv + ( (1 - f) * pv * (cv / pu) ) = ( (1 - f) * pv * (c / pu) )
    (moving vax cases to same side)
  8. cv * ( 1 + ( (1 - f) * pv * (1 / pu) ) ) = ( (1 - f) * pv * (c / pu) )
    (factoring vax cases out)
  9. cv = ( (1 - f) * pv * (c / pu) ) / ( 1 + ( (1 - f) * pv * (1 / pu) ) )
    (isolating vax cases out)
Once cv is known, we use Eq. 4 to get cu.

Among each group of infected people, we split them into symptomatic and asymptomatic cases based on the percentages you entered above for asymptomatic cases according to the vaccination status of each pool, resulting in four groups of cases by vaccination status and symptoms. We multiply those new-cases/week numbers by the infectious-days/case numbers computed in the previous step to turn them into total-infectious-person-days/week numbers. Those we divide by 7 days/week to get total-infectious-persons/day, which we add up across all four vaccinated/symptomatic status categories.

Now that we have an expected people-infectious-per-day number, we compute the probability for a single class meeting that an infectious person is present:
First we compute the probability that any single individual student is infectious, and get: ?%
Using that number, we compute the probability that at least one person in your class is infectious (given the class size you entered above) which is: ?%
And if we extend that calculation to the whole semester, given the number of class meetings you entered above, we get the probability that at some point during the semester, there will be an infectious student in your classroom: ?%

Show methodology Here we have a total population number entered above, and a number for how many are infectious on a given day. We draw people from the population without replacement to fill up the number of students/class you specified, and look at the probability that at least one of those students is infectious. Specifically, where x is the number of infectious people, p is the total population, and N is the number of people to draw, the product Πn=0...N-1 (1 - x / (p - n) is the formula for the probability that we draw N people without drawing a single infectious person, and 1 minus that is the probability that we draw at least one infectious person.

Critically, because of asymptomatic cases, especially if your isolation period is decent, unless your asymptomatic testing is frequent, the likelihood is high that most of the infectious people in your classroom will have no way of knowing they are sick! The students are absolutely blameless in this model, because asymptomatic infections are by definition undetectable without regular asymptomatic testing.

If the results here are troubling, I suggest the following things you can do: