The first look at whether the ledger transfers to armies it was never tuned on. Command: node tools/ledger-all.js (9.4 minutes for all fourteen; --army a,b for some, --summary-only to rescore built ledgers), then node tools/progress.js. Each army's ledger is built with the same tools and the same frozen inputs as the Tyranids' and Space Marines' (inputs 30f0056e6103, frozen at eb3590a; BSData 374f505; the top-quarter field from grimstat-corpus 570b8c6, CC BY 4.0, its listhammer/ folder not read), and scored at tools/ledger-benchmarks/2026-10-03-step6-baseline.json with nothing tuned. The full ledgers are git-ignored (build/ledger/); the committed summaries are docs/lab/progress/armies/<army>.json, drawn on the Lab's progress page under "All armies" and each army's own view. Our own numbers; unit, rule and list names only, no rules text.
The table
Pairwise: of the pairs a reviewer put in different tiers (S to D), the share the ledger orders the same way (50% is a coin flip). 2+ apart: the same on pairs two tiers or more apart. ρ: Spearman on the letters (F kept). Ceiling: each list against the average letter of the army's other lists, on the ledger's units (two lists or more). Untuned: the same settings with every line weighted 1. Each army's figure is the mean over its lists; per list in brackets.
| Army | Lists | Units | Pairwise | 2+ apart | ρ | n (graded) | Ceiling | Untuned | Run |
|---|---|---|---|---|---|---|---|---|---|
| Tyranids (tuned on) | 5 | 52 | 74% | 84% | 0.56 | 41 to 48 | 89% | 65% | – |
| Space Marines (tuned on) | 2 | 84 | 59% | 65% | 0.24 | 84, 79 | 91% | 55% | – |
| Orks (retired list) | 1 | 55 | 70% | 79% | 0.40 | 45 | – | 50% | 36 s |
| Genestealer Cults | 2 | 90 | 69% (66, 72) | 78% | 0.42 (0.36, 0.47) | 24, 23 | 85% | 71% | 31 s |
| Adeptus Mechanicus | 1 | 34 | 69% | 76% | 0.42 | 29 | – | 62% | 30 s |
| Astra Militarum (held-back list) | 1 | 72 | 66% | 78% | 0.38 | 61 | – | 54% | 55 s |
| World Eaters | 3 | 30 | 62% (56, 68, 63) | 65% | 0.32 (0.25, 0.42, 0.30) | 28 to 30 | 89% | 73% | 24 s |
| Leagues of Votann (10th) | 2 | 22 | 58% (53, 63) | 59% | 0.16 (0.05, 0.27) | 17, 13 | 59% | 50% | 16 s |
| Emperor's Children | 1 | 23 | 57% | 56% | 0.16 | 23 | – | 54% | 29 s |
| Dark Angels | 1 | 93 | 54% | 56% | 0.12 | 77 | – | 50% | 169 s |
| Blood Angels | 1 | 20 | 54% | 63% | 0.09 | 19 | – | 32% | 32 s |
| Space Wolves | 1 | 21 | 54% | 58% | −0.06 | 20 | – | 65% | 62 s |
| Death Guard | 1 | 36 | 47% | 44% | −0.06 | 36 | – | 55% | 15 s |
| Thousand Sons | 1 | 35 | 46% | 43% | −0.12 | 28 | – | 44% | 27 s |
| Agents of the Imperium | 1 | 29 | 45% | 41% | −0.11 | 26 | – | 34% | 26 s |
| Drukhari | 1 | 37 | 41% | 39% | −0.09 | 23 | – | 45% | 13 s |
| The 14 untuned armies | 19 | 56% | 0.14 | 53% | 9.4 min |
The signals
- It transfers to some armies and not others, and not by chance. Orks, Genestealer Cults, Adeptus Mechanicus and Astra Militarum sit at 66 to 70% pairwise and 76 to 79% on the clear calls (2+ apart), as good as the Space Marines it was set on and close to the Tyranids. Death Guard, Thousand Sons, Agents of the Imperium and Drukhari sit below a coin flip (41 to 47%, ρ below 0). The rest are in between. Against a ceiling: Genestealer Cults 69% of a possible 85%, World Eaters 62% of 89%, Leagues of Votann 58% of 59% (its two 10th-edition lists barely agree with each other).
- The fitted weights beat the untuned reference on 9 of 14 armies (mean 56% against 53%), but not on World Eaters, Space Wolves, Death Guard, Genestealer Cults or Drukhari, where the untuned lines do better: the fit is partly Tyranid.
- Dedicated transports are the clearest shared miss. The ledger values a transport by its own guns and toughness, and carrying a unit forward is in none of its lines. Across the 21 graded dedicated transports the ledger ranks them on average 21% of the list lower than the reviewers; the Chaos Rhino 47 to 77% lower in all four Chaos armies (31st of 36 to last, the reviewers B to S), the Venom 85% and the Raider 77% in Drukhari. Other vehicles are close to even (−3%).
- Characters valued for leading rank low. Characters that lead a squad sit on average 9% of the list lower than the reviewers put them (higher in 10 of 14 armies: Thousand Sons +32%, Adeptus Mechanicus +25%, Emperor's Children +24%, Blood Angels +23%); characters that can't lead sit 5% higher. The ranking row is each unit's best solo form, so a leader's worth to its squad (an aura, a re-roll, Feel No Pain lent) only shows in the joined forms. The Dark Angels' Lieutenant with Combi-weapon and Librarians (S to the reviewer, 73rd to 91st of 93 here), the Navigator, the Skitarii Marshal, the Sanguinary Priest, the Death Guard's Biologus Putrifier and the Thousand Sons' Sorcerer are the cases.
- Fast melee bodies and big infantry squads rank high. Mounted units and beasts sit 10% of the list higher than the reviewers put them, horde infantry 6% higher: Squighog Boyz, Serberys Sulphurhounds, Tzaangor Enlightened, Daemonettes, Death Korps of Krieg, Kommandos. With every charge model at core rules only, a fast unit's lands come from its Move alone, and the Kill line rewards many attacks per point.
- The Heldrake is high in all three Chaos armies that field it (World Eaters, Emperor's Children, Thousand Sons; ours A or B, the reviewers D): its dice are good per point, and what keeps it off tables isn't in the lines.
- Where the miss is the data, not the model: Drukhari have no detachment in the effects files, so every form is built with none, and their best units (transports, Incubi) are the ones a detachment and a transport carry.
Each army's five biggest disagreements
Ours: rank of the army's units at the step-6 baseline, best solo form; theirs: each list's letter; the gap compares the two ranks among the graded units (+ we place it lower than the reviewers do).
| Army | Unit (type) | Ours | Theirs | Gap |
|---|---|---|---|---|
| Adeptus Mechanicus | Skitarii Marshal (character) | 33 of 34, D | A | +24.5 |
| Serberys Sulphurhounds (mounted) | 8, A | F | −23 | |
| Onager Dunecrawler (vehicle) | 1, S | C | −21 | |
| Tech-Priest Manipulus (character) | 27, C | A | +19.5 | |
| Sydonian Skatros (character) | 31, D | B | +14.5 | |
| Agents of the Imperium | Navigator (character) | 29 of 29, D | S | +23.5 |
| Grey Knights Terminator Squad | 4, A | C | −22 | |
| Exaction Squad (horde) | 7, A | C | −19 | |
| Inquisitor Kroyle (character) | 26, D | A | +16.5 | |
| Subductor Squad (horde) | 23, C | A | +13.5 | |
| Astra Militarum | Catachan Command Squad (character) | 4 of 72, S | C | −52 |
| Krieg Heavy Weapons Squad | 3, S | B | −43.5 | |
| Bullgryn Squad | 57, C | S | +34.5 | |
| Death Korps of Krieg (horde) | 1, S | A | −33 | |
| Hydra (vehicle) | 14, A | B | −32.5 | |
| Blood Angels | Sanguinary Priest (character) | 20 of 20, D | A | +13.5 |
| Death Company Marines | 7, B | C | −12 | |
| Death Company Dreadnought (vehicle) | 1, S | B | −11.5 | |
| Lemartes (character) | 18, D | A | +11.5 | |
| Astorath (character) | 17, C | A | +10.5 | |
| Dark Angels | Lieutenant with Combi-weapon (character) | 91 of 93, D | S | +87 |
| Librarian (character) | 80, C | S | +76 | |
| Centurion Assault Squad | 13, A | F | −72.5 | |
| Librarian in Phobos Armour (character) | 73, C | S | +69 | |
| Devastator Squad | 19, A | F | −66.5 | |
| Death Guard | Miasmic Malignifier (fortification) | 36 of 36, D | S | +32 |
| Chaos Predator Annihilator (vehicle) | 7, A | D | −29 | |
| Foetid Bloat-drone with heavy blight launcher (vehicle) | 5, A | C | −28 | |
| Biologus Putrifier (character) | 30, C | S | +26 | |
| Defiler (vehicle) | 2, S | B | −23.5 | |
| Drukhari | Venom (transport) | 35 of 37, D | S | +20.5 |
| Raider (transport) | 32, C | S | +18.5 | |
| Voidraven Bomber (aircraft) | 9, A | D | −17.5 | |
| Incubi | 27, C | S | +16.5 | |
| Haemonculus (character) | 7, A | C | −15 | |
| Emperor's Children | Daemonettes (horde) | 1 of 23, S | C | −19 |
| Heldrake (vehicle) | 5, A | D | −18 | |
| Chaos Rhino (transport) | 23, D | A | +16 | |
| Lord Exultant (character) | 21, D | A | +14 | |
| Fulgrim (character) | 8, B | C | −12 | |
| Genestealer Cults | Locus (character) | 16 of 90, A | D / C | −17.5 |
| Benefictus (character) | 66, C | S / A | +13 | |
| Goliath Rockgrinder (vehicle) | 38, B | C / C | −11.5 | |
| Biophagus (character) | 86, D | C / A | +10 | |
| Magus (character) | 85, D | C / A | +9 | |
| Leagues of Votann | Hearthkyn Warriors (horde) | 8 of 22, B | C / C | −12.5 |
| Hernkyn Yaegirs (horde) | 18, C | A / – | +12 | |
| Brôkhyr Iron-master (character) | 3, S | B / B | −11 | |
| Cthonian Earthshakers | 20, D | B / A | +10 | |
| Einhyr Champion (character) | 6, A | C / A | −9 | |
| Orks | Squighog Boyz (mounted) | 10 of 55, A | C | −34 |
| Warboss (character) | 48, D | A | +29 | |
| Big Mek in Mega Armour (character) | 1, S | B | −28 | |
| Kommandos (horde) | 4, S | B | −25 | |
| Nazdreg (character) | 32, B | S | +24 | |
| Space Wolves | Iron Priest (character) | 1 of 21, S | F | −20 |
| Wolf Guard Battle Leader (character) | 19, D | S | +17.5 | |
| Murderfang (character) | 3, S | C | −14.5 | |
| Blood Claws (horde) | 7, A | C | −10.5 | |
| Arjac Rockfist (character) | 15, C | A | +10.5 | |
| Thousand Sons | Sorcerer (character) | 35 of 35, D | S | +23.5 |
| Heldrake (vehicle) | 5, A | D | −22.5 | |
| Tzaangor Enlightened (mounted) | 7, A | D | −21.5 | |
| Chaos Rhino (transport) | 33, D | S | +21.5 | |
| Infernal Master (character) | 32, D | S | +20.5 | |
| World Eaters | Daemon Prince of Khorne with wings (character) | 6 of 30, A | C / B / C | −20 |
| Jakhals (horde) | 21, C | S / S / S | +19.5 | |
| Heldrake (vehicle) | 10, B | D / D / D | −18 | |
| Chaos Rhino (transport) | 30, D | B / B / A | +14.5 | |
| Bloodthirster (character) | 4, A | B / A / C | −14 |
What each army's data lacked
Every army: spawning none measured (no spawning rule read; tools/spawn.js writes no form), Soak effects none measured (no leave-and-return, tunnel or healing rule read: every form exposed 1, heals 1), and the charge model at core rules only (Deep Strike, Scouts 6", Infiltrators as the datasheets list them; no army's own arrival, movement or charge rule is read, so each stays "not read" and keeps its page multiplier). Role scarcity is measured for every army (tools/scarcity.js is general). The typical army's thin classes (aircraft, other) are the same for all.
| Army | Arrival, movement or charge rules not read | Also |
|---|---|---|
| Adeptus Mechanicus | 9 | |
| Agents of the Imperium | 9 | panel partial |
| Astra Militarum | 17 | the panel is held back (locked), scored here as a comparator only |
| Blood Angels | 16 | pool: 16 own + 4 Space Marine datasheets the panel grades; panel partial, a weak reviewer by batch 3's reading |
| Dark Angels | 28 | pool: 16 own + 77 Space Marine datasheets the panel grades; pre-codex list, before 11th-edition points |
| Death Guard | 8 | |
| Drukhari | 18 | no detachment in the effects files: every form built with none |
| Emperor's Children | 12 | |
| Genestealer Cults | 27 | Von Carmian's Tectonic Fragdrill (Legends) not in the pool |
| Leagues of Votann | 9 | both lists 10th edition |
| Orks | 16 | the list is retired (reports/tiers/panel/retired/) |
| Space Wolves | 14 | panel partial |
| Thousand Sons | 9 | panel partial (the Tzeentch daemons left out) |
| World Eaters | 17 |
Decided alone
- Chapters (Blood Angels, Dark Angels, Space Wolves): the pool is the chapter's own datasheets plus the generic Space Marine ones its panel grades (names in tools/ledger-armies.js, read from the panels); detachments are the chapter's own matched-play ones (its coverage report, 2 Oct) and the 16 Codex ones; army rules the chapter's and the Space Marines' (Oath of Moment); leaders only from the pool.
- Matched-play detachments for every other army: every detachment detfx.json holds for it but those with a Boarding Patrol rule (this reproduces the Tyranids' ten and the coverage reports' Boarding Actions lists).
- Comparators: every panel of the army, by its
faction, keyed by its file name without date and army; read outside the frozen inputs, as ledger-merge's comparators are. A graded unit outside the pool is listed, not an error. - The frozen inputs are unchanged: the lock and its files as they were; tools/ledger-inputs.js's LIVE list gains build/ledger/ (the other armies' ledger and stage files are the ledger's own outputs).
- Tyranids and Space Marines: their committed ledgers, charge, spawn, Soak-effect and scarcity files are untouched; a rebuild with the generalised tools is byte-identical but for meta.engine, which hashes tools/ledger.js.
- Unit types for the signals are ours, from the datasheet's keywords: character, aircraft, vehicle, monster, mounted or beasts, infantry (horde when its best form has 10 models or more); dedicated transports by their keyword.