Where is everybody? · Working papers

Red team, round 3: the model and the main page

These are the critics’ reports as filed. The critics were separate runs of Claude given opposing briefs; none is a human specialist. File names refer to the project’s working folder. Where a report cites a brief by subject, such as “the abiogenesis brief”, it means one of the project’s summaries of the published literature. Notes about where working files were stored have been removed; the findings are unedited.

Critic: the studies as quoted on the page

Overall verdict

Not ready to publish from the fact-checking lens, though it is close. Every headline study number in sections 04, 05, 06 and 11 matches its revised study report and data.js, the round-2 fixes held (no "first", no "any temperature", revised uncertainties, hedged Snyder-Beattie wording, prior-work credits), and I independently reproduced the new "Moves the answer by" column with my own paired model runs. But the prose around the numbers contains statements a specialist would catch as wrong: the "thousand crossings at one ten-thousandth of light speed" arithmetic is off by about 250 times (and is echoed in section 01), the red-dwarf sentence contradicts the revised study and is stronger than the claim its referee withdrew, the fossil-dolphin sentence is not what the data show, Kipping (2025) is credited with the opposite of his conclusion, and the caption calling the inspected dim ellipticals "measurement failures" is false for at least one plotted object. There is also selective quoting: only the most favourable Vermeij grouping, "about 100" star-power beacons without its 55 to 18,000 range, and Zackrisson's limit without his tentative 0.3%. The single most important change is to fix the three wrong statements of fact (crossing arithmetic, red-dwarf sentence, dolphin sentence) and then restate each limit with its conditions and the prior-work numbers exactly as the revised study reports give them. page_draft.md is also stale against the live page in section 11 and still contains a sentence that is false ("two points or less").

Objections

Checked and found correct

Not checked

Tables

A. Change in the chance we are alone (site posterior) when one input is removed or pushed to its limit. Mine: 4 paired seeds x 60,000 samples, base 0.781 (prior 0.584). Owner: models/leverage4.json.

Input change                               mine     owner
no optical galaxy limits                  -0.000   -0.0001
no galaxy surveys at all                  -0.002   -0.0017
no radio searches                         -0.008   -0.008
life dated from LUCA (tau/T 0.03-0.06)    -0.055   -0.0536
life dated from fossils (0.16-0.20)       +0.021   +0.0224
settlement speed >= 1% c                   0.000    0.0
settlement speed <= 0.1% c                 0.000    0.0
no hard steps                             -0.097   -0.0889
three or four hard steps                  +0.142   +0.1431
red-dwarf planets dead / alive            +0.001 / -0.002   +0.0008 / -0.0019

B. Our rank among observers with red dwarfs excluded (mdwarf_early/data/rank_noM_cut_window.csv, full window)

host cut (Msun)   n=1    n=2    n=3     n=4     smallest n with rank < 1%
0.60              38%    12%    3.6%    1.03%   5
0.65              45%    19%    7.4%    2.8%    6
0.70              53%    28%    13.6%   6.6%    7
0.80              66%    45%    31%     21%     none

C. Fossil cetacean relative brain size (convergence/data/part2_brain_size_through_time.csv); human = 6.41

age       max value   share of human
16 Ma     3.46        0.54
4 Ma      3.56        0.56
living    0.73 of human (best dolphin with >= 3 brains); 0.86 on a single record

Code errors

Advice

Fix the three wrong statements of fact first (crossing arithmetic in sections 04 and 01, the red-dwarf sentence, the dolphin sentence); each is checkable by a reader in a minute and would cost the page its credibility with specialists. Then go through sections 04 to 06 once more with each study's results table open and add the condition or range that the study attaches to every quoted limit; the pattern in most of my moderate objections is a correct number with its qualifier removed. Before publication, write to the Snyder-Beattie authors and to Kipping about the two unexplained odds: the page names an apparent error in a published paper, and round 2 already asked for this. Finally, say plainly in section 04 and section 11 which studies feed the model (three) and which are independent checks (the rest); the new leverage column is honest and I reproduced it, but three of its rows report a zero that is true by construction.

Critic: the code audit

Overall verdict

The engine is sound; the page is not ready, because several headline numbers are mislabelled. My independent re-implementation (own chain solver, own cosmology and birth dates, no cosmo_tables) matches model4 on all seven classes and P(alone) to within 0.004 for site, ssa_all, ssa_now and ssa_obs. chain4, the timeline likelihood, the gate-delay weight, the tilted sampler, the SSA denominators, the Shapley arithmetic, three camps, three future rows and five scan draws all check out or reproduce exactly. The single most important change is the headline triple 78 / 16 / 6. The 6% is computed as 1 - alone - stuck, but the classes the card describes (unnoticed, hiding, on their way) sum to 11%, and 5.4 points of the 78% are universes where outsiders are spreading or already here. The clean partition is 73 / 16 / 11. Second, the page reads identical updates in opposite ways: the barrier (15% to 26%), forced low footprint (5% to 8.4%) and universal hiding (3% to 5.2%) all rise by the same factor of 1.7, yet one is called 'not reassuring' and another 'simply returns the prior'. Third, 'another civilisation exists in the Galaxy right now: 8%' excludes the settlers the page says are here (13 to 15% with them), and the second-origin forecast of 32% includes the assumed 15% false-positive rate. All results on disk were still the 30,000-sample trial when I finished (07:19 UTC); the second-origin row there (ESS 816) is off by 0.02 from the converged value.

Objections

Checked and found correct

Not checked

Code errors

Tables

A. Independent re-implementation against model4 (classes: empty, rare, en_route, stuck, unnoticed, hidden, excluded | P(N_ever < 1))
prior    mine (600k plain)        0.262 0.211 0.032 0.098 0.030 0.012 0.355 | 0.581
prior    model4 (30k x 8)         0.262 0.213 0.033 0.098 0.031 0.012 0.352 | 0.584
site     mine, plain D (600k)     0.386 0.335 0.039 0.168 0.045 0.023 0.005 | 0.773   ESS 28,125
site     mine, efficient D (300k) 0.391 0.336 0.040 0.162 0.043 0.023 0.005 | 0.781   ESS 123,046
site     model4 (30k x 8)         0.388 0.337 0.040 0.164 0.044 0.022 0.005 | 0.779   ESS 61,750
site     model4 (60k x 4, mine)   0.389 0.337 0.041 0.163 0.044 0.021 0.005 | 0.781
ssa_all  mine, efficient D        0.390 0.312 0.041 0.171 0.047 0.023 0.016 | 0.760
ssa_all  model4 (30k x 8)         0.387 0.314 0.041 0.170 0.047 0.023 0.018 | 0.759
ssa_now  mine, efficient D        0.399 0.323 0.039 0.162 0.044 0.022 0.012 | 0.775
ssa_now  model4 (30k x 8)         0.396 0.324 0.039 0.162 0.044 0.022 0.014 | 0.775
ssa_obs  mine, efficient D        0.232 0.295 0.006 0.463 0.003 0.001 0.001 | 0.530   ESS 28,557
ssa_obs  model4 (30k x 8)         0.236 0.291 0.005 0.461 0.004 0.001 0.001 | 0.530   ESS 7,104
Posterior side statistics (site), mine / model4: P(fast) 0.199 / 0.203; gated 0.338 / 0.340; barrier 0.254 / 0.255; mean hard steps 1.57 / 1.57; sterile 0.468 / 0.466; other-now 0.081 / 0.081.
B. The headline is not a partition (site column)
                              as printed   clean classes   prior (clean)
nobody else (empty + rare)       0.779*        0.725          0.475
arise, never spread (stuck)      0.164         0.164          0.098
someone spread (4 classes)       0.056**       0.111          0.428
* P(N_ever < 1); includes en_route 0.039, unnoticed 0.010, hidden 0.004, excluded 0.002.   ** 1 - alone - stuck.
Clean partition, other columns: ssa_all 0.701 / 0.170 / 0.129; ssa_now 0.720 / 0.162 / 0.118; ssa_obs 0.527 / 0.461 / 0.012; SIA 0 / 0.688 / 0.312.
C. Same Bayes factor for every hypothesis that escapes the silence (site)
universal barrier        prior 0.150   posterior 0.255   x1.70
forced low footprint     prior 0.050   posterior 0.0835  x1.67
universal hiding         prior 0.030   posterior 0.0515  x1.72
D. chain4 against Monte Carlo (ratio chain4 / MC)
on-grid times (s = 1, 2, ...), every case without a clip                0.996 to 1.002
off-grid: B s=0.77 0.985; D s=0.77 0.938; E s=1.6 0.971; H s=1.6 0.891; H s=2.7 0.894; J s=53.6 0.984; L s=1.25 0.977
hazard 4.605 (clipped to 4.0), two hard stages: s=1 1.27; s=1.6 1.29; s=3 1.32; s=17.9 1.41
lambda = 1000, h = 4.605, one stage: 0.923 (s >= 0.2); 0.666 at s = 0.026
lambda = 500, 0.1; h = 4.6: 1.04 to 1.07 for s >= 1; 0.44 at s = 0.026
E. Sensitivity runs (site P(alone); 60k, seed 7, common random numbers)
hard_thr 0.1 / 0.3 / 0.6:                         0.778 / 0.782 / 0.782
hazard clip 4.0 against none, base:               0.7820 / 0.7820
hazard clip 4.0 against none, Rare Earth:         0.8334 / 0.8339
all-time denominator rescaled against W x F_end (ssa_all): 0.7662 / 0.7660
prior with the conditioned gate-delay proposal against the true prior (30k, seed 7): 0.5863 / 0.5836
F. Future rows: trial against converged (site)
                      stored 30k (ESS)     6 x 60k pooled    independent
second origin alone      0.557 (816)          0.581            0.579
second origin stuck      0.329                0.308            0.307
second origin forecast   0.324                0.309            0.309 (real part 0.187)
feasible (p_exp > 1e-3)  0.878 / 0.041 / 0.588   0.883 / 0.040 / 0.588   0.878 / 0.039 / 0.586
no barrier (proposed)    -                    -                0.858 / 0.063 / 0.743
artefact null            0.783 / 0.175 / 0.974   0.795 / 0.165 / 0.973   -
G. cells4.json re-weighting to w_fast 0.6, q_barrier 0.4 (alone / stuck)
            cells file     direct 4 x 60k    independent, re-weighted
site        0.444 / 0.502   0.454 / 0.491    0.456 / 0.486
ssa_all     0.401 / 0.534   0.415 / 0.518    0.415 / 0.516
ssa_now     0.430 / 0.509   0.443 / 0.494    0.443 / 0.493
ssa_obs     0.272 / 0.725   0.286 / 0.711    0.287 / 0.711
sia         0 / 0.903       0 / 0.903        -

H. All 16 ablation subsets, site P(alone), n = 30,000, seed 7 (reproduced exactly) prior 0.5836; early 0.4879; late 0.6160; local 0.8014; surveys 0.6167; early+late 0.5260; early+local 0.7395; early+surveys 0.5252; late+local 0.8247; late+surveys 0.6483; local+surveys 0.8099; early+late+local 0.7584; early+late+surveys 0.5615; early+local+surveys 0.7506; late+local+surveys 0.8310; all 0.7695. Shapley: early -0.0773, late +0.0269, local +0.2142, surveys +0.0220; sum 0.1858.

Advice

  1. Fix the cards first: one line in charts1.js and one in bind.js. Decide whether the headline quantity is 'nobody arose here' (78%, overlapping) or the clean class (73%), then use that one definition for the cards, the camps, the levers, the scan and the playground. 2. Tell the redistribution story once and apply it evenly: the silence deletes evident settlement, and everything that escapes (barrier, forced low footprint, universal hiding, empty Galaxy) gains by the same factor. The page currently applies it to 'unnoticed' and not to the barrier. 3. A free variance reduction: draw the gate delay from the truncated exponential in x - D (rate lambda + h on [0, tau]) instead of uniformly. In my implementation that lifts the site ESS from 26% to 41% of samples and removes the spikes from fast-life gated worlds. 4. Pool seeds for every row that feeds a sentence, and print ESS in tables_v4.md. 5. Regenerate page_draft.md from index.html; they have already diverged (studies section). 6. Once the 250,000-sample run lands, re-run make_tables.py and build_data.py, then check that Table B's posterior, Table C's posterior and the Base camp row agree to 0.003.

Critic: a statistician

Overall verdict

Not ready to publish as worded. The model's arithmetic reproduces (my independent seeds give prior 0.586, posterior 0.777 to 0.781), but the headline "78%, up from 58%" is a prior restated plus one deletion. Removing the contradicted class from the prior and renormalising, with no likelihood at all, already gives 0.800; the full posterior is 0.777. The evidence multiplies the odds on being alone by about 2.5, and its Bayes factor on the dial the headline hangs on (whether life starts easily) is 1.00: that probability is 0.20 before and 0.20 after. The scan's "alone is the majority answer in over 99% of re-runs" is circular: it holds because 83% of draws have w_fast below 0.4, and it falls to 94% in my re-run of the project's own first 70 draws and to 75% (54% for a typical civilisation) when w_fast is drawn uniformly on 0.05 to 0.9. Three statements are wrong as written: the hero's "6% someone did spread" (the model's own classes sum to 11%), "the first three conventions agree to within a few points" (0.77 against 0.46 if planets live as long as their stars), and "the evidence raises it above that prior" for the barrier panel. The single most important change is to lead with the odds multiplier and the conditional ("about 3 to 1 alone if you think life is hard to start, about evens if you think it is easy") in place of an unconditional 78%. All numbers below are from the 30,000-per-run trial on disk and my own runs; the 250,000 run and the 400-draw scan had not landed when I finished.

Objections

Checked and found correct

Not checked

Code errors

Tables

A. Prior sensitivity (model4, 2 x 60,000 samples per row, seeds 1-2; Earth-given standard error about 0.004) 'identity' = P(alone | not in the contradicted class) under the prior, with no likelihood applied.

variant                                   prior  contradicted  identity | Earth-given  typical-all  typical-now  observer | stuck  P(barrier)
base                                      0.587  0.352  0.801 | 0.781  0.761  0.776  0.527 | 0.165  0.256
slow range 3-30                           0.490  0.436  0.714 | 0.708  0.674  0.694  0.442 | 0.220  0.291
slow range 3-60                           0.552  0.383  0.772 | 0.756  0.732  0.748  0.497 | 0.184  0.268
slow range 3-200                          0.624  0.319  0.828 | 0.804  0.789  0.803  0.559 | 0.147  0.245
slow 3-30, w_fast 0.26 (consistent)       0.464  0.453  0.694 | 0.680  0.645  0.666  0.409 | 0.240  0.304
slow 3-200, w_fast 0.16 (consistent)      0.646  0.303  0.840 | 0.823  0.809  0.821  0.592 | 0.133  0.236
fast up to 6 decades, w_fast 0.30         0.532  0.391  0.767 | 0.749  0.740  0.754  0.508 | 0.188  0.267
fast 6 decades, slow 3-30, w_fast 0.40    0.402  0.494  0.646 | 0.639  0.612  0.632  0.379 | 0.270  0.316
step depth 2-5                            0.551  0.376  0.776 | 0.746  0.733  0.747  0.492 | 0.190  0.270
zero-step weight 0.5                      0.536  0.386  0.771 | 0.741  0.721  0.737  0.471 | 0.190  0.273
w_fast 0.5                                0.417  0.470  0.683 | 0.634  0.604  0.628  0.346 | 0.270  0.321
w_fast 0.5, slow 3-30                     0.358  0.523  0.605 | 0.578  0.533  0.560  0.301 | 0.312  0.347
w_fast 0.5, steps 2-5                     0.372  0.500  0.642 | 0.564  0.551  0.572  0.296 | 0.321  0.350
slow 3-30, steps 2-5                      0.445  0.466  0.671 | 0.655  0.629  0.646  0.400 | 0.260  0.313
slow 3-60, steps 2-5                      0.513  0.409  0.742 | 0.716  0.698  0.713  0.459 | 0.213  0.284
w_fast 0.5, slow 3-30, steps 2-5          0.306  0.556  0.546 | 0.490  0.464  0.486  0.246 | 0.377  0.384
w_fast 0.8                                0.248  0.590  0.494 | 0.485  0.421  0.452  0.209 | 0.375  0.388
W_exp 1-4                                 0.587  0.374  0.815 | 0.793  0.774  0.789  0.512 | 0.152  0.266
W_exp 1-16                                0.587  0.317  0.775 | 0.755  0.735  0.751  0.560 | 0.191  0.241
W_exp 2-20                                0.587  0.279  0.749 | 0.728  0.709  0.726  0.568 | 0.218  0.227
q_barrier 0, W_exp 1-30 (no atom)         0.587  0.328  0.786 | 0.777  0.758  0.773  0.599 | 0.158  0.000
q_barrier 0.15, W_exp 1-30                0.587  0.279  0.745 | 0.721  0.702  0.719  0.557 | 0.229  0.226
c_claim log-uniform 1e-6..1               0.587  0.257  0.744 | 0.762  0.750  0.763  0.525 | 0.159  0.239
c_claim uniform 0.5..1                    0.587  0.362  0.807 | 0.784  0.763  0.778  0.528 | 0.165  0.260
c_claim uniform 0..0.2                    0.587  0.328  0.787 | 0.772  0.756  0.771  0.526 | 0.162  0.249
long-lived hosts (p_cap_short 0, no UV penalty, no hazard)   0.576  0.356  0.795 | 0.767  0.457  0.664  0.207 | 0.175  0.260
long-lived hosts + red dwarfs alive 0.6   0.572  0.358  0.792 | 0.765  0.438  0.659  0.195 | 0.176  0.261
p_cap_short 0.3, no UV penalty            0.575  0.359  0.794 | 0.774  0.682  0.718  0.419 | 0.169  0.259
w_fast 0.5 + long-lived hosts             0.410  0.472  0.677 | 0.613  0.244  0.467  0.094 | 0.286  0.327
(typical-all-time effective sample size is 1,400-2,000 of 120,000 in the three long-lived rows; +/- 0.02)
B. Where the 0.586 prior comes from (base_diag 180,000 samples; extra.py 40,000 per variant)
fast camp (20%): P(alone | fast) = 0.138, contributes 0.027.   slow camp (80%): P(alone | slow) = 0.697, contributes 0.558.
by number of hard steps (share; P(alone); given fast; given slow): 0 (0.349; 0.445; 0.000; 0.557), 1 (0.317; 0.526; 0.014; 0.652), 2 (0.204; 0.717; 0.235; 0.839), 3 (0.097; 0.878; 0.576; 0.951), 4 (0.033; 0.967; 0.875; 0.991)
sterile Galaxy (fewer than one inhabited planet) 0.344; inhabited but no other technology 0.242
remove one ingredient: no slow camp 0.135; all slow 0.698; no candidate steps 0.453; all four f factors = 1: 0.452; no steps and slow maximum 12: 0.143
slow range fixed at 12 / 20 / 40 / 100 decades: prior 0.577 / 0.679 / 0.754 / 0.798, posterior 0.758 / 0.831 / 0.875 / 0.896
implied prior, log10 P(civilisation per habitable-zone planet): 1% -80.8, 5% -55.0, 25% -21.8, 50% -11.8, 75% -7.0, 95% -3.6, 99% -2.4; mass below -20: 0.28; below -30: 0.16; below -50: 0.06; between -12 and -9: 0.14; above -9: 0.37

C. Identity check, base (180,000 samples) prior alone 0.586; prior contradicted 0.353; alone and contradicted 0.068; P(alone | not contradicted) = 0.800 posterior alone: silence at home only 0.805; all silence terms 0.814; timeline only 0.525; everything 0.777 Bayes factor on alone: home silence 2.9; all silence terms 3.1; timeline 0.78; everything 2.5 barrier: mean likelihood 0.515 with, 0.257 without; Bayes factor 2.0; identity part 1/(1 - 0.414) = 1.71; posterior split: barrier and alone 0.136, barrier and stuck 0.123; P(barrier | N_ever >= 1) 0.15 to 0.55 other silent atoms: everyone hides 0.030 to 0.052; low footprint forced 0.050 to 0.084

D. Attribution, Earth-given, from the 16 stored subsets (trial, n = 30,000)
term      Shapley (points)   range over 24 orderings   Bayes factor on alone (range)
early     -0.077             -0.096 to -0.059          0.69 (0.67-0.71)
late      +0.027             +0.019 to +0.038          1.14 (1.11-1.17)
local     +0.214             +0.183 to +0.252          2.77 (2.61-2.98)
surveys   +0.022             +0.006 to +0.037          1.10 (1.05-1.16)
interaction early x local +0.034. Typical-observer column: early -0.100, late +0.017, local +0.013, surveys +0.014; P(barrier) with all terms off 0.888.
E. Scans (n = 30,000 per draw), 5/25/50/75/95%
                               project draws 0-69            widened (w_fast U(0.05,0.9), zero-step weight U(0.1,0.7)), 110 draws
prior alone                    0.31/0.42/0.50/0.60/0.70      0.14/0.28/0.39/0.49/0.59
posterior, Earth given         0.50/0.63/0.76/0.81/0.89      0.34/0.51/0.62/0.72/0.83
posterior, typical all time    0.41/0.56/0.68/0.75/0.84      0.23/0.39/0.51/0.62/0.78
posterior, typical observer    0.19/0.36/0.44/0.56/0.67      0.10/0.20/0.30/0.39/0.56
lift                           0.12/0.17/0.21/0.27/0.35      0.11/0.16/0.21/0.28/0.36
identity lift                  0.13/0.16/0.20/0.25/0.31      0.14/0.17/0.21/0.26/0.34   (correlation with lift 0.79 / 0.84)
Bayes factor on alone          1.6/2.2/2.8/3.6/4.7           1.7/2.0/2.7/3.5/4.7
share with alone > 0.5         0.94 / 0.84 / 0.39            0.75 / 0.54 / 0.13   (Earth given / typical all time / typical observer)
gap Earth-given minus typical  0.02/0.05/0.06/0.09/0.15      0.02/0.05/0.08/0.13/0.19
barrier Bayes factor           1.4/1.6/2.1/2.5/3.6           1.7/2.1/2.6/3.2/5.1   (log correlation with identity 0.95 / 0.96)
alone > 0.5 by prior alone:    [0.2,0.3) 1 of 3; [0.3,0.4) 83%; >= 0.4 100%      |  <0.2 8%; [0.2,0.3) 57%; [0.3,0.4) 70%; >= 0.4 100%

F. SIA split against the closed form (prior atoms renormalised) closed form 0.695 / 0.187 / 0.118 (stuck / unnoticed / hidden); pooled trial 0.688 / 0.213 / 0.099 (effective sample size 807); camps base row 0.66 / 0.18 / 0.16; my tilted run 0.695 / 0.201 / 0.104 (238)

G. Marginal likelihood relative to base (trial camps and levers): w_fast 0.05 to 0.8: 1.00-1.01 (Earth given), 1.02-0.90 (typical all time), 0.89-1.39 (typical observer). Largest camp ratios, Earth given: Carter hard steps 2.4, LUCA dating 0.54, biology optimist 0.57.

Advice

THE HEADLINE I WOULD SIGN

"One thing is established by observation: nobody of the planet-claiming, evident kind has reached the Solar System, although there has been time many times over. That removes about a third of what one could have believed beforehand and multiplies the odds that we are the only civilisation our Galaxy has produced by about 2.5. Where that leaves you depends on a judgement the evidence does not touch: if you think life is hard to start, we are probably alone in the Galaxy, at about three to one; if you think it starts easily, it is close to evens between being alone and others having arisen without ever spreading."

WHAT YOU MUST BELIEVE (Earth-given unless stated; from the levers, my sensitivity runs and the scans)

To conclude You must believe
Alone in the Galaxy at three to one or better (0.75+) Life starts easily with probability about 0.2 or less, with at least a dozen decades of ignorance about its rate or two or more hard steps likely; prior P(alone) of about 0.55 or more
Alone more likely than not Prior P(alone) above about 0.35: life starts easily with probability below about 0.75 on my other priors, below about 0.5 if the slow range stops at 30 decades and steps are shallow; and not the typical-observer convention
"They arise and never spread" above one third Life starts easily with probability about 0.7 or more, or a prior of about 0.55 or more on a universal barrier, or the typical-observer convention (0.47), or SIA (0.69)
A universal barrier more likely than not A prior of about 0.35 or more (the silence only doubles the odds), or knowledge that another civilisation arose here (0.55), or the typical-observer convention (0.92)
Here but unnoticed or hiding above 10% A prior of about 0.12 or more that low footprint is forced on everyone or that everyone hides; the posterior is the prior with odds times 1.7
The anthropic convention does not matter Rocky planets stop being habitable within about 15 Gyr (my 70%) and orange and red dwarfs are poorer cradles; otherwise a typical civilisation gives 0.46 where Earth-given gives 0.77

OTHER ADVICE

  1. Present the evidence as an odds multiplier. It is nearly constant across biology priors (2.3 to 2.7), nearly additive across observations (0.7 x 1.1 x 2.8 x 1.1), and it makes the dependence on the expansion priors visible (1.35 for the expansion sceptic, 8 for Hart crossed). A reader can apply it to their own prior in their head, which the "+20 points" framing does not allow.

  2. Say the cancellation out loud. Early life favours an easy origin; the silence disfavours it; on the model's base priors the two cancel to a Bayes factor of 1.00. That is a clean, checkable statement and, as far as I can tell from the briefs, not one the literature makes in this form. It also depends on the dating: with LUCA dating the timeline wins, with fossils-only the silence wins, so give it with that range.

  3. Show the implied prior. One sentence and one small chart of the prior on civilisations per habitable planet would let a reader see at a glance that the answer is "how much prior mass sits below one in ten billion".

  4. Make the playground expose the three ingredients that carry the prior and are currently fixed: the slow range, step depth and the f factors. The six sliders offered cover less of the prior than those do.

  5. The page's own candour is uneven. The before-and-after caption ("its share is handed to the others in proportion to what they already had; that is why the priors matter so much") is exactly right. The scan paragraph, the first callout and the barrier callout then present the same redistribution as a robustness finding, as evidence for aloneness and as bad news respectively. Bring those three into line with the caption.

  6. Do not publish on the trial numbers. With the 250,000 run and the 400-draw scan in place, re-check three bound sentences that I expect to change: the scan's "over 99%" (I expect about 94%), the Shapley bars (the rescale factor should fall to about 1.00), and the playground lead (17% against the hero's 16%).

Critic: the model as described on the page

Overall verdict

Not ready to publish from this lens, though the problems are in the wording and captions, not the arithmetic. Every bound number I recomputed matches the results file (the 250,000-sample run that landed at 07:29, and my own independent 360,000-sample rerun agrees to 0.002). The text around those numbers misdescribes them in about ten places. The single most important change is the three headline cards: "78% nobody else / 16% never spread / 6% someone did spread" sum to 100 only because the third is computed as a remainder. By the model's own classes "someone did spread" is 11%, and 5 of the 78 "alone" points are universes where expanders from another galaxy are already here unnoticed (1.5) or hold over 1% of the universe and are on the way (3.8). The hero bar directly above the cards shows 39 + 34 = 73, so the mismatch is visible. Next in importance: the section 09 caption (index.html only) names the wrong top observation and gets a direction backwards; the "three dials" caption is contradicted by its own chart in two of three panels; the second sentence of section 01 is wrong by a factor of several hundred (crossing the Galaxy at probe speed takes about two billion years, not a few million); and section 10 states "behind us", "unclaimed" and "ahead of us" more strongly than the numbers allow. Note that page_draft.md is stale against index.html (sections 07, 09 and 11 differ), so a reviewer reading only the draft never sees the section 09 error.

Objections

Code errors

Checked and found correct

Not checked

Tables

Site convention, integrate4_results.json with n_per_run 250000 (07:29 UTC), cross-checked by my 6 x 60,000 rerun.

A. Overlap of "alone" (N_ever < 1) with the classes (rerun, n = 360,000, ESS 86,000)
class            total    and alone   and not alone
empty_universe   0.3891   0.3891      0
rare             0.3387   0.3387      0
en_route         0.0401   0.0382      0.0019
stuck            0.1612   0           0.1612
unnoticed        0.0448   0.0096      0.0352
hidden           0.0211   0.0037      0.0174
excluded         0.0049   0.0020      0.0029
alone 0.7814 = empty + rare 0.7279 + overlap 0.0536. Spread classes 0.1109. Card value (1 - alone - stuck) 0.0573.

B. Barrier by branch (rerun) P(barrier) prior 0.150, posterior 0.256. Barrier and alone 0.139; barrier and stuck 0.116. P(barrier | alone) 0.178. P(barrier | stuck) 0.72. P(barrier | not alone) 0.53. No-barrier stuck: 95% have N_ever x p_exp < 1. Conditioning: no barrier gives alone 0.863 / stuck 0.060; p_exp > 1e-3 gives 0.881 / 0.039; barrier gives 0.545 / 0.455.

C. Future observations ranked by total move (250k file), base 0.782 / 0.1625 / 0.056
move    observation                               alone   stuck   spread  forecast
0.606   expansion shown infeasible                0.535   0.465   0.000   0.256
0.407   second origin in the Solar System         0.578   0.311   0.110   0.313
0.348   HWO, at least one biosignature            0.608   0.290   0.102   0.153
0.246   expansion shown feasible (p_exp > 1e-3)   0.883   0.039   0.078   0.591
0.183   no second origin found                    0.873   0.096   0.030   0.687
0.144   no Earth-level technology in the Galaxy   0.854   0.112   0.034   0.914
0.060   HWO, no biosignature                      0.812   0.141   0.047   0.847
0.033   artefact survey finds nothing             0.795   0.166   0.039   0.973
under 0.02: both planet-lifetime rows, both red-dwarf rows, nearest-million-stars radio null.
Second origin by false-positive rate: 5% gives alone 0.476, stuck 0.386; 15% gives 0.578 / 0.311; 30% gives 0.661 / 0.251.
D. Levers (250k file)
w_fast      0.05   0.1    0.2    0.3    0.4    0.6    0.8   | my runs: 0.9    0.95   0.99
alone       0.855  0.829  0.781  0.733  0.682  0.586  0.487 |          0.446  0.422  0.402
stuck       0.110  0.129  0.164  0.199  0.235  0.303  0.376 |          0.404  0.420  0.434
q_barrier   0      0.05   0.15   0.30   0.50
stuck       0.059  0.098  0.164  0.245  0.324   (stuck prior 0.041 0.059 0.096 0.153 0.228)
alone       0.864  0.833  0.781  0.715  0.650
q_cc        0      0.02   0.05   0.10   0.25   0.50
unnoticed   0.009  0.024  0.043  0.075  0.160  0.269   (class prior 0.011 0.018 0.030 0.050 0.108 0.205)
alone       0.803  0.793  0.781  0.761  0.707  0.638

E. Other recomputed quantities P(real second origin) = E[1 - exp(-0.3 lambda)]: site 0.192, typical observer 0.282, SIA 0.938 (forecasts with the 15% false alarm: 0.313 / 0.390 / 0.947). P(real HWO detection) = 1 - (1 - 0.153)/0.9 = 0.059. P(another civilisation in the Galaxy now): model key 0.081; with settled classes counted 0.127. P(N_ever >= 1): prior 0.414, posterior 0.219. P(N x 5.5e6 < 1) 0.520; P(N x 5.5e9 < 1) 0.422. Local term off (ablation early+late+surveys): alone 0.563, excluded 0.351. Exact probability of no other civilisation, E[exp(-N)]: 0.772 against the thresholded 0.782. SIA row: stuck 0.697, unnoticed 0.191, hidden 0.112; P(barrier) 0.695; P(expanders hold 1%) 0.185; ESS 6,945.

Advice

  1. Decide the headline quantity first and make every chart and card use it. I recommend the class partition (73 / 16 / 11) for the cards and the hero, with "no other civilisation ever arose here: 78%" as a stated secondary figure. Otherwise the stacked bars and the printed numbers disagree on the first screen.
  2. Print the convention with the headline number wherever it appears alone: "78% treating Earth as a given; 54% if we are typical observers; 0% under self-indication". The hero toggle does this interactively, but the lede and the section 01 callout are what get quoted.
  3. Regenerate page_draft.md from index.html and the final data.js before the next review round, and bind the remaining hard-coded counts ("Four hundred", the aria labels).
  4. Wherever a forecast or a "would move to" number depends on an assumed error rate or threshold (15% false alarm, 10% survey false positive, p_exp > 1e-3), say so beside the number. These are the figures a careful reader will try to reproduce.
  5. The section 10 cards are the most quoted-out-of-context text on the page. Replace each absolute ("is behind us", "is unclaimed", "is ahead of us") with its model frequency: 82% no barrier in the alone branch, about 7% of alone cases with outside settlers, 72% barrier in the never-spread branch.

Critic: the page as a reader sees it

Overall verdict

Not ready to publish. The page loads with no console errors, no blank bound numbers, no NaN or negative percentages, no em-dashes and no horizontal page overflow, and the playground works. But one section is destroyed by a duplicate id (section 09 loses its heading, text and caption), the three headline cards do not match the bar drawn directly above them (the bar says 73 / 16 / 11, the cards say 78 / 16 / 6, because "alone" overlaps the "someone spread" classes), and the first paragraph contains a crossing-time claim that is wrong by about a factor of a thousand. Four captions say something the chart next to them contradicts (levers, camps, future observations, brains), and on a phone 16 of the 19 charts open showing only their row labels, with the data scrolled off-screen at 7 px type. The single most important change is to fix the hero so the cards are a true partition of the bar (or say plainly that 78% includes about 5 points where others arose elsewhere and are here or on their way), because that is the first thing every reader sees and the first thing a careful reader will add up. The most memorable chart is the hero before/after bar with the hatched 35% block vanishing; it is correctly placed first, but the jargon toggle above it and the mismatch below it blunt it. The most memorable original-data chart, the rain of stars, sits 10 screens down on a laptop and 13 on a phone.

Objections

Checked and found correct

Not checked

Code errors

Tables

CLASS AGAINST 'ALONE' (my run, 60,000 samples, Earth as a given)
class            posterior  of which N_ever<1   prior   of which N_ever<1
empty_universe   0.389      0.389               0.261   0.261
rare             0.338      0.338               0.212   0.212
en_route         0.041      0.039               0.032   0.031
stuck            0.161      0.000               0.099   0.000
unnoticed        0.046      0.010               0.032   0.009
hidden           0.021      0.004               0.012   0.002
excluded         0.005      0.002               0.352   0.068
Partition: 0.727 / 0.161 / 0.112.  Cards as drawn: 0.782 / 0.161 / 0.057.
LEVERS (250k data; value: prior class share -> posterior class share)
q_barrier 0.00: stuck 0.041 -> 0.059 | 0.05: 0.059 -> 0.098 | 0.15: 0.096 -> 0.164 | 0.30: 0.153 -> 0.245 | 0.50: 0.229 -> 0.324
q_cc      0.00: unnoticed 0.011 -> 0.009 | 0.02: 0.018 -> 0.024 | 0.05: 0.030 -> 0.043 | 0.10: 0.050 -> 0.075 | 0.25: 0.108 -> 0.160 | 0.50: 0.205 -> 0.269
w_fast    0.05: alone 0.669 -> 0.855 | 0.2: 0.585 -> 0.781 | 0.6: 0.360 -> 0.586 | 0.8: 0.248 -> 0.487
FUTURE OBSERVATIONS (250k, Earth as a given; alone / never spread / forecast)
settlement shown infeasible  0.535 / 0.466 / 0.26
second origin of life        0.578 / 0.311 / 0.31
biosignature in 25 planets   0.608 / 0.290 / 0.15
settlement shown feasible    0.883 / 0.039 / 0.59
base                         0.782 / 0.163
PLAYGROUND SWEEP (trial data, Earth as a given; chance alone)
life starts easily 2% / 50% / 98%:   87 / 63 / 39
hard steps 0.2 / 2 / 3.4:            68 / 84 / 92
barrier 0 / 50% / 90%:               87 / 64 / 55
low-footprint 0 / 40% / 80%:         80 / 66 / 56
everyone hides 0 / 15% / 30%:        79 / 73 / 68
planets die young 5% / 50% / 95%:    79 / 78 / 78
Crowded universes: life-starts-easily slider 2% / 50% / 98% gives 'never spread' 71 / 71 / 71.

PHONE (390 px) 16 svg charts: drawn 680 px wide in a 348 px frame, scale 0.65, smallest text 7.2 px, row labels 8.2 px. 3 bar charts (hero, schools, playground): 328 px, text 11.5 px. Future chart: 350 px, text 3.7 px. Table: 350 px visible of 610, 1,789 px tall. Toggle buttons 33 px high. Page length: 5,900 words; 24 laptop screens, 31 phone screens. First study chart at screen 9.8 (laptop), 12.7 (phone).

CONTRAST (WCAG ratio)
dark:  bar label on empty_universe 3.42 | --fg3 on bg 4.38, on panel 3.86 | --fg2 on panel 7.65
light: --fg3 on bg 3.40, on panel 3.69 | --sig text on panel 3.43, on bg 3.17 | link 4.68
fixes: white on #5a6b8f 5.34 | dark --fg3 #8591a8 5.24 to 5.94 | light --fg3 #5f6b85 4.72 to 5.11 | light text amber #8a5a00 5.23 to 5.66

Advice

Order of work. (1) Fix the duplicate id, then re-read the section 09 caption against the chart, because it is wrong in two places. (2) Decide the hero: a true 73 / 16 / 11 partition with 78% explained once, or 78 / 16 with an honest third card. Then make the lede, cards, section 10 and playground all use the same definition. (3) Fix the three crossing-time sentences. (4) Rebuild data.js from the 250k results and the 400-draw scan, regenerate page_draft.md, and re-check every caption that quotes a hard-coded number. (5) Rewrite the four captions that contradict their charts (levers, camps, brains, rank). (6) Make the label-left charts responsive; this is one change to the shared drawing helper.

Jargon to define on first use: prior (used in a heading before it is explained; add 'what you believed before the evidence'), posterior (evidence caption), self-indication, biosignature, habitable zone, Ga and Gyr (chart axes and one camp label), LUCA, odds ratio, bits, GHz and hydrogen line, 6dF, 250 K, Oort cloud, 'low-footprint' (used in the hero legend, explained only in a slider note five screens later), '95% limit'.

Steps the argument skips: why the prior is 58% (the implied one-in-a-trillion per planet); why passing stars matter (only if one hosted someone); where 'unusual by a factor of about eight' comes from in the rank caption; why the galaxy limit weakens at 90% dimming; why a 26% barrier can sit inside a 16% scenario.

Hedge stacks and committee prose: 'An independent referee reproduced this, but it is an inference from the published tables: I have not contacted the authors, I found no erratum, and the paper's qualitative conclusion stands either way'; 'the results below follow Olson and Ord (2021), Finnveden (2019) and Cook (2022) where they overlap'; 'found a few things that appear to be new'; 'none confirmed to be missing its light'; the Vermeij sentence ending 'and it also leaves less support for the opposite view that uniqueness is just an artefact of age'; the Sources paragraph. Each can be one plain sentence.

Placement. The hero bar is the right first chart. Consider a one-line strip under the cards with three thumbnails or links ('21,000 stars have passed within a parsec', '114,000 galaxies checked', 'set your own priors') so a skimmer learns in the first screen that there is original data and a playground; at present the first original-data chart is ten screens down. The camps chart (21 rows) and the future chart (13 rows) are the two that cannot be read in five seconds; cut each to the rows that move.

What works and should be kept: the waterfall and its one-sentence explanation of a Shapley value; 'Three answers, three dials'; the candour of section 11 and of the critics paragraph; the before/after dumbbell with the fit column; the playground, which behaves correctly everywhere I pushed it.

Critic: the camps that disagree with the headline

Overall verdict

Not ready to publish from this lens. The model is not broken: I reproduce 0.78 (prior 0.58-0.59), and the base prior on life (20% easy) sits in the middle of the published range rather than at its pessimistic end. The lede and first callout, however, present a prior as a finding. Among the explanations the silence leaves standing, the split was 73/15/12 before any evidence and is 73/16/11 after; the six surviving classes predict the data about equally well (likelihoods 0.37 to 0.54); and the posterior chance that life starts easily equals the prior at every slider setting (0.20 to 0.20 at base). The page never prints that 20%, nor the 100 orders of magnitude behind it. Three further problems are checkable: the headline tiles double-assign 5 points (78% includes "on their way", which the 6% tile claims), the robustness scan caps the easy-life prior at 0.60 so "alone is the majority in over 99%" is manufactured, and the model credits early life at 2.2 to 1 while the page reports 13 to 1 as reproducing. Under priors my camp would defend the same model gives alone 0.14 to 0.39, "arise and do not settle the Galaxy" 0.43 to 0.68, and a 42 to 70% chance another civilisation exists now. The single most important change is to rewrite the lede and first callout so they say the evidence deletes one answer and does not choose among the rest, with the 20% prior printed beside the 78%.

Objections

Checked and found correct

Not checked

Code errors

Tables

All runs: model4.py unmodified, n = 60,000 per run, site (Earth-given) column unless stated.

A. The model under priors the opposing camp would defend
'live' = among explanations other than the visibly settled Galaxy; 'now' = P(another civilisation exists in the Galaxy now)
camp                                              prior  post | live prior -> post | stuck  unn+hid | now   | P(easy life) prior -> post | typical-observer alone
Base                                              0.59   0.78 |   0.80 -> 0.79     | 0.16   0.06    | 0.08  | 0.20 -> 0.20 | 0.54
Mills-style steps only (w_fast 0.2)               0.48   0.69 |   0.73 -> 0.69     | 0.22   0.09    | 0.14  | 0.20 -> 0.15 | 0.43
Chemist: w_fast 0.7, slow tail to 10^-22          0.26   0.49 |   0.49 -> 0.49     | 0.38   0.14    | 0.21  | 0.70 -> 0.75 | 0.22
Chemist + Mills-style steps                       0.13   0.21 |   0.29 -> 0.21     | 0.56   0.23    | 0.45  | 0.70 -> 0.70 | 0.09
Mills-leaning astrobiologist (round-2 definition) 0.22   0.39 |   0.50 -> 0.39     | 0.43   0.19    | 0.42  | 0.60 -> 0.52 | 0.16
Mills-leaning, LUCA dating                        0.22   0.28 |   0.50 -> 0.28     | 0.50   0.22    | 0.52  | 0.60 -> 0.66 | 0.10
Page's Biology optimist                           0.06   0.14 |   0.19 -> 0.14     | 0.61   0.25    | 0.69  | 0.90 -> 0.86 | 0.04
Mills-leaning + expansion sceptic (classic SETI)  0.22   0.24 |   0.33 -> 0.24     | 0.68   0.07    | 0.55  | 0.60 -> 0.65 | 0.16
  ... + low footprint prior 0.15                  0.22   0.22 |   0.31 -> 0.22     | 0.63   0.13    | 0.56  | 0.60 -> 0.66 | 0.16
Biology optimist + expansion sceptic              0.06   0.08 |   0.10 -> 0.08     | 0.83   0.08    | 0.76  | 0.90 -> 0.91 | 0.04
Three-seed check: Mills-leaning 0.394 (sd 0.008); + sceptic 0.240 (0.004); Chemist + Mills 0.208; w_fast 0.9 only 0.428 (0.004).
Implied median P(technological civilisation | rocky habitable-zone planet): base 10^-11.9; Mills-leaning 10^-4.0; Biology optimist 10^-2.5.
B. The abiogenesis prior alone
prior                                               prior alone  alone  stuck  no other life in Galaxy  none in observable universe
Base (w_fast 0.2, slow tail 3 to 100 decades)       0.59         0.78   0.16   0.47                     0.26
w_fast 0.5                                          0.42         0.64   0.27   0.29                     0.16
w_fast 0.9                                          0.19         0.43-0.45  0.41  0.06                  0.03
Slow tail 3 to 22 decades, w_fast 0.28              0.43         0.65   0.26   0.16                     0.003
Slow tail 3 to 30 decades, w_fast 0.26              0.47         0.68   0.24   0.24                     0.04
Single log-uniform prior, floor 10^-3  (w 0.50)     0.19         0.45   0.41   0.00                     0.00
  floor 10^-10 (w 0.23)                             0.52         0.71   0.22   0.10                     0.00
  floor 10^-22 (w 0.12)                             0.75         0.88   0.09   0.63                     0.10
  floor 10^-30 (w 0.09)                             0.81         0.91   0.06   0.74                     0.36
  floor 10^-100 (w 0.03)                            0.94         0.98   0.02   0.93                     0.82
C. The early-life Bayes factor the model actually applies (fast : slow)
dating                              early only  early+late  P(fast) after timeline  by branch (early+late): gated / 1 / 2 / 3+ hard steps
Base tau 0.02-0.20                  2.43        2.23        0.36                    1.9 / 3.2 / 2.4 / 2.0
LUCA tau 0.03-0.06                  4.37        4.03        0.50                    3.3 / 6.4 / 4.7 / 3.7
Fossils only tau 0.16-0.20          1.81        1.63        0.29                    1.4 / 2.2 / 1.7 / 1.5
If the timeline were worth 6 / 9 / 13 to 1 (prior held at 0.20): alone 0.68 / 0.63 / 0.58; stuck 0.24 / 0.28 / 0.31.
D. Tail symmetry between the two ends of the chain
Base                                                         alone 0.79  stuck 0.16
Expansion prior as wide as abiogenesis (no atom, W 3-100)    alone 0.68  stuck 0.28
Atom 0.15 + W 1-100                                          alone 0.68  stuck 0.29
W 1-30                                                       alone 0.73  stuck 0.22
Abiogenesis as narrow as expansion (slow tail 1-8 decades)   alone 0.52  stuck 0.36
Base prior on expansion: P(p_exp > 0.1) 0.36, P(> 0.01) 0.59, median 0.03, mean 0.15.

E. Widened joint scan (80 draws x 30,000; w_fast uniform 0.05-0.95, P(no candidate steps) uniform 0.1-0.8, the rest as scan4.py) alone 5/50/95%: 0.35 / 0.59 / 0.80; alone above 0.5 in 74% of draws; stuck above alone in 12%. w_fast 0.05-0.35: median 0.70, majority alone 94%; 0.35-0.65: 0.60, 82%; 0.65-0.95: 0.47, 41%. Project scan as coded: w_fast 5/50/95% 0.056 / 0.172 / 0.53, maximum 0.597, 7.5% of draws above 0.5.

F. Forecasts under different priors (forecast probability of the result; alone after)
observation                                 base          Mills-leaning   + exp. sceptic  Biology optimist
No Earth-level technology, nearest 1e6 stars 1.00; 0.77   0.96; 0.41      0.95; 0.25      0.92; 0.16
No Earth-level technology, whole Galaxy      0.91; 0.85   0.58; 0.68      0.46; 0.53      0.32; 0.47
Second origin in the Solar System            0.31; 0.56   0.55; 0.12      0.66; 0.06      0.81; 0.06
Biosignature in 25 HWO planets               0.15; 0.59   0.38; 0.11      0.47; 0.06      0.71; 0.04

G. Pocket prior (base): eps log-uniform 1e-6..0.1 alone 0.774; 1e-3..1 0.770; 1e-2..1 0.768; uniform 0..1 0.758 (claimed-Galaxy class 0.040).

Advice

Three sentences experts will quote against the author, each with a rewording that stays plain and still leads with an answer.

  1. "Most likely there has never been anybody else in our Galaxy." Replacement lede: "Most likely no other civilisation has ever arisen in our Galaxy: about three chances in four if, like me, you start out doubting that life begins easily. If you start out believing it does, the same evidence points instead to civilisations that arise and never settle the Galaxy, a limit that would probably apply to us too."

  2. "In 47% of all cases the Galaxy holds no other life at all." Replacement: "On my priors there is a 47% chance that the Galaxy holds no other life at all. That figure is an assumption more than a finding: it was 34% before the evidence, it comes from allowing the origin of life to be as improbable as one in 10^100, and it falls to 16% if the range stops at one origin per observable universe."

  3. "Most of the effort in this field goes into the observation that would move it least." Replacement: "On my priors another radio search of the present kind has a 99.7% chance of finding nothing, and finding nothing would change little. On a biology optimist's priors the same model gives a search of the nearest million stars a 4 to 8% chance of success, and a search of the whole Galaxy between two chances in five and two in three. A detection would settle the question under any priors."

A fourth, for statisticians: "The silence here does nearly all the work" should become "The silence removes one answer and does not choose among the others."

Replacement first callout I would accept as fair while disagreeing with the base priors: "The result: the evidence rules out one answer, a Galaxy visibly settled, which held 35% of the probability beforehand. It does not choose among the rest. Among the answers that survive, the shares were 73%, 15% and 12% before the evidence and are 73%, 16% and 11% after: nobody else has ever arisen here; others arose and none settled the Galaxy to stay; someone did spread and is unnoticed, hiding or on the way. Those shares are my starting assumptions, chiefly a 20% chance that life starts easily. On a biology optimist's assumptions the first two swap, to 14% and 60%."

On the four questions I was asked: (a) The 20% prior is defensible and is not the pessimistic extreme; the problem is that it is unstated, that the result runs from 0.45 to 0.98 with the floor of the rate prior alone, and that the evidence leaves it exactly where it started. The price-tag paragraph is honest in intent but too low on the page, names one judgement where there are two, and illustrates "confident" with a 60% prior. (b) The local term does assume that a sustained expander fills the Galaxy and stays. That is numerically harmless (pockets cost under 2 points) but makes "never spread" the wrong name for a class that holds everything short of permanent Galaxy-wide settlement. (c) One sample cannot support the sharpness, and the model agrees: its posterior spans 57 powers of ten. The 78% is where the number one falls in the prior. (d) The Biology optimist is reported accurately in numbers and buried in framing: called an exception, described as "easy" when its median is one planet in 300, left without its published source (Mills and colleagues 2025), and kept out of the robustness scan.

What not to change: the radio-silence section, the admission that six of seven explanations fit equally well, the camp table as a device, and the playground. These are fair to my camp and should stay.