Introduction
Epidemic models can sound like something only a supercomputer could run. The simplest one, the SIR model, can be stepped forward with a calculator. This walkthrough follows an outbreak in a small town for two days by hand, then uses the model's numbers to explain why the outbreak grows, where it turns, and why it stops before everyone has been infected.
The SIR model goes back to W. O. Kermack and A. G. McKendrick's 1927 paper on the mathematical theory of epidemics. They showed that an epidemic needs a threshold density of susceptible people to take off, and that it usually ends before every susceptible person is infected (Kermack and McKendrick 1927; O'Connor and Robertson 2020).
The Starting Point
A town has 1,000 people. On day 0, 10 of them are infected, 990 are susceptible, and none have recovered. The SIR model splits the town into three groups:
- S, susceptible: people who can still catch the disease
- I, infected: people who have it and can pass it on
- R, recovered: people who have had it and can no longer catch or pass it on
Two rules say how people move between the groups each day:
\text{new infections} = 0.3 \times S \times I \div 1000
\text{recoveries} = 0.1 \times I
The first rule says that infections come from contact between susceptible and infected people, so they're proportional to both. The 0.3 is the infection rate, and dividing by 1,000, the town's population, turns the count of possible contacts into a share of the town. The second rule says that about a tenth of the infected recover each day, which fits an illness lasting about ten days on average.
Each day, new infections leave S and join I, and recoveries leave I and join R. These two rules are a daily-step version of the model's differential equations, rules that link quantities to their own rates of change. Stepping them forward one day at a time is the same move as any numerical method: compute today's rates from today's numbers, then update.
Walking Through the Daily Steps
Step 1: Compute day 1
Start from S = 990 and I = 10. New infections are
0.3 \times 990 \times 10 \div 1000 = 2.97
Recoveries are 0.1 \times 10 = 1. Now update each group. The susceptible group loses the new infections: 990 - 2.97 = 987.03. The infected group gains the new infections and loses the recoveries: 10 + 2.97 - 1 = 11.97. The recovered group gains the recoveries: 0 + 1 = 1.
So after day 1, S = 987.03, I = 11.97, and R = 1. As a check, the three still add up to 1,000. Nobody enters or leaves the town in this model; people only move between groups.
Step 2: Compute day 2
Use the day-1 numbers. New infections are 0.3 \times 987.03 \times 11.97 \div 1000, which is about 3.54. Recoveries are 0.1 \times 11.97, which is about 1.20. Update again:
- S: 987.03 - 3.54 \approx 983.49
- I: 11.97 + 3.54 - 1.20 \approx 14.32
- R: 1 + 1.20 = 2.20
The infected group grew from 10 to 11.97 to 14.32. Each day's new infections outnumber the day's recoveries, so the outbreak is growing, and growing faster each day, because more infected people means more contacts.
Step 3: Find the reproduction number
The reproduction number is the average number of new infections one case causes early on, when nearly everyone is susceptible. In the SIR model it's the infection rate divided by the recovery rate:
0.3 \div 0.1 = 3
Here's why. Early on, almost everyone is susceptible, so each infected person causes about 0.3 new infections a day. An infected person stays infected for about ten days on average, which is 1 divided by the recovery rate of 0.1. Over those ten days, at 0.3 per day, each case causes about 3 more. A reproduction number above 1 means the outbreak grows.
Step 4: Find the threshold
Infections rise on any day when new infections exceed recoveries. Compare the two rules: new infections are 0.3 \times S \times I \div 1000 and recoveries are 0.1 \times I. Both contain I, so the comparison depends only on the share of the town still susceptible. Infections rise when
0.3 \times S \div 1000 > 0.1
which is the same as S \div 1000 > 1/3. So infections keep rising only while more than a third of the town is susceptible, about 333 people. That's the threshold, and it's 1 divided by the reproduction number.
On day 2, 983.49 people are susceptible, far above 333, so the outbreak has a long way to grow.
Step 5: Explain the peak and decline
You don't need to step every day to see what happens next. Each new infection moves someone out of S, so the susceptible group keeps shrinking. As it shrinks, each infected person meets fewer people who can catch the disease, and new infections per case fall. When S drops below about 333, recoveries outpace new infections, and the number infected starts to fall. That turning point is the peak.
If you carry the same arithmetic forward, as a spreadsheet can, the infected count peaks around day 28 at about 316 people, just as S passes through about 333. After the peak, the infected count falls steadily. By day 100, about 53 people have never been infected. The outbreak ends because it runs out of susceptible people to reach, not because everyone has caught the disease.
Key Considerations
Fractions of people are a feature, not a mistake. A count of 11.97 infected people can't happen in a real town, but the model treats each group as a smoothly varying quantity, the way a population model does. Rounding at every step would add errors that build up over many days. Keep the decimals while stepping, and round only when you report a result.
The order of updates matters. Compute both new infections and recoveries from the same day's numbers before changing any group. If you update S first and then use the new S to compute infections, you're mixing two days, and the totals won't add up the same way.
The common mistake: assuming the epidemic stops only when everyone has been infected. It's natural to picture an outbreak burning until there's no one left. The threshold shows why that's wrong. Infections fall as soon as the susceptible share drops below 1 divided by the reproduction number, here one-third. After that, each case leads to fewer than one new case on average, and the outbreak fades while some people have never been infected. Kermack and McKendrick noted this pattern in 1927 (O'Connor and Robertson 2020).
This is a model, not a forecast. The simple SIR model assumes everyone mixes evenly and that the rates stay fixed. Real contacts cluster, and people change their behavior during an outbreak. The model explains the shape of an epidemic; practical forecasts need more detail.
Summary
Stepping the SIR model forward means computing each day's new infections and recoveries from that day's numbers, then moving people between groups. For a town of 1,000 starting with 10 infected, an infection rate of 0.3, and a recovery rate of 0.1:
| Day | New infections | Recoveries | S | I | R |
|---|
| 0 | — | — | 990 | 10 | 0 |
| 1 | 2.97 | 1 | 987.03 | 11.97 | 1 |
| 2 | 3.54 | 1.20 | 983.49 | 14.32 | 2.20 |
Reproduction number: 0.3 \div 0.1 = 3. Threshold: infections rise only while more than one-third of the town, about 333 people, is susceptible.
- Each row adds up to 1,000, which checks the arithmetic.
- Infections rise on both days because S is far above the threshold.
- Carried further, infections peak around day 28, when S falls to about the threshold, and the outbreak ends with some people never infected.
References
- Kermack, W. O., and A. G. McKendrick. 1927. "A Contribution to the Mathematical Theory of Epidemics." Proceedings of the Royal Society of London, Series A 115 (772): 700–721.
- Free: None confirmed
- Free companion: O'Connor and Robertson 2020
- O'Connor, J. J., and E. F. Robertson. 2020. "Contributions to the Mathematical Theory of Epidemics." MacTutor History of Mathematics Archive, University of St Andrews. Last updated November 2020.