Tactical Reroll
⋯

The leader audit's eight fixes, applied (T-715, 5 Oct)

From reports/tiers/2026-10-05-leader-fixes.md , rendered when the site is built.

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

What each fix changed

#FixWhereWhat it did
1A leader's army-wide kinds act on its own sharetools/ledger.js (from on a joined form's rules, alone ids); docs/lab/ledger/ledger.js valueFormA 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.
2One Kill scaletools/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'sChosen: 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.
3Support characters as Supportmatrix.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 SupportA 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.
4Healing scoped and counted onceunitfx.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 measuredNarthecium 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.
5Lone Operative only when every member has ittools/ledger.js memberRulesThe 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.
6The lend priced apart from joiningtools/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).
7The missing grantsunitfx.json grants, ocPlus/ocTo, leading (our words), read by tools/ledger.js and charge.jsDeep 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 loadoutthe page's partnerAlone (joinedMarginal, joinedShapley, leaderCredit), leadercomp's joined price, the auditA 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:

BeforeAfter
Pooled, 15 armies59.3759.32
Pooled, 14 (without Votann)59.359.2
Consensus pairs, pooled60.0860.02
Tyranids, the three 11e lists82.4581.61
Tyranids, all five lists79.178.8
ArmyBeforeAfterWho moved, and why
Space Marines60.160.1The Rhino falls 77th → 80th: Self Repair is on Soak only. Company Heroes rise 41st → 34th: +1 OC a model.
Adeptus Mechanicus71.471.4No ranked unit moves.
Agents of the Imperium56.556.1Grey Knights Terminators 5th → 4th (+1 OC a model).
Astra Militarum67.967.6The 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 Angels61.361.3Sanguinary Guard 9th → 8th (+1 OC).
Dark Angels53.653.7The 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–
Drukhari58.058.0The Kabalite icons +3%; every unit's Value moves about 2.4% together (Score's scale); no rank changes.
Genestealer Cults56.456.4The command squads rise 10% to 25% (standards); the Cadian Command Squad 52nd → 46th.
Tyranids (fitted, not pooled)82.4581.61Old 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.

MeasureBy squad (151 cases)By squad and role (Leaders with Leaders, Supports with Supports)
T-709's g, before the fixes25.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

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:

VariantBefore: 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).

ToggleBefore: held outBefore: placeboBefore: pooled at topAfter: held outAfter: placeboAfter: 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 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.

UnitLettersTrack A rank before → afterT-709's g before (best squad)Dice lent now (squad: g)Competition at 0.5, after
KâhlVotann Auspex –20 → 20Hearthguard 1,594, beaten by Ûthar's 2,730Hearthguard 265 (best; the Champion and Ûthar 0); Warriors 123best on Hearthguard; 418 → 462
Einhyr ChampionC8 → 8Hearthguard 742Hearthguard 0penalty 88: 842 → 798
Ûthar the DestinedB16 → 16Hearthguard 2,730 (command points)0penalty 88
Brôkhyr Iron-masterC11 → 11Thunderkyn 3,111 (healing)Thunderkyn 152, Warriors 172 (best)credit 160: 754 → 834
GrimnyrC17 → 17Warriors 250Warriors 28penalty 109
Captain in Phobos ArmourBD75 → 75Incursors 1,313 (command points), best on 4 squads0 everywhere (Master of Deceit is deployment)penalty 1
Lieutenant in Phobos Armour (Support)CC76 → 76Infiltrators 1,689Infiltrators 389, Incursors 222 (best Support on both)credit 433
Lieutenant in Reiver Armour (Support)CD79 → 78Reivers 28 (the loadout swing)Reivers 217, beside the Phobos Lieutenant's 214credit 2
Apothecary (Support)BD78 → 77best on 10 squads, up to 6,1130 everywhere: Narthecium is on the Spawn line, Gene-seed Recovery is command pointspenalty 94
JudiciarBD43 → 43best on nonedice 0; with its Fights First grant it would be the best Support everywhere (above)penalty 63
Old One EyeBBA13 → 24Carnifexes 2,929Carnifexes 509credit 200
BroodlordAAA10 → 10Genestealers 2,671Genestealers 155credit 73
Lord on JuggernautCBC10 → 10none0 (speed only)penalty 222

Decided alone

Doubts

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