The question. Reviewers rate characters for something our numbers don't hold. T-669 found leaders with a squad buff underrated in 16 armies, psykers in 13, Epic Heroes in 14 and Lone Operatives in 11; T-670 found that crediting a leader with its measured dice buff makes the order worse. So what do reviewers see? Phase 1 lists every character, sorts its rules into kinds, and gives each kind a game-wide dial on the ledger, every one at 0. Nothing is measured here: phase 2 runs the exam once T-680 (Votann out of the pool) and T-681 (the Space Marines' re-freeze) land.
What we built
- The catalogue (tools/characters.js → tools/characters.json, 236 KB, one character a line): 316 characters in the 16 armies with panels (BSData's 80 Crucible datasheets left out), 248 in the ledger's pools, 204 graded by a reviewer (210 with a T-669 miss, F grades included). For each: army, points, letters, roles (leads, supports, Epic Hero, Psyker, Lone Operative), its rules' names with our effects files' kind and status, the ledger's own rule kinds on its solo forms, its leaderfx effects (our labels) and its Torrent weapons, its miss. Only 3 characters have no unitfx.json entry. It also lists each army's command-point gains and own-unit discounts, and its army-wide Battle-shock rules. Names and our kind words only, never rules text.
- Fourteen character dials and
cpOncein docs/lab/ledger/ledger.js, on the page in "Characters (T-673)", all at 0. A character carrying a kind is worthCHAR_PTS(50) points more at strength 1: Value + w × 50 × P ÷ its points (P the army's median reference Value a hundred with these dials at 0, as the screens price theirs). It is a new part of Value (characters), added after the screens and before the points exponent and small pieces, outside the weights and rule multipliers, in no reference pass. Characters only: a squad with the same rule gains nothing. The fingerprint test passes unchanged.
| Dial | Kind (who carries it) | Carriers: all / graded | Graded carriers' miss, raw / beyond our position | Why it's worth testing |
|---|---|---|---|---|
charLead | leads a squad and gives it a dice buff (leaderfx.json), as present, not by size | 233 / 155 | +8.5 / +1.3 | the misses' leader group; measured size lost in T-670 |
charMove | movement for itself or its squad | 59 / 35 | −4.2 / −0.1 | on the card; likely a control |
charArrive | Deep Strike, Infiltrators or Scouts for its squad, redeploys, reserves denied | 30 / 24 | +8.6 / +2.8 | on the card; 5 of 7 armies lean up |
charOC | +OC, objectives kept | 19 / 12 | +8.7 / −0.2 | on the card; few carriers |
charShock | Battle-shock on the enemy or its own side kept steady | 53 / 37 | +5.6 / +0.8 | on the card; shockPressure prices only 14 rules |
charShockAmp | makes the enemy's Battle-shock tests harder; worth SHOCK_AMP 0.4 × its army's other shock sources on the shockPressure line's prices (Shadow in the Warp as 10 tests at 0.35), × shockPressureW | 9 / 7 | −9.8 / −1.2 | Jordan's notes: the Neurotyrant's −1 amplifies every shock source |
charCP | command points gained, refunded, Stratagems cheaper or dearer | 54 / 38 | −5.7 / +2.2 | on the card; r.cp multiplies the carrier's own Kill |
charPsychic | Psyker keyword or a psychic ability | 57 / 43 | +18.4 / +13.5 | the misses' biggest group; 8 of 8 armies lean up |
charAura | an aura on friends beyond its squad | 22 / 17 | −16.8 / −1.4 | on the card; likely a control |
charDebuff | hinders or marks an enemy unit | 29 / 24 | +4.3 / 0.0 | its own abilities |
charEpic | Epic Hero | 106 / 59 | +3.7 / +10.9 | 12 of 14 armies lean up |
charEnh | any non-Epic character (an enhancement slot) | 210 / 151 | +7.1 / −0.4 | with charEpic it spans all characters |
charLone | Lone Operative, as worth of its own | 48 / 35 | −0.7 / +5.4 | Soak was the wrong place (T-670) |
charHome | what it unlocks: × (its best pool squad's Value ÷ P − 1), within −1 and CHAR_HOME_CAP 2 | 226 / 152 | +7.3 / +0.9 | "a key unit's best home"; can also take worth away |
cpOnce (0–1, every carrier) | a command-point rule that can't stack credits only the army's best carrier (by Value a hundred): the same rule on two datasheets is one group, every CP gain one group (capped at one a turn); the others' r.cp × (1 − c) toward 1. A discount on the carrier's own unit (Rites of Battle) stacks and is left out | – | 27 graded units fall 2+ places at 1: 14 overrated, 8 underrated | Jordan's notes: r.cp (× 1.88) multiplies every carrier's own Kill |
Jordan's third note: the Neurotyrant's leader buff and its overwatch. The catalogue records both as our data has them: leaderfx's Node Lash (+1 to hit, and +1 to wound against a Battle-shocked target) for whichever squad it leads (Neurogaunts, Tyrant Guard, Zoanthropes; our data doesn't restrict it to Zoanthropes), and its Torrent weapon (Psychic scream; Torrent hits in Overwatch too). Our data gives it no Overwatch rule, so r.overwatch (the "Better Overwatch" rules only) doesn't reach it today. Catalogued without a dial: a non-dice rule through its squad (72; beyond −6.8), Fights First (15; −4.4), heals (39), mortal wounds (28), once-a-battle rolls (26), Overwatch (5), Synapse (19). Each already has a ledger line or multiplier, or leans the wrong way. Counts per army are in the table at the foot of this page.
Predictions (written before any exam run; the movers come from running each dial alone on every army's Track A ledger, not from scoring it). A plausible strength is 0.1 to 0.3. At 0.5 a cheap leader moves 20 to 45 places in a big army (Commissar 62nd → 22nd of 72).
- charPsychic: up on the exam, the most likely gain (about +0.5 to +2 pooled). Librarians rise in Space Marines and Dark Angels (+24 to +36 places at 0.5; raw misses +62 to +81), Sorcerers in Thousand Sons, the Navigator and Greyfax in Agents, Njal in Space Wolves. Against it: Tervigon (Tyranids, miss −35) and Sanctus (Genestealer Cults, −27) rise too.
- charEpic: up, small (about +0.3 to +1). Ahriman, Magnus, Typhus, Ûthar, Njal, Arjac, Lemartes, Astorath rise; Lazarus (−74), Lord Invocatus and Watch Captain Artemis rise the wrong way.
- charLead, charEnh, charHome: about 0, risk down. They move the most units (114 to 163 risers). Over half of the graded risers are underrated (raw miss +7 to +9 on average), but the miss beyond our position is about 0. The gain is mostly regression to the mean, and it lifts overrated leaders (World Eaters' Lord on Juggernaut, −47). charHome is the best of the three in Tyranids (below).
- charArrive, charDebuff: small up (+0 to +0.5). They have few carriers (Kâhl, Kharseth, Acolyte Iconward, Kroyle, Technoarcheologist).
- charLone, charShock, charOC: about 0. The risers split evenly between under- and overrated: Lieutenants with Combi-weapon and Enginseers on one side, Ork and Cult lone pieces and Beastbosses on the other.
- charMove, charCP, charAura: down. Their graded risers are overrated on balance (raw −4.5, −5.7, −12.6; Captains in Terminator Armour, Daemon Princes, Lord of Poxes).
- charShockAmp: Tyranids up, elsewhere about 0. It has few carriers (9): Neurotyrant 30th → 24th at 0.25 and 20th at 0.5, Asmodai (Dark Angels) +20 at 0.5; Deathleaper and Culexus rise the wrong way. Only the Tyranids have an army-wide shock rule in our data, so elsewhere it amplifies one or two sources.
- cpOnce: up (about +0.3 to +1 pooled at 1). At 1 the Winged Hive Tyrant goes 3rd → 12th and the Deathleaper 5th → 14th (both overrated). The Neurolictor 12th → 16th goes the wrong way (the Swarmlord keeps the army's CP gain). Dark Angels' Azrael 34th → 84th (miss +34) and Infiltrators 16th → 70th (+28) also go the wrong way. Cadian Recon, Scions and Catachans fall in Astra Militarum.
- Tyranid check. Neurotyrant (reviewers A, ours 30th of 52) should rise with charShockAmp (+6 at 0.25, +10 at 0.5), charHome (+6, +10), and charLead, charShock, charPsychic and charEnh (+4 each at 0.25). The Winged Hive Tyrant (reviewers B, ours 3rd) carries cp, psychic, debuff and enh itself, so no character dial pulls it down. cpOnce does: at 1 it falls below the Hive Tyrant (2nd, the better carrier of Will of the Hive Mind, which keeps its Onslaught aura's credit), to 12th. Expected: both gaps close, the Neurotyrant's through charShockAmp or charHome, the Winged Hive Tyrant's through cpOnce. charHome also drops the Winged Tyranid Prime (ours 25th, reviewers about C) 5 to 8 places, toward its grade. On the five lists I expect charShockAmp, charHome and cpOnce to help Tyranids by 0 to +1.5 each, and charEnh to cost about 1 (it lifts the Prime and the Parasite).
Read. The prior points one way. Psykers and Epic Heroes are the only kinds whose misses lean the same way in most armies beyond what our position explains. cpOnce is the one rule-count fix with an aimed Tyranid unit. Our leader, movement, command-point and aura kinds look like noise or controls. Phase 2 tests each dial alone through tools/exam.js, held out by army (10 choose, 5 score, 3 seeds), with the Tyranid lists and held-out Tyranid units beside. Then it tests the best two or three together, and with the cross-army trio (aircraftBoard 1, smallPiece 0.4, attachChars).
How it's done: node tools/characters.js --write (under a second; it reads the frozen effects files and build/units.json through tools/ledger-inputs.js, and the army ledgers) writes the catalogue and ledger.js's CHARS table; --check fails if either is stale; --md prints the two tables. Kinds come from unitfx.json's kind (move, arrival, oc, shock, cp, aura, enemy and mark, heal, mortal, once, overwatch, synapse), leaderfx.json's effects, and BSData's keywords and ability names. An ability shared by 5 or more of an army's datasheets, or one unitfx files as a list note, counts as an army or detachment rule, not the character's own (Mortal Sorcery, Nurgle's Gift). tests/unit/ledgerchars.test.js works every dial by hand and checks the table against the catalogue.
| Army | chars | pool | graded | lead | move | arrive | oc | shock | cp | psychic | aura | debuff | epic | enh | lone | home |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Tyranids | 14 | 13 | 13 | 9 | 1 | 1 | 0 | 3 | 4 | 6 | 3 | 1 | 4 | 10 | 2 | 9 |
| Space Marines | 36 | 23 | 23 | 34 | 9 | 1 | 2 | 1 | 9 | 5 | 2 | 0 | 4 | 32 | 3 | 34 |
| Adeptus Mechanicus | 9 | 9 | 8 | 6 | 0 | 1 | 1 | 9 | 0 | 0 | 1 | 0 | 2 | 7 | 3 | 4 |
| Agents of the Imperium | 23 | 14 | 12 | 12 | 5 | 7 | 1 | 4 | 7 | 6 | 0 | 3 | 16 | 7 | 6 | 15 |
| Astra Militarum | 29 | 21 | 14 | 20 | 5 | 2 | 6 | 7 | 2 | 2 | 0 | 0 | 15 | 14 | 4 | 21 |
| Blood Angels | 18 | 12 | 12 | 16 | 3 | 2 | 2 | 3 | 3 | 1 | 0 | 1 | 9 | 9 | 2 | 14 |
| Dark Angels | 31 | 29 | 24 | 28 | 7 | 1 | 3 | 2 | 7 | 4 | 2 | 1 | 7 | 24 | 3 | 28 |
| Death Guard | 21 | 16 | 16 | 14 | 0 | 0 | 1 | 4 | 3 | 7 | 4 | 6 | 3 | 18 | 1 | 9 |
| Drukhari | 14 | 12 | 7 | 11 | 7 | 3 | 0 | 3 | 3 | 2 | 0 | 1 | 7 | 7 | 2 | 11 |
| Emperor's Children | 9 | 9 | 9 | 4 | 2 | 0 | 0 | 0 | 0 | 3 | 2 | 2 | 3 | 6 | 2 | 4 |
| Genestealer Cults | 28 | 27 | 14 | 19 | 4 | 5 | 3 | 7 | 5 | 6 | 0 | 3 | 2 | 26 | 5 | 19 |
| Leagues of Votann | 9 | 9 | 7 | 7 | 2 | 2 | 0 | 1 | 3 | 1 | 0 | 8 | 3 | 6 | 3 | 5 |
| Orks | 29 | 22 | 16 | 21 | 6 | 1 | 0 | 7 | 0 | 1 | 1 | 1 | 12 | 17 | 9 | 21 |
| Space Wolves | 23 | 10 | 9 | 21 | 4 | 2 | 0 | 1 | 4 | 1 | 1 | 1 | 12 | 11 | 1 | 21 |
| Thousand Sons | 13 | 12 | 10 | 7 | 0 | 2 | 0 | 0 | 2 | 12 | 3 | 1 | 3 | 10 | 1 | 7 |
| World Eaters | 10 | 10 | 10 | 4 | 4 | 0 | 0 | 1 | 2 | 0 | 3 | 0 | 4 | 6 | 1 | 4 |
| All 16 | 316 | 248 | 204 | 233 | 59 | 30 | 19 | 53 | 54 | 57 | 22 | 29 | 106 | 210 | 48 | 226 |