Profile Picture

Estimating Gym COVID Risk

In Boise, gyms are open! I visited Axiom Fitness the other morning. The facility was great, but I was pretty uncomfortable with the maskless environment. Below, I estimate my risk of catching COVID from a single gym session, and find that my risk of catching COVID from a single gym session is ~0.03%. With ~10 gym sessions remaining in my time in Idaho, my total risk of catching COVID specifically from the gym is 1 - (1 - risk_per_session)^10 = 0.003037839182, or about 0.3%. This is well within my personal risk tolerance, so I decided to buy a single-month pass!

This page is interactive: try estimating risk for your own gym sessions!

Assumptions & Constants

  • The people I interact with at the gym are independent per session - this likely over-estimates risk
  • Infected individuals are exactly as likely to be out and about as uninfected individuals. It’s unclear to me how this assumption affects our risk calculation:
    • it overestimates because sick people will stay home
    • underestimates because people undergoing risky behaviors are more likely to be infected
  • active_infection_days =
    • An infected individual is infectious for days, after which they’ve either recovered or passed away.
  • risky_behavior_multiplier =
    • I assumed that gym-goers are more likely to be infected because they’re more likely to conduct risky activities.
  • infected_transmission_risk_min =
    • calculates transmission risk of a one-hour, indoor, unmasked interaction with someone who has COVID from three feet away to be 6%.
  • gym_6ft_interaction_rate =
    • % of time inside a gym where I am within 6 ft of another person
    • obtained empirically from a gym session, multiplied by 1.5 to conservatively account for missing observations
  • gym_session_duration =
    • How long a gym session lasts, in minutes.


  • county_cases_reported =
  • county_postivity_rate =
    • test positivity rate over the last active_infection_days
  • county_population =
  • county_true_active_infections = county_cases_reported * (16 * (county_positivity_rate ^ 0.5) + 2.5) =
  • gym_goer_infection_probability = county_true_active_infections * risky_behavior_multiplier / county_population =


Finally, we can calculate our risk per session, which is the amount of time spent within 6ft of another person in a single session multiplied by the probability that they are infectious.

risk_per_session = gym_goer_infection_probability * gym_6ft_interaction_rate * gym_session_duration * infected_transmission_risk_min = 0.0003042 = 0.0003042%.

Enjoyed this post? Follow me on Twitter for more content like this. Or, subscribe to my email newsletter to get new articles delivered straight to your inbox!
Scroll to top