Tactical Reroll
⋯

Tyranids, round 9: Anvil divides by points once, a survival gate, three panels (2026-10-02)

From reports/tiers/2026-10-02-tyranids-round9.md , rendered when the site is built.

T-562 (Jordan, 2 Oct, via the design session). Round 8's run (step grading, fixed cuts, CP worth 30) with Anvil changed: one division by points instead of two, and an absolute survival gate. Switch r9 over r8 (tools/tiertest.js, round 8's command plus --r9json <file>, and --sweep for the one-at-a-time sensitivity sweep); round 8's columns come from the same run, and round 8's JSON reproduces byte for byte. Answers points 4, 5 and 9 of the independent critique (reports/tiers/2026-10-02-brief-critique.md). A report: nothing here changes a published score or page.

1. Three panels (from round 9 on, every report leads with these)

ρ: Spearman's rank correlation between our score and the panel's letters (SE: Bonett and Wright's). Strict: the same letter as the panel re-cut on our ruler (within-army view; round 7 had one view); raw: the panel's own letters, all-armies view; within one: raw letters, all-armies view. Shuffle baselines in brackets (2,000 permutations). The Space Marine and Ork panels have never been used to tune anything.

YardstickRound 7Round 8Round 9
Tyranids (Auspex, 44): ρ (SE)0.50 (±0.12)0.47 (±0.13)0.49 (±0.13)
Space Marines (Tista Minis, 30): ρ (SE)−0.05 (±0.19)−0.18 (±0.19)−0.10 (±0.19)
Orks (Sprues & Brews, 45): ρ (SE)−0.13 (±0.15)−0.12 (±0.15)−0.12 (±0.15)
Tyranids: strict on our ruler / raw / within one–20 (10.6) / 19 (8.7) / 31 (21.0)19 (10.7) / 18 (8.4) / 31 (21.1)
Space Marines: strict on our ruler / raw / within one–8 (7.1) / 8 (6.8) / 18 (19.2)8 (7.6) / 7 (6.3) / 20 (18.2)
Orks: strict on our ruler / raw / within one–10 (10.2) / 10 (10.7) / 30 (29.0)10 (10.6) / 13 (12.0) / 30 (30.3)
Tyranid list share: ρ0.390.410.45
Every unit's list share: ρ0.1640.1620.077

Reading it. Round 9 moves the Tyranid ρ 0.47 → 0.49 and the Space Marine ρ −0.18 → −0.10, while Orks stay at −0.12; every change is inside one SE. The two clean panels are still at or below zero. Every unit's list share falls 0.162 → 0.077: the cheap bodies that winning lists take a lot of (and that round 8 put at Anvil 99 to 100) lose their automatic place at the top.

2. The Tyranid table, all 44 units Auspex grades

Sorted by Auspex's tier, then name. Round 8 and Round 9 (current cuts): all-armies letters on the fixed cuts (S ≥ 95, A ≥ 88, B ≥ 80, C ≥ 65). Proposed cuts: section 6 (S ≥ 98.79, A ≥ 94.49, B ≥ 86.13, C ≥ 71.15). Within army: round 9's scores ranked inside the Tyranids (top 10% S, 15% A, 25% B, 30% C, rest D). Score and the four job percentiles are round 9's, each unit at its best detachment. Lists: Tyranid winning lists (of 23) taking it. What moved: round 8 → round 9 at the current cuts, as the sum that makes the score, with Anvil's percentile before → after.

UnitPtsAuspexRound 8Round 9 (current cuts)Round 9 (proposed cuts)Within armyScoreHammerAnvilRunnerBannerListsWhat moved
Biovores60SAABB92.5132893022 of 23
Hive Tyrant195SAABB90.7507113916 of 23
Hormagaunts70SSABB92.7259371013 of 23Anvil 93 alone = 92.7: A ≥ 88; Anvil 99 → 93
Hyperadapted Raveners165SDDDC63.46344244911 of 23
Maleceptor180SCBCB85.2558515268 of 23Anvil 85 alone = 85.2: B ≥ 80; Anvil 78 → 85
Neurolictor80SSSAA97.22828973117 of 23
Norn Assimilator250SSSSS99.96610011115 of 23
Norn Emissary250SSSSS99.9651001118 of 23
Raveners125SDDDD55.0445055012 of 23
The Swarmlord210SSSAA96.35868129613 of 23
Tyrannofex170SASAS97.889961607 of 23Anvil 96 +2 (Hammer 89) = 97.8: S ≥ 95; Anvil 92 → 96
Von Ryan's Leapers55SAABA94.0374494012 of 23
Zoanthropes90SCCDC65.66643501416 of 23
Deathleaper80ASSAS97.938309867 of 23
Exocrine135ACCCC78.165782364 of 23
Hive Guard80ACCCC73.674545801 of 23
Neurotyrant130ABBBB86.53553208617 of 23
Pyrovores40ADDDC61.7133141624 of 23
The Red Terror130ADDDD56.1455650010 of 23
Winged Hive Tyrant185ADCDC65.4536516531 of 23Anvil 65 alone = 65.4: C ≥ 65; Anvil 35 → 65
Haruspex125BBBCC80.563802733 of 23
Mawloc135BCCCC78.149783702 of 23
Neurogaunts45BSABB89.424895002 of 23Anvil 89 alone = 89.4: A ≥ 88; Anvil 99 → 89
Old One Eye140BBBBB87.9678423864 of 23
Parasite of Mortrex70BBBCB86.018218661 of 23
Psychophage110BBCCC76.350766485 of 23Anvil 76 alone = 76.3: C ≥ 65; Anvil 83 → 76
Ripper Swarms30BBBCB82.58055831 of 23
Screamer-killer125BBBCB83.0835725113 of 23
Tervigon160BASAA96.0499618480 of 23Anvil 96 alone = 96.0: S ≥ 95; Anvil 94 → 96
Trygon140BCCCC77.360773206 of 23
Tyranid Warriors with Melee Bio-Weapons75BCCCC76.738774364 of 23
Tyrant Guard80BCCCC76.139764904 of 23
Venomthropes55BBDDC61.9215462441 of 23Runner 62 alone = 61.9: D below 65; Anvil 83 → 54
Carnifexes90CACCC77.958784304 of 23Anvil 78 alone = 77.9: C ≥ 65; Anvil 89 → 78
Tyranid Prime with Lash Whip75CSSAA97.42220649711 of 23
Tyranid Warriors with Ranged Bio-Weapons60CACCC79.339794961 of 23Anvil 79 alone = 79.3: C ≥ 65; Anvil 91 → 79
Tyrannocyte80CDDDD40.6414668210 of 23
Harpy185DDDDD46.44601300 of 23
Harridan610DDDDD52.8530000 of 23
Hierophant810DDABA93.548930270 of 23Anvil 93 alone = 93.5: A ≥ 88; Anvil 36 → 93
Hive Crone170DDDDD51.95201500 of 23
Mucolid Spores30DDDDD0.0005600 of 23
Spore Mines55DDDDD0.0004900 of 23
Sporocyst145DDDDD37.43701700 of 23

The 8 Tyranids Auspex doesn't grade:

UnitPtsRound 8Round 9 (current cuts)Round 9 (proposed cuts)Within armyScoreHammerAnvilRunnerBannerListsWhat moved
Barbgaunts55BDDD48.439484200 of 23Anvil 48 alone = 48.4: D below 65; Anvil 85 → 48
Broodlord80BBCB82.3262474829 of 23
Gargoyles80SABB91.923908003 of 23Anvil 90 +2 (Runner 80) = 91.9: A ≥ 88; Anvil 97 → 90
Genestealers75CCCC72.7384573011 of 23
Lictor60SSAS97.73428986411 of 23
Termagants60SSAA95.649964404 of 23
Toxicrene120BBCB81.8608230410 of 23
Winged Tyranid Prime65SSAA96.5161874962 of 23

13 of 52 Tyranid letters move round 8 → round 9 at the current cuts; the proposed cuts move 25 more against round 9's current letters.

3. Anvil, before and after

Round 8: Defense per 100 pts × OC per 100 pts × Battle-shock × revives × position, i.e. hits to destroy × OC ÷ points², so halving a unit's cost quadruples its Anvil. Round 9: hits to destroy × OC ÷ points (Defense per 100 pts × the unit's OC), one division, × the same Battle-shock, revive and position factors, × the survival gate: the turns the unit lives under a typical enemy turn of fire (Hammer's own model, turns alive Tu: absolute hits to destroy against half the median unit's, the six attacker classes weighted by the meta's incoming fire), removed in one turn × V9C.GATE1 = 0.5, in two × V9C.GATE2 = 0.8, three or more × 1. OC 0 still scores 0.

Why not the geometric mean. The critique offered √(Defense per 100 pts × OC per 100 pts). That is √(hits × OC) ÷ points, the square root of round 8's product, and a percentile only reads the order, so it ranks every unit exactly as round 8 did (only the other factors' leverage changes). The single-division product is the one that changes anything, and it is one line in the code (hold9 in raw5).

UnitPtsOCAnvil raw, round 8Anvil pct, round 8Turns alive (Tu)GateAnvil raw, round 9Anvil pct, round 9Letter 8 → 9
Neurogaunts4511693.4992.271312.089S → A
Termagants6020699.71002.091419.896S → S
Hormagaunts7020542.6992.091379.893S → A
Gargoyles8020407.9972.091326.390S → A
Norn Emissary250584.8968.551212.0100S → S
Norn Assimilator250582.3968.111205.7100S → S
Tyrannofex1705250.8928.781426.396A → S

Raw numbers are each unit's at its best detachment and way in, so they include detachment OC (Crusher Stampede's +2 for the Tyrannofex) and position. The gate: over all 1161 units, 693 live three turns or more (×1), 224 two (×0.8), 244 one (×0.5); Tyranids 35, 12 and 5. A minimum-size horde of ten lives just over two of these turns (Termagants 2.09), so the gate doesn't bite the gaunts; what moves them is the single division. Bodies still score well (Termagants are S on Anvil 100 in round 8 and 96 now), but Neurogaunts fall 99 → 89 and the big, hard units rise (the Norns 96 → 100, the Tyrannofex 92 → 96). A unit's minimum size now matters: the measure grows with the models in it (twice the bodies, twice the hits and twice the OC for twice the points), so large minimum units gain.

4. Sensitivity: each hand-set constant, one at a time

Round 9 with one constant changed at a time, everything else as round 9. Letters: units of all 1161 whose all-armies letter (current cuts) differs from round 9's, low / high (Tyranids among them in brackets). ρ: the Tyranid ρ with Auspex at low / high (round 9: 0.494). Values: ×0.5 and ×1.5 unless the range says otherwise. The cuts only re-letter round 9's scores. Sorted by letters moved, both runs together. Restoring every constant gives round 9 back (0 letters differ).

ConstantIn the codeRound 9Low / highLetters moved, low / high (Tyranids)Tyranid ρ, low / highRange
Letter cut S (95)V8C.S9590 / 100401: 198 (6) / 203 (11)0.494 / 0.494±5 points (re-letters round 9's scores)
Runner's points gate (75 and 260 pts together)V4C.GATE_FULL, V4C.GATE_ZERO75, 26037.5, 130 / 112.5, 390399: 219 (8) / 180 (4)0.477 / 0.494×0.5 and ×1.5
Letter cut A (88)V8C.A8883 / 93336: 154 (4) / 182 (5)0.494 / 0.494±5 points
Advance (3.5")V3C.ADV3.51.75 / 5.25288: 120 (5) / 168 (5)0.490 / 0.499×0.5 and ×1.5
The objectives' distances (15", 21", 27" together)V6C.OBJ_MID, V6C.OBJ_FAR, V6C.OBJ_DEEP15, 21, 277.5, 10.5, 13.5 / 22.5, 30, 30286: 178 (5) / 108 (4)0.464 / 0.489×0.5 and ×1.5, at most the enemy's line (30")
Letter cut B (80)V8C.B8075 / 85250: 109 (8) / 141 (5)0.494 / 0.494±5 points
Strategic Reserves' arrival distance (18")V3C.RES189 / 27206: 163 (5) / 43 (0)0.517 / 0.494×0.5 and ×1.5
Runner's half-weight parts (0.5)V2C.RUNNER_HALF0.50.25 / 0.75183: 89 (2) / 94 (5)0.482 / 0.483×0.5 and ×1.5
Bonus bar, strong (80)V8C.STRONG8070 / 90155: 90 (3) / 65 (1)0.501 / 0.489±10 points
Bonus bar, elite (90)V8C.ELITE9080 / 100123: 80 (2) / 43 (0)0.493 / 0.494±10 points (×0.5 falls under the strong bar, ×1.5 passes 100)
Scouts' move (6")V3C.SCOUT63 / 9118: 67 (1) / 51 (0)0.493 / 0.497×0.5 and ×1.5
Deep Strike's arrival distance (9")V3C.DS94.5 / 13.5110: 46 (1) / 64 (3)0.494 / 0.502×0.5 and ×1.5
Letter cut C (65)V8C.C6560 / 7099: 42 (3) / 57 (2)0.494 / 0.494±5 points
Hammer's weight on the peak target (0.75)V9C.PEAK0.750.375 / 192: 58 (1) / 34 (0)0.493 / 0.494×0.5, and 1 (×1.5 would pass 1)
A Lone Operative's survival (×2)V2C.LONE21 / 384: 43 (4) / 41 (1)0.485 / 0.493×0.5 and ×1.5
Overwatch: turns a gun fires at a charger (1/3)V3C.OW_TURNS0.3330.167 / 0.583: 41 (0) / 42 (0)0.496 / 0.494×0.5 and ×1.5
The enemy's advance a turn (3")V3C.ENEMY31.5 / 4.574: 38 (0) / 36 (1)0.496 / 0.493×0.5 and ×1.5
Bonus step, strong (+2)V8C.STRONG_STEP21 / 350: 27 (0) / 23 (1)0.489 / 0.496×0.5 and ×1.5
Bonus step, elite (+5)V8C.ELITE_STEP52.5 / 7.546: 37 (0) / 9 (0)0.494 / 0.494×0.5 and ×1.5
Charge reach for the no-Advance rule (12")V4C.CHARGE_REACH126 / 1844: 37 (0) / 7 (0)0.494 / 0.494×0.5 and ×1.5
Anvil's position floorV6C.POS_FLOOR0.50.25 / 0.7543: 20 (0) / 23 (2)0.495 / 0.491×0.5 and ×1.5
Anvil gate, removed in two turns (0.8)V9C.GATE20.80.4 / 128: 15 (2) / 13 (3)0.530 / 0.490×0.5, and 1 (×1.5 would pass 1)
A lone character's turns alive (×0.5)V4C.SOLO0.50.25 / 0.7524: 9 (0) / 15 (0)0.494 / 0.496×0.5 and ×1.5
Below half strength: share of attacks and rules that need it (0.35)V3C.BELOW0.350.175 / 0.52521: 6 (0) / 15 (0)0.494 / 0.499×0.5 and ×1.5
Infiltrators' start (12" from the enemy)V3C.INFIL126 / 1818: 1 (0) / 17 (0)0.494 / 0.496×0.5 and ×1.5
Squads an aura or heal reaches (2)V2C.AURA_UNITS21 / 312: 7 (2) / 5 (1)0.484 / 0.510×0.5 and ×1.5
The revive lift (×1.15)V9C.REVIVE1.151.075 / 1.2258: 3 (1) / 5 (0)0.494 / 0.499the lift ×0.5 and ×1.5 (1.075, 1.225)
Tunnels' arrival distance (7")V5C.TUNNEL73.5 / 10.57: 2 (2) / 5 (2)0.493 / 0.479×0.5 and ×1.5
Feed the Swarm's cap (1 squad)V7C.REGEN_UNITS10.5 / 1.56: 1 (1) / 5 (2)0.508 / 0.495×0.5 and ×1.5
A CP's worth in pointsV6C.CP_PTS3015 / 453: 2 (2) / 1 (1)0.481 / 0.502×0.5 and ×1.5
A spawned unit's Runner share (0.5)V5C.SPAWN0.50.25 / 0.752: 1 (1) / 1 (1)0.467 / 0.506×0.5 and ×1.5
The enemy debuffs' share (attacks from near it)V5C.NEAR0.50.25 / 0.750: 0 (0) / 0 (0)0.488 / 0.499×0.5 and ×1.5
Synapse coverage (share of a game in range)V5C.SYN0.750.375 / 10: 0 (0) / 0 (0)0.496 / 0.491×0.5, and 1 (×1.5 would pass 1)
Battle-shock's worth (share of the median unit a unit-round)V5C.SHOCK0.10.05 / 0.150: 0 (0) / 0 (0)0.494 / 0.494×0.5 and ×1.5
Anvil gate, removed in one turn (0.5)V9C.GATE10.50.25 / 0.750: 0 (0) / 0 (0)0.494 / 0.494×0.5 and ×1.5
Transport bundle: the cargo's closest set-down (3")V9C.SETDOWN31.5 / 4.50: 0 (0) / 0 (0)0.494 / 0.494×0.5 and ×1.5
The Psychological Saboteur's doubling (×2)V5C.SAB21 / 30: 0 (0) / 0 (0)0.494 / 0.494×0.5 and ×1.5
Enemy units on the table for an army-wide test (10)V5C.ENEMY_UNITS105 / 150: 0 (0) / 0 (0)0.494 / 0.494×0.5 and ×1.5
A mark's share of friends' attacks (0.5)V5C.MARK0.50.25 / 0.750: 0 (0) / 0 (0)0.494 / 0.494×0.5 and ×1.5

Not swept: V3C.ROUNDS (five battle rounds is the game), V3C.GAP (the table), V5C.MW_D and V4C.HV_W (read once when the pool is built, before any round runs), and the transport constants the round-9 path doesn't read (V2C.RIDE_COST, V3C.SHIELD, V3C.CAP_PER: V2c's transport credit is worked out before round 5 and kept). V4's delivery profile (which feeds the debuffs' rounds in range) is also V4's, not re-run per value. The data-file shares (Crusher Stampede's 0.9, the condition shares in detCtx other than Synapse and below-half) are in the effects files, not constants.

The five constants that move most (the letter cuts aside: they are the ruler, section 6): Runner's points gate (75 and 260 pts together) (399); Advance (3.5") (288); The objectives' distances (15", 21", 27" together) (286); Strategic Reserves' arrival distance (18") (206); Runner's half-weight parts (0.5) (183). Most of the leverage sits in geometry and Runner (the points gate, how far a unit moves, where the objectives are), not in the worths we argued over: a CP's worth, Battle-shock's, the debuff share and Synapse coverage move 3 letters or none. Those are read only for the Tyranids (tierfx.json), so they can move at most 52 units, and they move scores without crossing a cut (the Tyranid ρ still moves: CP 15 gives 0.481). The one-turn gate moves nothing because the units it catches (Tu ≤ 1: lone characters, spores) have OC 0 or 1 and never hold as their best job; the two-turn gate at 0.4 lifts the Tyranid ρ to 0.530 (it lowers Warriors and the infiltrators' Anvil) and is the only constant here worth a look on that score, inside one SE. No Tyranid ρ in the sweep leaves 0.464 to 0.530.

5. Every version against all three panels

Every version rerun from today's code and data in one run (none had to be taken from its report). ρ (SE) for each panel, and every unit's ρ with its list share (units in 5 or more winning lists of their army). The reruns match the reports' Tyranid ρ for every round; V2b to V4 read today's rankings (T-546's Toughness), so their reports' numbers can differ in the second decimal.

VersionTyranids (Auspex)Space Marines (Tista Minis)Orks (Sprues & Brews)Every unit: list share
V2b0.07 (±0.16)−0.24 (±0.18)0.06 (±0.15)0.088
V30.21 (±0.15)−0.18 (±0.19)0.18 (±0.15)0.164
V40.19 (±0.15)0.03 (±0.19)−0.19 (±0.15)0.104
Round 5 (V5)0.38 (±0.14)−0.01 (±0.19)−0.12 (±0.15)0.128
Every army (T-552)0.37 (±0.14)−0.06 (±0.19)−0.14 (±0.15)0.155
Round 6 (CP 0)0.34 (±0.14)−0.03 (±0.19)−0.16 (±0.15)0.169
Round 6b (CP 30)0.39 (±0.14)−0.03 (±0.19)−0.16 (±0.15)0.171
Round 70.50 (±0.12)−0.05 (±0.19)−0.13 (±0.15)0.164
Round 80.47 (±0.13)−0.18 (±0.19)−0.12 (±0.15)0.162
Round 90.49 (±0.13)−0.10 (±0.19)−0.12 (±0.15)0.077

Three panels' ρ, V2b to round 9

What it shows. From V2b to round 9 the Tyranid ρ climbs 0.07 → 0.49; Space Marines go −0.24 → −0.10 and Orks 0.06 → −0.12. The critique's prediction (the tuned panel climbs, the clean ones stay flat or fall) holds: the climb is on the panel we steered by. Round 9 is the first change since round 7 that lifts a clean panel, and only within one SE.

6. Cut calibration (a proposal for Jordan; the default is unchanged)

Round 8's fixed cuts (S ≥ 95, A ≥ 88, B ≥ 80, C ≥ 65) give, under round 9's scores: S 247, A 268, B 243, C 248, D 155. A best-of-four percentile score puts many units at 95 or more, so S is about a fifth of the field. Proposed (set once and freeze as absolutes): the scores that give S 8%, A 15%, B 27%, C 30%, D 20% of all 1161 units under round 9: S ≥ 98.79, A ≥ 94.49, B ≥ 86.13, C ≥ 71.15, D below; they give S 93, A 173, B 315, C 347, D 233. After freezing, a later round that lifts every score would show as more S, not be re-cut away. The Tyranid table (section 2) shows both.

Against the panels (all-armies letters, proposed cuts): Tyranids strict on our ruler 21, raw 13 (chance 7.4), within one 28 (chance 21.0); Space Marines raw 10, within one 22; Orks raw 10, within one 27. On the current cuts: Tyranids raw 18, within one 31.

S per army. ρ between an army's S share and its top-quarter lists (June to September, data/metatrack.json; the 29 armies with 10 or more units): round 8 −0.37 (round 8's report: −0.37), round 9 on the current cuts −0.39, on the proposed cuts −0.24. Negative means the armies we hand the most S to are the ones that place least.

ArmyUnitsS, round 8S, round 9 (current)S shareS, round 9 (proposed)S share (proposed)Top-quarter lists
Adeptus Titanicus404100%125%0
Titanicus Traitoris404100%125%0
Imperial Fists32267%133%2
Deathwatch105550%440%0
Salamanders21150%00%3
White Scars21150%150%0
Black Templars199947%211%1
Chaos Knights2751244%14%1
Space Marines84353542%1417%1
Space Wolves218838%419%4
Astra Militarum72152129%710%4
Genestealer Cults90212528%1112%2
Blood Angels164425%213%3
Adepta Sororitas339824%412%6
Leagues of Votann227523%314%5
Orks55111222%59%6
Tyranids52121121%24%8
Death Guard368719%26%7
Dark Angels164319%213%2
T'au Empire439819%37%12
World Eaters307517%310%5
Chaos Space Marines5811916%610%6
Necrons5210815%00%15
Grey Knights264415%00%3
Aeldari76131114%45%6
Agents of the Imperium299414%13%1
Drukhari375514%00%1
Adeptus Custodes314413%26%11
Adeptus Mechanicus345412%39%9
Ultramarines11119%19%4
Emperor's Children23229%14%9
Imperial Knights27327%14%1
Thousand Sons35226%13%6
Chaos Daemons77411%00%5
Iron Hands2000%00%0
Raven Guard2000%00%1