Workbench residuals (T-564) on the five monsters two or more letters from Auspex with every switch on, by Jordan's method. What-ifs in a scratch copy of tools/tierbench.js over the tracked raw table. A report: no published score changes.
In short. Baseline (every switch but bestSize): within one 34 of 44, same on our ruler 22, ρ 0.765. On Auspex's own letter shape: 38 within one, 26 the same, and all five monsters are within one letter. Most of their two-letter gap is our within-army quota (10% S) against Auspex's (30% S). The rest has one thread for three of the five. Under turnsHarmonic, the five-turn cap is the only limit on turns alive, and the Tyrannofex, Maleceptor and Norn Emissary (6.8 to 7.0 harmonic turns) hit it, so their extra toughness counts for nothing. Single change: anvil.tmax 6. Within one 35, ρ 0.781, shape 40, and every graded letter it moves goes toward Auspex. The Exocrine is the exception: Auspex sits above the lists there, and the change lowers it. Target weights and the per-point frame are not the thread. Three bugs are in section 6.
1. Yardsticks
"Shape": our 44 graded units ranked by tie key and cut at Auspex's counts (13 S, 7 A, 13 B, 4 C, 7 D). It tests order alone, with no quota in it.
| Run | Within one | Same, our ruler | Raw | Shape: within one / same | ρ | Tyranid list share ρ |
|---|---|---|---|---|---|---|
| No switches (round 10) | 31 | 19 | 14 | 33 / 23 | 0.515 | 0.465 |
bestSize alone | 29 | 21 | 10 | 33 / 23 | 0.511 | 0.449 |
Baseline: all but bestSize | 34 | 22 | 13 | 38 / 26 | 0.765 | 0.609 |
| All ten | 30 | 21 | 13 | 39 / 24 | 0.715 | 0.570 |
Why bestSize lowered agreement (31 → 29). It changes no single model's score. It lifts every multi-model squad at its largest size. Anvil is OC × turns alive ÷ points: doubling a squad keeps OC per point the same while its turns alive rise. Nine squads climb, among them Hive Guard 72.8 → 91.3, Zoanthropes 65.2 → 88.5, Venomthropes 66.4 → 86.9, both Warrior squads and Carnifexes. Within-army letters are positions, so nine single-model units drop a letter with unchanged scores: the Maleceptor, Norn Emissary, Old One Eye, Psychophage, Screamer-killer, Parasite, Ripper Swarms, Winged Hive Tyrant and Toxicrene. Within one gains Hive Guard and loses the Norn Emissary, Neurogaunts and the ranged Warriors: 31 + 1 − 3 = 29. On the shape it changes nothing (33 → 33). A quota effect, on top of a real bias: absolute survival favours the biggest squad.
The five at baseline:
| Unit | Pts | Auspex | Lists of 23 | Ours, within / shape | Rank of 52 | Composite |
|---|---|---|---|---|---|---|
| Norn Emissary | 250 | S | 8 | A / S | 13 | 94.5 |
| Maleceptor | 180 | S | 8 | B / A | 17 | 92.2 |
| Tyrannofex | 170 | S | 7 | B / A | 19 | 90.2 |
| Exocrine | 135 | A | 4 | C / B | 34 | 81.9 |
| Old One Eye | 140 | B | 4 | C / B | 37 | 79.5 |
Auspex's S units average 11.5 lists of 23, A 6.3, B 2.8: the three S monsters sit at the A–S border by list share. The Norn Emissary and Old One Eye are two letters off only with bestSize on. Old One Eye is no longer rated above Auspex (see 4).
2. The raw rows beside the peers
H / A / R / B: job percentiles. Damage: enemy points destroyed per 100 pts into GEQ / MEQ / TEQ / light / heavy vehicles. Hits to destroy: small arms / special / plasma / elite / anti-tank / mortal. T: the engine's turns alive (each class floored at 1 and capped at 5). Harm.: turnsHarmonic's turns (no per-class cap; only anvil.tmax caps it).
| Unit | Pts | Auspex (lists) | Ours | H / A / R / B | Damage per 100 | Hits to destroy | OC | T | Harm. |
|---|---|---|---|---|---|---|---|---|---|
| Tyrannofex | 170 | S (7) | B 90.2 | 88 / 87 / 15 / 0 | 237 / 217 / 197 / 403 / 403 | 576 / 288 / 48 / 72 / 15 / 8 | 6.8 | 4.71 | 6.83 |
| Norn Emissary | 250 | S (8) | A 94.5 | 64 / 95 / 11 / 2 | 194 / 162 / 182 / 219 / 152 | 576 / 288 / 48 / 36 / 15 / 16 | 5 (15 on its objective) | 4.83 | 7.01 |
| Maleceptor | 180 | S (8) | B 92.2 | 55 / 92 / 15 / 45 | 82 / 107 / 159 / 156 / 88 | 323 / 216 / 54 / 39 / 17 / 8 | 5.8 | 4.85 | 6.76 |
| Exocrine | 135 | A (4) | C 81.9 | 65 / 82 / 22 / 10 | 124 / 193 / 216 / 209 / 175 | 252 / 168 / 32 / 23 / 8 / 7 | 5.8 | 4.12 | 3.99 |
| Old One Eye | 140 | B (4) | C 79.5 | 71 / 80 / 22 / 79 | 80 / 92 / 99 / 246 / 237 | 558 / 140 / 48 / 33 / 11 / 8 | 4.8 | 4.48 | 5.37 |
| Haruspex | 125 | B (3) | C 85.1 | 63 / 85 / 26 / 4 | 113 / 133 / 130 / 220 / 171 | as the Exocrine | 5.8 | 4.12 | 3.99 |
| Trygon | 140 | B (6) | C 79.8 | 60 / 80 / 31 / 0 | 145 / 161 / 192 / 173 / 132 | as the Exocrine | 5.8 | 4.12 | 3.99 |
| Mawloc | 135 | B (2) | C 81.9 | 49 / 82 / 36 / 0 | 142 / 121 / 120 / 114 / 97 | as the Exocrine | 5.8 | 4.12 | 3.99 |
Contexts: Crusher Stampede on foot, except the Norn (Subterranean Assault, its objective), Trygon and Mawloc (deep strike), Old One Eye (inside Carnifexes).
Differences. The three S monsters have 1.7 times the T10 group's harmonic turns. Capped at 5, they keep only about a third of that margin in Anvil. The Exocrine has the T10 group's exact durability row and the group's best damage into TEQ and MEQ. Auspex grades it a letter above all three; its lists don't (4, against 6, 3 and 2).
3. The what-ifs (against the baseline)
Five: composite (with within / shape letters where they change) for Tyrannofex · Exocrine · Norn · Old One Eye · Maleceptor; baseline 90.2 · 81.9 · 94.5 · 79.5 · 92.2.
| # | What-if | Within one | Same | Raw | Shape | ρ | Five | Letters moved |
|---|---|---|---|---|---|---|---|---|
| C1a | Anvil ÷ points^0.8 | 35 | 22 | 14 | 40 / 26 | 0.792 | 90.7 · 80.7 · 95.6 · 79.7 · 93.8 (S shape) | 10: Hierophant D→C (D), Hormagaunts and Biovores S→A (S) … |
| C1c | Hammer and Anvil ÷ points^1.2 | 35 | 23 | 13 | 38 / 26 | 0.760 | 89.6 · 81.7 · 93.0 (B) · 80.5 · 90.5 | 8: both Norns A→B (S) … |
| C2a | Uniform target weights | 35 | 23 | 13 | 38 / 26 | 0.767 | 89.7 · 81.9 · 94.5 · 79.5 · 92.2 | 2 |
| C2c | Each army's target weights tilted by its own need | 34 | 22 | 13 | 41 / 27 | 0.771 | 93.2 (S shape) · 81.9 · 94.5 · 82.5 · 92.2 | 2 |
| C3a | anvil.tmax 6 | 35 | 23 | 15 | 40 / 26 | 0.781 | 92.6 · 78.8 · 95.8 · 80.0 · 93.9 (S shape) | 6: Hive Guard D→C (A), Pyrovores C→B (A), Tyrant Guard C→B (B), ranged Warriors B→C (C), Barbgaunts, Toxicrene |
| C3b | anvil.tmax 7 | 35 | 22 | 14 | 40 / 26 | 0.777 | 94.9 · 76.6 · 96.3 · 78.9 · 94.4 | 8: adds Hierophant D→C (D) |
| C3c | tmax 6, turnsHarmonic off | 35 | 23 | 13 | 38 / 26 | 0.757 | 90.2 · 78.8 · 93.6 (B) · 78.9 · 90.6 | 10 (the cap only bites with the harmonic mean) |
| C5 | Within-army quota at Auspex's shares | 39 | 25 | 25 | 38 / 26 | 0.765 | no score moves | 34 |
| T1 | Tyrannofex: one loadout, rupture cannon at its price, 190 | 34 | 22 | 13 | 38 / 26 | 0.759 | 87.8 | none |
| T2 | Tyrannofex as the lists take it: acid spray, 180 | 34 | 22 | 13 | 38 / 26 | 0.759 | 86.8 | none |
| T3 | Tyrannofex's once-a-battle damage cancel | 34 | 22 | 13 | 38 / 26 | 0.768 | 92.0 | none |
| T4 | Tyrannofex Hammer × 1.32 (what within-army A takes) | 34 | 22 | 13 | 39 / 27 | 0.773 | 97.0 (A/S) | Norn Emissary A→B |
| E1 | Exocrine Hammer × 1.5 | 34 | 22 | 13 | 38 / 26 | 0.771 | 85.1 (C) | none |
| E2 | Exocrine Anvil × 1.4 | 35 | 23 | 13 | 39 / 27 | 0.774 | 89.9 (B/A) | Zoanthropes B→C (S) |
| N1 | Norn Emissary at 200 pts | 34 | 22 | 13 | 38 / 26 | 0.765 | 95.8 | none |
| O1 | Old One Eye heals in both players' Command phases | 34 | 22 | 13 | 38 / 26 | 0.765 | 79.5 (no change) | none |
| O2 | bannerLendOnly off | 31 | 21 | 12 | 36 / 27 | 0.685 | 85.3 (B) | 9 |
| M2 | Maleceptor's aura on every attack into it | 34 | 22 | 13 | 39 / 27 | 0.768 | 92.7 (S shape) | none |
| – | C3a + T2 + T3 | 35 | 23 | 15 | 40 / 26 | 0.778 | 91.2 · as C3a | as C3a |
How the less obvious ones ran:
- C1: scales every row's Hammer or Anvil by (pts ÷ 100)^(1 − α), so the points divisor becomes pts^α.
- C2c: reweights each army's targets by the pool median ÷ that army's median, for every army in the pool. The Tyranids' own weights barely move (heavy vehicles 0.23 → 0.26).
- T1, T2: scale the damage row by that loadout's damage ÷ rankings.json's best per target, then re-price the unit.
- O1: re-ran the engine on a scratch copy with the heal doubled.
- M2: multiplies every class but mortal by 1.17.
4. Unit by unit
Tyrannofex (S; ours B, A on the shape).
- (a) Engine and data. The guns, T12, 2+, W16 and Damaged are modelled. The once-a-battle damage cancel isn't: T3 puts it at +1.8, or +3.6 with the cap at 6. BSData charges +20 for the rupture cannon and +10 for acid spray, but we score the rupture cannon at the bare 170. The damage row takes each target's best gun (bug 3). Both lists in lists.json take acid spray (180 pts).
- Target set. It kills vehicles: 403 per 100 pts, 4.5 times its peers. TEQ, light and heavy vehicles each weigh over 0.2, so the 0.75 peak gets full weight. Uniform weights move it 0.5 at most.
- (c) Hypotheses. (1) Consensus right, unmeasured: durability past the cap plus the cancel (C3a + T3: 93.9). (2) Scarcity: the army lacks anti-tank (C2c: 93.2), though the Tyranids' own tilt is small. (3) We overrate it: priced and played honestly it falls 2.4 to 3.4 (T1, T2). (4) Popularity: no (7 lists).
- (d) Verdict. Partly unmeasured (the cap, the cancel), partly flattered by the data. Change: C3a, plus the cancel and the price. Net 91.2: B within (−2), A on the shape (−1).
Exocrine (A; ours C, B on the shape).
- (a) Engine and data. Strength 9 per the errata, Heavy at its stationary best, T10, 3+, W14 and Damaged are modelled. Its mark (friends re-roll hit rolls of 1 against its target) is lent as a 12-pt aura, about its worth.
- Target set. Anti-elite: TEQ 216 and MEQ 193 per 100 pts, its peers' best. TEQ already carries the full peak, and no weight change moves it.
- (c) Hypotheses. (1) Consensus right, unmeasured: placing it at A on the shape takes Anvil × 1.4 (E2), and Hammer × 1.5 isn't enough (E1). No unmodelled rule is worth that. (2) Consensus ahead of the lists: 4 lists, against the Trygon's 6 and the Psychophage's 5, both B. (3) The cap thread lowers it (C3a −3.1), because its turns are under 5.
- (d) Verdict. Auspex is ahead of the evidence. Change: none; it stays C (B on the shape).
Norn Emissary (S; ours A, S on the shape).
- (a) Engine and data. Both branches of its start-of-battle pick are modelled: re-rolled hits and wounds into a chosen enemy, or OC 15 and Feel No Pain 5+ on a chosen objective. It takes the objective (Anvil 95). Feel No Pain 4+ against mortal wounds and Damaged are modelled too.
- Per-point frame at 250 pts. Runner's points gate leaves it 0.05 of its Runner, but Runner isn't its job. A softer divisor gives +1.1 (C1a), the same model at 200 pts +1.3 (N1), and a harsher divisor costs a letter (C1c). The frame doesn't hold it.
- (d) Verdict. Right already; the gap is the quota (C5 gives S). Change: none. C3a gives 95.8. Keep
bestSizeoff, which is what drops it to B.
Old One Eye (B; ours C, B on the shape).
- (a) Engine and data. Re-rolled hits for its Carnifexes, Feel No Pain 5+ and the D3 heal are all modelled. The datasheet heals in both players' Command phases; we count one. Doubling it changes nothing (O1), because the heal already outpaces typical fire (the closed form is saturated).
- Why we rated it higher before. The coverage re-run's heal (A → S), then Banner counting its own attacks (round 10's B, 85.8).
bannerLendOnlymoves those attacks into Hammer inside the Carnifexes. Undoing that (O2) gives 85.3, but costs three graded units their within-one. - (d) Verdict. Within one, and the same letter on the shape. Change: none. It falls to D only with
bestSize.
Maleceptor (S; ours B, A on the shape).
- (a) Engine and data. Its aura is modelled on half the attacks into it, and on its two most co-listed squads (
auraToNeighbours). The −1 to wound below half strength is partly modelled. Its psychic attacks skipping cover aren't (no terrain). - (c) Hypotheses. (1) The aura on every attack into it (M2): only +0.5, since its harmonic turns (6.76) are already past the cap. (2) Durability past the cap (C3a): 93.9, S on the shape. (3) The per-point frame (C1a): 93.8, but ten letters move. (4) List context: it's doubled in six of its eight lists (residuals 2).
- (d) Verdict. Consensus right for a quantity we cap away. Change: C3a.
5. The common thread, tested
| Thread | Test | Effect | Verdict |
|---|---|---|---|
| Per-point frame | C1a, C1c | Maleceptor +1.6, Norn +1.1; the Exocrine falls; 8 to 10 letters move, the 810-pt Hierophant up 14 | No |
| Target weights, 0.75 peak | C2a, C2c | ±0.5 on own weights; +3 only via other armies | No |
| The five-turn cap under the harmonic mean | C3a, C3b | Tyrannofex +2.4, Maleceptor +1.7, Norn +1.3; the T10 group −3 | Yes, for three of five |
| Within-army quota | Shape yardstick, C5 | All five within one on Auspex's shape | Yes for the residual letter (a yardstick, not a score) |
Round 10 set the cap at the game's length while every attacker class was also clamped at 5. turnsHarmonic dropped the per-class clamp, so the overall cap became the only limit, and it binds exactly on the toughest monsters. A reason outside the panel: turns are measured against about one shooter's fire, and a monster that outlasts five turns of it still costs the enemy a second unit's fire; a cap of 6 is 1.2 shooters.
The change: anvil.tmax 6 with turnsHarmonic.
- Within one 34 → 35, same 22 → 23, raw 13 → 15, shape 38 → 40 (same 26).
- ρ 0.765 → 0.781; Tyranid list share ρ 0.609 → 0.617.
- Other units that move most: the Hierophant +4.6 (stays D), the Broodlord and Genestealers −3.4, the Toxicrene −3.2, the Haruspex −3.1.
- It is a constant chosen with the panel in view, so it must hold on the Marine and Ork panels before it goes in.
6. Engine and data bugs
- The workbench commit's tools/tiertest.js lost round 10's code. T-564 (9f81b3aa81 and its two sibling commits) was built on T-562's file. It drops T-563's
V10C,fixL10and round 10's Anvil form, and--rawdumpstops on the missingfixL10. A three-way merge (T-562 as the base, T-563, T-564; three small conflicts, T-564's side kept) regenerates the raw table byte for byte. Not committed here. - Wargear costs are dropped (bsdata.js). The Tyrannofex's +20 and +10 options are scored at 170. Other units with paid options are likely affected the same way.
- Offense mixes loadouts by target; effects use the listed one. The Tyrannofex's damage row is the best of three guns per target, while detachment and aura ratios are worked out on the listed gun. Listing acid spray instead moves Hammer 376 → 487 on the same base damage.
- Minor. Old One Eye's heal counts one Command phase a round, not two (no effect today). The FRAME keyword from the Tyrannofex's errata is missing from units.json.