Tactical Reroll
⋯

Round 12: six compose-only experiments from the design review (2026-10-03)

From reports/tiers/2026-10-03-round12.md , rendered when the site is built.

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:

  1. 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.
  2. 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.
  3. α, 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.

PredictorHeld out (Space Marines, 76)Same army, new reviewer (Tyranids, 86)Unseen (162)Every fitting panel (206)
Entrants' list share0.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 better0.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 110.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]

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.

CandidateAgainstPooled lift, unseen: candidate / predecessorRise [95%]Panels more than one SE belowPasses
Entrants' list share (reference)frozen round 110.49 / 0.34+0.15 [−0.02, 0.31]noneyes
B0 (round 11 on the bench)frozen round 110.27 / 0.34−0.08 [−0.19, 0.04]Space Marines, Tista Minis −0.22; Space Marines, Auspex −0.14no
Round 12 candidatefrozen round 110.16 / 0.34−0.18 [−0.32, −0.03]Space Marines, Tista Minis −0.34; Space Marines, Auspex −0.27no
Runner: cheapness part droppedfrozen round 110.27 / 0.34−0.07 [−0.19, 0.05]Space Marines, Tista Minis −0.23; Space Marines, Auspex −0.15no
α 0.75 alonefrozen round 110.23 / 0.34−0.11 [−0.25, 0.03]Space Marines, Tista Minis −0.28; Space Marines, Auspex −0.29no
Candidate + composite "allowed"frozen round 110.17 / 0.34−0.17 [−0.32, −0.03]Space Marines, Tista Minis −0.33; Space Marines, Auspex −0.28no
Candidate + composite "log₂"frozen round 110.08 / 0.34−0.26 [−0.45, −0.07]all fiveno
Round 12 candidateB00.16 / 0.27−0.10 [−0.19, −0.03]Tyranids, Auspex −0.09no
Runner: cheapness part droppedB00.27 / 0.27+0.01 [−0.03, 0.04]noneyes, by a hair
α 0.75 aloneB00.23 / 0.27−0.04 [−0.11, 0.03]Space Marines, Auspex −0.15no
Candidate + composite "allowed"B00.17 / 0.27−0.10 [−0.19, −0.02]Tyranids, Auspex −0.08no
Candidate + composite "log₂"B00.08 / 0.27−0.19 [−0.33, −0.05]all three Tyranid panelsno

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 shareFrozen round 11B0Round 12 candidateRunner: 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), pooledPer army: median; outside ±0.15S ≤75 / 76–130 / 131–250 / >250 ptsS job mix (Hammer / Anvil / Runner / Banner)S share per army against top-quarter listsLetters moved from B0 (of 1,153)
Frozen round 11−0.41−0.43; 23 of 2954 of 383 / 32 of 410 / 5 of 238 / 0 of 122–+0.25–
B0−0.16−0.16; 20 of 2945 / 33 / 12 / 229 / 15 / 25 / 23+0.25–
Round 12 candidate (Runner: gate dropped)+0.10+0.19; 22 of 2931 / 34 / 19 / 834 / 15 / 23 / 20+0.27297
Runner: cheapness part dropped−0.10−0.05; 21 of 2941 / 34 / 14 / 330 / 17 / 26 / 19+0.20116
α 0.75 alone+0.01−0.06; 18 of 2937 / 31 / 17 / 728 / 16 / 23 / 25+0.23214
Candidate + composite "allowed"+0.10+0.19; 22 of 2930 / 34 / 19 / 935 / 14 / 23 / 20+0.26316
Candidate + composite "log₂"+0.22+0.26; 23 of 2933 / 40 / 16 / 327 / 56 / 0 / 9+0.20633

Per army, ρ(score, points), armies with 10 or more units:

Army (units)Frozen round 11B0Candidate
Adepta Sororitas (33)−0.070.140.20
Adeptus Custodes (31)−0.43−0.110.26
Adeptus Mechanicus (34)−0.41−0.19−0.10
Aeldari (75)−0.31−0.160.26
Agents of the Imperium (29)0.280.320.43
Astra Militarum (72)−0.200.150.23
Black Templars (19)−0.020.400.53
Blood Angels (16)−0.25−0.020.37
Chaos Daemons (77)−0.54−0.270.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.360.11
Death Guard (36)−0.80−0.75−0.41
Deathwatch (10)0.040.380.45
Drukhari (37)−0.60−0.55−0.33
Emperor's Children (23)−0.60−0.320.23
Genestealer Cults (90)−0.52−0.28−0.10
Grey Knights (26)−0.56−0.270.31
Imperial Knights (27)−0.48−0.45−0.33
Leagues of Votann (22)0.070.120.19
Necrons (52)−0.54−0.31−0.03
Orks (55)−0.14−0.020.13
Space Marines (84)−0.400.010.21
Space Wolves (21)0.050.520.66
T'au Empire (42)−0.43−0.110.24
Thousand Sons (35)−0.79−0.77−0.23
Tyranids (52)−0.38−0.070.02
Ultramarines (11)−0.33−0.020.16
World Eaters (30)−0.63−0.380.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.

RoundEntrants: pooled ρ (SE), unitsEntrants: per-army median (armies with 10+ lists)Top quarter: pooled ρ (SE), unitsTop quarter: per-army median (armies with 10+ lists)
V5 (composite)0.151 (0.029), 11510.196 (23)0.120 (0.029), 11390.214 (1)
Round 8 (letters only)0.141 (0.029), 11510.177 (23)0.121 (0.029), 11390.150 (1)
Round 9 (composite)0.073 (0.029), 11510.113 (23)0.046 (0.030), 11390.012 (1)
Round 10 (final score)0.144 (0.029), 11490.134 (23)0.110 (0.029), 11370.152 (1)
Round 11 (final score)0.149 (0.029), 11490.138 (23)0.132 (0.029), 11370.245 (1)
B0, round 11 on the bench0.111 (0.029), 11490.125 (23)0.103 (0.029), 11370.122 (1)
Round 12 candidate0.133 (0.029), 11490.184 (23)0.122 (0.029), 11370.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 byUnits mentioned (of 84)Entrants' list shareFrozen round 11B0CandidateCheapness droppedα 0.75+ "allowed"+ "log₂"
Tista Minis300.560.550.600.600.590.590.590.68
Auspex460.540.460.460.510.470.460.510.56
either610.570.450.510.590.530.520.590.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), pooledPer-army medianArmies outside ±0.15 (of 29)S ≤75 / 76–130 / 131–250 / >250S job mixα alone (today's Runner): pooled ρ
0.500.370.352414 / 21 / 30 / 2727 / 17 / 29 / 190.16
0.550.350.352316 / 22 / 28 / 2624 / 20 / 28 / 200.14
0.600.330.342418 / 22 / 28 / 2426 / 18 / 27 / 210.11
0.650.300.342420 / 23 / 27 / 2129 / 15 / 26 / 210.08
0.700.270.322422 / 24 / 26 / 2033 / 13 / 24 / 220.05
0.750.240.282224 / 24 / 25 / 1931 / 13 / 25 / 230.01
0.800.210.252424 / 26 / 26 / 1632 / 13 / 24 / 23−0.03
0.850.180.252424 / 29 / 26 / 1332 / 13 / 25 / 22−0.06
0.900.160.232426 / 30 / 26 / 1034 / 13 / 25 / 20−0.09
0.950.130.212427 / 33 / 22 / 1035 / 14 / 23 / 20−0.12
1.000.100.192231 / 34 / 19 / 834 / 15 / 23 / 20−0.16

Runner's points terms, at α = 1 and today's composite:

Runner's points termsρ(score, points), pooledPer-army medianOutside ±0.15S per bandS job mix
both (today)−0.16−0.162045 / 33 / 12 / 229 / 15 / 25 / 23
gate only (cheapness dropped)−0.10−0.052141 / 34 / 14 / 330 / 17 / 26 / 19
cheapness only (gate dropped; chosen)+0.10+0.192231 / 34 / 19 / 834 / 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:

CompositeBest-job flatness (entropy; 1 = even)Best job over every unit (H / A / R / B)Units with every allowed job at zeroS job mixS flatnessρ(score, points)
best (today; chosen)0.999286 / 270 / 293 / 304334 / 15 / 23 / 200.9680.10
allowed (percentile among the units allowed each job)0.997301 / 241 / 302 / 309335 / 14 / 23 / 200.9610.10
log₂ (value over the allowed pool's median, one scale)0.982403 / 262 / 258 / 23016727 / 56 / 0 / 90.6410.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

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):

ConstantKeyLetters movedOwner
Runner's points gate (75 and 260 pts)runner.gateFull, runner.gateZero191 + 172 = 363fitted, 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.half94 + 68 = 162fitted
Step bar, strong (80)steps.strong70 + 68 = 138Jordan's convention (steps, not slopes; his values)
Step bar, elite (90)steps.elite86 + 36 = 122Jordan's convention
Turns alive cap (5)anvil.tmax52 + 50 = 102Jordan's convention (decided 2 Oct)
A Lone Operative's survival (×2)runner.lone44 + 34 = 78sourced, once the matrix's reach rule (7.3) plays the rule; fitted until then
Target weights (10/6/38/22/23)target.w50 + 20 = 70sourced: retire with the matrix (the field)
Incoming fire weightsfire.w38 + 28 = 66sourced: retire with the matrix
Hammer's weight on the peak target (0.75)hammer.peak42 + 18 = 60fitted (Jordan's step g set the form)
Step, strong (+2)steps.strongStep32 + 26 = 58Jordan'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:

ConstantKeyLetters movedOwner
Letter cut S (95, round 9's cuts)V8C.S401Jordan's convention (frozen 2 Oct at 8/15/27/30/20%)
Runner's points gateV4C.GATE_FULL, V4C.GATE_ZERO399fitted or derived (above)
Letter cut A (88)V8C.A336Jordan's convention
Advance (3.5")V3C.ADV288sourced (the core rules: the average of a D6)
The objectives' distances (15", 21", 27")V6C.OBJ_*286sourced (the mission pack's layouts)
Letter cut B (80)V8C.B250Jordan's convention
Strategic Reserves' arrival distance (18")V3C.RES206sourced (the rules' arrival limits and the deployment maps)
Runner's half-weight partsV2C.RUNNER_HALF183fitted
Bonus bar, strong (80)V8C.STRONG155Jordan's convention
Bonus bar, elite (90)V8C.ELITE123Jordan'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

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.

UnitPtsAuspex2026-10-03-tyranids-hivemind2026-10-03-tyranids-secondOurs, within armyOurs, all armiesRank of 52Final scoreBest jobChange since last roundWhat moved
Termagants60BSA190.6AnvilS→S, 3→110 models (was 20); Runner 49 → 11
Hormagaunts70SABSA287.9AnvilS→S, 4→2Unending Swarm (was Subterranean Assault); 10 models (was 20); walk (was reserves); Runner 56 → 38
Deathleaper80ASBSA385.2RunnerS→S, 5→3Hammer 20 → 38
Lictor60ASSA484.7RunnerS→S, 1→4Subterranean Assault (was Synaptic Nexus); Hammer 10 → 33
▲ Gargoyles80BBSA584.3AnvilA→S, 6→5Synaptic Nexus (was Unending Swarm); 10 models (was 20); Runner 50 → 34
Neurogaunts45BCCAA684.0AnvilA→A, 8→611 models (was 22); Runner 61 → 15
Neurolictor80SSBAA778.8RunnerA→A, 9→7Hammer 9 → 28
▲ Norn Assimilator250SBSAA877.3AnvilB→A, 19→8Banner 56 → 19
▲ Norn Emissary250SBSAA977.2AnvilB→A, 18→9Runner 16 → 53
▲ The Swarmlord210SSAAB1077.0BannerB→A, 16→10Hammer 49 → 65
▼ Ripper Swarms30BCBAB1171.8BannerS→A, 2→11Runner 68 → 21
▲ Maleceptor180SAAB1270.5AnvilC→A, 40→12Banner 71 → 45
▲ Tyrannofex170SAAAB1363.6HammerC→A, 32→13Crusher Stampede (was Subterranean Assault); Anvil 68 → 87
▼ Hyperadapted Raveners165SABBB1461.2RunnerA→B, 10→14Synaptic Nexus (was Subterranean Assault); walk (was deep); Anvil 68 → 78
▼ Raveners125SBABB1561.2RunnerA→B, 11→15Hammer 58 → 72
▲ Tervigon160BCCBB1659.8AnvilC→B, 36→16Hammer 23 → 49
▲ Carnifexes90CCCBB1759.5HammerC→B, 35→171 model (was 2); Runner 0 → 40
Hive Tyrant195SASBB1858.5BannerB→B, 14→18Hammer 36 → 57
Neurotyrant130ABB1957.2BannerB→B, 22→19Hammer 19 → 44
Tyranid Warriors with Ranged Bio-Weapons60CCBBB2052.6AnvilB→B, 17→203 models (was 6); Runner 51 → 14
▲ Toxicrene120BB2151.4AnvilC→B, 39→21Crusher Stampede (was Subterranean Assault); walk (was reserves); Anvil 61 → 86
▲ Zoanthropes90SABBB2250.5HammerC→B, 28→223 models (was 6); Runner 0 → 61
▼ Pyrovores40ABC2349.3BannerA→B, 7→23Runner 57 → 8
▲ Haruspex125BBABC2449.0AnvilC→B, 29→24Crusher Stampede (was Assimilation Swarm); Banner 85 → 4
▲ Tyrant Guard80BBABC2547.6BannerC→B, 33→25with The Swarmlord (was Hive Tyrant); Runner 0 → 63
Psychophage110BBABC2647.5AnvilB→B, 15→26Crusher Stampede (was Assimilation Swarm); Banner 91 → 14
▼ Broodlord80AACC2745.2BannerB→C, 24→27Runner 83 → 45
▼ Winged Tyranid Prime65BBCC2844.0BannerB→C, 25→28Runner 85 → 46
Winged Hive Tyrant185ABBCC2943.8BannerC→C, 34→29Hammer 30 → 52
Screamer-killer125BBCCC3042.7HammerC→C, 41→30Runner 35 → 15
Exocrine135AAACC3141.7AnvilC→C, 42→31Banner 30 → 10
▲ Mawloc135BBCCC3241.6AnvilD→C, 43→32Hammer 26 → 49
▼ Von Ryan's Leapers55SBACC3339.6RunnerA→C, 12→333 models (was 6); Anvil 83 → 63
▲ Trygon140BCCC3437.5AnvilD→C, 44→34Hammer 41 → 60
Old One Eye140BBCC3537.4AnvilC→C, 37→35Runner 36 → 22
▼ Tyranid Warriors with Melee Bio-Weapons75BBACC3635.3AnvilB→C, 23→363 models (was 6); Runner 34 → 10
Genestealers75AACC3733.2AnvilC→C, 27→375 models (was 10); reserves (was walk); Runner 22 → 66
▼ Biovores60SSSCC3831.7RunnerA→C, 13→38Runner 94 → 76
▼ Venomthropes55BDBCC3931.7BannerB→C, 21→39Runner 67 → 25
Barbgaunts55CBCC4029.1AnvilC→C, 31→405 models (was 10); Runner 48 → 9
▼ Hive Guard80ABBCC4127.7HammerB→C, 26→413 models (was 6); reserves (was walk); Runner 42 → 26
▲ Hierophant810DCCC4220.2AnvilD→C, 45→42Runner 0 → 50
▼ Tyranid Prime with Lash Whip75CABDD4318.9BannerC→D, 38→43Runner 76 → 30
▼ Parasite of Mortrex70BBCDD4417.3RunnerB→D, 20→44Runner 88 → 63
▼ The Red Terror130AASDD4515.2RunnerC→D, 30→45Runner 85 → 61
Harridan610DCCDD4610.5HammerD→D, 47→46Runner 0 → 45
Hive Crone170DDD4710.3HammerD→D, 48→47Hammer 30 → 52
Harpy185DDD487.2HammerD→D, 49→48Hammer 22 → 46
Tyrannocyte80CDD494.0HammerD→D, 46→49Runner 68 → 39
Sporocyst145DDCDD503.4HammerD→D, 50→50Hammer 14 → 37
Mucolid Spores30DDDD510.0HammerD→D, 51→51Runner 69 → 22
Spore Mines55DDDDD520.0HammerD→D, 52→52Runner 64 → 14