Age and contact matrices
Measured contact patterns give the immunity factor with nothing fitted: 1.1-1.7 from age alone, 2.3-3.0 with one-day contact diaries, and 3.4-3.7 from a panel that follows the same people for two years.
Age alone
Let $M_{ij}$ be the average number of daily contacts a person of age group $i$ has with people of age group $j$, from the synthetic matrices of Prem et al. (2021). The infected fraction $x_i$ of age group $i$ grows as
$$\dot x_i = \beta\,s_i\,\sigma_i\sum_j M_{ij}\,x_j - \gamma\,x_i,$$where $s_i$ is the susceptible share and $\sigma_i$ a relative susceptibility.
Early infections take the age profile $v$, the leading right eigenvector of $\operatorname{diag}(\sigma)M$. Let $u$ be its left eigenvector and $n_i$ the population shares. Depleting the susceptibles along $v$ lowers the leading eigenvalue at the rate
The numerator is how strongly early infections sit in the groups that drive transmission. The denominator converts to the overall infected share.
| country | $\lambda_{\text{age}}$, equal susceptibility | under-20s half as susceptible | infected at the first peak, $R = 2.5$ |
|---|---|---|---|
| Spain | 1.51 | 1.14 | 53% (56%) |
| Sweden | 1.58 | 1.18 | 52% (55%) |
| United States | 1.53 | 1.13 | 53% (56%) |
| United Kingdom | 1.72 | 1.14 | 51% (56%) |
| Switzerland | 1.41 | 1.15 | 54% (55%) |
| Brazil | 1.27 | 1.12 | 55% (56%) |
Peaks from simulating the age-structured model; the textbook value at $R = 2.5$ is 60%.
The half-susceptibility case follows Davies et al. (2020). Populations: World Bank, 2020. Code: 12_age.py.
Age mixing moves the threshold from 60% to 51-56%. It cannot account for turnovers near 20%.
Activity within age groups
The POLYMOD contact diaries (Mossong et al. 2008) record every contact of 7,290 people in eight European countries on one day. Within an age group the number of contacts varies widely. The squared coefficient of variation is
| age | participants | $\mathrm{CV}^2$, all contacts | $\mathrm{CV}^2$, close contacts |
|---|---|---|---|
| 0-19 | 2,719 | 0.53 | 0.58 |
| 20-64 | 3,950 | 0.63 | 0.70 |
| 65+ | 556 | 0.77 | 0.95 |
Close contacts: physical, or lasting at least 15 minutes. By country, the adult value runs from 0.39 (Italy) to 0.68 (Belgium).
Give each person a gamma-distributed activity within their age group, with these variances, and let activity scale both their contacts and their partners' contacts. The same eigenvector formula, applied to the joint structure of age and activity, gives
| country | $\lambda$, age and activity | infected at the first peak, $R = 1.6$ | rule $1 - R^{-1/\lambda}$ | final | textbook |
|---|---|---|---|---|---|
| United States | 2.70 | 18.5% | 16.0% | 33.0% | 37.5% |
| Sweden | 2.77 | 18.1% | 15.6% | 32.4% | 37.5% |
| Spain | 2.66 | 18.5% | 16.2% | 33.0% | 37.5% |
| United Kingdom | 3.02 | 17.3% | 14.4% | 31.1% | 37.5% |
| Brazil | 2.30 | 19.9% | 18.5% | 35.4% | 37.5% |
Activity held fixed through the wave. Code: 15_polymod.py, 16_age_activity.py.
An immunity factor of 2.3 to 3.0, from contact surveys alone, matches what epidemics show where control was weak: 2 to 3.5 in US county waves in winter 2020-21, and 2.5 in Manaus.
A one-day diary mixes lasting differences between people with day-to-day variation, so the fixed-activity value is an upper bound for the lasting part. POLYMOD also under-records very high contact counts in some countries, which pushes the other way.
With activity held fixed, the final size in Brazil at $R = 1.6$ would be 35%. Manaus reached 66-76%. The early turnover matches fixed activity, but the final size says activity reshuffled afterwards (activity that changes over time).
How long busy phases last
A one-day diary cannot tell a busy person from a busy day. The CoMix panel (CoMix UK) surveyed the same people repeatedly from March 2020 to March 2022. For 21,158 adults seen at least three times, activity is the number of contacts on the diary day divided by the mean for the same week and age group, so lockdowns and seasons drop out.
The covariance of a person's activity between surveys separated by $\ell$ days is fitted as
$$C(\ell) = \sigma_p^2 + \sigma_s^2\,e^{-\ell/\tau} \quad (\ell \ge 7\ \text{days}), \qquad C(0) = \sigma_p^2 + \sigma_s^2 + \sigma_n^2 ,$$with a persistent part $\sigma_p^2$, a switching part $\sigma_s^2$ with correlation time $\tau$, and day-to-day variation $\sigma_n^2$:
| contacts capped at | one-day $\mathrm{CV}^2$ | persistent | switching | correlation time | day to day |
|---|---|---|---|---|---|
| 20 | 1.82 | 0.54 (30%) | 0.23 (13%) | 36 days | 1.05 (57%) |
| 50 | 3.90 | 1.06 (27%) | 0.51 (13%) | 28 days | 2.34 (60%) |
| 100 | 6.54 | 1.69 (26%) | 0.88 (14%) | 23 days | 3.97 (61%) |
The split is stable: about 60% of the variation between one day and the next is gone within a week and does not affect which people an epidemic uses up. About 27-30% lasts for the whole two years. About 13% comes and goes with a correlation time of three to five weeks.
During a wave growing at rate $r$, the persistent part acts in full and the switching part in proportion $r/(r + 1/\tau)$. With the UK age matrix, the predicted immunity factor is
| contacts capped at | $\lambda$, growth 0.02-0.2 per day | turnover at $R = 1.6$ | turnover at $R = 2.5$ |
|---|---|---|---|
| 20 | 3.4-3.7 | 12-13% | 22-24% |
| 50 | 4.6-5.2 | 9-10% | 16-18% |
| 100 | 5.9-6.8 | 7-8% | 13-14% |
Code: 17_comix.py, 18_comix_lambda.py.
With no epidemic data used, the capped-at-20 row gives 3.4-3.7, which matches the US county waves of winter 2020-21 and the value of about 4 fitted to New York City. At $R = 2.5$ it puts the turnover at 22-24%, the herd-immunity paradox as first observed.
The immunity factor changes by only about 7% across a tenfold range of growth rates. That is why the county data could not measure how the turnover varies with growth.
The transient part is small and wears off over about a month. The persistent part is two to three times larger and does not wear off, which fits a lasting reduction in the threshold better than it fits Manaus' 66-76% final attack.
CoMix was collected during the pandemic, when contacts were fewer and more unequal than usual, and contact counts are an imperfect proxy for transmission.