T-581 (Jordan, 3 Oct, via the supervisor; the design review's "The next round", reports/tiers/2026-10-02-design-review.md). Command: node tools/round12.js --json reports/tiers/2026-10-03-round12.json --table reports/tiers/2026-10-03-tyranids-round12-table.md (about 7 s; fixed seeds, 2,000 bootstrap resamples and shuffles). Data: BSData 374f505 (30 Sep) and grimstat-corpus 570b8c6 (CC BY 4.0), before the 1 Oct dataslate; the raw table is reports/tiers/2026-10-02-tyranids-raw.json. No engine change, no matrix, no every-army run. A report: nothing on the site changes and nothing is adopted into the published scores.
In short. Nothing passes the gate. The setting chosen by the rules below (Runner's points gate dropped, its cheapness part kept; α and the composite unchanged) takes the cost lean from −0.16 to +0.10 pooled. But the per-army lean stays outside ±0.15 in 22 of 29 armies, and it costs agreement everywhere: unseen pooled ρ falls from 0.27 (B0) to 0.16. It also repeats round 3's mistake (Mortarion and Angron D → S as mission units). The other way round, keeping the gate and dropping the cheapness part, is the only change that doesn't lose agreement (+0.01 against B0, inside the noise), and it nearly halves the lean (−0.16 → −0.10). No variant beats frozen round 11 on the Space Marine panels, because the bench's own baseline already sits below round 11 there (see "The baseline"). The cost lean is real and measurable in compose. Most of it is the points gate and the cheapness part working together. α alone at 0.75 cancels it pooled, at a cost on Auspex's Marines. List share's order of rounds holds whether it counts entrants or the top quarter. No option premium shows. Four of the sweep's top ten constants are owned by nobody yet.
0. The choices, written before any panel number (choose, then check)
The supervisor's rule for this round: choose each setting on a criterion that reads no panel, write the reason first, and let the panels only check it. The code (tools/round12.js) makes the three choices before it scores a panel. They were made in this order:
- Runner's double count on points (the design review's critique 1: keep the gate or the cheapness part, not both). Chosen before the run, by reasoning: drop the gate (75 to 260 pts, the King of the Hill weight classes, unsourced: critique 8) and keep the cheapness part (units per 100 pts, a measured quantity). What I missed: the gate was added in round 4 to stop big models from scoring as mission units (decisions.md: "S or A Runners over 130 pts 27 → 0"; round 3 had Mortarion C → S on Runner survival). Dropping it repeats that, and this round shows it again (section 4). The decision log's rule, "nothing is tried twice without reading this file first", should have caught it. Recorded in decisions.md.
- The composite, by commensurability. The variant whose best job is spread most evenly over every fieldable unit wins (normalised entropy of the best-job counts). A tie within 0.01 goes to the one with the fewest units whose every allowed job sits at zero. If still tied, today's stays (no change without a reason). Scored at α = 1 with choice 1 on.
- α, the cost exponent on Hammer, Anvil and Banner (raw ÷ points^α). The α in 0.50 to 1.00 (steps of 0.05) where ρ(score, points) pooled over every unit is nearest zero, with choices 1 and 2 on.
Results of the choices: composite: "best", today's (entropy 0.999 against 0.997 for "allowed" and 0.982 for "log₂"; "best" and "allowed" tie at 3 units at zero, so today's stays). α: 1.00 (+0.10 pooled; every lower α leans further towards the dearer unit). The round-12 candidate is therefore one change: Runner's gate dropped. The alternatives the rules turned down are checked below beside it, for the record. None was chosen from a panel. Changes chosen with a panel in view: none.
The baseline: B0 is not frozen round 11
The bench's table holds every pool unit's context from round 10's run. Outside the Tyranids, B0 is therefore round 10's raw with round 11's compose switches (the seven the bench has: bannerLendOnly, bannerModelCount, turnsHarmonic, reArriveAfterKill, reArriverGateExempt, bestLeader, and auraToNeighbours standing in for lendOnBestSquads). It lacks round 11's engine fixes (the loadout fix behind Desolation Squad's 92.5 → 9.1, Stealth in survival) and takes minimum size (Jordan, 2 Oct), where round 11 took best legal size. So B0 sits below frozen round 11 on both Space Marine panels (−0.08 against 0.14, 0.27 against 0.41), and 22 Tyranid letters already differ before any round-12 change. Each change is therefore measured twice: against frozen round 11, the gate's predecessor, and against B0, the same table without the change, which isolates the change itself.
1. Held-out numbers first
Pooled Spearman ρ with a bootstrap 95% interval. Held out is the panels of armies no round was tuned on (the two Space Marine panels). Same army, new reviewer is the two Tyranid lists by creators we never tuned on (Jordan: two creators, both current). Those two sets together are unseen. "Every fitting panel" adds Auspex's Tyranids, which were tuned on.
| Predictor | Held out (Space Marines, 76) | Same army, new reviewer (Tyranids, 86) | Unseen (162) | Every fitting panel (206) |
|---|---|---|---|---|
| Entrants' list share | 0.23 [0.00, 0.43] | 0.72 [0.60, 0.81] | 0.49 [0.37, 0.59] | 0.56 [0.46, 0.65] |
| Points, cheaper better | 0.24 [−0.04, 0.46] | −0.18 [−0.41, 0.06] | 0.01 [−0.16, 0.19] | −0.01 [−0.17, 0.14] |
| Frozen round 11 | 0.30 [0.07, 0.50] | 0.38 [0.15, 0.56] | 0.34 [0.18, 0.48] | 0.41 [0.27, 0.53] |
| B0 (round 11 on the bench) | 0.13 [−0.11, 0.36] | 0.39 [0.16, 0.57] | 0.27 [0.11, 0.41] | 0.37 [0.24, 0.49] |
| Round 12 candidate (Runner: gate dropped) | 0.01 [−0.23, 0.23] | 0.30 [0.05, 0.52] | 0.16 [−0.00, 0.32] | 0.27 [0.13, 0.40] |
| Runner: cheapness part dropped (record) | 0.13 [−0.12, 0.35] | 0.40 [0.18, 0.58] | 0.27 [0.12, 0.41] | 0.38 [0.24, 0.49] |
| α 0.75 alone, today's Runner (record) | 0.02 [−0.21, 0.24] | 0.42 [0.20, 0.59] | 0.23 [0.08, 0.38] | 0.35 [0.22, 0.46] |
| Candidate + composite "allowed" (record) | 0.01 [−0.23, 0.23] | 0.31 [0.06, 0.53] | 0.17 [0.00, 0.33] | 0.28 [0.14, 0.40] |
| Candidate + composite "log₂" (record) | 0.04 [−0.18, 0.26] | 0.12 [−0.13, 0.35] | 0.08 [−0.09, 0.24] | 0.17 [0.03, 0.31] |
- Held out: every compose variant lands below frozen round 11 on the Space Marines, and so does B0 itself. That is the table's gap (above), not this round's changes. Against B0, keeping the gate and dropping the cheapness part holds the held-out 0.13. Dropping the gate or lowering α takes it to about zero.
- Same army, new reviewer: the two new Tyranid lists agree with each other at 0.57 on 43 shared units (0.54 on 40 once the three points-moved units are out), so a ρ above about 0.75 against either would be suspicious. None comes near: the highest is 0.46 (α 0.75 against the -hivemind file). On Auspex's tuned-on list B0 reaches 0.77 and two record variants 0.76 and 0.78. That is the tuning showing, not agreement.
2. The gate
Jordan's gate (3 Oct): lift over shuffle on every fitting panel, none worse than its frozen predecessor. The supervisor made it operational: the pooled lift over the shuffle on the unseen panels must rise above the predecessor's (shown with a paired bootstrap interval), and no fitting panel may fall more than one SE below it. tools/tierbaseline.js gates computes this.
| Candidate | Against | Pooled lift, unseen: candidate / predecessor | Rise [95%] | Panels more than one SE below | Passes |
|---|---|---|---|---|---|
| Entrants' list share (reference) | frozen round 11 | 0.49 / 0.34 | +0.15 [−0.02, 0.31] | none | yes |
| B0 (round 11 on the bench) | frozen round 11 | 0.27 / 0.34 | −0.08 [−0.19, 0.04] | Space Marines, Tista Minis −0.22; Space Marines, Auspex −0.14 | no |
| Round 12 candidate | frozen round 11 | 0.16 / 0.34 | −0.18 [−0.32, −0.03] | Space Marines, Tista Minis −0.34; Space Marines, Auspex −0.27 | no |
| Runner: cheapness part dropped | frozen round 11 | 0.27 / 0.34 | −0.07 [−0.19, 0.05] | Space Marines, Tista Minis −0.23; Space Marines, Auspex −0.15 | no |
| α 0.75 alone | frozen round 11 | 0.23 / 0.34 | −0.11 [−0.25, 0.03] | Space Marines, Tista Minis −0.28; Space Marines, Auspex −0.29 | no |
| Candidate + composite "allowed" | frozen round 11 | 0.17 / 0.34 | −0.17 [−0.32, −0.03] | Space Marines, Tista Minis −0.33; Space Marines, Auspex −0.28 | no |
| Candidate + composite "log₂" | frozen round 11 | 0.08 / 0.34 | −0.26 [−0.45, −0.07] | all five | no |
| Round 12 candidate | B0 | 0.16 / 0.27 | −0.10 [−0.19, −0.03] | Tyranids, Auspex −0.09 | no |
| Runner: cheapness part dropped | B0 | 0.27 / 0.27 | +0.01 [−0.03, 0.04] | none | yes, by a hair |
| α 0.75 alone | B0 | 0.23 / 0.27 | −0.04 [−0.11, 0.03] | Space Marines, Auspex −0.15 | no |
| Candidate + composite "allowed" | B0 | 0.17 / 0.27 | −0.10 [−0.19, −0.02] | Tyranids, Auspex −0.08 | no |
| Candidate + composite "log₂" | B0 | 0.08 / 0.27 | −0.19 [−0.33, −0.05] | all three Tyranid panels | no |
Which changes pass the gate: none against frozen round 11. Against B0 only "keep the gate, drop the cheapness part" passes, and its rise (+0.01) is inside its interval. So it is not adopted either.
3. Every panel, with lift over shuffle and SE
ρ ±SE (lift over that panel's shuffle). The Orks are a sanity list only (retired, T-580).
| Panel (class; units) | Entrants' list share | Frozen round 11 | B0 | Round 12 candidate | Runner: cheapness dropped | α 0.75 alone | + "allowed" | + "log₂" |
|---|---|---|---|---|---|---|---|---|
| Space Marines, Tista Minis (held out; 30) | 0.07 ±.19 (+0.07) | 0.14 ±.19 (+0.14) | −0.08 ±.19 (−0.08) | −0.20 ±.19 (−0.20) | −0.09 ±.19 (−0.09) | −0.14 ±.19 (−0.14) | −0.19 ±.19 (−0.19) | −0.26 ±.18 (−0.26) |
| Space Marines, Auspex (held out; 46) | 0.34 ±.14 (+0.34) | 0.41 ±.13 (+0.41) | 0.27 ±.14 (+0.27) | 0.14 ±.15 (+0.14) | 0.26 ±.14 (+0.26) | 0.12 ±.15 (+0.12) | 0.13 ±.15 (+0.13) | 0.23 ±.14 (+0.23) |
| Tyranids, -hivemind file (new reviewer; 45) | 0.81 ±.05 (+0.81) | 0.35 ±.14 (+0.35) | 0.42 ±.13 (+0.42) | 0.33 ±.14 (+0.33) | 0.42 ±.13 (+0.42) | 0.46 ±.12 (+0.46) | 0.34 ±.14 (+0.34) | 0.08 ±.15 (+0.08) |
| Tyranids, -second file (new reviewer; 41) | 0.62 ±.10 (+0.62) | 0.41 ±.14 (+0.41) | 0.35 ±.14 (+0.34) | 0.27 ±.15 (+0.27) | 0.39 ±.14 (+0.38) | 0.38 ±.14 (+0.38) | 0.28 ±.15 (+0.27) | 0.15 ±.16 (+0.15) |
| Tyranids, Auspex (tuned on; 44) | 0.81 ±.05 (+0.82) | 0.66 ±.09 (+0.67) | 0.77 ±.06 (+0.77) | 0.67 ±.09 (+0.68) | 0.76 ±.07 (+0.76) | 0.78 ±.06 (+0.78) | 0.68 ±.08 (+0.69) | 0.52 ±.11 (+0.53) |
| Orks, Sprues & Brews (sanity list; 45) | 0.30 ±.14 (+0.30) | −0.15 ±.15 (−0.15) | −0.16 ±.15 (−0.16) | −0.01 ±.15 (−0.01) | −0.16 ±.15 (−0.16) | −0.17 ±.15 (−0.17) | 0.00 ±.15 (+0.00) | −0.01 ±.15 (−0.01) |
Tyranid ceiling: three reviewers, pairwise 0.73, 0.67 and 0.54, so √0.65 ≈ 0.80. Space Marines √0.69 ≈ 0.83.
4. The per-change table and the standing lines
The candidate holds one live change, so "each fix alone" and "all but one" are the same row (the candidate, and B0). The alternatives the choices turned down are each shown alone instead.
| Version | ρ(score, points), pooled | Per army: median; outside ±0.15 | S ≤75 / 76–130 / 131–250 / >250 pts | S job mix (Hammer / Anvil / Runner / Banner) | S share per army against top-quarter lists | Letters moved from B0 (of 1,153) |
|---|---|---|---|---|---|---|
| Frozen round 11 | −0.41 | −0.43; 23 of 29 | 54 of 383 / 32 of 410 / 5 of 238 / 0 of 122 | – | +0.25 | – |
| B0 | −0.16 | −0.16; 20 of 29 | 45 / 33 / 12 / 2 | 29 / 15 / 25 / 23 | +0.25 | – |
| Round 12 candidate (Runner: gate dropped) | +0.10 | +0.19; 22 of 29 | 31 / 34 / 19 / 8 | 34 / 15 / 23 / 20 | +0.27 | 297 |
| Runner: cheapness part dropped | −0.10 | −0.05; 21 of 29 | 41 / 34 / 14 / 3 | 30 / 17 / 26 / 19 | +0.20 | 116 |
| α 0.75 alone | +0.01 | −0.06; 18 of 29 | 37 / 31 / 17 / 7 | 28 / 16 / 23 / 25 | +0.23 | 214 |
| Candidate + composite "allowed" | +0.10 | +0.19; 22 of 29 | 30 / 34 / 19 / 9 | 35 / 14 / 23 / 20 | +0.26 | 316 |
| Candidate + composite "log₂" | +0.22 | +0.26; 23 of 29 | 33 / 40 / 16 / 3 | 27 / 56 / 0 / 9 | +0.20 | 633 |
- The cost lean is measurable in compose, and most of it is the points terms. Frozen round 11 leans −0.41 (the review's −0.42, recomputed from its JSON). B0 leans −0.16. The rest of that gap is round 11's engine changes and best legal size, which the bench doesn't carry. Dropping either Runner points term, or setting α to 0.75, brings the pooled lean inside ±0.15. Within armies it stays outside ±0.15 in 18 to 22 of 29 armies whatever is changed, now sometimes the other way (Space Wolves +0.66, Black Templars +0.53 with the candidate). No single compose knob makes every army cost-neutral, which is the review's own fallback: the jobs disagree on cost, and the fitter should own α per job.
- S over 250 pts: 0 in frozen round 11, 2 in B0, 8 with the candidate. The candidate's top movers are exactly round 3's: Mortarion, Angron, Magnus and Fulgrim to S, a Thunderhawk and a Revenant Titan to A. All of them score as mission units once the gate is gone. Its bottom movers are cheap characters and transports (B → C).
- The S share per army against top-quarter lists is positive in every version here (+0.20 to +0.27). That differs from earlier rounds' negative sign: those counted S on the within-army view, this counts S on the all-armies cuts.
- The S job mix stays balanced in every percentile variant (Hammer 28 to 35 of 92). Only log₂ breaks it (Anvil 56, Runner 0).
Per army, ρ(score, points), armies with 10 or more units:
| Army (units) | Frozen round 11 | B0 | Candidate |
|---|---|---|---|
| Adepta Sororitas (33) | −0.07 | 0.14 | 0.20 |
| Adeptus Custodes (31) | −0.43 | −0.11 | 0.26 |
| Adeptus Mechanicus (34) | −0.41 | −0.19 | −0.10 |
| Aeldari (75) | −0.31 | −0.16 | 0.26 |
| Agents of the Imperium (29) | 0.28 | 0.32 | 0.43 |
| Astra Militarum (72) | −0.20 | 0.15 | 0.23 |
| Black Templars (19) | −0.02 | 0.40 | 0.53 |
| Blood Angels (16) | −0.25 | −0.02 | 0.37 |
| Chaos Daemons (77) | −0.54 | −0.27 | 0.19 |
| Chaos Knights (27) | −0.85 | −0.35 | −0.21 |
| Chaos Space Marines (58) | −0.54 | −0.27 | −0.07 |
| Dark Angels (16) | −0.66 | −0.36 | 0.11 |
| Death Guard (36) | −0.80 | −0.75 | −0.41 |
| Deathwatch (10) | 0.04 | 0.38 | 0.45 |
| Drukhari (37) | −0.60 | −0.55 | −0.33 |
| Emperor's Children (23) | −0.60 | −0.32 | 0.23 |
| Genestealer Cults (90) | −0.52 | −0.28 | −0.10 |
| Grey Knights (26) | −0.56 | −0.27 | 0.31 |
| Imperial Knights (27) | −0.48 | −0.45 | −0.33 |
| Leagues of Votann (22) | 0.07 | 0.12 | 0.19 |
| Necrons (52) | −0.54 | −0.31 | −0.03 |
| Orks (55) | −0.14 | −0.02 | 0.13 |
| Space Marines (84) | −0.40 | 0.01 | 0.21 |
| Space Wolves (21) | 0.05 | 0.52 | 0.66 |
| T'au Empire (42) | −0.43 | −0.11 | 0.24 |
| Thousand Sons (35) | −0.79 | −0.77 | −0.23 |
| Tyranids (52) | −0.38 | −0.07 | 0.02 |
| Ultramarines (11) | −0.33 | −0.02 | 0.16 |
| World Eaters (30) | −0.63 | −0.38 | 0.20 |
5. Experiment 1: list share, entrants and top quarter
Entrants' share is rankings.json mi, lists of any placing, July to September: what every round so far has called "list share". The top-quarter version uses metatrack.json's unit counts for the same three months (112 lists). A unit's denominator is the top-quarter lists of every army seen taking its army's datasheets, plus 3. Rounds V2b to 4 and 6 to 7 have no per-unit scores tracked, so their entrants' numbers stay as their reports gave them. Round 8 has letters only, so ties weaken it.
| Round | Entrants: pooled ρ (SE), units | Entrants: per-army median (armies with 10+ lists) | Top quarter: pooled ρ (SE), units | Top quarter: per-army median (armies with 10+ lists) |
|---|---|---|---|---|
| V5 (composite) | 0.151 (0.029), 1151 | 0.196 (23) | 0.120 (0.029), 1139 | 0.214 (1) |
| Round 8 (letters only) | 0.141 (0.029), 1151 | 0.177 (23) | 0.121 (0.029), 1139 | 0.150 (1) |
| Round 9 (composite) | 0.073 (0.029), 1151 | 0.113 (23) | 0.046 (0.030), 1139 | 0.012 (1) |
| Round 10 (final score) | 0.144 (0.029), 1149 | 0.134 (23) | 0.110 (0.029), 1137 | 0.152 (1) |
| Round 11 (final score) | 0.149 (0.029), 1149 | 0.138 (23) | 0.132 (0.029), 1137 | 0.245 (1) |
| B0, round 11 on the bench | 0.111 (0.029), 1149 | 0.125 (23) | 0.103 (0.029), 1137 | 0.122 (1) |
| Round 12 candidate | 0.133 (0.029), 1149 | 0.184 (23) | 0.122 (0.029), 1137 | 0.160 (1) |
Done-line. Order of rounds by entrants: V5, 11, 10, 8, 12-candidate, B0, 9. By the top quarter: 11, 12-candidate, 8, V5, 10, B0, 9. Every swap is between rounds within one SE (0.03) of each other, and round 9 is last both ways. So no switch was kept on the wrong signal that this data can see. With only 112 top-quarter lists, one army (Necrons) has 10 or more, so the per-army median is not usable for the top quarter. The pooled ρ with its SE is the only top-quarter number that can separate rounds, and it separates none but round 9.
6. Experiment 2: the yardstick table
Lift over shuffle per panel is section 3, and the gate is section 2. The Orks are a sanity list. The 38-of-44 line is a bench sanity number. The Space Marines as mentioned-against-not (AUC over all 84 generic Space Marine units: does the score rank a unit the reviewer names above one they leave out? 0.5 is chance):
| Mentioned by | Units mentioned (of 84) | Entrants' list share | Frozen round 11 | B0 | Candidate | Cheapness dropped | α 0.75 | + "allowed" | + "log₂" |
|---|---|---|---|---|---|---|---|---|---|
| Tista Minis | 30 | 0.56 | 0.55 | 0.60 | 0.60 | 0.59 | 0.59 | 0.59 | 0.68 |
| Auspex | 46 | 0.54 | 0.46 | 0.46 | 0.51 | 0.47 | 0.46 | 0.51 | 0.56 |
| either | 61 | 0.57 | 0.45 | 0.51 | 0.59 | 0.53 | 0.52 | 0.59 | 0.68 |
Being mentioned is barely predicted by anything (0.45 to 0.60). log₂ does best here (0.68), the variant that does worst on the graded units. Neither reviewer's omissions are a strong signal.
7. Experiment 3: the cost exponent α
With Runner's gate dropped (choice 1) and today's composite (choice 2):
| α | ρ(score, points), pooled | Per-army median | Armies outside ±0.15 (of 29) | S ≤75 / 76–130 / 131–250 / >250 | S job mix | α alone (today's Runner): pooled ρ |
|---|---|---|---|---|---|---|
| 0.50 | 0.37 | 0.35 | 24 | 14 / 21 / 30 / 27 | 27 / 17 / 29 / 19 | 0.16 |
| 0.55 | 0.35 | 0.35 | 23 | 16 / 22 / 28 / 26 | 24 / 20 / 28 / 20 | 0.14 |
| 0.60 | 0.33 | 0.34 | 24 | 18 / 22 / 28 / 24 | 26 / 18 / 27 / 21 | 0.11 |
| 0.65 | 0.30 | 0.34 | 24 | 20 / 23 / 27 / 21 | 29 / 15 / 26 / 21 | 0.08 |
| 0.70 | 0.27 | 0.32 | 24 | 22 / 24 / 26 / 20 | 33 / 13 / 24 / 22 | 0.05 |
| 0.75 | 0.24 | 0.28 | 22 | 24 / 24 / 25 / 19 | 31 / 13 / 25 / 23 | 0.01 |
| 0.80 | 0.21 | 0.25 | 24 | 24 / 26 / 26 / 16 | 32 / 13 / 24 / 23 | −0.03 |
| 0.85 | 0.18 | 0.25 | 24 | 24 / 29 / 26 / 13 | 32 / 13 / 25 / 22 | −0.06 |
| 0.90 | 0.16 | 0.23 | 24 | 26 / 30 / 26 / 10 | 34 / 13 / 25 / 20 | −0.09 |
| 0.95 | 0.13 | 0.21 | 24 | 27 / 33 / 22 / 10 | 35 / 14 / 23 / 20 | −0.12 |
| 1.00 | 0.10 | 0.19 | 22 | 31 / 34 / 19 / 8 | 34 / 15 / 23 / 20 | −0.16 |
Runner's points terms, at α = 1 and today's composite:
| Runner's points terms | ρ(score, points), pooled | Per-army median | Outside ±0.15 | S per band | S job mix |
|---|---|---|---|---|---|
| both (today) | −0.16 | −0.16 | 20 | 45 / 33 / 12 / 2 | 29 / 15 / 25 / 23 |
| gate only (cheapness dropped) | −0.10 | −0.05 | 21 | 41 / 34 / 14 / 3 | 30 / 17 / 26 / 19 |
| cheapness only (gate dropped; chosen) | +0.10 | +0.19 | 22 | 31 / 34 / 19 / 8 | 34 / 15 / 23 / 20 |
The gate is the larger term. Once it is gone, any α below 1 leans further towards the dearer unit, so the rule picked α = 1. With today's Runner, α ≈ 0.75 is cost-neutral pooled (0.01). No α brings the per-army lean inside ±0.15 for most armies. The review's acceptance test (pooled and every army within ±0.15, panels holding within one SE) is met by no α, so by its own fallback the fitter should own α per job.
8. Experiment 4: the three composites
At α = 1 with Runner's gate dropped:
| Composite | Best-job flatness (entropy; 1 = even) | Best job over every unit (H / A / R / B) | Units with every allowed job at zero | S job mix | S flatness | ρ(score, points) |
|---|---|---|---|---|---|---|
| best (today; chosen) | 0.999 | 286 / 270 / 293 / 304 | 3 | 34 / 15 / 23 / 20 | 0.968 | 0.10 |
| allowed (percentile among the units allowed each job) | 0.997 | 301 / 241 / 302 / 309 | 3 | 35 / 14 / 23 / 20 | 0.961 | 0.10 |
| log₂ (value over the allowed pool's median, one scale) | 0.982 | 403 / 262 / 258 / 230 | 167 | 27 / 56 / 0 / 9 | 0.641 | 0.22 |
The review expected Hammer units back among the Tyranid S and A. On the bench, today's composite already gives Hammer the largest S share (34 of 92). "allowed" barely differs from today (316 letters move, mostly small). log₂ piles S onto Anvil and leaves Runner none, because Runner's raw is already a mean of percentiles and its spread is narrow. The order statistic the review describes is real in principle. On this table it doesn't skew the best-job mix, and the two re-scalings don't help the panels (section 3).
9. Experiment 5: the option premium
- Regression. Final score (B0, every fieldable unit, 1,153) on log(contexts), with each unit's Hammer and Anvil percentiles as controls. Contexts are counted as (the army's detachments + 1) × ways in for other armies, which is the table's only proxy, and every row for the Tyranids. Median 28. The coefficient is +0.33 final-score points per log-context, 95% interval [−1.26, +1.94] (2,000 bootstrap resamples). No option premium is detectable with this proxy. The proxy is coarse: the table holds one context per unit outside the Tyranids, so it can't see loadouts or leaders.
- One detachment. The Tyranids with their most-listed top-quarter detachment fixed (Subterranean Assault, 3 of 9 top-quarter Tyranid lists, July to September). The mean final score falls 49.7 → 44.0, 9 within-army letters move, and the all-armies S count is unchanged (1). The best-of-detachments premium for the Tyranids is about 6 percentile points. On the panels (checked, not chosen from): the -hivemind file 0.42 → 0.52, the -second file 0.35 → 0.38, Auspex 0.77 → 0.79.
- Lends on the median reachable squad can't be run on this table: it stores each lend's worth on the two best squads, not on every squad. That waits for the matrix's raw table.
10. Experiment 6: the sweep's top ten, each with an owner
Round 11's engine constants can't be swept without an every-army run, which this round does not do. So there are two lists: the compose constants swept on round 11's table (×0.5 and ×1.5, or the range shown), and round 9's tracked engine sweep (reports/tiers/2026-10-02-tyranids-round9.json). Letters moved are all-armies letters, low run plus high run.
Compose constants, on round 11's table (of 1,153 units):
| Constant | Key | Letters moved | Owner |
|---|---|---|---|
| Runner's points gate (75 and 260 pts) | runner.gateFull, runner.gateZero | 191 + 172 = 363 | fitted, or derived from the corpus (the points of units that do actions in winning lists); never King of the Hill's classes again |
| Runner's half-weight parts (0.5) | runner.half | 94 + 68 = 162 | fitted |
| Step bar, strong (80) | steps.strong | 70 + 68 = 138 | Jordan's convention (steps, not slopes; his values) |
| Step bar, elite (90) | steps.elite | 86 + 36 = 122 | Jordan's convention |
| Turns alive cap (5) | anvil.tmax | 52 + 50 = 102 | Jordan's convention (decided 2 Oct) |
| A Lone Operative's survival (×2) | runner.lone | 44 + 34 = 78 | sourced, once the matrix's reach rule (7.3) plays the rule; fitted until then |
| Target weights (10/6/38/22/23) | target.w | 50 + 20 = 70 | sourced: retire with the matrix (the field) |
| Incoming fire weights | fire.w | 38 + 28 = 66 | sourced: retire with the matrix |
| Hammer's weight on the peak target (0.75) | hammer.peak | 42 + 18 = 60 | fitted (Jordan's step g set the form) |
| Step, strong (+2) | steps.strongStep | 32 + 26 = 58 | Jordan's convention |
Below the ten: letter cut S 46 (Jordan's convention, frozen), step elite +5 24, a CP's worth 10 (Jordan, priced later by T-558), a spawn's Runner share 4.
Engine constants, round 9's sweep:
| Constant | Key | Letters moved | Owner |
|---|---|---|---|
| Letter cut S (95, round 9's cuts) | V8C.S | 401 | Jordan's convention (frozen 2 Oct at 8/15/27/30/20%) |
| Runner's points gate | V4C.GATE_FULL, V4C.GATE_ZERO | 399 | fitted or derived (above) |
| Letter cut A (88) | V8C.A | 336 | Jordan's convention |
| Advance (3.5") | V3C.ADV | 288 | sourced (the core rules: the average of a D6) |
| The objectives' distances (15", 21", 27") | V6C.OBJ_* | 286 | sourced (the mission pack's layouts) |
| Letter cut B (80) | V8C.B | 250 | Jordan's convention |
| Strategic Reserves' arrival distance (18") | V3C.RES | 206 | sourced (the rules' arrival limits and the deployment maps) |
| Runner's half-weight parts | V2C.RUNNER_HALF | 183 | fitted |
| Bonus bar, strong (80) | V8C.STRONG | 155 | Jordan's convention |
| Bonus bar, elite (90) | V8C.ELITE | 123 | Jordan's convention |
Done-line. Every one of the top ten has an owner and none stays "builder". Four are owned by nobody today: the gate and the half weight (to fit or derive), and Advance, objectives and reserves, which are sourced but not yet read from the source. Those are the cards to write.
11. What this round says
- Nothing is adopted. No variant passes the gate against frozen round 11. Against B0, only "keep the gate, drop the cheapness part" holds, by +0.01.
- The cost lean is a compose problem, and it is measurable now. Runner's two points terms carry most of the bench's −0.16. Either term, or α 0.75, takes the pooled lean inside ±0.15. None takes the per-army lean there. The matrix will not touch these terms (critique 1 stands).
- The choice rule caught nothing wrong, but the choice itself repeated round 3. The gate exists because big models scored as mission units, and dropping it brings them back. Next time the Runner variant goes through decisions.md first. The honest carry-forward is "gate kept, cheapness part dropped", measured as one change against the matrix's first compose. It cuts the lean nearly in half and moves 116 letters with no loss of agreement.
- For the matrix's first comparison (T-568, T-569 step 5): measure it against B0 with the cheapness part dropped, and report the standing lines above beside it.
12. The Tyranid table (fixed layout; also reports/tiers/2026-10-03-tyranids-round12-table.md)
Made by tools/tyrtable.js, the same layout every round. "Ours" is the round-12 candidate. "Change since last round" is against frozen round 11, so it mixes this round's change with the gap between the bench and round 11. Of the 29 letters moved, 22 already differ in B0, and the candidate moves 16 against B0.
The Tyranid table, round 12 (round 12 candidate: Runner's points gate dropped) against frozen round 11
Nothing is adopted this round: the candidate fails the gate. It is shown anyway, labelled, so the layout carries on; the published scores and frozen round 11 are unchanged.
Our ρ against each reviewer: Auspex (tuned on): ρ 0.67 (SE 0.10), lift +0.68, 44 units; 2026-10-03-tyranids-hivemind: ρ 0.33 (SE 0.14), lift +0.33, 45 units; 2026-10-03-tyranids-second: ρ 0.27 (SE 0.15), lift +0.27, 41 units. Reviewer pairs: 2026-10-03-tyranids-hivemind × 2026-10-03-tyranids-second 0.54 (√ 0.74); 2026-10-03-tyranids-hivemind × tyranids-auspex 0.73 (√ 0.86); 2026-10-03-tyranids-second × tyranids-auspex 0.67 (√ 0.82); the army's ceiling √ of the mean pairwise ρ, 0.80. Letters moved within the army since the previous round: 29 of 52.
| Unit | Pts | Auspex | 2026-10-03-tyranids-hivemind | 2026-10-03-tyranids-second | Ours, within army | Ours, all armies | Rank of 52 | Final score | Best job | Change since last round | What moved |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Termagants | 60 | B | S | A | 1 | 90.6 | Anvil | S→S, 3→1 | 10 models (was 20); Runner 49 → 11 | ||
| Hormagaunts | 70 | S | A | B | S | A | 2 | 87.9 | Anvil | S→S, 4→2 | Unending Swarm (was Subterranean Assault); 10 models (was 20); walk (was reserves); Runner 56 → 38 |
| Deathleaper | 80 | A | S | B | S | A | 3 | 85.2 | Runner | S→S, 5→3 | Hammer 20 → 38 |
| Lictor | 60 | A | S | S | A | 4 | 84.7 | Runner | S→S, 1→4 | Subterranean Assault (was Synaptic Nexus); Hammer 10 → 33 | |
| ▲ Gargoyles | 80 | B | B | S | A | 5 | 84.3 | Anvil | A→S, 6→5 | Synaptic Nexus (was Unending Swarm); 10 models (was 20); Runner 50 → 34 | |
| Neurogaunts | 45 | B | C | C | A | A | 6 | 84.0 | Anvil | A→A, 8→6 | 11 models (was 22); Runner 61 → 15 |
| Neurolictor | 80 | S | S | B | A | A | 7 | 78.8 | Runner | A→A, 9→7 | Hammer 9 → 28 |
| ▲ Norn Assimilator | 250 | S | B | S | A | A | 8 | 77.3 | Anvil | B→A, 19→8 | Banner 56 → 19 |
| ▲ Norn Emissary | 250 | S | B | S | A | A | 9 | 77.2 | Anvil | B→A, 18→9 | Runner 16 → 53 |
| ▲ The Swarmlord | 210 | S | S | A | A | B | 10 | 77.0 | Banner | B→A, 16→10 | Hammer 49 → 65 |
| ▼ Ripper Swarms | 30 | B | C | B | A | B | 11 | 71.8 | Banner | S→A, 2→11 | Runner 68 → 21 |
| ▲ Maleceptor | 180 | S | A | A | B | 12 | 70.5 | Anvil | C→A, 40→12 | Banner 71 → 45 | |
| ▲ Tyrannofex | 170 | S | A | A | A | B | 13 | 63.6 | Hammer | C→A, 32→13 | Crusher Stampede (was Subterranean Assault); Anvil 68 → 87 |
| ▼ Hyperadapted Raveners | 165 | S | A | B | B | B | 14 | 61.2 | Runner | A→B, 10→14 | Synaptic Nexus (was Subterranean Assault); walk (was deep); Anvil 68 → 78 |
| ▼ Raveners | 125 | S | B | A | B | B | 15 | 61.2 | Runner | A→B, 11→15 | Hammer 58 → 72 |
| ▲ Tervigon | 160 | B | C | C | B | B | 16 | 59.8 | Anvil | C→B, 36→16 | Hammer 23 → 49 |
| ▲ Carnifexes | 90 | C | C | C | B | B | 17 | 59.5 | Hammer | C→B, 35→17 | 1 model (was 2); Runner 0 → 40 |
| Hive Tyrant | 195 | S | A | S | B | B | 18 | 58.5 | Banner | B→B, 14→18 | Hammer 36 → 57 |
| Neurotyrant | 130 | A | B | B | 19 | 57.2 | Banner | B→B, 22→19 | Hammer 19 → 44 | ||
| Tyranid Warriors with Ranged Bio-Weapons | 60 | C | C | B | B | B | 20 | 52.6 | Anvil | B→B, 17→20 | 3 models (was 6); Runner 51 → 14 |
| ▲ Toxicrene | 120 | B | B | 21 | 51.4 | Anvil | C→B, 39→21 | Crusher Stampede (was Subterranean Assault); walk (was reserves); Anvil 61 → 86 | |||
| ▲ Zoanthropes | 90 | S | A | B | B | B | 22 | 50.5 | Hammer | C→B, 28→22 | 3 models (was 6); Runner 0 → 61 |
| ▼ Pyrovores | 40 | A | B | C | 23 | 49.3 | Banner | A→B, 7→23 | Runner 57 → 8 | ||
| ▲ Haruspex | 125 | B | B | A | B | C | 24 | 49.0 | Anvil | C→B, 29→24 | Crusher Stampede (was Assimilation Swarm); Banner 85 → 4 |
| ▲ Tyrant Guard | 80 | B | B | A | B | C | 25 | 47.6 | Banner | C→B, 33→25 | with The Swarmlord (was Hive Tyrant); Runner 0 → 63 |
| Psychophage | 110 | B | B | A | B | C | 26 | 47.5 | Anvil | B→B, 15→26 | Crusher Stampede (was Assimilation Swarm); Banner 91 → 14 |
| ▼ Broodlord | 80 | A | A | C | C | 27 | 45.2 | Banner | B→C, 24→27 | Runner 83 → 45 | |
| ▼ Winged Tyranid Prime | 65 | B | B | C | C | 28 | 44.0 | Banner | B→C, 25→28 | Runner 85 → 46 | |
| Winged Hive Tyrant | 185 | A | B | B | C | C | 29 | 43.8 | Banner | C→C, 34→29 | Hammer 30 → 52 |
| Screamer-killer | 125 | B | B | C | C | C | 30 | 42.7 | Hammer | C→C, 41→30 | Runner 35 → 15 |
| Exocrine | 135 | A | A | A | C | C | 31 | 41.7 | Anvil | C→C, 42→31 | Banner 30 → 10 |
| ▲ Mawloc | 135 | B | B | C | C | C | 32 | 41.6 | Anvil | D→C, 43→32 | Hammer 26 → 49 |
| ▼ Von Ryan's Leapers | 55 | S | B | A | C | C | 33 | 39.6 | Runner | A→C, 12→33 | 3 models (was 6); Anvil 83 → 63 |
| ▲ Trygon | 140 | B | C | C | C | 34 | 37.5 | Anvil | D→C, 44→34 | Hammer 41 → 60 | |
| Old One Eye | 140 | B | B | C | C | 35 | 37.4 | Anvil | C→C, 37→35 | Runner 36 → 22 | |
| ▼ Tyranid Warriors with Melee Bio-Weapons | 75 | B | B | A | C | C | 36 | 35.3 | Anvil | B→C, 23→36 | 3 models (was 6); Runner 34 → 10 |
| Genestealers | 75 | A | A | C | C | 37 | 33.2 | Anvil | C→C, 27→37 | 5 models (was 10); reserves (was walk); Runner 22 → 66 | |
| ▼ Biovores | 60 | S | S | S | C | C | 38 | 31.7 | Runner | A→C, 13→38 | Runner 94 → 76 |
| ▼ Venomthropes | 55 | B | D | B | C | C | 39 | 31.7 | Banner | B→C, 21→39 | Runner 67 → 25 |
| Barbgaunts | 55 | C | B | C | C | 40 | 29.1 | Anvil | C→C, 31→40 | 5 models (was 10); Runner 48 → 9 | |
| ▼ Hive Guard | 80 | A | B | B | C | C | 41 | 27.7 | Hammer | B→C, 26→41 | 3 models (was 6); reserves (was walk); Runner 42 → 26 |
| ▲ Hierophant | 810 | D | C | C | C | 42 | 20.2 | Anvil | D→C, 45→42 | Runner 0 → 50 | |
| ▼ Tyranid Prime with Lash Whip | 75 | C | A | B | D | D | 43 | 18.9 | Banner | C→D, 38→43 | Runner 76 → 30 |
| ▼ Parasite of Mortrex | 70 | B | B | C | D | D | 44 | 17.3 | Runner | B→D, 20→44 | Runner 88 → 63 |
| ▼ The Red Terror | 130 | A | A | S | D | D | 45 | 15.2 | Runner | C→D, 30→45 | Runner 85 → 61 |
| Harridan | 610 | D | C | C | D | D | 46 | 10.5 | Hammer | D→D, 47→46 | Runner 0 → 45 |
| Hive Crone | 170 | D | D | D | 47 | 10.3 | Hammer | D→D, 48→47 | Hammer 30 → 52 | ||
| Harpy | 185 | D | D | D | 48 | 7.2 | Hammer | D→D, 49→48 | Hammer 22 → 46 | ||
| Tyrannocyte | 80 | C | D | D | 49 | 4.0 | Hammer | D→D, 46→49 | Runner 68 → 39 | ||
| Sporocyst | 145 | D | D | C | D | D | 50 | 3.4 | Hammer | D→D, 50→50 | Hammer 14 → 37 |
| Mucolid Spores | 30 | D | D | D | D | 51 | 0.0 | Hammer | D→D, 51→51 | Runner 69 → 22 | |
| Spore Mines | 55 | D | D | D | D | D | 52 | 0.0 | Hammer | D→D, 52→52 | Runner 64 → 14 |