BEST Names: six layouts of one table, for choosing between#

VVN: b16x-bestnames-layout-variants-dv_ClaOp50Max_MMv1r0p0_2026m09d16_23h20
Generated by: scripts/gen-bestnames-variants.py — re-run it after any edit to Table B and this page follows.
Status: MM — a decision aid, not a version of the paper. Tracked as an open task in AA b16 — Finalizing the RiskyMAD paper (list of record, lives beside the drafts it plans).

FROZEN — the decision this page served has been taken

2026m09d17. LLoL chose a refinement of V4 and the transform has been applied to the paper. Table B is now four things: the index, the glossary, Table B-old and Table B-MM.

This page is kept unchanged, as the record of how that choice was made and what each rejected layout actually looked like in print. It describes the five-column table as it stood before the transform, so its V0 no longer matches the paper — that is the point of a record. scripts/gen-bestnames-variants.py now refuses to run rather than regenerate this page against the restructured source.

What was chosen, and what was not: the index and the glossary are V4’s; the was column left the index entirely (V4 kept it) and became Table B-old; the enzyme-kinetics material became its own table rather than a pointer to Table F; and every quantity was given an Explicit name, where V4 left seven honestly empty. The llog records why each of those went the way it did.

What this page is — and what it is not

A layout experiment, not a version of the paper. Every word of prose below is copied verbatim from Table B of Table B — the BEST Names index, every symbol on one page (b16-extra-waiting-time-derivation_mmv1_2026m09d07.rst, lines 316–566) by a script, so the six layouts differ only in layout. Nothing here has been re-derived, re-worded, or checked for correctness — that is a separate run.

Four things are Claude’s, not the paper’s, and are marked where they occur: the six group names in the index tables, the B/E/S/T run-in labels, the section prose, and the three content decisions proposed in V4.

Read it in the PDF as well as in the browser. The two media disagree about what is cheap, and that disagreement is most of the decision.

0. What the present table costs, measured#

Table B is a five-column list-table at widths 14 17 27 29 13, holding 16 entries. Measured against an A4 text block of about 95 characters at 11 pt:

What the measurement says#

Measured quantity

Value

Why it matters

Characters in columns B, E, was

9 %

three columns, holding 44 % of the width

Characters in columns S, T

91 %

two columns, squeezed into 56 % of the width

Longest S cell against shortest

1161 / 89 chars

a 13-fold range; no one column width serves both

Whitespace as a share of table area

63 %

every row is as tall as its tallest cell

Printed height, read off this PDF

9 A4 pages

worse than the 6.1 the character count predicts

Rows whose E cell carries a real code name

3 of 16

the E column is 17 % of the width and 13/16 empty

Rows stating Companion code: inside T

6 of 16

p_M_to_D, T_R_to_D, r_onset, r_relax, excursions(), r_all

Rows repeating “Was X before 2026m09d08” in T

12 of 16

the was column already says exactly this

Rows restating the Michaelis–Menten mapping

4 of 16

Table F already tabulates it

Two of those rows are about space. The other two are not, and they are the sharper finding: the Explicit names are sitting in the Technical column while the Explicit column says “— (derived)”. r_onset, r_relax, p_M_to_D, T_R_to_D, excursions() and r_all are real identifiers in the companion code, and every one of them is currently reached only by reading a paragraph of prose in the narrowest text column of the table. The E of BEST is not doing its job. Fixing that is a content improvement that also happens to save space, which is why V4 is the variant worth arguing about rather than merely looking at.

The page-9 figure is read off this PDF; the percentages are Claude’s measurements of the source. Offered not to be believed, but to be checked: every block below was built by scripts/gen-bestnames-variants.py, which reads Table B out of the paper and re-emits it. Re-run it after any edit to Table B and this page follows.

V0. The table as it stands today (baseline)#

Unchanged, for comparison. Two things to watch for while paging through it: how often three of the five columns are blank, and page 3, where a single entry gets a whole page because a longtable row that will not fit in the space left is pushed forward whole. That page-level waste is why the printed height (9 pages) beats the 6.1 pages the character count predicts.

V0 — Table B exactly as it stands today#

Brief

Explicit (model code)

Summarizing (prose)

Technical — synonyms, cross-domain identities, and the symbol this document used before 2026m09d08

before 2026m09d08

\(r_{R \rightarrow M}\)

rRiskyGoMAD

the crisis rate — how often a Risky world walks into a MAD nuclear crisis, per year

Poisson arrival rate. Enzymology \(k_{on}[S]\). Michaelis–Menten substrate \(S\). Hellman’s \(\lambda_{IE}\) is the nearest published relative. Textbook generator entry \(q_{RM}\). Was \(\lambda\) here in drafts before 2026m09d08; lam in the code.

\(\lambda\)

\(r_{M \rightarrow R}\)

rMADescapes

the de-escalation rate — how fast a MAD crisis walks back to Risky safety, per year

Queueing service rate. Enzymology \(k_{off}\). Textbook \(q_{MR}\). Was \(\mu\) here in drafts before 2026m09d08; mu in the code.

\(b\)

\(r_{M \rightarrow D}\)

rMADtoDEATH

the kill escalation rate — how fast a MAD crisis explodes into accidental nuclear winter, per year, if this MAD crisis was to actually last for a year.

Enzymology \(k_{cat}\), the committed step. Michaelis–Menten \(V_{max}\): you cannot destroy the world faster than this. Textbook \(q_{MD}\). Was \(\kappa\) here in drafts before 2026m09d08; kap in the code.

\(c\)

\(r_{M \rightarrow \text{out}}\)

— (derived)

the crisis clock — how fast a crisis resolves, either way (by mending or killing). Its reciprocal is the mean crisis duration, ≈ 40 days.

\(= r_{M \rightarrow R} + r_{M \rightarrow D}\), the total rate of leaving MAD by any arrow. Michaelis–Menten \(K_m\). Was \(\mu + \kappa\) here in drafts before 2026m09d08. Written rMADescapes + rMADtoDEATH in the code; it has no identifier of its own.

\(b+c\)

\(p_{M \rightarrow D}\)

— (derived: \(r_{M \rightarrow D} / r_{M \rightarrow \text{out}}\))

the per-crisis chance of nuclear winter — of all the crises the world enters, the share that go all the way to Dead instead of back to Risky. Base case: 1/3. This number and the crisis rate are not separately identified: fixing it at 1/3 is what defines which near-disasters count as “Cuban-Missile-Crisis type” and are therefore counted by rRiskyGoMAD. If the true per-crisis chance is higher than 1/3, the same forecast follows from a correspondingly higher effective rRiskyGoMAD, and vice versa. Neither is known separately; what the study assumes is that their product lies between the bounds discussed in the text. Section 14.1 makes this exact.

Warning

This is not anybody’s personal risk. “1/3” is a conditional about crises — given a crisis has begun, the share that run all the way. An individual’s annual chance of dying is a different quantity by two orders of magnitude: \(P(T_{R \rightarrow D} \leq 1) \times q_{\text{dead}} = 0.029 \times 0.3 \approx\) 0.9 % per year. Any reader who reads “1 in 3” as a personal odds has been misled by the notation, which is why \(p_{death}\) was retired as a name.

Same arrow as \(r_{M \rightarrow D}\), but a probability rather than a rate — which is why the defining identity \(p_{M \rightarrow D} = r_{M \rightarrow D}/r_{M \rightarrow \text{out}}\) can be read straight off the notation: the share of the leaving-rate that goes to D. Enzymology: commitment to catalysis; specificity constant \(k_{cat}/K_m\). Kennedy’s Cuban estimate is a reading of this, not of the crisis rate. Was \(p_{\text{end}}\) here in drafts before 2026m09d08. Companion code: p_M_to_D, returned by p_end().

\(p_{death}\)

\(T_{R \rightarrow D}\)

— (derived)

the waiting time — years from now (world is Risky) until onset of accidental nuclear winter (world is Dead after taking the wrong turn in a MAD state). A random quantity following a distribution, not a fixed date.

First-passage time to absorption from Risky. Not a half-life, not a deadline. Was \(W\) here in drafts before 2026m09d08. Companion code: T_R_to_D, from mean_wait().

\(T_R\)

\(T_{M \rightarrow D}\)

— (derived)

the waiting time from inside a crisis — years from the start of some crisis until Dead, counting everything that follows if this crisis de-escalates: the return to Risky, the wait for the next crisis, and every later crisis until one of them ends it. Base case 20.3 years — note years, not the 40 days a single crisis lasts.

First-passage time to absorption from MAD. A bookkeeping quantity; it appears only inside the derivation. One symbol is enough, because the duration of the final crisis is not a separate unknown: by Fact 3 a crisis lasts \(1/r_{M \rightarrow \text{out}}\) ≈ 40 days on average whether or not it is the one that escalates. Check: \(1/r_{R \rightarrow M} + T_{M \rightarrow D} = 10 + 20.33 = 30.33 = T_{R \rightarrow D}\). ✓ Was \(W_{\text{crisis}}\) here in drafts before 2026m09d08. Not a separate identifier in the companion code.

\(T_M\)

\(r_{\text{onset}}\)

— (derived)

the onset rate — the composite rate, per year, of transitioning all the way from Risky through MAD to Dead. This is the disaster rate, and the one number here comparable to published estimates of “X percent per year” for nuclear war. Base case 0.0331/yr, that is 3.3 % per year. It is the level the risk settles at once the first months are past — not a rate that applies from day one (section 7.2).

Smaller root of the characteristic quadratic; the decay rate of the quasi-stationary distribution; the asymptotic hazard. It is an equilibrium rate in every sense that can apply to an absorbing chain. Strictly the chain has no equilibrium, since all probability drains into Dead (only 0.13 % of worlds survive 200 years); what it settles into is the quasi-stationary state — an equilibrium among the survivors, who divide 98.9 % Risky / 1.1 % MAD. But that state has the defining property one would want: started from it, the waiting time is exactly exponential at rate \(r_{\text{onset}}\), with no correction term at any horizon (section 7.5, checked to machine precision). It is not named \(r_{R \rightarrow D}\), because R → D is not a transition of the model: there is no direct arrow, only the composite journey through M. Bounded exactly by \(1/T_{R \rightarrow D} < r_{\text{onset}} < r_{R \rightarrow M}\, p_{M \rightarrow D}\) (section 7.1). Was \(r_{\text{slow}}\) here in drafts before 2026m09d08. Companion code: r_onset, the first value returned by decay_rates().

\(r_1\)

\(r_{\text{relax}}\)

— (derived)

the relaxation rate — not a disaster rate at all, and not a rival to \(r_{\text{onset}}\). The two are different kinds of quantity: \(r_{\text{onset}}\) is the level the risk settles at; \(r_{\text{relax}}\) is the speed at which it settles there, and its reciprocal, ≈ 40 days, is the relaxation time. Why there is anything to settle: the forecast is made knowing the world is in Risky today and not already in a crisis, so onset cannot happen immediately — a crisis must first arrive and then run its course. The risk therefore starts at exactly zero and climbs to \(r_{\text{onset}}\) within a few months (sections 7.2, 7.4, 7.5). This is what that knowledge is worth: 2.90 % rather than 3.25 % for the coming year (section 7.5).

Larger root of the same quadratic. Standard usage in kinetics and in Markov-chain theory calls \(1/(r_{\text{relax}} - r_{\text{onset}})\) the relaxation time; here the two differ by 0.37 % (40.43 d against 40.28 d), so the distinction never matters numerically but is stated to keep the identification honest. It is likewise close to, but not equal to, the crisis clock: \(r_{\text{relax}} = 9.067\)/yr against \(r_{M \rightarrow \text{out}} = 9.000\)/yr, larger by 0.74 %, and section 7.1 proves that inequality is strict whenever \(r_{M \rightarrow R} > 0\). Section 7.3 explains why the two exponentials of the closed form are not the two physical stages. Was \(r_{\text{fast}}\) here in drafts before 2026m09d08. Companion code: r_relax, the second value returned by decay_rates().

\(r_2\)

\(n_{MAD}\)

— (derived: \(1/p_{M \rightarrow D}\))

the number of MAD crises the world passes through before one of them reaches Dead — on average 3

Geometric random variable with success probability \(p_{M \rightarrow D}\). This is the factor that answers the “loop objection” (section 5.5). Was \(n_{\text{tries}}\) here in drafts before 2026m09d08. Companion code: excursions().

— (implicit)

\(q_{\text{dead}}\)

— (external)

the death fraction — the share of humanity that dies within about two years of onset, from all causes taken together: the blast and fire, and then the famine and supply-chain collapse that follow, which dominate the total. It is not deaths in the strikes alone.

Not produced by this model. b16 SIA-9 takes it from Xia et al. (2022), whose figures are deaths by the end of year 2: a small regional exchange (~100 warheads, 5 Tg soot) gives about 2 billion (\(q \approx 0.25\)); a full US–Russia exchange (150 Tg) gives over 5 billion (\(q \approx 0.63\)). b16 uses 0.3, which is therefore conservative twice over — it takes the figure for the smallest exchange modelled, and it stops counting at two years while the climate disruption runs for a decade or more. Section 14.2 works through what the two-year horizon does and does not include; the scenario-matched value is 0.63, which would roughly double every multiplier b16 reports.

\(q\)

\(r_{\text{flux}}\)

— (derived: \(1/T_{R \rightarrow D}\))

the flux of worlds — onsets per world-year, 0.0330/yr. This is what a simulation measures directly: run 40 world histories, add up their waiting times, and divide 40 by that total. It is a property of the ensemble, not of any world in it — a single world has exactly one onset, ever, on one date, and never experiences “0.033 onsets per year”. Distinct from \(r_{\text{onset}}\) in kind as well as value (0.0331/yr, 0.36 % apart): \(r_{\text{onset}}\) is a hazard — instantaneous, conditional on having survived so far — whereas \(r_{\text{flux}}\) is an unconditional average over the whole run. Quote \(r_{\text{onset}}\) against published “X percent per year” figures; quote \(r_{\text{flux}}\) when reporting what an ensemble of runs produced.

Michaelis–Menten reaction velocity \(v\) (9. Michaelis–Menten, derived rather than asserted), which is the same quantity read as a turnover: an enzyme processes substrate repeatedly, so for enzymes the flux is what one actually observes, and the ensemble is the molecules in the tube. Here the “tube” is a hypothetical population of worlds — which is exactly why the enzymology symbol \(v\) is kept only inside section 9, where that reading is being made on purpose.

\(v\)

\(r_{\text{all}}\)

— (derived)

the sum of every rate in the model — \(r_{R \rightarrow M} + r_{M \rightarrow R} + r_{M \rightarrow D}\) = 9.1/yr. It is a rate like any other and is written as one, rather than as a bare Greek abbreviation, so that an equation containing it can be looked up here. It grows automatically if the model grows: a Risky → LifeMAP escape arrow would enter this sum too.

Minus the trace of the transient generator. Appears in both Vieta relations: \(r_{\text{onset}} + r_{\text{relax}} = r_{\text{all}}\), which is the quickest check that the two roots were solved correctly. Was \(\Sigma\) here in drafts before 2026m09d08. Companion code: the local total inside decay_rates(), and r_all in crosschecks.py.

\(\lambda + b + c\)

\(p_{\text{winter}}(t)\)

— (derived: the density of \(T_{R \rightarrow D}\))

the density — how much of the probability of onset falls in each year. Not a probability itself: it has units of 1/yr, and only its area over a stretch of years is a probability. It appears once, as the numerator of the hazard in section 7.2.

Probability density function of the waiting time. Lower case on purpose: \(P(\cdot)\) in these same equations is a probability, and a density is not one — the case carries the type. Named for the event rather than the arrow (winter, not \(T_{R \rightarrow D}\)) because a nested arrow subscript is unreadable at this size, and because accidental nuclear winter is what the whole paper is about.

— (not in b16)

\(\Delta\)

— (derived)

the discriminant — the quantity under the square root when the two rates are solved for. Its only job is to show that the two rates are always real numbers rather than an oscillation, for any positive rates whatever (section 6.5).

\(\Delta = r_{\text{all}}^{2} - 4\, r_{R \rightarrow M}\, r_{M \rightarrow D}\). Renamed from \(D\) in round four, because \(D\) is the state Dead in the arrow scheme and the two would otherwise appear in the same equations.

— (not in b16)

\(C_{M \rightarrow R}\), \(C_{M \rightarrow D}\)

— (local, section 4 only)

the two clocks — a local proof device, used once and not needed afterwards. Picture each arrow as carrying its own alarm clock set to a random time; the MAD crisis ends when the first clock rings, and which clock rings decides whether the world walks back to Risky or arrives at Dead. Listed here so that a reader who meets these symbols in section 4 is not left wondering why they were introduced at all.

Independent exponential random variables with rates \(r_{M \rightarrow R}\) and \(r_{M \rightarrow D}\). Conventionally written \(X\) in probability texts, where the letter carries no meaning; the clock reading is the same mathematics with an interpretation attached. Was \(C_\mu, C_\kappa\) here in drafts before 2026m09d08. A proof device only; it has no counterpart in the companion code.

— (not in b16)

V1. Entries only — no table at all#

The move. Admit that S and T are paragraphs, not cells, and give them the full page width. Each symbol becomes one definition-list entry: the term line carries B and the S headword; the body carries E, was, and the two prose blocks, with bold run-in labels so the BEST scheme stays visible.

Buys full width for 91 % of the characters, no whitespace waste, clean page breaks, nested admonitions become real admonitions again, and it is trivial to edit by hand. Costs nothing can be scanned: a reader who wants only “what is :math:`r_{text{relax}}`?” has to find the entry by eye.

\(r_{R \rightarrow M}\) — the crisis rate

E rRiskyGoMAD · was \(\lambda\)

how often a Risky world walks into a MAD nuclear crisis, per year

T Poisson arrival rate. Enzymology \(k_{on}[S]\). Michaelis–Menten substrate \(S\). Hellman’s \(\lambda_{IE}\) is the nearest published relative. Textbook generator entry \(q_{RM}\). Was \(\lambda\) here in drafts before 2026m09d08; lam in the code.

\(r_{M \rightarrow R}\) — the de-escalation rate

E rMADescapes · was \(b\)

how fast a MAD crisis walks back to Risky safety, per year

T Queueing service rate. Enzymology \(k_{off}\). Textbook \(q_{MR}\). Was \(\mu\) here in drafts before 2026m09d08; mu in the code.

\(r_{M \rightarrow D}\) — the kill escalation rate

E rMADtoDEATH · was \(c\)

how fast a MAD crisis explodes into accidental nuclear winter, per year, if this MAD crisis was to actually last for a year.

T Enzymology \(k_{cat}\), the committed step. Michaelis–Menten \(V_{max}\): you cannot destroy the world faster than this. Textbook \(q_{MD}\). Was \(\kappa\) here in drafts before 2026m09d08; kap in the code.

\(r_{M \rightarrow \text{out}}\) — the crisis clock

E — (derived) · was \(b+c\)

how fast a crisis resolves, either way (by mending or killing). Its reciprocal is the mean crisis duration, ≈ 40 days.

T \(= r_{M \rightarrow R} + r_{M \rightarrow D}\), the total rate of leaving MAD by any arrow. Michaelis–Menten \(K_m\). Was \(\mu + \kappa\) here in drafts before 2026m09d08. Written rMADescapes + rMADtoDEATH in the code; it has no identifier of its own.

\(p_{M \rightarrow D}\) — the per-crisis chance of nuclear winter

E — (derived: \(r_{M \rightarrow D} / r_{M \rightarrow \text{out}}\)) · was \(p_{death}\)

of all the crises the world enters, the share that go all the way to Dead instead of back to Risky. Base case: 1/3. This number and the crisis rate are not separately identified: fixing it at 1/3 is what defines which near-disasters count as “Cuban-Missile-Crisis type” and are therefore counted by rRiskyGoMAD. If the true per-crisis chance is higher than 1/3, the same forecast follows from a correspondingly higher effective rRiskyGoMAD, and vice versa. Neither is known separately; what the study assumes is that their product lies between the bounds discussed in the text. Section 14.1 makes this exact.

Warning

This is not anybody’s personal risk. “1/3” is a conditional about crises — given a crisis has begun, the share that run all the way. An individual’s annual chance of dying is a different quantity by two orders of magnitude: \(P(T_{R \rightarrow D} \leq 1) \times q_{\text{dead}} = 0.029 \times 0.3 \approx\) 0.9 % per year. Any reader who reads “1 in 3” as a personal odds has been misled by the notation, which is why \(p_{death}\) was retired as a name.

T Same arrow as \(r_{M \rightarrow D}\), but a probability rather than a rate — which is why the defining identity \(p_{M \rightarrow D} = r_{M \rightarrow D}/r_{M \rightarrow \text{out}}\) can be read straight off the notation: the share of the leaving-rate that goes to D. Enzymology: commitment to catalysis; specificity constant \(k_{cat}/K_m\). Kennedy’s Cuban estimate is a reading of this, not of the crisis rate. Was \(p_{\text{end}}\) here in drafts before 2026m09d08. Companion code: p_M_to_D, returned by p_end().

\(T_{R \rightarrow D}\) — the waiting time

E — (derived) · was \(T_R\)

years from now (world is Risky) until onset of accidental nuclear winter (world is Dead after taking the wrong turn in a MAD state). A random quantity following a distribution, not a fixed date.

T First-passage time to absorption from Risky. Not a half-life, not a deadline. Was \(W\) here in drafts before 2026m09d08. Companion code: T_R_to_D, from mean_wait().

\(T_{M \rightarrow D}\) — the waiting time from inside a crisis

E — (derived) · was \(T_M\)

years from the start of some crisis until Dead, counting everything that follows if this crisis de-escalates: the return to Risky, the wait for the next crisis, and every later crisis until one of them ends it. Base case 20.3 years — note years, not the 40 days a single crisis lasts.

T First-passage time to absorption from MAD. A bookkeeping quantity; it appears only inside the derivation. One symbol is enough, because the duration of the final crisis is not a separate unknown: by Fact 3 a crisis lasts \(1/r_{M \rightarrow \text{out}}\) ≈ 40 days on average whether or not it is the one that escalates. Check: \(1/r_{R \rightarrow M} + T_{M \rightarrow D} = 10 + 20.33 = 30.33 = T_{R \rightarrow D}\). ✓ Was \(W_{\text{crisis}}\) here in drafts before 2026m09d08. Not a separate identifier in the companion code.

\(r_{\text{onset}}\) — the onset rate

E — (derived) · was \(r_1\)

the composite rate, per year, of transitioning all the way from Risky through MAD to Dead. This is the disaster rate, and the one number here comparable to published estimates of “X percent per year” for nuclear war. Base case 0.0331/yr, that is 3.3 % per year. It is the level the risk settles at once the first months are past — not a rate that applies from day one (section 7.2).

T Smaller root of the characteristic quadratic; the decay rate of the quasi-stationary distribution; the asymptotic hazard. It is an equilibrium rate in every sense that can apply to an absorbing chain. Strictly the chain has no equilibrium, since all probability drains into Dead (only 0.13 % of worlds survive 200 years); what it settles into is the quasi-stationary state — an equilibrium among the survivors, who divide 98.9 % Risky / 1.1 % MAD. But that state has the defining property one would want: started from it, the waiting time is exactly exponential at rate \(r_{\text{onset}}\), with no correction term at any horizon (section 7.5, checked to machine precision). It is not named \(r_{R \rightarrow D}\), because R → D is not a transition of the model: there is no direct arrow, only the composite journey through M. Bounded exactly by \(1/T_{R \rightarrow D} < r_{\text{onset}} < r_{R \rightarrow M}\, p_{M \rightarrow D}\) (section 7.1). Was \(r_{\text{slow}}\) here in drafts before 2026m09d08. Companion code: r_onset, the first value returned by decay_rates().

\(r_{\text{relax}}\) — the relaxation rate

E — (derived) · was \(r_2\)

not a disaster rate at all, and not a rival to \(r_{\text{onset}}\). The two are different kinds of quantity: \(r_{\text{onset}}\) is the level the risk settles at; \(r_{\text{relax}}\) is the speed at which it settles there, and its reciprocal, ≈ 40 days, is the relaxation time. Why there is anything to settle: the forecast is made knowing the world is in Risky today and not already in a crisis, so onset cannot happen immediately — a crisis must first arrive and then run its course. The risk therefore starts at exactly zero and climbs to \(r_{\text{onset}}\) within a few months (sections 7.2, 7.4, 7.5). This is what that knowledge is worth: 2.90 % rather than 3.25 % for the coming year (section 7.5).

T Larger root of the same quadratic. Standard usage in kinetics and in Markov-chain theory calls \(1/(r_{\text{relax}} - r_{\text{onset}})\) the relaxation time; here the two differ by 0.37 % (40.43 d against 40.28 d), so the distinction never matters numerically but is stated to keep the identification honest. It is likewise close to, but not equal to, the crisis clock: \(r_{\text{relax}} = 9.067\)/yr against \(r_{M \rightarrow \text{out}} = 9.000\)/yr, larger by 0.74 %, and section 7.1 proves that inequality is strict whenever \(r_{M \rightarrow R} > 0\). Section 7.3 explains why the two exponentials of the closed form are not the two physical stages. Was \(r_{\text{fast}}\) here in drafts before 2026m09d08. Companion code: r_relax, the second value returned by decay_rates().

\(n_{MAD}\) — the number of MAD crises

E — (derived: \(1/p_{M \rightarrow D}\)) · was — (implicit)

the world passes through before one of them reaches Dead — on average 3

T Geometric random variable with success probability \(p_{M \rightarrow D}\). This is the factor that answers the “loop objection” (section 5.5). Was \(n_{\text{tries}}\) here in drafts before 2026m09d08. Companion code: excursions().

\(q_{\text{dead}}\) — the death fraction

E — (external) · was \(q\)

the share of humanity that dies within about two years of onset, from all causes taken together: the blast and fire, and then the famine and supply-chain collapse that follow, which dominate the total. It is not deaths in the strikes alone.

T Not produced by this model. b16 SIA-9 takes it from Xia et al. (2022), whose figures are deaths by the end of year 2: a small regional exchange (~100 warheads, 5 Tg soot) gives about 2 billion (\(q \approx 0.25\)); a full US–Russia exchange (150 Tg) gives over 5 billion (\(q \approx 0.63\)). b16 uses 0.3, which is therefore conservative twice over — it takes the figure for the smallest exchange modelled, and it stops counting at two years while the climate disruption runs for a decade or more. Section 14.2 works through what the two-year horizon does and does not include; the scenario-matched value is 0.63, which would roughly double every multiplier b16 reports.

\(r_{\text{flux}}\) — the flux of worlds

E — (derived: \(1/T_{R \rightarrow D}\)) · was \(v\)

onsets per world-year, 0.0330/yr. This is what a simulation measures directly: run 40 world histories, add up their waiting times, and divide 40 by that total. It is a property of the ensemble, not of any world in it — a single world has exactly one onset, ever, on one date, and never experiences “0.033 onsets per year”. Distinct from \(r_{\text{onset}}\) in kind as well as value (0.0331/yr, 0.36 % apart): \(r_{\text{onset}}\) is a hazard — instantaneous, conditional on having survived so far — whereas \(r_{\text{flux}}\) is an unconditional average over the whole run. Quote \(r_{\text{onset}}\) against published “X percent per year” figures; quote \(r_{\text{flux}}\) when reporting what an ensemble of runs produced.

T Michaelis–Menten reaction velocity \(v\) (9. Michaelis–Menten, derived rather than asserted), which is the same quantity read as a turnover: an enzyme processes substrate repeatedly, so for enzymes the flux is what one actually observes, and the ensemble is the molecules in the tube. Here the “tube” is a hypothetical population of worlds — which is exactly why the enzymology symbol \(v\) is kept only inside section 9, where that reading is being made on purpose.

\(r_{\text{all}}\) — the sum of every rate in the model

E — (derived) · was \(\lambda + b + c\)

\(r_{R \rightarrow M} + r_{M \rightarrow R} + r_{M \rightarrow D}\) = 9.1/yr. It is a rate like any other and is written as one, rather than as a bare Greek abbreviation, so that an equation containing it can be looked up here. It grows automatically if the model grows: a Risky → LifeMAP escape arrow would enter this sum too.

T Minus the trace of the transient generator. Appears in both Vieta relations: \(r_{\text{onset}} + r_{\text{relax}} = r_{\text{all}}\), which is the quickest check that the two roots were solved correctly. Was \(\Sigma\) here in drafts before 2026m09d08. Companion code: the local total inside decay_rates(), and r_all in crosschecks.py.

\(p_{\text{winter}}(t)\) — the density

E — (derived: the density of \(T_{R \rightarrow D}\)) · was — (not in b16)

how much of the probability of onset falls in each year. Not a probability itself: it has units of 1/yr, and only its area over a stretch of years is a probability. It appears once, as the numerator of the hazard in section 7.2.

T Probability density function of the waiting time. Lower case on purpose: \(P(\cdot)\) in these same equations is a probability, and a density is not one — the case carries the type. Named for the event rather than the arrow (winter, not \(T_{R \rightarrow D}\)) because a nested arrow subscript is unreadable at this size, and because accidental nuclear winter is what the whole paper is about.

\(\Delta\) — the discriminant

E — (derived) · was — (not in b16)

the quantity under the square root when the two rates are solved for. Its only job is to show that the two rates are always real numbers rather than an oscillation, for any positive rates whatever (section 6.5).

T \(\Delta = r_{\text{all}}^{2} - 4\, r_{R \rightarrow M}\, r_{M \rightarrow D}\). Renamed from \(D\) in round four, because \(D\) is the state Dead in the arrow scheme and the two would otherwise appear in the same equations.

\(C_{M \rightarrow R}\), \(C_{M \rightarrow D}\) — the two clocks

E — (local, section 4 only) · was — (not in b16)

a local proof device, used once and not needed afterwards. Picture each arrow as carrying its own alarm clock set to a random time; the MAD crisis ends when the first clock rings, and which clock rings decides whether the world walks back to Risky or arrives at Dead. Listed here so that a reader who meets these symbols in section 4 is not left wondering why they were introduced at all.

T Independent exponential random variables with rates \(r_{M \rightarrow R}\) and \(r_{M \rightarrow D}\). Conventionally written \(X\) in probability texts, where the letter carries no meaning; the clock reading is the same mathematics with an interpretation attached. Was \(C_\mu, C_\kappa\) here in drafts before 2026m09d08. A proof device only; it has no counterpart in the companion code.

V2. Index plus entries — the split#

The move. Keep a table for exactly the part that is genuinely tabular — the three short columns, one line per row, all 16 comparable at a glance — and put the prose below it as V1 entries. The index fits on one page and can be printed and kept beside the paper.

It is a grid table rather than a list-table, because only a grid table can span columns, and the group headings need to span. .. table:: wraps it so :widths: still applies. The six group names are Claude’s editorial grouping, not the paper’s: they follow the paper’s own in/out distinction (“the notation itself says which quantities to put in and which ones come out”), but the paper never states these six names. Drop them if they over-reach — the layout works without them.

The BEST Names index — one line per symbol#

Brief

Explicit

Summarizing

was

Put in — the three arrows, measured or assumed

\(r_{R \rightarrow M}\)

rRiskyGoMAD

the crisis rate

\(\lambda\)

\(r_{M \rightarrow R}\)

rMADescapes

the de-escalation rate

\(b\)

\(r_{M \rightarrow D}\)

rMADtoDEATH

the kill escalation rate

\(c\)

Put in — from outside the model

\(q_{\text{dead}}\)

— (external)

the death fraction

\(q\)

Comes out — rates

\(r_{M \rightarrow \text{out}}\)

— (derived)

the crisis clock

\(b+c\)

\(r_{\text{onset}}\)

— (derived)

the onset rate

\(r_1\)

\(r_{\text{relax}}\)

— (derived)

the relaxation rate

\(r_2\)

\(r_{\text{flux}}\)

— (derived: \(1/T_{R \rightarrow D}\))

the flux of worlds

\(v\)

\(r_{\text{all}}\)

— (derived)

the sum of every rate in the model

\(\lambda + b + c\)

Comes out — probabilities, counts, densities

\(p_{M \rightarrow D}\)

— (derived: \(r_{M \rightarrow D} / r_{M \rightarrow \text{out}}\))

the per-crisis chance of nuclear winter

\(p_{death}\)

\(n_{MAD}\)

— (derived: \(1/p_{M \rightarrow D}\))

the number of MAD crises

— (implicit)

\(p_{\text{winter}}(t)\)

— (derived: the density of \(T_{R \rightarrow D}\))

the density

— (not in b16)

Comes out — times

\(T_{R \rightarrow D}\)

— (derived)

the waiting time

\(T_R\)

\(T_{M \rightarrow D}\)

— (derived)

the waiting time from inside a crisis

\(T_M\)

Local proof devices, used once

\(\Delta\)

— (derived)

the discriminant

— (not in b16)

\(C_{M \rightarrow R}\), \(C_{M \rightarrow D}\)

— (local, section 4 only)

the two clocks

— (not in b16)

The entries

\(r_{R \rightarrow M}\) — the crisis rate

E rRiskyGoMAD · was \(\lambda\)

how often a Risky world walks into a MAD nuclear crisis, per year

T Poisson arrival rate. Enzymology \(k_{on}[S]\). Michaelis–Menten substrate \(S\). Hellman’s \(\lambda_{IE}\) is the nearest published relative. Textbook generator entry \(q_{RM}\). Was \(\lambda\) here in drafts before 2026m09d08; lam in the code.

\(r_{M \rightarrow R}\) — the de-escalation rate

E rMADescapes · was \(b\)

how fast a MAD crisis walks back to Risky safety, per year

T Queueing service rate. Enzymology \(k_{off}\). Textbook \(q_{MR}\). Was \(\mu\) here in drafts before 2026m09d08; mu in the code.

\(r_{M \rightarrow D}\) — the kill escalation rate

E rMADtoDEATH · was \(c\)

how fast a MAD crisis explodes into accidental nuclear winter, per year, if this MAD crisis was to actually last for a year.

T Enzymology \(k_{cat}\), the committed step. Michaelis–Menten \(V_{max}\): you cannot destroy the world faster than this. Textbook \(q_{MD}\). Was \(\kappa\) here in drafts before 2026m09d08; kap in the code.

\(r_{M \rightarrow \text{out}}\) — the crisis clock

E — (derived) · was \(b+c\)

how fast a crisis resolves, either way (by mending or killing). Its reciprocal is the mean crisis duration, ≈ 40 days.

T \(= r_{M \rightarrow R} + r_{M \rightarrow D}\), the total rate of leaving MAD by any arrow. Michaelis–Menten \(K_m\). Was \(\mu + \kappa\) here in drafts before 2026m09d08. Written rMADescapes + rMADtoDEATH in the code; it has no identifier of its own.

\(p_{M \rightarrow D}\) — the per-crisis chance of nuclear winter

E — (derived: \(r_{M \rightarrow D} / r_{M \rightarrow \text{out}}\)) · was \(p_{death}\)

of all the crises the world enters, the share that go all the way to Dead instead of back to Risky. Base case: 1/3. This number and the crisis rate are not separately identified: fixing it at 1/3 is what defines which near-disasters count as “Cuban-Missile-Crisis type” and are therefore counted by rRiskyGoMAD. If the true per-crisis chance is higher than 1/3, the same forecast follows from a correspondingly higher effective rRiskyGoMAD, and vice versa. Neither is known separately; what the study assumes is that their product lies between the bounds discussed in the text. Section 14.1 makes this exact.

Warning

This is not anybody’s personal risk. “1/3” is a conditional about crises — given a crisis has begun, the share that run all the way. An individual’s annual chance of dying is a different quantity by two orders of magnitude: \(P(T_{R \rightarrow D} \leq 1) \times q_{\text{dead}} = 0.029 \times 0.3 \approx\) 0.9 % per year. Any reader who reads “1 in 3” as a personal odds has been misled by the notation, which is why \(p_{death}\) was retired as a name.

T Same arrow as \(r_{M \rightarrow D}\), but a probability rather than a rate — which is why the defining identity \(p_{M \rightarrow D} = r_{M \rightarrow D}/r_{M \rightarrow \text{out}}\) can be read straight off the notation: the share of the leaving-rate that goes to D. Enzymology: commitment to catalysis; specificity constant \(k_{cat}/K_m\). Kennedy’s Cuban estimate is a reading of this, not of the crisis rate. Was \(p_{\text{end}}\) here in drafts before 2026m09d08. Companion code: p_M_to_D, returned by p_end().

\(T_{R \rightarrow D}\) — the waiting time

E — (derived) · was \(T_R\)

years from now (world is Risky) until onset of accidental nuclear winter (world is Dead after taking the wrong turn in a MAD state). A random quantity following a distribution, not a fixed date.

T First-passage time to absorption from Risky. Not a half-life, not a deadline. Was \(W\) here in drafts before 2026m09d08. Companion code: T_R_to_D, from mean_wait().

\(T_{M \rightarrow D}\) — the waiting time from inside a crisis

E — (derived) · was \(T_M\)

years from the start of some crisis until Dead, counting everything that follows if this crisis de-escalates: the return to Risky, the wait for the next crisis, and every later crisis until one of them ends it. Base case 20.3 years — note years, not the 40 days a single crisis lasts.

T First-passage time to absorption from MAD. A bookkeeping quantity; it appears only inside the derivation. One symbol is enough, because the duration of the final crisis is not a separate unknown: by Fact 3 a crisis lasts \(1/r_{M \rightarrow \text{out}}\) ≈ 40 days on average whether or not it is the one that escalates. Check: \(1/r_{R \rightarrow M} + T_{M \rightarrow D} = 10 + 20.33 = 30.33 = T_{R \rightarrow D}\). ✓ Was \(W_{\text{crisis}}\) here in drafts before 2026m09d08. Not a separate identifier in the companion code.

\(r_{\text{onset}}\) — the onset rate

E — (derived) · was \(r_1\)

the composite rate, per year, of transitioning all the way from Risky through MAD to Dead. This is the disaster rate, and the one number here comparable to published estimates of “X percent per year” for nuclear war. Base case 0.0331/yr, that is 3.3 % per year. It is the level the risk settles at once the first months are past — not a rate that applies from day one (section 7.2).

T Smaller root of the characteristic quadratic; the decay rate of the quasi-stationary distribution; the asymptotic hazard. It is an equilibrium rate in every sense that can apply to an absorbing chain. Strictly the chain has no equilibrium, since all probability drains into Dead (only 0.13 % of worlds survive 200 years); what it settles into is the quasi-stationary state — an equilibrium among the survivors, who divide 98.9 % Risky / 1.1 % MAD. But that state has the defining property one would want: started from it, the waiting time is exactly exponential at rate \(r_{\text{onset}}\), with no correction term at any horizon (section 7.5, checked to machine precision). It is not named \(r_{R \rightarrow D}\), because R → D is not a transition of the model: there is no direct arrow, only the composite journey through M. Bounded exactly by \(1/T_{R \rightarrow D} < r_{\text{onset}} < r_{R \rightarrow M}\, p_{M \rightarrow D}\) (section 7.1). Was \(r_{\text{slow}}\) here in drafts before 2026m09d08. Companion code: r_onset, the first value returned by decay_rates().

\(r_{\text{relax}}\) — the relaxation rate

E — (derived) · was \(r_2\)

not a disaster rate at all, and not a rival to \(r_{\text{onset}}\). The two are different kinds of quantity: \(r_{\text{onset}}\) is the level the risk settles at; \(r_{\text{relax}}\) is the speed at which it settles there, and its reciprocal, ≈ 40 days, is the relaxation time. Why there is anything to settle: the forecast is made knowing the world is in Risky today and not already in a crisis, so onset cannot happen immediately — a crisis must first arrive and then run its course. The risk therefore starts at exactly zero and climbs to \(r_{\text{onset}}\) within a few months (sections 7.2, 7.4, 7.5). This is what that knowledge is worth: 2.90 % rather than 3.25 % for the coming year (section 7.5).

T Larger root of the same quadratic. Standard usage in kinetics and in Markov-chain theory calls \(1/(r_{\text{relax}} - r_{\text{onset}})\) the relaxation time; here the two differ by 0.37 % (40.43 d against 40.28 d), so the distinction never matters numerically but is stated to keep the identification honest. It is likewise close to, but not equal to, the crisis clock: \(r_{\text{relax}} = 9.067\)/yr against \(r_{M \rightarrow \text{out}} = 9.000\)/yr, larger by 0.74 %, and section 7.1 proves that inequality is strict whenever \(r_{M \rightarrow R} > 0\). Section 7.3 explains why the two exponentials of the closed form are not the two physical stages. Was \(r_{\text{fast}}\) here in drafts before 2026m09d08. Companion code: r_relax, the second value returned by decay_rates().

\(n_{MAD}\) — the number of MAD crises

E — (derived: \(1/p_{M \rightarrow D}\)) · was — (implicit)

the world passes through before one of them reaches Dead — on average 3

T Geometric random variable with success probability \(p_{M \rightarrow D}\). This is the factor that answers the “loop objection” (section 5.5). Was \(n_{\text{tries}}\) here in drafts before 2026m09d08. Companion code: excursions().

\(q_{\text{dead}}\) — the death fraction

E — (external) · was \(q\)

the share of humanity that dies within about two years of onset, from all causes taken together: the blast and fire, and then the famine and supply-chain collapse that follow, which dominate the total. It is not deaths in the strikes alone.

T Not produced by this model. b16 SIA-9 takes it from Xia et al. (2022), whose figures are deaths by the end of year 2: a small regional exchange (~100 warheads, 5 Tg soot) gives about 2 billion (\(q \approx 0.25\)); a full US–Russia exchange (150 Tg) gives over 5 billion (\(q \approx 0.63\)). b16 uses 0.3, which is therefore conservative twice over — it takes the figure for the smallest exchange modelled, and it stops counting at two years while the climate disruption runs for a decade or more. Section 14.2 works through what the two-year horizon does and does not include; the scenario-matched value is 0.63, which would roughly double every multiplier b16 reports.

\(r_{\text{flux}}\) — the flux of worlds

E — (derived: \(1/T_{R \rightarrow D}\)) · was \(v\)

onsets per world-year, 0.0330/yr. This is what a simulation measures directly: run 40 world histories, add up their waiting times, and divide 40 by that total. It is a property of the ensemble, not of any world in it — a single world has exactly one onset, ever, on one date, and never experiences “0.033 onsets per year”. Distinct from \(r_{\text{onset}}\) in kind as well as value (0.0331/yr, 0.36 % apart): \(r_{\text{onset}}\) is a hazard — instantaneous, conditional on having survived so far — whereas \(r_{\text{flux}}\) is an unconditional average over the whole run. Quote \(r_{\text{onset}}\) against published “X percent per year” figures; quote \(r_{\text{flux}}\) when reporting what an ensemble of runs produced.

T Michaelis–Menten reaction velocity \(v\) (9. Michaelis–Menten, derived rather than asserted), which is the same quantity read as a turnover: an enzyme processes substrate repeatedly, so for enzymes the flux is what one actually observes, and the ensemble is the molecules in the tube. Here the “tube” is a hypothetical population of worlds — which is exactly why the enzymology symbol \(v\) is kept only inside section 9, where that reading is being made on purpose.

\(r_{\text{all}}\) — the sum of every rate in the model

E — (derived) · was \(\lambda + b + c\)

\(r_{R \rightarrow M} + r_{M \rightarrow R} + r_{M \rightarrow D}\) = 9.1/yr. It is a rate like any other and is written as one, rather than as a bare Greek abbreviation, so that an equation containing it can be looked up here. It grows automatically if the model grows: a Risky → LifeMAP escape arrow would enter this sum too.

T Minus the trace of the transient generator. Appears in both Vieta relations: \(r_{\text{onset}} + r_{\text{relax}} = r_{\text{all}}\), which is the quickest check that the two roots were solved correctly. Was \(\Sigma\) here in drafts before 2026m09d08. Companion code: the local total inside decay_rates(), and r_all in crosschecks.py.

\(p_{\text{winter}}(t)\) — the density

E — (derived: the density of \(T_{R \rightarrow D}\)) · was — (not in b16)

how much of the probability of onset falls in each year. Not a probability itself: it has units of 1/yr, and only its area over a stretch of years is a probability. It appears once, as the numerator of the hazard in section 7.2.

T Probability density function of the waiting time. Lower case on purpose: \(P(\cdot)\) in these same equations is a probability, and a density is not one — the case carries the type. Named for the event rather than the arrow (winter, not \(T_{R \rightarrow D}\)) because a nested arrow subscript is unreadable at this size, and because accidental nuclear winter is what the whole paper is about.

\(\Delta\) — the discriminant

E — (derived) · was — (not in b16)

the quantity under the square root when the two rates are solved for. Its only job is to show that the two rates are always real numbers rather than an oscillation, for any positive rates whatever (section 6.5).

T \(\Delta = r_{\text{all}}^{2} - 4\, r_{R \rightarrow M}\, r_{M \rightarrow D}\). Renamed from \(D\) in round four, because \(D\) is the state Dead in the arrow scheme and the two would otherwise appear in the same equations.

\(C_{M \rightarrow R}\), \(C_{M \rightarrow D}\) — the two clocks

E — (local, section 4 only) · was — (not in b16)

a local proof device, used once and not needed afterwards. Picture each arrow as carrying its own alarm clock set to a random time; the MAD crisis ends when the first clock rings, and which clock rings decides whether the world walks back to Risky or arrives at Dead. Listed here so that a reader who meets these symbols in section 4 is not left wondering why they were introduced at all.

T Independent exponential random variables with rates \(r_{M \rightarrow R}\) and \(r_{M \rightarrow D}\). Conventionally written \(X\) in probability texts, where the letter carries no meaning; the clock reading is the same mathematics with an interpretation attached. Was \(C_\mu, C_\kappa\) here in drafts before 2026m09d08. A proof device only; it has no counterpart in the companion code.


A modifier, not a seventh layout: the fold. The same entries with each T block inside a .. dropdown::. In the browser it is collapsed, so the page becomes the index plus 16 one-line glosses. In the PDF it prints in full — checked: sphinx-design emits \\subsubsection* plus the content, so nothing is lost in print. One source, two media, each getting what it wants. It can be switched on for V2, V4 or V5 alike, which is why it is shown once here rather than counted as a layout of its own. Three entries only:

\(r_{R \rightarrow M}\) — the crisis rate

E rRiskyGoMAD · was \(\lambda\)

how often a Risky world walks into a MAD nuclear crisis, per year

Technical — synonyms, identities, prior symbol

Poisson arrival rate. Enzymology \(k_{on}[S]\). Michaelis–Menten substrate \(S\). Hellman’s \(\lambda_{IE}\) is the nearest published relative. Textbook generator entry \(q_{RM}\). Was \(\lambda\) here in drafts before 2026m09d08; lam in the code.

\(r_{M \rightarrow R}\) — the de-escalation rate

E rMADescapes · was \(b\)

how fast a MAD crisis walks back to Risky safety, per year

Technical — synonyms, identities, prior symbol

Queueing service rate. Enzymology \(k_{off}\). Textbook \(q_{MR}\). Was \(\mu\) here in drafts before 2026m09d08; mu in the code.

\(r_{M \rightarrow D}\) — the kill escalation rate

E rMADtoDEATH · was \(c\)

how fast a MAD crisis explodes into accidental nuclear winter, per year, if this MAD crisis was to actually last for a year.

Technical — synonyms, identities, prior symbol

Enzymology \(k_{cat}\), the committed step. Michaelis–Menten \(V_{max}\): you cannot destroy the world faster than this. Textbook \(q_{MD}\). Was \(\kappa\) here in drafts before 2026m09d08; kap in the code.

\(r_{M \rightarrow \text{out}}\) — the crisis clock

E — (derived) · was \(b+c\)

how fast a crisis resolves, either way (by mending or killing). Its reciprocal is the mean crisis duration, ≈ 40 days.

Technical — synonyms, identities, prior symbol

V3. One table still, two rows per symbol#

The move. Stay inside a single table object, but transpose it: each symbol takes a narrow data row (B, E, was), then full-width spanning rows for S and T. This needs a grid table; list-table has no column spans.

Buys it is still one table, with one caption and one number, for readers and reviewers who expect a nomenclature table to be a table — and it is the most compact of the six in print. Costs grid tables are character-aligned, and docutils drops a misaligned one silently: no warning, no error, the table simply vanishes. That happened twice while this page was being built — once on the first probe, once when the nested .. warning:: in the \(p_{M \rightarrow D}\) cell was re-wrapped one character too wide. At 16 entries with 1000-character cells this is only maintainable if a script owns the file, and then the small hand-edit that a reviewer’s comment calls for is no longer a hand-edit.

Brief

Explicit

was

\(r_{R \rightarrow M}\)

rRiskyGoMAD

\(\lambda\)

the crisis rate — how often a Risky world walks into a MAD nuclear crisis, per year

T Poisson arrival rate. Enzymology \(k_{on}[S]\). Michaelis–Menten substrate \(S\). Hellman’s \(\lambda_{IE}\) is the nearest published relative. Textbook generator entry \(q_{RM}\). Was \(\lambda\) here in drafts before 2026m09d08; lam in the code.

\(r_{M \rightarrow R}\)

rMADescapes

\(b\)

the de-escalation rate — how fast a MAD crisis walks back to Risky safety, per year

T Queueing service rate. Enzymology \(k_{off}\). Textbook \(q_{MR}\). Was \(\mu\) here in drafts before 2026m09d08; mu in the code.

\(r_{M \rightarrow D}\)

rMADtoDEATH

\(c\)

the kill escalation rate — how fast a MAD crisis explodes into accidental nuclear winter, per year, if this MAD crisis was to actually last for a year.

T Enzymology \(k_{cat}\), the committed step. Michaelis–Menten \(V_{max}\): you cannot destroy the world faster than this. Textbook \(q_{MD}\). Was \(\kappa\) here in drafts before 2026m09d08; kap in the code.

\(r_{M \rightarrow \text{out}}\)

— (derived)

\(b+c\)

the crisis clock — how fast a crisis resolves, either way (by mending or killing). Its reciprocal is the mean crisis duration, ≈ 40 days.

T \(= r_{M \rightarrow R} + r_{M \rightarrow D}\), the total rate of leaving MAD by any arrow. Michaelis–Menten \(K_m\). Was \(\mu + \kappa\) here in drafts before 2026m09d08. Written rMADescapes + rMADtoDEATH in the code; it has no identifier of its own.

\(p_{M \rightarrow D}\)

— (derived: \(r_{M \rightarrow D} / r_{M \rightarrow \text{out}}\))

\(p_{death}\)

the per-crisis chance of nuclear winter — of all the crises the world enters, the share that go all the way to Dead instead of back to Risky. Base case: 1/3. This number and the crisis rate are not separately identified: fixing it at 1/3 is what defines which near-disasters count as “Cuban-Missile-Crisis type” and are therefore counted by rRiskyGoMAD. If the true per-crisis chance is higher than 1/3, the same forecast follows from a correspondingly higher effective rRiskyGoMAD, and vice versa. Neither is known separately; what the study assumes is that their product lies between the bounds discussed in the text. Section 14.1 makes this exact.

Warning

This is not anybody’s personal risk. “1/3” is a conditional about crises — given a crisis has begun, the share that run all the way. An individual’s annual chance of dying is a different quantity by two orders of magnitude: \(P(T_{R \rightarrow D} \leq 1) \times q_{\text{dead}} = 0.029 \times 0.3 \approx\) 0.9 % per year. Any reader who reads “1 in 3” as a personal odds has been misled by the notation, which is why \(p_{death}\) was retired as a name.

T Same arrow as \(r_{M \rightarrow D}\), but a probability rather than a rate — which is why the defining identity \(p_{M \rightarrow D} = r_{M \rightarrow D}/r_{M \rightarrow \text{out}}\) can be read straight off the notation: the share of the leaving-rate that goes to D. Enzymology: commitment to catalysis; specificity constant \(k_{cat}/K_m\). Kennedy’s Cuban estimate is a reading of this, not of the crisis rate. Was \(p_{\text{end}}\) here in drafts before 2026m09d08. Companion code: p_M_to_D, returned by p_end().

\(T_{R \rightarrow D}\)

— (derived)

\(T_R\)

the waiting time — years from now (world is Risky) until onset of accidental nuclear winter (world is Dead after taking the wrong turn in a MAD state). A random quantity following a distribution, not a fixed date.

T First-passage time to absorption from Risky. Not a half-life, not a deadline. Was \(W\) here in drafts before 2026m09d08. Companion code: T_R_to_D, from mean_wait().

\(T_{M \rightarrow D}\)

— (derived)

\(T_M\)

the waiting time from inside a crisis — years from the start of some crisis until Dead, counting everything that follows if this crisis de-escalates: the return to Risky, the wait for the next crisis, and every later crisis until one of them ends it. Base case 20.3 years — note years, not the 40 days a single crisis lasts.

T First-passage time to absorption from MAD. A bookkeeping quantity; it appears only inside the derivation. One symbol is enough, because the duration of the final crisis is not a separate unknown: by Fact 3 a crisis lasts \(1/r_{M \rightarrow \text{out}}\) ≈ 40 days on average whether or not it is the one that escalates. Check: \(1/r_{R \rightarrow M} + T_{M \rightarrow D} = 10 + 20.33 = 30.33 = T_{R \rightarrow D}\). ✓ Was \(W_{\text{crisis}}\) here in drafts before 2026m09d08. Not a separate identifier in the companion code.

\(r_{\text{onset}}\)

— (derived)

\(r_1\)

the onset rate — the composite rate, per year, of transitioning all the way from Risky through MAD to Dead. This is the disaster rate, and the one number here comparable to published estimates of “X percent per year” for nuclear war. Base case 0.0331/yr, that is 3.3 % per year. It is the level the risk settles at once the first months are past — not a rate that applies from day one (section 7.2).

T Smaller root of the characteristic quadratic; the decay rate of the quasi-stationary distribution; the asymptotic hazard. It is an equilibrium rate in every sense that can apply to an absorbing chain. Strictly the chain has no equilibrium, since all probability drains into Dead (only 0.13 % of worlds survive 200 years); what it settles into is the quasi-stationary state — an equilibrium among the survivors, who divide 98.9 % Risky / 1.1 % MAD. But that state has the defining property one would want: started from it, the waiting time is exactly exponential at rate \(r_{\text{onset}}\), with no correction term at any horizon (section 7.5, checked to machine precision). It is not named \(r_{R \rightarrow D}\), because R → D is not a transition of the model: there is no direct arrow, only the composite journey through M. Bounded exactly by \(1/T_{R \rightarrow D} < r_{\text{onset}} < r_{R \rightarrow M}\, p_{M \rightarrow D}\) (section 7.1). Was \(r_{\text{slow}}\) here in drafts before 2026m09d08. Companion code: r_onset, the first value returned by decay_rates().

\(r_{\text{relax}}\)

— (derived)

\(r_2\)

the relaxation rate — not a disaster rate at all, and not a rival to \(r_{\text{onset}}\). The two are different kinds of quantity: \(r_{\text{onset}}\) is the level the risk settles at; \(r_{\text{relax}}\) is the speed at which it settles there, and its reciprocal, ≈ 40 days, is the relaxation time. Why there is anything to settle: the forecast is made knowing the world is in Risky today and not already in a crisis, so onset cannot happen immediately — a crisis must first arrive and then run its course. The risk therefore starts at exactly zero and climbs to \(r_{\text{onset}}\) within a few months (sections 7.2, 7.4, 7.5). This is what that knowledge is worth: 2.90 % rather than 3.25 % for the coming year (section 7.5).

T Larger root of the same quadratic. Standard usage in kinetics and in Markov-chain theory calls \(1/(r_{\text{relax}} - r_{\text{onset}})\) the relaxation time; here the two differ by 0.37 % (40.43 d against 40.28 d), so the distinction never matters numerically but is stated to keep the identification honest. It is likewise close to, but not equal to, the crisis clock: \(r_{\text{relax}} = 9.067\)/yr against \(r_{M \rightarrow \text{out}} = 9.000\)/yr, larger by 0.74 %, and section 7.1 proves that inequality is strict whenever \(r_{M \rightarrow R} > 0\). Section 7.3 explains why the two exponentials of the closed form are not the two physical stages. Was \(r_{\text{fast}}\) here in drafts before 2026m09d08. Companion code: r_relax, the second value returned by decay_rates().

\(n_{MAD}\)

— (derived: \(1/p_{M \rightarrow D}\))

— (implicit)

the number of MAD crises — the world passes through before one of them reaches Dead — on average 3

T Geometric random variable with success probability \(p_{M \rightarrow D}\). This is the factor that answers the “loop objection” (section 5.5). Was \(n_{\text{tries}}\) here in drafts before 2026m09d08. Companion code: excursions().

\(q_{\text{dead}}\)

— (external)

\(q\)

the death fraction — the share of humanity that dies within about two years of onset, from all causes taken together: the blast and fire, and then the famine and supply-chain collapse that follow, which dominate the total. It is not deaths in the strikes alone.

T Not produced by this model. b16 SIA-9 takes it from Xia et al. (2022), whose figures are deaths by the end of year 2: a small regional exchange (~100 warheads, 5 Tg soot) gives about 2 billion (\(q \approx 0.25\)); a full US–Russia exchange (150 Tg) gives over 5 billion (\(q \approx 0.63\)). b16 uses 0.3, which is therefore conservative twice over — it takes the figure for the smallest exchange modelled, and it stops counting at two years while the climate disruption runs for a decade or more. Section 14.2 works through what the two-year horizon does and does not include; the scenario-matched value is 0.63, which would roughly double every multiplier b16 reports.

\(r_{\text{flux}}\)

— (derived: \(1/T_{R \rightarrow D}\))

\(v\)

the flux of worlds — onsets per world-year, 0.0330/yr. This is what a simulation measures directly: run 40 world histories, add up their waiting times, and divide 40 by that total. It is a property of the ensemble, not of any world in it — a single world has exactly one onset, ever, on one date, and never experiences “0.033 onsets per year”. Distinct from \(r_{\text{onset}}\) in kind as well as value (0.0331/yr, 0.36 % apart): \(r_{\text{onset}}\) is a hazard — instantaneous, conditional on having survived so far — whereas \(r_{\text{flux}}\) is an unconditional average over the whole run. Quote \(r_{\text{onset}}\) against published “X percent per year” figures; quote \(r_{\text{flux}}\) when reporting what an ensemble of runs produced.

T Michaelis–Menten reaction velocity \(v\) (9. Michaelis–Menten, derived rather than asserted), which is the same quantity read as a turnover: an enzyme processes substrate repeatedly, so for enzymes the flux is what one actually observes, and the ensemble is the molecules in the tube. Here the “tube” is a hypothetical population of worlds — which is exactly why the enzymology symbol \(v\) is kept only inside section 9, where that reading is being made on purpose.

\(r_{\text{all}}\)

— (derived)

\(\lambda + b + c\)

the sum of every rate in the model — \(r_{R \rightarrow M} + r_{M \rightarrow R} + r_{M \rightarrow D}\) = 9.1/yr. It is a rate like any other and is written as one, rather than as a bare Greek abbreviation, so that an equation containing it can be looked up here. It grows automatically if the model grows: a Risky → LifeMAP escape arrow would enter this sum too.

T Minus the trace of the transient generator. Appears in both Vieta relations: \(r_{\text{onset}} + r_{\text{relax}} = r_{\text{all}}\), which is the quickest check that the two roots were solved correctly. Was \(\Sigma\) here in drafts before 2026m09d08. Companion code: the local total inside decay_rates(), and r_all in crosschecks.py.

\(p_{\text{winter}}(t)\)

— (derived: the density of \(T_{R \rightarrow D}\))

— (not in b16)

the density — how much of the probability of onset falls in each year. Not a probability itself: it has units of 1/yr, and only its area over a stretch of years is a probability. It appears once, as the numerator of the hazard in section 7.2.

T Probability density function of the waiting time. Lower case on purpose: \(P(\cdot)\) in these same equations is a probability, and a density is not one — the case carries the type. Named for the event rather than the arrow (winter, not \(T_{R \rightarrow D}\)) because a nested arrow subscript is unreadable at this size, and because accidental nuclear winter is what the whole paper is about.

\(\Delta\)

— (derived)

— (not in b16)

the discriminant — the quantity under the square root when the two rates are solved for. Its only job is to show that the two rates are always real numbers rather than an oscillation, for any positive rates whatever (section 6.5).

T \(\Delta = r_{\text{all}}^{2} - 4\, r_{R \rightarrow M}\, r_{M \rightarrow D}\). Renamed from \(D\) in round four, because \(D\) is the state Dead in the arrow scheme and the two would otherwise appear in the same equations.

\(C_{M \rightarrow R}\), \(C_{M \rightarrow D}\)

— (local, section 4 only)

— (not in b16)

the two clocks — a local proof device, used once and not needed afterwards. Picture each arrow as carrying its own alarm clock set to a random time; the MAD crisis ends when the first clock rings, and which clock rings decides whether the world walks back to Risky or arrives at Dead. Listed here so that a reader who meets these symbols in section 4 is not left wondering why they were introduced at all.

T Independent exponential random variables with rates \(r_{M \rightarrow R}\) and \(r_{M \rightarrow D}\). Conventionally written \(X\) in probability texts, where the letter carries no meaning; the clock reading is the same mathematics with an interpretation attached. Was \(C_\mu, C_\kappa\) here in drafts before 2026m09d08. A proof device only; it has no counterpart in the companion code.

V4. Factored — say each thing once, then index plus entries#

The move. V2’s containers, plus three content decisions that the measurement in section 0 argues for. These change the paper, not just its layout, so each needs LLoL’s approval on its own:

  1. Put the code identifiers back in the E column. p_M_to_D, T_R_to_D, r_onset, r_relax, excursions() and r_all move out of the T prose into the column named for them. The E column goes from 3/16 filled to 9/16, and the BEST scheme starts telling the truth about itself. The other seven rows keep “— (derived)” honestly: the paper says of \(T_{M \rightarrow D}\) that it is “not a separate identifier in the companion code”, and of \(r_{M \rightarrow \text{out}}\) that “it has no identifier of its own”. Those stay empty because they are empty.

  2. State the 2026m09d08 rename once. Twelve entries repeat “Was X here in drafts before 2026m09d08” while the was column already carries X. One small table replaces all twelve. It is also the part that becomes deletable when the rename stops being news — worth having in one place for that day.

  3. Let Table F own the enzymology. Four T cells restate the Michaelis–Menten mapping that Table F already tabulates. A pointer, not a copy. (Not applied below — decision 3 needs a judgment about how self-contained the names table should be, which is LLoL’s to make. Decisions 1 and 2 are applied so they can be seen.)

Buys the largest saving of the six and the only one that is also a content fix. Costs it is the only variant that needs entry-by-entry approval, and the migration table is a new object to maintain until it can be retired.

The BEST Names index — with the Explicit column doing its job#

Brief

Explicit (model code)

Summarizing

Put in — the three arrows, measured or assumed

\(r_{R \rightarrow M}\)

rRiskyGoMAD

the crisis rate

\(r_{M \rightarrow R}\)

rMADescapes

the de-escalation rate

\(r_{M \rightarrow D}\)

rMADtoDEATH

the kill escalation rate

Put in — from outside the model

\(q_{\text{dead}}\)

— (external)

the death fraction

Comes out — rates

\(r_{M \rightarrow \text{out}}\)

— (derived)

the crisis clock

\(r_{\text{onset}}\)

r_onset

the onset rate

\(r_{\text{relax}}\)

r_relax

the relaxation rate

\(r_{\text{flux}}\)

— (derived)

the flux of worlds

\(r_{\text{all}}\)

r_all

the sum of every rate in the model

Comes out — probabilities, counts, densities

\(p_{M \rightarrow D}\)

p_M_to_D

the per-crisis chance of nuclear winter

\(n_{MAD}\)

excursions()

the number of MAD crises

\(p_{\text{winter}}(t)\)

— (derived)

the density

Comes out — times

\(T_{R \rightarrow D}\)

T_R_to_D

the waiting time

\(T_{M \rightarrow D}\)

— (derived)

the waiting time from inside a crisis

Local proof devices, used once

\(\Delta\)

— (derived)

the discriminant

\(C_{M \rightarrow R}\), \(C_{M \rightarrow D}\)

— (local, section 4 only)

the two clocks

The one-time rename, in one place

The one-time rename, stated once instead of twelve times#

this document, before 2026m09d08

this document, now

in b16 itself

\(\lambda\)

\(r_{R \rightarrow M}\)

\(\lambda\)

\(\mu\)

\(r_{M \rightarrow R}\)

\(b\)

\(\kappa\)

\(r_{M \rightarrow D}\)

\(c\)

\(\mu + \kappa\)

\(r_{M \rightarrow \text{out}}\)

\(b+c\)

\(p_{\text{end}}\)

\(p_{M \rightarrow D}\)

\(p_{death}\)

\(W\)

\(T_{R \rightarrow D}\)

\(T_R\)

\(W_{\text{crisis}}\)

\(T_{M \rightarrow D}\)

\(T_M\)

\(r_{\text{slow}}\)

\(r_{\text{onset}}\)

\(r_1\)

\(r_{\text{fast}}\)

\(r_{\text{relax}}\)

\(r_2\)

\(n_{\text{tries}}\)

\(n_{MAD}\)

— (implicit)

— (unchanged)

\(q_{\text{dead}}\)

\(q\)

— (unchanged)

\(r_{\text{flux}}\)

\(v\)

\(\Sigma\)

\(r_{\text{all}}\)

\(\lambda + b + c\)

— (unchanged)

\(p_{\text{winter}}(t)\)

— (not in b16)

— (unchanged)

\(\Delta\)

— (not in b16)

\(C_\mu, C_\kappa\)

\(C_{M \rightarrow R}\), \(C_{M \rightarrow D}\)

— (not in b16)

The entries, with T carrying only what is unique to each symbol

\(r_{R \rightarrow M}\) — the crisis rate

E rRiskyGoMAD

how often a Risky world walks into a MAD nuclear crisis, per year

T Poisson arrival rate. Enzymology \(k_{on}[S]\). Michaelis–Menten substrate \(S\). Hellman’s \(\lambda_{IE}\) is the nearest published relative. Textbook generator entry \(q_{RM}\).

\(r_{M \rightarrow R}\) — the de-escalation rate

E rMADescapes

how fast a MAD crisis walks back to Risky safety, per year

T Queueing service rate. Enzymology \(k_{off}\). Textbook \(q_{MR}\).

\(r_{M \rightarrow D}\) — the kill escalation rate

E rMADtoDEATH

how fast a MAD crisis explodes into accidental nuclear winter, per year, if this MAD crisis was to actually last for a year.

T Enzymology \(k_{cat}\), the committed step. Michaelis–Menten \(V_{max}\): you cannot destroy the world faster than this. Textbook \(q_{MD}\).

\(r_{M \rightarrow \text{out}}\) — the crisis clock

E — (derived)

how fast a crisis resolves, either way (by mending or killing). Its reciprocal is the mean crisis duration, ≈ 40 days.

T \(= r_{M \rightarrow R} + r_{M \rightarrow D}\), the total rate of leaving MAD by any arrow. Michaelis–Menten \(K_m\). Written rMADescapes + rMADtoDEATH in the code; it has no identifier of its own.

\(p_{M \rightarrow D}\) — the per-crisis chance of nuclear winter

E p_M_to_D · derived as \(r_{M \rightarrow D} / r_{M \rightarrow \text{out}}\)

of all the crises the world enters, the share that go all the way to Dead instead of back to Risky. Base case: 1/3. This number and the crisis rate are not separately identified: fixing it at 1/3 is what defines which near-disasters count as “Cuban-Missile-Crisis type” and are therefore counted by rRiskyGoMAD. If the true per-crisis chance is higher than 1/3, the same forecast follows from a correspondingly higher effective rRiskyGoMAD, and vice versa. Neither is known separately; what the study assumes is that their product lies between the bounds discussed in the text. Section 14.1 makes this exact.

Warning

This is not anybody’s personal risk. “1/3” is a conditional about crises — given a crisis has begun, the share that run all the way. An individual’s annual chance of dying is a different quantity by two orders of magnitude: \(P(T_{R \rightarrow D} \leq 1) \times q_{\text{dead}} = 0.029 \times 0.3 \approx\) 0.9 % per year. Any reader who reads “1 in 3” as a personal odds has been misled by the notation, which is why \(p_{death}\) was retired as a name.

T Same arrow as \(r_{M \rightarrow D}\), but a probability rather than a rate — which is why the defining identity \(p_{M \rightarrow D} = r_{M \rightarrow D}/r_{M \rightarrow \text{out}}\) can be read straight off the notation: the share of the leaving-rate that goes to D. Enzymology: commitment to catalysis; specificity constant \(k_{cat}/K_m\). Kennedy’s Cuban estimate is a reading of this, not of the crisis rate. Companion code: returned by p_end().

\(T_{R \rightarrow D}\) — the waiting time

E T_R_to_D

years from now (world is Risky) until onset of accidental nuclear winter (world is Dead after taking the wrong turn in a MAD state). A random quantity following a distribution, not a fixed date.

T First-passage time to absorption from Risky. Not a half-life, not a deadline. Companion code: from mean_wait().

\(T_{M \rightarrow D}\) — the waiting time from inside a crisis

E — (derived)

years from the start of some crisis until Dead, counting everything that follows if this crisis de-escalates: the return to Risky, the wait for the next crisis, and every later crisis until one of them ends it. Base case 20.3 years — note years, not the 40 days a single crisis lasts.

T First-passage time to absorption from MAD. A bookkeeping quantity; it appears only inside the derivation. One symbol is enough, because the duration of the final crisis is not a separate unknown: by Fact 3 a crisis lasts \(1/r_{M \rightarrow \text{out}}\) ≈ 40 days on average whether or not it is the one that escalates. Check: \(1/r_{R \rightarrow M} + T_{M \rightarrow D} = 10 + 20.33 = 30.33 = T_{R \rightarrow D}\). ✓ Not a separate identifier in the companion code.

\(r_{\text{onset}}\) — the onset rate

E r_onset

the composite rate, per year, of transitioning all the way from Risky through MAD to Dead. This is the disaster rate, and the one number here comparable to published estimates of “X percent per year” for nuclear war. Base case 0.0331/yr, that is 3.3 % per year. It is the level the risk settles at once the first months are past — not a rate that applies from day one (section 7.2).

T Smaller root of the characteristic quadratic; the decay rate of the quasi-stationary distribution; the asymptotic hazard. It is an equilibrium rate in every sense that can apply to an absorbing chain. Strictly the chain has no equilibrium, since all probability drains into Dead (only 0.13 % of worlds survive 200 years); what it settles into is the quasi-stationary state — an equilibrium among the survivors, who divide 98.9 % Risky / 1.1 % MAD. But that state has the defining property one would want: started from it, the waiting time is exactly exponential at rate \(r_{\text{onset}}\), with no correction term at any horizon (section 7.5, checked to machine precision). It is not named \(r_{R \rightarrow D}\), because R → D is not a transition of the model: there is no direct arrow, only the composite journey through M. Bounded exactly by \(1/T_{R \rightarrow D} < r_{\text{onset}} < r_{R \rightarrow M}\, p_{M \rightarrow D}\) (section 7.1). Companion code: the first value returned by decay_rates().

\(r_{\text{relax}}\) — the relaxation rate

E r_relax

not a disaster rate at all, and not a rival to \(r_{\text{onset}}\). The two are different kinds of quantity: \(r_{\text{onset}}\) is the level the risk settles at; \(r_{\text{relax}}\) is the speed at which it settles there, and its reciprocal, ≈ 40 days, is the relaxation time. Why there is anything to settle: the forecast is made knowing the world is in Risky today and not already in a crisis, so onset cannot happen immediately — a crisis must first arrive and then run its course. The risk therefore starts at exactly zero and climbs to \(r_{\text{onset}}\) within a few months (sections 7.2, 7.4, 7.5). This is what that knowledge is worth: 2.90 % rather than 3.25 % for the coming year (section 7.5).

T Larger root of the same quadratic. Standard usage in kinetics and in Markov-chain theory calls \(1/(r_{\text{relax}} - r_{\text{onset}})\) the relaxation time; here the two differ by 0.37 % (40.43 d against 40.28 d), so the distinction never matters numerically but is stated to keep the identification honest. It is likewise close to, but not equal to, the crisis clock: \(r_{\text{relax}} = 9.067\)/yr against \(r_{M \rightarrow \text{out}} = 9.000\)/yr, larger by 0.74 %, and section 7.1 proves that inequality is strict whenever \(r_{M \rightarrow R} > 0\). Section 7.3 explains why the two exponentials of the closed form are not the two physical stages. Companion code: the second value returned by decay_rates().

\(n_{MAD}\) — the number of MAD crises

E excursions() · derived as \(1/p_{M \rightarrow D}\)

the world passes through before one of them reaches Dead — on average 3

T Geometric random variable with success probability \(p_{M \rightarrow D}\). This is the factor that answers the “loop objection” (section 5.5).

\(q_{\text{dead}}\) — the death fraction

E — (external)

the share of humanity that dies within about two years of onset, from all causes taken together: the blast and fire, and then the famine and supply-chain collapse that follow, which dominate the total. It is not deaths in the strikes alone.

T Not produced by this model. b16 SIA-9 takes it from Xia et al. (2022), whose figures are deaths by the end of year 2: a small regional exchange (~100 warheads, 5 Tg soot) gives about 2 billion (\(q \approx 0.25\)); a full US–Russia exchange (150 Tg) gives over 5 billion (\(q \approx 0.63\)). b16 uses 0.3, which is therefore conservative twice over — it takes the figure for the smallest exchange modelled, and it stops counting at two years while the climate disruption runs for a decade or more. Section 14.2 works through what the two-year horizon does and does not include; the scenario-matched value is 0.63, which would roughly double every multiplier b16 reports.

\(r_{\text{flux}}\) — the flux of worlds

E — (derived as \(1/T_{R \rightarrow D}\))

onsets per world-year, 0.0330/yr. This is what a simulation measures directly: run 40 world histories, add up their waiting times, and divide 40 by that total. It is a property of the ensemble, not of any world in it — a single world has exactly one onset, ever, on one date, and never experiences “0.033 onsets per year”. Distinct from \(r_{\text{onset}}\) in kind as well as value (0.0331/yr, 0.36 % apart): \(r_{\text{onset}}\) is a hazard — instantaneous, conditional on having survived so far — whereas \(r_{\text{flux}}\) is an unconditional average over the whole run. Quote \(r_{\text{onset}}\) against published “X percent per year” figures; quote \(r_{\text{flux}}\) when reporting what an ensemble of runs produced.

T Michaelis–Menten reaction velocity \(v\) (9. Michaelis–Menten, derived rather than asserted), which is the same quantity read as a turnover: an enzyme processes substrate repeatedly, so for enzymes the flux is what one actually observes, and the ensemble is the molecules in the tube. Here the “tube” is a hypothetical population of worlds — which is exactly why the enzymology symbol \(v\) is kept only inside section 9, where that reading is being made on purpose.

\(r_{\text{all}}\) — the sum of every rate in the model

E r_all

\(r_{R \rightarrow M} + r_{M \rightarrow R} + r_{M \rightarrow D}\) = 9.1/yr. It is a rate like any other and is written as one, rather than as a bare Greek abbreviation, so that an equation containing it can be looked up here. It grows automatically if the model grows: a Risky → LifeMAP escape arrow would enter this sum too.

T Minus the trace of the transient generator. Appears in both Vieta relations: \(r_{\text{onset}} + r_{\text{relax}} = r_{\text{all}}\), which is the quickest check that the two roots were solved correctly. Companion code: the local total inside decay_rates(), and r_all in crosschecks.py.

\(p_{\text{winter}}(t)\) — the density

E — (derived as the density of \(T_{R \rightarrow D}\))

how much of the probability of onset falls in each year. Not a probability itself: it has units of 1/yr, and only its area over a stretch of years is a probability. It appears once, as the numerator of the hazard in section 7.2.

T Probability density function of the waiting time. Lower case on purpose: \(P(\cdot)\) in these same equations is a probability, and a density is not one — the case carries the type. Named for the event rather than the arrow (winter, not \(T_{R \rightarrow D}\)) because a nested arrow subscript is unreadable at this size, and because accidental nuclear winter is what the whole paper is about.

\(\Delta\) — the discriminant

E — (derived)

the quantity under the square root when the two rates are solved for. Its only job is to show that the two rates are always real numbers rather than an oscillation, for any positive rates whatever (section 6.5).

T \(\Delta = r_{\text{all}}^{2} - 4\, r_{R \rightarrow M}\, r_{M \rightarrow D}\). Renamed from \(D\) in round four, because \(D\) is the state Dead in the arrow scheme and the two would otherwise appear in the same equations.

\(C_{M \rightarrow R}\), \(C_{M \rightarrow D}\) — the two clocks

E — (local, section 4 only)

a local proof device, used once and not needed afterwards. Picture each arrow as carrying its own alarm clock set to a random time; the MAD crisis ends when the first clock rings, and which clock rings decides whether the world walks back to Risky or arrives at Dead. Listed here so that a reader who meets these symbols in section 4 is not left wondering why they were introduced at all.

T Independent exponential random variables with rates \(r_{M \rightarrow R}\) and \(r_{M \rightarrow D}\). Conventionally written \(X\) in probability texts, where the letter carries no meaning; the clock reading is the same mathematics with an interpretation attached. A proof device only; it has no counterpart in the companion code.

V5. A glossary — the option LLoL asked to see tested#

The move. Put the entries in a Sphinx .. glossary:: instead of a definition list. Structurally it is V1; what it adds is machinery. Each entry becomes a :term: target, so anywhere in the paper :term:`r_onset` links to it — and because this site runs sphinx-tippy with p in its tip selector, an HTML reader should get the definition as a hover tooltip without leaving the page. That is the strongest answer to “I met this symbol on page 12 and do not want to lose my place” that any of the six offers.

Costs, and they are real. A glossary term is plain text, so the natural key — the math symbol — cannot be the term. Each entry below is therefore keyed on the code name (r_onset) with the headword as a second term, and the seven quantities that have no code name are keyed on the headword alone. That is a heterogeneous key set, and :sorted: then interleaves excursions() with “the discriminant” in one alphabet. In print the machinery buys nothing — LaTeX renders a glossary as the same definition list as V1, so the PDF pays V1’s cost for V5’s HTML benefit.

The tooltip claim is expected, not checked. It needs a full make html with tippy enabled; make dev strips the extension. Worth checking before this variant is chosen for that reason.

Note

Rendered as a plain definition list here, not as a live .. glossary::. The paper now owns these sixteen :term: targets (section 3.2), and a glossary term is unique across the whole site — a second live copy on this page would collide with every one of them. The visual record is unaffected, because a glossary renders as exactly this definition list in both HTML and PDF; what is dropped is only the cross-reference machinery, which is the thing V5 was proposed for. That the demonstration had to be defused the moment the real one shipped is itself the strongest evidence the machinery works.

rRiskyGoMAD — the crisis rate

\(r_{R \rightarrow M}\) — the crisis rate

how often a Risky world walks into a MAD nuclear crisis, per year

T Poisson arrival rate. Enzymology \(k_{on}[S]\). Michaelis–Menten substrate \(S\). Hellman’s \(\lambda_{IE}\) is the nearest published relative. Textbook generator entry \(q_{RM}\). Was \(\lambda\) here in drafts before 2026m09d08; lam in the code.

rMADescapes — the de-escalation rate

\(r_{M \rightarrow R}\) — the de-escalation rate

how fast a MAD crisis walks back to Risky safety, per year

T Queueing service rate. Enzymology \(k_{off}\). Textbook \(q_{MR}\). Was \(\mu\) here in drafts before 2026m09d08; mu in the code.

rMADtoDEATH — the kill escalation rate

\(r_{M \rightarrow D}\) — the kill escalation rate

how fast a MAD crisis explodes into accidental nuclear winter, per year, if this MAD crisis was to actually last for a year.

T Enzymology \(k_{cat}\), the committed step. Michaelis–Menten \(V_{max}\): you cannot destroy the world faster than this. Textbook \(q_{MD}\). Was \(\kappa\) here in drafts before 2026m09d08; kap in the code.

the crisis clock

\(r_{M \rightarrow \text{out}}\) — the crisis clock

how fast a crisis resolves, either way (by mending or killing). Its reciprocal is the mean crisis duration, ≈ 40 days.

T \(= r_{M \rightarrow R} + r_{M \rightarrow D}\), the total rate of leaving MAD by any arrow. Michaelis–Menten \(K_m\). Was \(\mu + \kappa\) here in drafts before 2026m09d08. Written rMADescapes + rMADtoDEATH in the code; it has no identifier of its own.

p_M_to_D — the per-crisis chance of nuclear winter

\(p_{M \rightarrow D}\) — the per-crisis chance of nuclear winter

of all the crises the world enters, the share that go all the way to Dead instead of back to Risky. Base case: 1/3. This number and the crisis rate are not separately identified: fixing it at 1/3 is what defines which near-disasters count as “Cuban-Missile-Crisis type” and are therefore counted by rRiskyGoMAD. If the true per-crisis chance is higher than 1/3, the same forecast follows from a correspondingly higher effective rRiskyGoMAD, and vice versa. Neither is known separately; what the study assumes is that their product lies between the bounds discussed in the text. Section 14.1 makes this exact.

Warning

This is not anybody’s personal risk. “1/3” is a conditional about crises — given a crisis has begun, the share that run all the way. An individual’s annual chance of dying is a different quantity by two orders of magnitude: \(P(T_{R \rightarrow D} \leq 1) \times q_{\text{dead}} = 0.029 \times 0.3 \approx\) 0.9 % per year. Any reader who reads “1 in 3” as a personal odds has been misled by the notation, which is why \(p_{death}\) was retired as a name.

T Same arrow as \(r_{M \rightarrow D}\), but a probability rather than a rate — which is why the defining identity \(p_{M \rightarrow D} = r_{M \rightarrow D}/r_{M \rightarrow \text{out}}\) can be read straight off the notation: the share of the leaving-rate that goes to D. Enzymology: commitment to catalysis; specificity constant \(k_{cat}/K_m\). Kennedy’s Cuban estimate is a reading of this, not of the crisis rate. Was \(p_{\text{end}}\) here in drafts before 2026m09d08. Companion code: p_M_to_D, returned by p_end().

T_R_to_D — the waiting time

\(T_{R \rightarrow D}\) — the waiting time

years from now (world is Risky) until onset of accidental nuclear winter (world is Dead after taking the wrong turn in a MAD state). A random quantity following a distribution, not a fixed date.

T First-passage time to absorption from Risky. Not a half-life, not a deadline. Was \(W\) here in drafts before 2026m09d08. Companion code: T_R_to_D, from mean_wait().

the waiting time from inside a crisis

\(T_{M \rightarrow D}\) — the waiting time from inside a crisis

years from the start of some crisis until Dead, counting everything that follows if this crisis de-escalates: the return to Risky, the wait for the next crisis, and every later crisis until one of them ends it. Base case 20.3 years — note years, not the 40 days a single crisis lasts.

T First-passage time to absorption from MAD. A bookkeeping quantity; it appears only inside the derivation. One symbol is enough, because the duration of the final crisis is not a separate unknown: by Fact 3 a crisis lasts \(1/r_{M \rightarrow \text{out}}\) ≈ 40 days on average whether or not it is the one that escalates. Check: \(1/r_{R \rightarrow M} + T_{M \rightarrow D} = 10 + 20.33 = 30.33 = T_{R \rightarrow D}\). ✓ Was \(W_{\text{crisis}}\) here in drafts before 2026m09d08. Not a separate identifier in the companion code.

r_onset — the onset rate

\(r_{\text{onset}}\) — the onset rate

the composite rate, per year, of transitioning all the way from Risky through MAD to Dead. This is the disaster rate, and the one number here comparable to published estimates of “X percent per year” for nuclear war. Base case 0.0331/yr, that is 3.3 % per year. It is the level the risk settles at once the first months are past — not a rate that applies from day one (section 7.2).

T Smaller root of the characteristic quadratic; the decay rate of the quasi-stationary distribution; the asymptotic hazard. It is an equilibrium rate in every sense that can apply to an absorbing chain. Strictly the chain has no equilibrium, since all probability drains into Dead (only 0.13 % of worlds survive 200 years); what it settles into is the quasi-stationary state — an equilibrium among the survivors, who divide 98.9 % Risky / 1.1 % MAD. But that state has the defining property one would want: started from it, the waiting time is exactly exponential at rate \(r_{\text{onset}}\), with no correction term at any horizon (section 7.5, checked to machine precision). It is not named \(r_{R \rightarrow D}\), because R → D is not a transition of the model: there is no direct arrow, only the composite journey through M. Bounded exactly by \(1/T_{R \rightarrow D} < r_{\text{onset}} < r_{R \rightarrow M}\, p_{M \rightarrow D}\) (section 7.1). Was \(r_{\text{slow}}\) here in drafts before 2026m09d08. Companion code: r_onset, the first value returned by decay_rates().

r_relax — the relaxation rate

\(r_{\text{relax}}\) — the relaxation rate

not a disaster rate at all, and not a rival to \(r_{\text{onset}}\). The two are different kinds of quantity: \(r_{\text{onset}}\) is the level the risk settles at; \(r_{\text{relax}}\) is the speed at which it settles there, and its reciprocal, ≈ 40 days, is the relaxation time. Why there is anything to settle: the forecast is made knowing the world is in Risky today and not already in a crisis, so onset cannot happen immediately — a crisis must first arrive and then run its course. The risk therefore starts at exactly zero and climbs to \(r_{\text{onset}}\) within a few months (sections 7.2, 7.4, 7.5). This is what that knowledge is worth: 2.90 % rather than 3.25 % for the coming year (section 7.5).

T Larger root of the same quadratic. Standard usage in kinetics and in Markov-chain theory calls \(1/(r_{\text{relax}} - r_{\text{onset}})\) the relaxation time; here the two differ by 0.37 % (40.43 d against 40.28 d), so the distinction never matters numerically but is stated to keep the identification honest. It is likewise close to, but not equal to, the crisis clock: \(r_{\text{relax}} = 9.067\)/yr against \(r_{M \rightarrow \text{out}} = 9.000\)/yr, larger by 0.74 %, and section 7.1 proves that inequality is strict whenever \(r_{M \rightarrow R} > 0\). Section 7.3 explains why the two exponentials of the closed form are not the two physical stages. Was \(r_{\text{fast}}\) here in drafts before 2026m09d08. Companion code: r_relax, the second value returned by decay_rates().

excursions() — the number of MAD crises

\(n_{MAD}\) — the number of MAD crises

the world passes through before one of them reaches Dead — on average 3

T Geometric random variable with success probability \(p_{M \rightarrow D}\). This is the factor that answers the “loop objection” (section 5.5). Was \(n_{\text{tries}}\) here in drafts before 2026m09d08. Companion code: excursions().

the death fraction

\(q_{\text{dead}}\) — the death fraction

the share of humanity that dies within about two years of onset, from all causes taken together: the blast and fire, and then the famine and supply-chain collapse that follow, which dominate the total. It is not deaths in the strikes alone.

T Not produced by this model. b16 SIA-9 takes it from Xia et al. (2022), whose figures are deaths by the end of year 2: a small regional exchange (~100 warheads, 5 Tg soot) gives about 2 billion (\(q \approx 0.25\)); a full US–Russia exchange (150 Tg) gives over 5 billion (\(q \approx 0.63\)). b16 uses 0.3, which is therefore conservative twice over — it takes the figure for the smallest exchange modelled, and it stops counting at two years while the climate disruption runs for a decade or more. Section 14.2 works through what the two-year horizon does and does not include; the scenario-matched value is 0.63, which would roughly double every multiplier b16 reports.

the flux of worlds

\(r_{\text{flux}}\) — the flux of worlds

onsets per world-year, 0.0330/yr. This is what a simulation measures directly: run 40 world histories, add up their waiting times, and divide 40 by that total. It is a property of the ensemble, not of any world in it — a single world has exactly one onset, ever, on one date, and never experiences “0.033 onsets per year”. Distinct from \(r_{\text{onset}}\) in kind as well as value (0.0331/yr, 0.36 % apart): \(r_{\text{onset}}\) is a hazard — instantaneous, conditional on having survived so far — whereas \(r_{\text{flux}}\) is an unconditional average over the whole run. Quote \(r_{\text{onset}}\) against published “X percent per year” figures; quote \(r_{\text{flux}}\) when reporting what an ensemble of runs produced.

T Michaelis–Menten reaction velocity \(v\) (9. Michaelis–Menten, derived rather than asserted), which is the same quantity read as a turnover: an enzyme processes substrate repeatedly, so for enzymes the flux is what one actually observes, and the ensemble is the molecules in the tube. Here the “tube” is a hypothetical population of worlds — which is exactly why the enzymology symbol \(v\) is kept only inside section 9, where that reading is being made on purpose.

r_all — the sum of every rate in the model

\(r_{\text{all}}\) — the sum of every rate in the model

\(r_{R \rightarrow M} + r_{M \rightarrow R} + r_{M \rightarrow D}\) = 9.1/yr. It is a rate like any other and is written as one, rather than as a bare Greek abbreviation, so that an equation containing it can be looked up here. It grows automatically if the model grows: a Risky → LifeMAP escape arrow would enter this sum too.

T Minus the trace of the transient generator. Appears in both Vieta relations: \(r_{\text{onset}} + r_{\text{relax}} = r_{\text{all}}\), which is the quickest check that the two roots were solved correctly. Was \(\Sigma\) here in drafts before 2026m09d08. Companion code: the local total inside decay_rates(), and r_all in crosschecks.py.

the density

\(p_{\text{winter}}(t)\) — the density

how much of the probability of onset falls in each year. Not a probability itself: it has units of 1/yr, and only its area over a stretch of years is a probability. It appears once, as the numerator of the hazard in section 7.2.

T Probability density function of the waiting time. Lower case on purpose: \(P(\cdot)\) in these same equations is a probability, and a density is not one — the case carries the type. Named for the event rather than the arrow (winter, not \(T_{R \rightarrow D}\)) because a nested arrow subscript is unreadable at this size, and because accidental nuclear winter is what the whole paper is about.

the discriminant

\(\Delta\) — the discriminant

the quantity under the square root when the two rates are solved for. Its only job is to show that the two rates are always real numbers rather than an oscillation, for any positive rates whatever (section 6.5).

T \(\Delta = r_{\text{all}}^{2} - 4\, r_{R \rightarrow M}\, r_{M \rightarrow D}\). Renamed from \(D\) in round four, because \(D\) is the state Dead in the arrow scheme and the two would otherwise appear in the same equations.

the two clocks

\(C_{M \rightarrow R}\), \(C_{M \rightarrow D}\) — the two clocks

a local proof device, used once and not needed afterwards. Picture each arrow as carrying its own alarm clock set to a random time; the MAD crisis ends when the first clock rings, and which clock rings decides whether the world walks back to Risky or arrives at Dead. Listed here so that a reader who meets these symbols in section 4 is not left wondering why they were introduced at all.

T Independent exponential random variables with rates \(r_{M \rightarrow R}\) and \(r_{M \rightarrow D}\). Conventionally written \(X\) in probability texts, where the letter carries no meaning; the clock reading is the same mathematics with an interpretation attached. Was \(C_\mu, C_\kappa\) here in drafts before 2026m09d08. A proof device only; it has no counterpart in the companion code.

6. Side by side#

The six, on the axes that decide#

V0 today

V1 entries

V2 index+entries

V3 one table

V4 factored

V5 glossary

Pages in this PDF

9

4

6

4

6

4

Scan all 16

poor

impossible

one page

poor

one page

by alphabet only

Read one entry

26-char column

full width

full width

full width

full width

full width

Look up from page 12

flip back

flip back

flip back

flip back

flip back

hover / ``:term:``

PDF risk

tall rows, hyphenation

none

low

silent drop

low

none

HTML at 720 px

5 columns is too many

fine

fine

wide rows scroll

fine

fine

Editing by hand

awkward

easy

index is aligned

script-only

index is aligned

easy

Changes the content?

—

no

no

no

yes, needs approval

no

What Claude would choose, offered not to be believed but to be checked.

V4 for the paper, with V5’s glossary machinery underneath it, and the fold on for the website and off for print. V4’s index answers “show me all sixteen”, its entries answer “explain this one”, and its three content decisions fix a real defect rather than hiding it behind a nicer table. V5 costs nothing extra in print and buys the hover lookup in HTML, which is where most readers will meet these symbols.

If the three content decisions are judged to over-reach, take V2 — identical containers, no content change, available today.

V1 is right if a reviewer says the index duplicates the paper’s own arrow scheme, which is a fair thing to say: the scheme is designed so that the symbol tells you what it means, and an index of self-explaining symbols is arguably redundant.

V3 is the one to avoid. It is the most compact in print and it keeps the word “table”, but it buys that with a file only a script can edit, which fails silently when it breaks. A nomenclature table that can vanish from the PDF without a warning is a bad trade at any page count. It is listed here because it is the option that looks most attractive before it is tested.