Jordan approved all eight fixes from the leader audit (T-714) and the re-freeze the data fixes need. This report says what each fix changed, then re-measures: Track A, the reviewers' leader check, T-709's leader competition and every leader toggle. Numbers: 2026-10-05-leader-fixes.json. New snapshot: code 8dcd24032d with index.json and the panels kept as at eb3590a, inputs hash dcd477d8a78c (was c5e7d85b43f8; the T-695 lock is kept as tools/ledger-inputs.lock-d8b5a1bb14.json). BSData 374f505. Rules were read on Wahapedia's 11th-edition pages to understand them; nothing here is their wording.
In plain English
- Leaders are now measured on what they bring, not on the squad's whole worth.
- A leader's own command points, healing, Synapse and auras now multiply only the leader's own share. Before, they multiplied the whole squad: T-709's measure gave the Apothecary 6,113 a hundred points on Hellblasters. On the same measure it is now 886, Ûthar on Hearthguard 2,730 → −57, the Iron-master on Thunderkyn 3,111 → 409.
- Joined units now get a Burst, so a leader is no longer credited with the squad's second phase.
- Support characters (the Apothecary, the Lieutenants, the Ancients) now join beside a Leader instead of competing with Captains and Chaplains for the squad.
- Track A barely moves, as expected: the ranking reads each unit at its best solo form. Pooled exam 59.37 → 59.32, consensus pairs 60.08 → 60.02, the Tyranid headline 82.45 → 81.61. The moves come from three data fixes:
- Old One Eye, the Red Terror and the Rhino lose their healing multiplier (−45%). Their self-heal is already counted on Soak, so it was counted twice. Old One Eye falls 13th → 24th and the Red Terror 16th → 30th; both are graded B or better by the reviewers, so the Tyranid headline drops 0.8.
- Units with a banner or standard gain +1 OC a model: the Astra Militarum command squads, Company Heroes, Grey Knights Terminators, Sanguinary Guard, the Kabalite icons.
- The Dark Angels' Apothecary is now measured by the Spawn line, as the Space Marines' is.
- On the reviewers' check, the dice a leader lends now beat chance.
- The check: does the engine's best leader for a squad hold the reviewers' best letter?
- Before: 25.8% of 151 cases, against 36.6% by chance.
- Now, pricing only the dice a character lends and comparing Leaders with Leaders and Supports with Supports: 50.9% of 172 cases, against 38.7% by chance.
- Adding the grants (Fights First, +OC) to the price drops it to 35.8%. The Judiciar's Fights First for a whole squad, at Track A's fitted ×2.64, swamps every other Support. So the competition prices the dice alone.
- Leader competition (T-709) now partly holds out. The penalty half (a leader that is best on no squad loses its nearest miss) gains +0.58 ± 0.11 held out, against a placebo of +0.00. Before the fixes it lost −0.36. The whole idea (credit and penalty together) is +0.03 against a placebo of +0.05, and credit alone −0.10: neither holds.
- No leader toggle holds yet. leadersLeading, joinedMarginal, joinedShapley, leaderCredit, charLead and charHome all pick 0 or lose held out. The fixes shrink their losses: leaderCredit at full strength −3.76 → −1.88 pooled, and joinedShapley now gains +0.28 pooled, though not held out.
What each fix changed
| # | Fix | Where | What it did |
|---|---|---|---|
| 1 | A leader's army-wide kinds act on its own share | tools/ledger.js (from on a joined form's rules, alone ids); docs/lab/ledger/ledger.js valueForm | A total-line kind that only a character carries (command points, healing, Synapse, buffs, a detachment rule that reaches only the character) is kept out of the form's total multiplier. Instead it adds (x − 1) × that character's weighted lines alone, from its solo form at the same size, loadout and detachment. It shows as a contribution of its own, memberRules. A kind the squad also has stays shared. |
| 2 | One Kill scale | tools/burst.js --field walks every joined form; ledger-merge.js writes it; the page's burstKill view reads a joined form's Burst like a solo form's | Chosen: joined forms get a Burst. It is cleaner than reading comparisons with burstKill off, because then every consumer reads one scale with no special case: the page's toggles (leadersLeading, joinedMarginal, leaderCredit), leadercomp and the audit alike. The other way would have fixed leadercomp only, and left the toggles mixing two scales inside compute(). The cost is time: the burst stage now walks about four times as many forms (Space Marines about 9 minutes, Dark Angels' whole chain 20 minutes; ledger-all's limit is raised from 15 to 45 minutes). The scale is still the solo ranking forms', so no solo number moves. The army-rule variants (armyPick, armyMarks and the rest) stay solo only. |
| 3 | Support characters as Support | matrix.js contextEnv keeps leaders and supports apart (lead stays every join, so the other tools are unchanged); the ledger builds squad + Leader, squad + Support, and squad + its best Leader + each Support | A Supporting link wins over a Leading link for the same squad, because BSData 374f505 carries the 11th-edition links. The best Leader at each squad size is the one whose form with the squad scores highest on the engine report's own slider-free measure (Kill ranged + 0.6 × melee + Soak × metaKillRate at β 6). Every character lends, and members carry their role. In all: 35 Support characters, 149 squad-and-Support pairings and 160 three-member bases, in 7 armies. Two differ from the audit's reading of 374f505: the World Eaters' Master of Executions has only Leading links and the Leader ability there, so it stays a Leader. The Judiciar is Support on the 6 squads its Supporting links name and a Leader on the 8 others its Leading links name. |
| 4 | Healing scoped and counted once | unitfx.json: 30 heal rules carry self (the bearer heals only itself or its own unit's models) or to (the keywords it repairs: VEHICLE, EXOFRAME, IRONKIN STEELJACKS, BEAST SNAGGA, TERMAGANTS, or any); soakfx-rules-space-marines.json: Narthecium inSpawn; spawn.js: the Dark Angels use the Space Marines' spawn rule; ledger-merge.js: a heal the Soak effects count as the form's own is marked measured | Narthecium is counted on the Spawn line only (healMultOwn leaves it out). Old One Eye's Unstoppable Monster, the Red Terror's maw and the Rhino's Self Repair take no healing multiplier: they are on Soak already. Fix 1 keeps a to repair off the squad, even where the squad has a matching keyword: the Thunderkyn are EXOFRAME, but one repair a turn is the Iron-master's army-wide worth, not ×1.8 on the squad. A spawning rule is now measured only on forms of a datasheet that carries it. Before, the Ravenwing Command Squad's own Narthecium was taken for the Apothecary's. |
| 5 | Lone Operative only when every member has it | tools/ledger.js memberRules | The Tech-Priest Enginseer's, Lucius' and Boss Snikrot's units lose ×1.93 on Soak. A rule that grants Lone Operative to the whole unit would stay, but there is none in the data. |
| 6 | The lend priced apart from joining | tools/ledger.js writes each joined form's lend: its Kill and Soak with each character's leaderfx effects left out. tools/leadercomp.js lendWorth() | A character's synergy is the dice it lends: the form's Kill and Soak less the same without its effects, at the form's own rates (its Kill contribution × the lend's share of its Kill, the same for Soak), per 100 of its points. Leaders compete with Leaders on squad + Leader forms. Supports compete with Supports on the squad's best led form, or on squad + Support where the squad takes no Leader. Other prices are kept to compare: lend (the dice plus its grants and +OC), lendown (plus its own kinds) and joined (T-709's). The default is the dice: it is what the card asks for, and the grants hurt the check (below). |
| 7 | The missing grants | unitfx.json grants, ocPlus/ocTo, leading (our words), read by tools/ledger.js and charge.js | Deep Strike for the attached unit: the Kâhl's and the Einhyr Champion's Teleport Crests, Lord Invocatus' Fire Riders and Nazdreg's Know-wotz. The charge model offers it as a way in and writes the lands without it (landsNoGrant). Fights First for the attached unit: the Judiciar's Tempormortis, ×r.first on the joined form's melee. +1 OC: the Ancients' banners, the Technoarcheologist and the Icon Bearer while they lead; the command squads' standards, Company Heroes, Grey Knights Terminators, Sanguinary Guard and the Ravenwing Command Squad for their own unit; the Kabalite icons for the bearer. A leader's lend that needs "the unit charged this turn" (the Captain with Jump Pack, Astorath, the Lord of Contagion, Lord Marshal Dreir, Kor'sarro Khan) now counts in melee, which the page already scales by the form's lands. The Kâhl's Teleport Crest changes nothing for Hearthkyn Warriors' lands: the charge model has them deploying on the line reach combat as often as a turn-two Deep Strike does (0.412 against 0.406). |
| 8 | "Alone" at the joined form's own loadout | the page's partnerAlone (joinedMarginal, joinedShapley, leaderCredit), leadercomp's joined price, the audit | A partner alone is the solo form named in alone: the same size, the same Auto-equip squad and the same detachment. The best solo loadout is no longer used, so the Reivers' loadout swing is gone. |
The re-freeze: only docs/data/unitfx.json moved among the 27 inputs. detfx.json, detachments.json and rankings.json are the T-687 builds, and build_rankings.js reads none of the new fields. Every ledger was rebuilt: the Tyranid and Space Marine chains, then node tools/ledger-all.js. The burst tail ran with armyburst, and the shared stamped files (carry, secvp, missionvp, rulevals, armyrules, field classes) were restamped; only their stamps moved. The dials fingerprint was re-recorded, and 3 of its 17 hashes moved: vpLedger, "supportMeasured off" and "attachChars and preferredTargets off". The rest set the healing kind to 1 or read solo forms only.
Track A, before and after
The exam on 11th-edition lists, at Track A (step 34b), wCarry 0:
| Before | After | |
|---|---|---|
| Pooled, 15 armies | 59.37 | 59.32 |
| Pooled, 14 (without Votann) | 59.3 | 59.2 |
| Consensus pairs, pooled | 60.08 | 60.02 |
| Tyranids, the three 11e lists | 82.45 | 81.61 |
| Tyranids, all five lists | 79.1 | 78.8 |
| Army | Before | After | Who moved, and why |
|---|---|---|---|
| Space Marines | 60.1 | 60.1 | The Rhino falls 77th → 80th: Self Repair is on Soak only. Company Heroes rise 41st → 34th: +1 OC a model. |
| Adeptus Mechanicus | 71.4 | 71.4 | No ranked unit moves. |
| Agents of the Imperium | 56.5 | 56.1 | Grey Knights Terminators 5th → 4th (+1 OC a model). |
| Astra Militarum | 67.9 | 67.6 | The four command squads rise 8% to 20% (Regimental Standards: OC 8.3 → 16.7 a hundred points). Everyone else shifts by under 1%, because Score's line scale moved. |
| Blood Angels | 61.3 | 61.3 | Sanguinary Guard 9th → 8th (+1 OC). |
| Dark Angels | 53.6 | 53.7 | The Apothecary falls 78th → 88th: Narthecium is now on the Spawn line, not ×1.805. Company Heroes 59th → 50th. The Ravenwing Command Squad +4% (+1 OC; its own Narthecium keeps its multiplier). |
| Death Guard, Emperor's Children, Votann, Orks, Space Wolves, Thousand Sons, World Eaters | – | unchanged | – |
| Drukhari | 58.0 | 58.0 | The Kabalite icons +3%; every unit's Value moves about 2.4% together (Score's scale); no rank changes. |
| Genestealer Cults | 56.4 | 56.4 | The command squads rise 10% to 25% (standards); the Cadian Command Squad 52nd → 46th. |
| Tyranids (fitted, not pooled) | 82.45 | 81.61 | Old One Eye 13th → 24th and the Red Terror 16th → 30th (−45%: their self-heal was counted on Soak and as ×1.805). Seventeen others move a place up behind them. |
The joined-form fixes (1, 2, 3, 5, 6, 8) move no ranked number: Track A ranks each unit at its best solo form, and its line scales, threat median and reference forms read solo forms only.
The reviewers' leader check
For each squad with two or more candidate characters, in each 11th-edition list that grades at least two of them differently: does the character the measure puts first hold the best letter? Ties share the hit. Chance is the share of graded candidates holding the best letter. tools/leaderaudit.js --check <price>; before, on the copy of the ledgers built before the fixes.
| Measure | By squad (151 cases) | By squad and role (Leaders with Leaders, Supports with Supports) |
|---|---|---|
| T-709's g, before the fixes | 25.8% (chance 36.6%) | same 151 |
| T-709's g on the fixed ledger (fixes 1–5, 7, 8) | 30.5% | 30.5% of 151 |
| The dice lent (leadercomp's default since T-715) | 37.7% | 50.9% of 172 (chance 38.7%) |
The dice and its grants and +OC (lend) | 26.5% | 35.8% of 172 |
The lend and its own kinds (lendown) | 33.8% | 35.5% of 172 |
- By role is the comparison T-715 makes: Supports now compete with Supports on the squad's best led form, so there are more cases (172).
- Where the dice measure still misses:
- Captains lend no dice. Rites of Battle is a Stratagem discount, so the Chaplain is the best Leader on most Marine squads, while the reviewers grade the Captain A.
- Genestealer Cults' and Agents' candidates are mostly Supports whose worth is a rule we only note.
- Of the Hive Tyrant, the Swarmlord and the Neurotyrant on Tyrant Guard, only the Neurotyrant lends dice.
- The grants hurt the check:
- The Judiciar's Fights First, at Track A's fitted r.first ×2.64 on a whole squad's melee, makes it the best Support on every squad it can join (1,904 to 5,796 a hundred points). The reviewers grade it B or D.
- The Ancient's +1 OC makes it the best Support on Hellblasters and Tactical Squads, where the reviewers prefer the Lieutenant.
T-709 re-tested: leaders compete for the best squad
tools/leadercomp.js --measure (strengths 0, 0.25, 0.5, 1; held out by army, 10 armies to choose and 5 to score, 3 seeds; placebo seeds 11 to 13), Track A at wCarry 0:
| Variant | Before: held out (placebo) | After, dice: held out (placebo) | After, lend: held out (placebo) |
|---|---|---|---|
| Whole idea (credit and penalty) | +0.00 ± 0.00 (−1.17) | +0.03 ± 0.16 (+0.05) | +0.63 ± 1.04 (+0.05) |
| Credit alone | −0.98 ± 1.70 (−0.42) | −0.10 ± 0.08 (−0.06) | −0.50 ± 0.47 (+0.07) |
| Penalty alone | −0.36 ± 0.63 (−1.04) | +0.58 ± 0.11 (+0.00), every fold picks 1 | +1.44 ± 0.80 (−0.05) |
On the dice price, the whole idea at 0.5 adds +0.33 to the pooled exam (placebo −0.26), +0.42 on consensus pairs and +0.21 on the Tyranids. The penalty at 1 adds +0.42 pooled (placebo −0.07). The lend price's penalty is larger (+1.44), but its spread is seven times the dice's and one fold gains only +0.54. It rests on the Judiciar and the Ancients, the very cases the check says it gets wrong.
The leader toggles, alone, on the fixed ledger
tools/leadertoggles.js (new): each toggle over Track A, held out by army (10 and 5, 3 seeds), against a placebo that deals each unit's change to a random unit of its army (3 draws).
| Toggle | Before: held out | Before: placebo | Before: pooled at top | After: held out | After: placebo | After: pooled at top (placebo) | After: Tyranids |
|---|---|---|---|---|---|---|---|
| leadersLeading | +0.00 ± 0.00 | +0.00 | −2.22 | +0.00 ± 0.00 | +0.00 | −1.72 (−2.15) | −0.67 |
| joinedMarginal | +0.00 ± 0.00 | +0.00 | −2.35 | +0.00 ± 0.00 | +0.00 | −1.39 (−2.97) | −1.61 |
| joinedShapley | +0.00 ± 0.00 | +0.00 | −0.60 | −0.19 ± 0.20 | +0.08 | +0.28 (−1.34) | −0.36 |
| leaderCredit (0.25, 0.5, 1) | −1.36 ± 1.47 | −0.51 | −3.76 | −0.48 ± 0.44 | +0.43 | −1.88 (−1.92) | −0.32 |
| charLead (0.25, 0.5, 1) | −0.80 ± 0.70 | −0.68 | −2.57 | −0.79 ± 0.70 | −0.66 | −2.54 (−1.13) | −0.33 |
| charHome (0.25, 0.5, 1) | −0.23 ± 0.40 | −0.31 | −1.20 | −0.24 ± 0.42 | −0.15 | −1.16 (−0.84) | +0.69 |
None holds. Each picks 0 in most folds or loses held out.
- The fixes help the toggles that read joined forms. leadersLeading −2.22 → −1.72, joinedMarginal −2.35 → −1.39, leaderCredit −3.76 → −1.88, and joinedShapley now gains +0.28 pooled (8 armies better, 6 worse), though not held out.
- charLead and charHome don't read joined forms and are unchanged, as expected.
- Blood Angels gain 16 to 22 points under every toggle that reads joined forms, on 19 graded units. Agents of the Imperium lose 8 to 14.
The wall units
Track A rank and Value (unchanged unless named above), and each one's competition on the dice it lends (g, a hundred of its points; leadercomp --army <slug>). "Before" is T-709's g.
| Unit | Letters | Track A rank before → after | T-709's g before (best squad) | Dice lent now (squad: g) | Competition at 0.5, after |
|---|---|---|---|---|---|
| Kâhl | Votann Auspex – | 20 → 20 | Hearthguard 1,594, beaten by Ûthar's 2,730 | Hearthguard 265 (best; the Champion and Ûthar 0); Warriors 123 | best on Hearthguard; 418 → 462 |
| Einhyr Champion | C | 8 → 8 | Hearthguard 742 | Hearthguard 0 | penalty 88: 842 → 798 |
| Ûthar the Destined | B | 16 → 16 | Hearthguard 2,730 (command points) | 0 | penalty 88 |
| Brôkhyr Iron-master | C | 11 → 11 | Thunderkyn 3,111 (healing) | Thunderkyn 152, Warriors 172 (best) | credit 160: 754 → 834 |
| Grimnyr | C | 17 → 17 | Warriors 250 | Warriors 28 | penalty 109 |
| Captain in Phobos Armour | BD | 75 → 75 | Incursors 1,313 (command points), best on 4 squads | 0 everywhere (Master of Deceit is deployment) | penalty 1 |
| Lieutenant in Phobos Armour (Support) | CC | 76 → 76 | Infiltrators 1,689 | Infiltrators 389, Incursors 222 (best Support on both) | credit 433 |
| Lieutenant in Reiver Armour (Support) | CD | 79 → 78 | Reivers 28 (the loadout swing) | Reivers 217, beside the Phobos Lieutenant's 214 | credit 2 |
| Apothecary (Support) | BD | 78 → 77 | best on 10 squads, up to 6,113 | 0 everywhere: Narthecium is on the Spawn line, Gene-seed Recovery is command points | penalty 94 |
| Judiciar | BD | 43 → 43 | best on none | dice 0; with its Fights First grant it would be the best Support everywhere (above) | penalty 63 |
| Old One Eye | BBA | 13 → 24 | Carnifexes 2,929 | Carnifexes 509 | credit 200 |
| Broodlord | AAA | 10 → 10 | Genestealers 2,671 | Genestealers 155 | credit 73 |
| Lord on Juggernaut | CBC | 10 → 10 | none | 0 (speed only) | penalty 222 |
Decided alone
- Fix 2's way: joined forms get a Burst, rather than reading comparisons with burstKill off (above).
- Fix 3's best Leader: the best Leader for each three-member form is chosen by the engine report's slider-free measure, at each squad size. Roles come from the links: a Supporting link wins over a Leading link for the same squad. In BSData 374f505 that makes the World Eaters' Master of Executions a Leader, not a Support as the audit had it.
- Fix 4's scopes: a
toheal stays on its bearer's solo form as army-wide worth and never reaches a squad's share. Aselfheal takes no multiplier where the Soak effects count it (Tyranids, Space Marines). In the other armies it keeps its multiplier, because nothing else counts it there. - Fix 6's default price is the dice alone. The card says "dice gain", and the check agrees. The grants are a separate price (
lend). - Fix 7's grants are leading only where the rule says "while it leads" (Wahapedia's 11th-edition wording, read to understand). The Judiciar's solo form doesn't fight first, so its Track A number doesn't move.
- "Charged this turn" is settled only on lends (leaderfx), as the audit asks. Units' own and detachment effects with that condition stay vouched.
- The leader check's case count by role is 172. The 151 by-squad cases are kept beside it to compare with the audit.
- ledger-all's time limit is raised to 45 minutes.
Doubts
- The Judiciar's Fights First is priced at r.first ×2.64, fitted on units that fight first themselves. On a whole attached squad that is very large, and it is why
lendfails the check. The calculator still doesn't read the grant. - Track A's Tyranid headline falls 0.8, from Old One Eye and the Red Terror losing a doubled heal. The reviewers grade both well. Their worth now rests on Soak, which weighs little at Track A.
- The fingerprint was re-recorded on this PC. As before, CI may disagree on vpLedger.
- The Teleport Crest moves nothing. The charge model sees deploying on the line as equal to a turn-two Deep Strike for Hearthkyn Warriors. Its value to Jordan (a delivery that can't be screened) is T-712's delivery certainty, not lands.
- The
torepairs keep their army-wide multiplier on the bearer's own forms, as every other army-wide kind does. Whether a repair is worth ×1.8 of a character's own lines is the multiplier's question, not this card's. - Tests:
- ledger: 110 passed, 0 failed.
- exam 3, scoringdoc 1, leaders 12, unitfx 1, vocab 4, soakfx 4, spawn 5 and charge 6 passed.
- matrix: 2 failures (profile counts, Offense parity), both there before.
Reproduce
node tools/ledger-inputs.js --verify # hash dcd477d8a78c node tools/exam.js tools/ledger-benchmarks/2026-10-05-step34b-baseline.json --md node tools/leaderaudit.js --check dice # also lend, lendown, joined; --dir <old ledgers> node --max-old-space-size=5000 tools/leadercomp.js --measure # --price lend|lendown|joined node --max-old-space-size=5000 tools/leadertoggles.js