INTERACTIVE COMPANION · WINTER 2025 · ORIGINAL RESEARCH
The Transmission Bench
Two benches below. The first grows one outbreak chain at a time from a single case, so you can watch what "most people infect nobody" actually looks like as a shape rather than a percentage. The second lets you split a fixed control budget between two levers, the same two the article compares in §8, and reports the resulting extinction probability instantly from the closed-form root the article validates, not from a slow simulation.
Model 1. Grow an outbreak
Every generation, every currently infectious case independently draws a number of new cases from a negative binomial distribution with mean \(R\) and dispersion \(k\), exactly the model in the article. The chain is drawn live, one generation at a time. It stops the moment a generation produces zero new cases (EXTINCT), or once the chain has produced more than 60 cases in total, at which point it is frozen and counted as a LARGE OUTBREAK rather than drawn out to its true, much larger size.
Model 2. Split a fixed control budget
Fix the baseline at the article's own realistic values, \(R_0 = 2.5\) and \(k_0 = 0.1\). Choose a total effort \(E\), the fraction of the uncontrolled mean transmission you intend to remove, then choose how much of that effort goes to thinning every case's transmission uniformly (Strategy A) versus capping only the largest events (Strategy B). Both ends of the split spend the same total \(E\); only the mechanism changes. The chart and the extinction probability below update instantly, computed from the same closed-form root as Model 1, not simulated.
- Model 1 default (R=2.5, k=0.1)
- theoretical extinction 86.0685%
- Model 2, split all to A, E=0.45
- 94.5928%, matches the article's Table in §8 exactly
- Model 2, split all to B, E=0.45
- ≈89.00% with this page's integer-rounded cap, against 89.64% in the article's 20,000-replicate simulation with an exact fractional cap
What would break this
Model 1 draws real negative-binomial variables, generated in your browser as a Poisson count with a Gamma-distributed mean, the identical construction numpy uses internally and the identical mathematics behind equation \(\mathrm{Var} = R + R^2/k\) in the article. It is not, however, running anything like 40,000 replicates: it is one chain at a time, so the running "extinct" percentage above will be noisy for the first few dozen chains and only settle in after a few hundred, precisely the point Figure 2 in the article makes about Monte Carlo convergence. Model 2's "gathering cap" idealises a ban as a clean mathematical ceiling, exactly as the article's §9 admits it does; drag the split slider and you are exploring that idealisation, not a policy costing.