INTERACTIVE COMPANION · VOL 1, ISSUE 2 · WINTER 2025
The Contact Sheet
Two models sit below, and both run the same simulator the article used: a discrete-time stochastic SIR process on a fixed graph of 10,000 people, mean degree six, with a geometric infectious period. Nobody real is in here. Every dot is a number.
The first model lets you watch one outbreak happen. The second runs thousands of them and finds where the epidemic threshold sits on each network. Both are seeded, so the same settings give the same answer twice.
Model 1. One outbreak, watched
Ten thousand nodes are drawn as a 100 × 100 grid of cells. For the lattice that grid is the network: neighbours on screen are neighbours in the graph, and you will see a ring creeping outward. For the other three the position is just node index order, so the picture shows you structure rather than geography. Watch the small world produce bands, because rewiring only 5% of edges leaves most contacts nearby in index. Watch the scale-free network produce confetti, because a hub reaches everywhere at once.
susceptible infectious recovered article peak at these settings: –
One run is one run. The article's numbers are averages over 600 of them, so a single outbreak here will land near the published figure rather than on it, and roughly one run in six fizzles out in the first few steps and infects nobody. That bimodality is real and it is why the article quotes outbreak probability and outbreak size as two separate numbers.
Model 2. Finding the threshold
This one sweeps transmissibility across a grid, runs a batch of epidemics at every point on all four networks, and plots the attack fraction among outbreaks that got going. The dashed line is the well-mixed prediction, which solves \(z = 1 - e^{-6Tz}\) and switches on at \(T = 1/6\). All four networks have mean degree exactly 6, so the well-mixed model makes the same prediction for every one of them.
Open circles are the article's own measured points, printed from the full 600-run sweep. The live curve should land on them.
lattice random small world scale free well-mixed prediction
The threshold estimate printed above is the crudest of the three the article uses: the lowest swept \(T\) at which more than 5% of runs took off. It is good enough to show the ordering and the size of the gap, and it is not good enough to quote. The article's numbers come from a susceptibility peak with a bootstrap interval, refined on a denser grid, and it took an argument about fractal cluster sizes to get the lattice one right.
Why the scale-free network cheats
Mean degree is six on all four graphs. Mean square degree is not. The article's scale-free graph carries \(\langle k^2 \rangle = 114.29\) against 36 for the lattice, and the tree-like threshold depends on the ratio:
$$T_c \;=\; \frac{\langle k \rangle}{\langle k^2 \rangle - \langle k \rangle}$$Put the scale-free numbers in and you get 0.0554 against 0.2000 for the lattice. A disease that cannot spread at all in a well-mixed population of the same average sociability spreads happily through a population with a few very well-connected people in it. Model 1 at T = 0.10 shows you that as a picture; Model 2 shows you the same thing as a curve.
Each graph here is rebuilt in your browser from its own seed, so its degree statistics are its own. Three of the four land on the article's values to three digits. The scale-free second moment does not, and it is printed in the Model 1 readout so you can see how far it has moved: the article's graph had \(\langle k^2 \rangle = 114.29\), and a browser build can easily sit ten per cent either side of that. The reason is that \(\langle k^2 \rangle\) is dominated by the largest hub, and the largest hub is a single draw from a heavy tail. The article measures the same wobble directly: rebuilding that graph under four extra seeds gave 110.52, 112.40, 107.93 and 110.95.
The attack fractions barely notice, because at \(T = 0.50\) every network is far above its threshold. The measured threshold itself notices a great deal, which is exactly the uncertainty the article says it did not propagate.