The renewal equation

How a single number — the time-varying reproduction number R(t) — drives an epidemic forward. The renewal equation turns today's transmissibility and the generation interval into tomorrow's cases. Above 1 it grows, below 1 it shrinks, and the epidemic peaks exactly where R(t) crosses 1. Everything here is live — drag the sliders and watch the outbreak respond.

The renewal equation

New infections are made by old infections — scaled by R(t)

Infections are not independent. Each new case was infected by someone who is already infectious. The renewal equation writes this down directly: the expected number of new infections on day t is the reproduction number times a weighted sum of recent infections, where the weights are the generation interval g(s) — the distribution of times between an infector being infected and them infecting someone else:

I(t) = R(t) · Σs=1 I(t − s) · g(s)

Read it piece by piece:

The headline. Because g(s) sums to 1, on average each infectious person produces R(t) others. So R(t) > 1 → growth, R(t) < 1 → decline, and the epidemic peaks at the moment R(t) crosses 1. This is the single most useful fact about R(t), and the simulator below makes it visible.

This is more general than the basic reproduction number R0 (secondary infections in a fully susceptible population) and includes the simple SIR model as a special case — there R(t) = R0 S/N, falling as susceptibles are depleted.

The renewal step, as a self-convolution slide · multiply · sum

Today's cases = R × a weighted sum of recent cases

The renewal equation is the same convolution as turning infections into onsets — except the series convolves with itself: each day's cases are built from the recent days' cases, weighted by the generation interval g(s) and scaled by R. Step a day forward and watch its bar get assembled from the ones before it.

I(t) = R · Σs ≥ 1 I(t − s) g(s)
incidence I(t) generation-interval weight g(s) the day being built
Because the output feeds straight back into the input, a constant R compounds into exponential growth — and the generation interval sets how fast each turn of the sum (one "generation") comes round. This self-convolution is the engine behind every R(t) figure on this page.

A step in R, and the growth rate it produces the centrepiece

R says how many; the generation interval says how fast

Apply a step change to R(t) — from an initial R0 down or up to a later R1 on a chosen day (think of an intervention, with an optional smooth transition). The epidemic is seeded with a handful of infections, then the renewal recursion I(t) = R(t)·Σs I(t−s) g(s) runs forward for 120 days using the generation interval set right here.

Three panels share the day axis. The top is R(t), with a slate dashed line at R = 1. The middle is incidence I(t) (toggle a log axis to see the straight-line exponential phases). The bottom is the realised per-day growth rate r(t) = ln(I(t)/I(t−1)). The two purple dashed lines mark the equilibrium growth rates r0 and r1 that R0 and R1 imply through the Euler–Lotka relation. Watch the key thing: when R steps, r(t) does not jump — it glides from r0 to r1 over roughly one generation interval.

R(t) R = 1 / r = 0 incidence I(t) realised r(t) equilibrium r0, r1
equilibrium r before = /day equilibrium r after = /day doubling time after = r reaches r1 ~ days after the step
The key point. The realised growth rate lags the R step by about one generation interval — it cannot turn over instantly because today's infections were seeded by a whole cohort of past cases. Shorten the generation-interval mean and the same R step produces a larger |r| and a faster response; lengthen it and r is smaller and slower to settle. R fixes the destination; the generation interval sets the speed and the journey.

The R ↔ growth-rate map the link

One R, many growth rates — the generation interval decides which

R and the per-day growth rate r are two views of the same exponential phase, related through the generation interval by the Euler–Lotka equation. For a constant R the asymptotic growth rate solves

1R = Σs g(s) e−r s  ⇒   R = 1Σs g(s) e−r s   doubling time = ln 2r

The right-hand side decreases monotonically in r, so each R maps to exactly one growth rate (and back). The curve below plots that map for the current generation interval. The two dots are the operating points from the step above: (R0, r0) and (R1, r1). Now slide the generation-interval mean: the whole curve shifts, so the same R slides to a different r — and the same observed r implies a different R. R alone does not pin down the growth rate.

Euler–Lotka map for current GI map at a different GI operating points (R0,r0) & (R1,r1)
at R = , current GI gives r = /day same R at compare GI gives r = /day
Why the generation interval matters. R only counts how many people each case infects, not how fast. With a short generation interval those secondary infections arrive sooner, so the same R compounds more quickly: a higher growth rate r and a shorter doubling time. Slide the generation-interval mean down and watch the curve steepen and the operating points climb, even though R has not moved.

Takeaways