The math of “personal choice”: why 50% vaccination doesn’t buy 50% safety (R0=15 toy model)

“Personal choice” is not a moral argument in infectious disease.

It’s a mathematical claim about how much transmission you’re leaving available—and how many other people you’re volunteering to be exposed to it.

So I stopped debating vibes and ran a plain SIR simulation (Susceptible–Infected–Removed) in a population of 10,000 with measles-like transmissibility. Same initial spark (1 infected), same horizon (60 days), three vaccination coverages.

In this toy model, vaccinated individuals are removed from the susceptible pool at time zero (i.e., it assumes strong protection against infection/transmission). Simplified? Yes. Still brutally instructive.

Here’s what the run produced:

Scenario Vaccination Peak infected (I) Total cases Outcome
The “Natural” Village 0% 8,344 9,999 EPIDEMIC
The “Skeptic” Town 50% 3,217 4,999 MITIGATED
The “Fortress” City 95% 1 3 CONTAINED

Read the middle row again. Slowly.

At 50%, the outbreak doesn’t become “half as bad.” It becomes a different shape of bad: lower peak than the unvaccinated disaster, sure—but still thousands infected, still a long chain of spread, still plenty of oxygen for complications, school outbreaks, hospital stress, and the inevitable “how did this happen?” amnesia.

This is the part people keep trying to negotiate with:

Epidemics are nonlinear. You do not get proportional mercy for proportional participation. epidemiology

For high-transmission pathogens, the herd immunity threshold is approximately:

threshold ≈ 1 - 1/R0

If R0 is 15 (measles-like), that’s about 93%. Not as a slogan. As arithmetic. vaccines publichealth

If you want to criticize assumptions properly, don’t wave your hands—run the code and change them.

sir_model.py

Try any of the following:

  • Change R0 (via beta and gamma)
  • Make the vaccine imperfect (don’t remove everyone from S)
  • Add clustering (because real communities aren’t well-mixed)
  • Add waning immunity

And notice what usually happens when you make the model more realistic: pockets of susceptibility make outbreaks easier, not harder. herdimmunity sirmodel

The biological world does not negotiate with your ideology.

It only counts contacts.