6 Oct 2026, Pacific. Jordan, 6 Oct: "go ahead with all of those, in the most sensible order". The two bugs are T-737's (reports/tiers/2026-10-06-death-guard-checks.md). The new frozen snapshot is code b3c416933e with the data kept as at eb3590a, BSData 374f505 (pre-dataslate), inputs hash 1b88e955b9b3; the old one, 8dcd24032d / dcd477d8a78c, stays reproducible through tools/ledger-inputs.lock-8dcd24032d.json. The scores come from tools/recipestep.js (its protocol, as in T-739) and the consensus score of tools/cascade2.js. The scratch numbers are in build/recipe/ (git-ignored). The live site's rankings don't read the ledger and are untouched.
In plain English
- Two bugs fixed, nothing else moved. Three of the 27 frozen inputs changed: unitfx.json, docs/bsdata.js and build/units.json.
--driftbefore and after confirms it. Every ledger in all 16 armies was rebuilt. - Fix 1: units that bring dead models back no longer get the healing bonus. Rules such as Poxwalkers' Curse of the Walking Pox, the Genestealer Cults' Cult Icon, the Medi-packs and the Narthecium were counted as heals. That multiplied the unit's whole Value by ×1.805. They are now their own kind, "returns slain models", with no multiplier unless one is set. The Spawn line already measured two of them (the Tervigon's and the Apothecary's), and those stay as they were.
- 18 units in 10 armies fall, some a long way: Poxwalkers 2nd → 17th of 36, Neophyte Hybrids 9th → 22nd of 90, the Ravenwing Command Squad 3rd → 26th of 93, Slaughterbound 4th → 19th of 30.
- Fix 2: no more illegal wargear. A Helbrute can no longer carry a hammer and a power scourge together. Thunderkyn must all take the same gun, and so must a few other squads.
- The surprise: the legal kits score higher than the illegal ones. Auto-equip picks its squad on the rankings' five stand-in targets, not on the ledger's Value. Thunderkyn (all conversion beamers) go from 1,124 to 1,517 (5th → 4th); the Helbrute (fist, heavy flamer and hammer) from 1,058 to 1,081 (11th → 9th).
- The scores. Track A's pooled exam goes from 59.3 to 59.7, and its consensus score from 60.0 to 60.2.
- Up: Agents of the Imperium +7.1, Drukhari +2.9, Astra Militarum +2.2, Death Guard +1.5.
- Down: Genestealer Cults −6.3 (reviewers grade Neophytes S/A and both Acolyte squads A, and these units fell) and World Eaters −3.2 (Slaughterbound, graded A, fell).
- Tyranids unchanged, to the bit.
- Track A2 still passes its rule, and is now the benchmark. Held out on the 15 exam armies it gains +1.1 points [−0.3, +2.7] over Track A, with 12 of 15 armies not falling (was +1.2 [−0.4, +2.6], 11 of 15).
- Gemini at half weight +1.0. Shuffled letters −0.4 to +0.2.
- Exam 59.7 → 60.8; Tyranids 81.6 → 82.6 on the three lists, 89.5 → 90.4 on consensus.
1. What changed, input by input
| Input | Moved? | Why |
|---|---|---|
| docs/data/unitfx.json | yes | 44 heal rules that bring slain models back to a unit carry returns: true (our words in its meta.kinds.returns). |
| docs/bsdata.js | yes | T-723's reader of BSData's "cannot have both" errors (one model can't carry the pair). It was already on the branch; T-745's re-freeze is what brings it in. |
| build/units.json | yes | Rebuilt at 374f505 with that reader: 10 datasheets gain an excl pair and nothing else (checked field by field). |
| The other 24 (ev.js, loadout.js, detfx.js, roster.js, armyfx, kindfx, leaderfx, mortalfx, tierfx, index.json, detachments.json, rankings.json, the panels, deployments, field names, the step-1a field) | no | Same sha256 as the T-715 lock. The three built files are the same T-687 builds. |
node tools/ledger-inputs.js --drift lists the same eight kept or built files before and after the re-freeze. Before the re-freeze it also listed docs/bsdata.js and docs/data/unitfx.json; after it, it doesn't.
The ledger's own code (live, not frozen) changed in three places:
- tools/ledger.js: the "Returns slain models" kind, and
SQUAD_SAME, the squad-wide rules in Auto-equip; - docs/lab/ledger/ledger.js: the page's
returnkind, × 1 by default; - tools/ledger-merge.js: a panel that says it joins no yardstick stays out of the comparators.
That last change keeps the yardstick as it was. The rebuild would otherwise have merged the 25 GEMINI AGGREGATE lists and the Auspex Tactics Orks candidate as reviewers, because they arrived after T-715's build. Every army's reviewers now match the T-715 ledgers, list for list.
2. Fix 1: models returned are not heals
The bug (T-737). The ledger read every unitfx.json heal as "heals or returns models" and multiplied the form's whole Value by r.heal (×1.805 in Track A). For a rule that brings back a few cheap bodies, that is the wrong shape.
The fix. It is a new kind, not a new line: "Returns slain models" (r.return on the page, × 1 unless set).
- A rule that the Spawn line measures stays measured (
SPAWN_HEADS): the Tervigon's Spawn Termagants for the Tyranids, and the Apothecary's Narthecium for the Space Marines and Dark Angels. - The right long-term home is the Spawn line, which already prices returned models at the receiving unit's cost per model. Every other army has no spawn-rules file yet (tools/spawn.js), so that is carded as T-747.
- Heals of wounds keep ×1.805: Self Repair, Unstoppable Monster, Omnissiah's Blessing, Fix Dat Armour Up, Forgewrought Expertise and the like.
- So does a model coming back by itself the first time it dies (Unholy Resilience, Will of Iron, Even In Death I Serve…). That is extra durability for one model, not bodies added to a squad.
- Krieg's Final Duty, a gunner staying in play, stays a heal.
Marked returns (44 rules; the 16 ledger armies' first):
- Curse of the Walking Pox (Death Guard);
- Cult Icon (Neophytes, both Acolyte squads, Hybrid Metamorphs);
- Medi-pack (the Cadian, Catachan and Tempestus Command Squads, in Astra Militarum and Genestealer Cults);
- the Death Korps of Krieg Medi-pack (both armies);
- Narthecium (the Apothecary, the Ravenwing and Deathwing Command Squads, Grey Knights Terminators in Agents);
- Arbites medi-kit, Healing Serum and Salvationist Medikit (Agents);
- Rebind Rubricae (Thousand Sons), Fleshcraft (Drukhari), Rage Eternal (World Eaters), Healing Balms (Space Wolves);
- the Tervigon's Spawn Termagants (Tyranids);
- outside the ledger armies: Choice Samples, Sacred Healing, Healing Tears, Salvationist Medikit (Sororitas), the Necron reanimation rules (Resurrection orb ×5, Reanimation Beam, Nanoscarab Projector, Canoptek Swarm, Repair Barge, Their Number is Legion), Tears of Isha, Word of the Phoenix, A Hearty 'Pick Me Up', the Grey Knights' narthecium.
Every unit whose Value moved, Track A (rank and Value before → after):
| Army | Unit | Rule | Rank | Value | Reviewers |
|---|---|---|---|---|---|
| Death Guard | Poxwalkers | Curse of the Walking Pox | 2 → 17 of 36 | 1,532 → 849 | B |
| Genestealer Cults | Acolyte Hybrids with Autopistols | Cult Icon | 3 → 8 of 90 | 3,129 → 1,733 | A / A |
| Genestealer Cults | Hybrid Metamorphs | Cult Icon | 8 → 16 | 2,146 → 1,189 | B / A |
| Genestealer Cults | Neophyte Hybrids | Cult Icon | 9 → 22 | 1,879 → 1,041 | S / A |
| Genestealer Cults | Acolyte Hybrids with Hand Flamers | Cult Icon | 17 → 45 | 1,292 → 716 | A / A |
| Genestealer Cults | Death Korps of Krieg | Medi-pack | 21 → 52 | 1,105 → 612 | – |
| Genestealer Cults | Catachan Command Squad | Medi-pack | 26 → 54 | 1,035 → 574 | – |
| Genestealer Cults | Cadian Command Squad | Medi-pack | 46 → 68 | 733 → 406 | – |
| Astra Militarum | Death Korps of Krieg | Medi-pack | 9 → 37 of 72 | 1,225 → 679 | A |
| Astra Militarum | Catachan Command Squad | Medi-pack | 11 → 41 | 1,188 → 658 | C |
| Astra Militarum | Cadian Command Squad | Medi-pack | 29 → 53 | 836 → 463 | A |
| Astra Militarum | Militarum Tempestus Command Squad | Medi-pack | 32 → 55 | 796 → 441 | S |
| Agents of the Imperium | Sanctifiers | Salvationist Medikit | 2 → 8 of 29 | 2,701 → 1,497 | A |
| Agents of the Imperium | Grey Knights Terminator Squad | Narthecium | 4 → 12 | 1,981 → 1,098 | C |
| Agents of the Imperium | Exaction Squad | Arbites medi-kit | 10 → 17 | 1,293 → 771 | C |
| Agents of the Imperium | Rogue Trader Entourage | Healing Serum | 19 → 23 | 735 → 407 | B |
| Dark Angels | Ravenwing Command Squad | Narthecium (its own) | 3 → 26 of 93 | 1,655 → 917 | B |
| World Eaters | Slaughterbound | Rage Eternal | 4 → 19 of 30 | 1,353 → 750 | A (Red Path) |
| Drukhari | Haemonculus | Fleshcraft | 16 → 30 of 37 | 810 → 449 | C |
| Thousand Sons | Exalted Sorcerer | Rebind Rubricae | 26 → 29 of 35 | 552 → 306 | S |
| Space Wolves | Wolf Priest | Healing Balms | 19 → 21 of 21 | 523 → 290 | B |
Each fell by the same factor, ÷1.805, and nothing else in these armies moved except by rank. The Space Marines' Apothecary and the Tyranids' Tervigon didn't move: the Spawn line measures their rules. Under Track A2 the moves are the same within a place or two (Poxwalkers 2 → 16, Neophytes 13 → 28, Acolytes with autopistols 4 → 11).
3. Fix 2: the wargear rules
One model (T-723, in docs/bsdata.js and so in build/units.json). These ten datasheets gain a pair one model can't carry:
- the Death Guard Helbrute;
- the Space Marine Aggressors;
- Lychguard;
- Cthonian Beserks;
- the three Chaos Space Marine Crucible heroes (baleflamer and autocannon);
- the three Sororitas Crucible heroes (heavy flamer and multi-melta).
loadout.js already respected such pairs. Of the ledger's best forms, only the Helbrute's broke one.
Squad-wide (T-724 isn't built, so the ledger's own Auto-equip enforces the rules, in SQUAD_SAME). One option family per squad:
- Brôkhyr Thunderkyn: bolt cannon, graviton blast cannon or SP conversion beamer;
- Cthonian Beserks: maul or axe;
- Hernkyn Yaegirs: the troopers' bolt shotgun or revolver and knife (the Theyn chooses freely);
- Aggressors: Boltstorm with Fragstorm, or Flamestorm;
- Wolf Guard Headtakers: shield or paired weapons.
Each bound kind of model is split into one copy per family, as docs/loadout.js's packages, so no squad can mix them.
| Unit | Size | Auto-equip before | After | Track A rank, Value |
|---|---|---|---|---|
| Death Guard Helbrute | 1 | hammer + power scourge (illegal) | fist, heavy flamer, hammer | 11 → 9 of 36, 1,058 → 1,081 |
| Brôkhyr Thunderkyn | 3 | 1 bolt cannon, 2 conversion beamers (illegal) | 3 conversion beamers | 5 → 4 of 22, 1,124 → 1,517 |
| Brôkhyr Thunderkyn | 6 | 2 bolt cannons, 4 beamers (illegal) | 6 conversion beamers | (not its best size) |
| Cthonian Beserks | 10 | 6 mauls, 2 axes (illegal) | 8 mauls | best form (5) unchanged, 3rd |
| Yaegirs, Aggressors, Headtakers | all | already one family | unchanged | unchanged |
The other Votann units shift by a few points, because role scarcity is measured within the army and the Thunderkyn now kill more. Thousand Sons' and World Eaters' Helbrutes have no such rule and didn't move.
Still open (T-724):
- Vanguard Veterans (every model swaps);
- the Grey Knights' "at most 2" heavy weapons;
- the Blood Angels' single pistol swap (the unit isn't identified at this pin);
- the Recon Troopers' long-las or weapons team;
- the Necrons' Immortals and Lychguard squad rules (no Necron ledger).
None of them changes a best form in the 16 ledger armies today (T-737's check).
4. The scores, before and after
The consensus score is tools/cascade2.js's: pairs every 11th-edition list agrees on, or a single list's own pairs. Ties and missing units count wrong. "Before" is the T-715 snapshot's ledgers; "after" is this one.
| Army | 11e lists, pairs | Track A before | after | Track A2 before | after |
|---|---|---|---|---|---|
| Tyranids (not in the exam) | 3, 583 | 89.5 | 89.5 | 90.4 | 90.4 |
| Space Marines | 2, 1,515 | 62.1 | 62.1 | 61.9 | 61.9 |
| Adeptus Mechanicus | 1, 322 | 71.4 | 71.4 | 70.5 | 70.5 |
| Agents of the Imperium | 1, 223 | 56.1 | 63.2 | 60.1 | 66.4 |
| Astra Militarum | 1, 1,319 | 67.6 | 69.8 | 69.4 | 71.3 |
| Blood Angels | 1, 124 | 61.3 | 61.3 | 69.4 | 69.4 |
| Dark Angels | 1, 2,325 | 53.7 | 53.5 | 53.8 | 53.7 |
| Death Guard | 1, 476 | 55.0 | 56.5 | 56.1 | 57.8 |
| Drukhari | 1, 207 | 58.0 | 60.9 | 61.4 | 63.8 |
| Emperor's Children | 1, 191 | 69.6 | 69.6 | 69.6 | 69.6 |
| Genestealer Cults | 2, 112 | 55.4 | 49.1 | 55.4 | 49.1 |
| Leagues of Votann | 1, 105 | 61.0 | 61.0 | 61.0 | 61.0 |
| Orks | 1, 606 | 63.5 | 63.5 | 66.2 | 66.2 |
| Space Wolves | 1, 140 | 50.7 | 50.0 | 45.0 | 45.0 |
| Thousand Sons | 1, 309 | 38.2 | 37.5 | 41.4 | 40.8 |
| World Eaters | 3, 219 | 76.7 | 73.5 | 77.2 | 74.4 |
| Pooled, the 15 exam armies | 60.0 | 60.2 | 61.2 | 61.4 |
The exam's own score (each army's 11e lists' mean pairwise) gives the same picture.
- Track A: 59.3 → 59.7.
- Track A2: 60.5 → 60.8.
- The three multi-list armies differ from the table: Genestealer Cults 56.4 → 52.7 under A, World Eaters 67.2 → 64.2.
5. Track A2 on the new snapshot (tools/recipestep.js)
| Yardstick | Held-out gain over Track A [units] {armies} | Up / down (not falling) | Leave one out |
|---|---|---|---|
| Human lists, before (T-739) | +1.2 ± 0.8 [−0.4, +2.6] {−0.3, +2.6} | 9 / 4 (11) | +1.2 |
| Human lists, after | +1.1 ± 0.7 [−0.3, +2.7] {−0.3, +2.5} | 10 / 3 (12) | +1.1 [−0.3, +2.7] |
| Gemini at half, after | +1.0 ± 0.8 [−0.3, +2.5] | 10 / 4 (11) | +1.0 |
| Shuffled letters, seeds 11 / 12 / 13, after | −0.0 / −0.4 / +0.2 | −0.0 / +0.2 / +0.3 |
All 9 folds pick step 41. Keep rule (T-739, unchanged): a positive gain, the interval's low end above −0.5, and 9 of 15 armies not falling. It passes. Track A2 (tools/ledger-benchmarks/2026-10-06-step41-stable.json) is now the ledger's benchmark. Track A stays as the base it is measured against, and as the fingerprint's base.
6. The prediction (ledger-steps.md, row snapshot-745, committed before the rebuild)
Right:
- Tyranids unchanged to the bit.
- Poxwalkers 12th–18th (17th).
- Neophytes 20th–35th (22nd); Acolytes with autopistols 5th–12th (8th); Metamorphs 15th–25th (16th); Acolytes with hand flamers 30th or lower (45th).
- Death Guard up 1 to 3 (+1.5). Votann 0 to −5 (0).
- Pooled Track A within ±0.5 (+0.4).
- Step 41 +0.9 to +1.4 (+1.1); shuffles about 0.
Wrong:
- The direction of both wargear units. Helbrute and Thunderkyn rose: the legal kits are better, because Auto-equip doesn't choose on the ledger's Value.
- Genestealer Cults fell 6.3, not "−1 to +1".
- "Each other army within ±1.5" missed four: Agents +7.1, Drukhari +2.9, Astra Militarum +2.2, World Eaters −3.2.
- 12 of 15 armies not falling, not 10 or 11.
Doubts
- The returning rules now count for nothing (× 1) until T-747 measures them on the Spawn line. That under-rates the Genestealer Cults' Cult Icon squads, which the reviewers grade S and A; the GSC fall is that gap.
- Self-revivals ("back on a 2+ the first time it dies") keep the heal multiplier. That is a judgement call; they are listed above so it can be revisited.
- Auto-equip choosing on the stand-ins, not on the ledger's Value, is older than this card (T-737 saw it too).
- The step-41 interval still touches 0.