Tactical Reroll
⋯

The pooled readable model: what reviewers appear to value (T-704)

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

5 Oct 2026. Jordan: "We are on a mission of discovery to see what variables are influencing the reviewers' ranking." This is a report only: discovery, not adoption. No ledger value, setting, letter or page moves. Track A is step 34b (wCarry 0) on the frozen snapshot (d8b5a1bb14, inputs hash c5e7d85b43f8). Tournament list share is the second target, for discovery only. It comes from grimstat-corpus (https://github.com/N041M/grimstat-corpus, CC BY 4.0): 487 11th-edition lists from 30 events, 27 June to 26 September, published by their players and tournament organisers on MiniHeadQuarters. We read counts only. List share is never in a letter.

In plain English

What was fitted.

Does it learn something real? Yes, but not much more than Kill alone, and not more than Track A.

What reviewers appear to value, relative to Kill. Kill is the yardstick. One army-SD of Kill is about ×2 Kill per point (median SD of log Kill 0.72). Each figure below is that variable's weight per army-SD as a share of Kill's, with its 95% bootstrap interval.

What holds across armies.

Which armies differ, and how (the clearest deviations; the placebo's deviation clears 0 in none of the 16 armies, so these are not noise from the bootstrap alone):

Where reviewers and players differ (the same model on list share; the intervals are wider, so read these as leans):

Read with care.

How it's done. node --max-old-space-size=3000 tools/readable.js --boot 200 --scrambles 20 --json reports/tiers/2026-10-05-readable-model.json --md <file> runs in about 3.5 minutes on one thread. The sections below are the tool's --md output; the section above is written by hand.

The coefficients: reviewers and list share side by side

Pairwise logistic, shared across the armies, each variable standardised within its army (one army-SD). β with its 95% bootstrap interval (200 draws of units within armies); "÷ Kill" is β over Kill's β, per draw. Reviewers: λβ 100, λδ 30. List share (grimstat-corpus, CC BY 4.0; discovery only): λβ 100, λδ 300. "Armies same sign": armies where β + the army's deviation has the shared sign, of those where the variable varies. A flag's median within-army SD is beside it (having the flag ≈ β ÷ SD).

VariableReviewers β [95%]Reviewers ÷ Kill [95%]Armies same signList share β [95%]List share ÷ Kill [95%]Median within-army SD
Kill+0.13 [+0.08, +0.19]1 (the yardstick)16/16+0.11 [+0.04, +0.21]1 (the yardstick)0.72
Kill share into tanks and monsters−0.01 [−0.05, +0.05]−0.04 [−0.38, +0.44]9/16−0.03 [−0.11, +0.03]−0.30 [−1.44, +0.25]0.14
Kill share into characters−0.05 [−0.09, +0.02]−0.35 [−0.78, +0.10]14/16−0.02 [−0.09, +0.06]−0.14 [−1.18, +0.63]0.15
Kill share into hordes+0.00 [−0.05, +0.05]+0.02 [−0.38, +0.47]8/16−0.04 [−0.11, +0.04]−0.32 [−1.45, +0.43]0.08
Melee share of Kill+0.01 [−0.05, +0.07]+0.05 [−0.37, +0.53]9/16+0.03 [−0.05, +0.11]+0.28 [−0.48, +1.31]0.48
Soak−0.03 [−0.07, +0.04]−0.22 [−0.61, +0.26]12/16−0.04 [−0.12, +0.06]−0.31 [−1.97, +0.64]0.47
OC per 100 points+0.10 [+0.04, +0.14]+0.77 [+0.34, +1.39]16/16+0.28 [+0.19, +0.36]+2.41 [+1.03, +7.39]0.67
Move+0.08 [+0.02, +0.13]+0.59 [+0.16, +1.27]14/16+0.07 [−0.01, +0.14]+0.59 [−0.08, +2.44]2.93
Deep Strike or reserves+0.08 [+0.02, +0.13]+0.61 [+0.14, +1.21]15/16+0.06 [−0.02, +0.15]+0.53 [−0.22, +2.96]0.45
Infiltrators or Scouts+0.03 [−0.02, +0.08]+0.20 [−0.13, +0.81]11/15+0.06 [−0.02, +0.15]+0.51 [−0.17, +2.13]0.34
Lone Operative or Stealth+0.05 [−0.01, +0.10]+0.39 [−0.06, +0.91]11/13+0.09 [+0.00, +0.16]+0.77 [−0.02, +2.61]0.25
Fly−0.13 [−0.16, −0.06]−0.97 [−1.62, −0.39]14/15−0.10 [−0.17, −0.02]−0.86 [−2.95, −0.10]0.35
Leader (can join a squad)−0.03 [−0.07, +0.03]−0.21 [−0.56, +0.19]14/16−0.01 [−0.08, +0.07]−0.07 [−0.98, +0.81]0.40
What the squad gains+0.02 [−0.03, +0.08]+0.18 [−0.32, +0.62]12/16+0.04 [−0.03, +0.13]+0.38 [−0.39, +1.52]0.33
Army-rule enabler+0.07 [+0.03, +0.11]+0.52 [+0.25, +0.95]8/9+0.09 [+0.01, +0.18]+0.80 [+0.04, +2.18]0.39
Synapse or aura carrier−0.01 [−0.06, +0.06]−0.08 [−0.47, +0.46]9/14−0.01 [−0.10, +0.08]−0.11 [−1.03, +0.70]0.26
Battle-shock pressure−0.05 [−0.10, +0.00]−0.38 [−0.87, +0.01]14/15−0.09 [−0.18, +0.01]−0.75 [−2.44, +0.13]0.34
Transport capacity−0.00 [−0.05, +0.05]−0.03 [−0.46, +0.39]7/14−0.06 [−0.15, +0.03]−0.48 [−2.15, +0.26]0.75
Points (relative to its army)+0.05 [+0.00, +0.11]+0.39 [+0.01, +1.03]13/16−0.00 [−0.09, +0.07]−0.03 [−0.97, +0.92]0.50
Epic Hero+0.11 [+0.04, +0.15]+0.81 [+0.35, +1.54]15/15+0.09 [−0.00, +0.17]+0.80 [−0.01, +3.33]0.33
Psyker+0.09 [+0.02, +0.15]+0.70 [+0.19, +1.42]14/14+0.03 [−0.04, +0.12]+0.28 [−0.37, +1.56]0.22
Indirect fire−0.03 [−0.10, +0.01]−0.27 [−0.78, +0.12]7/9−0.06 [−0.17, +0.03]−0.50 [−2.14, +0.29]0.19
Sibling datasheet present+0.01 [−0.05, +0.07]+0.11 [−0.41, +0.57]8/13+0.02 [−0.07, +0.10]+0.20 [−0.76, +0.96]0.29
Character+0.01 [−0.03, +0.06]+0.11 [−0.23, +0.56]11/16+0.04 [−0.03, +0.11]+0.31 [−0.39, +1.62]0.47
Placebo (random)+0.02 [−0.04, +0.08]+0.16 [−0.30, +0.74]11/16+0.06 [−0.03, +0.12]+0.49 [−0.42, +1.48]0.97

Where armies differ (reviewers): per army, the size of its deviations (root mean square of δ over the variables) and its largest deviations whose bootstrap interval leaves 0 (at most four, |δ| ≥ 0.03). Calibration: the placebo's deviation clears 0 in 0 of 16 armies, so a single clear deviation is weak evidence.

ArmyDeviation sizeLargest clear deviations (shared → this army)
Tyranids0.098Infiltrators or Scouts +0.03 → +0.20; Fly −0.13 → −0.30; Kill +0.13 → +0.27; Psyker +0.09 → +0.21
Space Marines0.084OC per 100 points +0.10 → +0.28; Kill share into tanks and monsters −0.01 → −0.18
Genestealer Cults0.074Battle-shock pressure −0.05 → −0.21; Kill share into hordes +0.00 → +0.14; Melee share of Kill +0.01 → −0.11; Kill share into characters −0.05 → −0.17
Astra Militarum0.072Points (relative to its army) +0.05 → +0.21; Kill share into tanks and monsters −0.01 → +0.15; Soak −0.03 → +0.11; Move +0.08 → +0.19
World Eaters0.065OC per 100 points +0.10 → +0.24; Fly −0.13 → −0.26; Kill +0.13 → +0.22
Dark Angels0.062Fly −0.13 → +0.03; Soak −0.03 → −0.17; Melee share of Kill +0.01 → −0.09; Character +0.01 → −0.06
Orks0.054Kill share into characters −0.05 → −0.15; Transport capacity −0.00 → −0.08; Army-rule enabler +0.07 → +0.14
Death Guard0.051Deep Strike or reserves +0.08 → +0.20; Move +0.08 → −0.02; Psyker +0.09 → +0.17
Leagues of Votann0.045What the squad gains +0.02 → −0.05; Move +0.08 → +0.14; Leader (can join a squad) −0.03 → −0.09; Melee share of Kill +0.01 → −0.05
Adeptus Mechanicus0.044Kill share into tanks and monsters −0.01 → +0.08; Soak −0.03 → +0.03
Blood Angels0.042Epic Hero +0.11 → +0.20; Fly −0.13 → −0.05; Move +0.08 → +0.15; OC per 100 points +0.10 → +0.05
Thousand Sons0.039Army-rule enabler +0.07 → +0.12; Psyker +0.09 → +0.15
Drukhari0.035none clear
Agents of the Imperium0.033Melee share of Kill +0.01 → +0.10; Soak −0.03 → −0.09
Emperor's Children0.032Battle-shock pressure −0.05 → −0.13
Space Wolves0.030none clear

Leave one army out, against Track A

Fitted on 15 armies (shared coefficients only, λβ chosen inside the 15), the 16th army's order predicted and scored on its consensus pairs; Track A's Value on the same pairs (ties wrong). Tyranids: Track A was tuned on them.

Army (11e lists)Consensus pairsTrack AReadable modelΔKill aloneModel + Track A's Valueλβ chosen
Tyranids (3)75789.268.6−20.671.774.230
Space Marines (2)190463.359.9−3.468.562.1100
Adeptus Mechanicus (1)32271.457.1−14.359.658.4100
Agents of the Imperium (1)22356.564.1+7.664.161.4100
Astra Militarum (1)131967.955.6−12.459.356.5100
Blood Angels (1)12461.355.6−5.649.259.7100
Dark Angels (1)232553.651.4−2.257.251.8100
Death Guard (1)47655.055.0+0.046.257.1100
Drukhari (1)20758.061.4+3.467.164.3100
Emperor's Children (1)19169.658.6−11.063.461.3100
Genestealer Cults (2)12754.366.1+11.855.168.5100
Leagues of Votann (1)10561.048.6−12.460.051.4100
Orks (1)60663.569.5+5.961.769.6100
Space Wolves (1)14050.757.1+6.443.657.9100
Thousand Sons (1)30938.265.0+26.942.462.5100
World Eaters (3)21976.767.6−9.170.377.2100
Army mean, 1661.960.1−1.858.762.1
Army mean, 15 (no Tyranids)60.159.5−0.657.961.3
Every pair pooled935462.558.5−4.060.860.1

The model beats Track A in 6 of 16 armies. Without the placebo column: army mean 60.0.

The scrambled-letter control

Letters permuted among each army's graded units (all its lists together), 20 seeds, through the identical leave-one-army-out pipeline.

Readable model (army mean)Track A on the same scrambled pairs
Real letters60.161.9
Scrambled, mean of 2050.749.9
Scrambled, range46.1 – 54.746.2 – 54.7

The placebo column (random per unit): β +0.02 [−0.04, +0.08], 0 armies with a deviation clear of 0.

List share, held out (discovery only)

The same model on 11th-edition list share (pairs: one unit taken by 2 or more lists more than the other; armies with 5+ tournament lists). grimstat-corpus (https://github.com/N041M/grimstat-corpus, CC BY 4.0); counts only.

Army (tournament lists)Share pairsTrack AReadable model
Tyranids (27)108579.866.0
Space Marines (33)243263.763.0
Adeptus Mechanicus (18)33663.157.1
Astra Militarum (17)120862.368.4
Blood Angels (14)13148.143.5
Dark Angels (28)203354.663.2
Death Guard (19)46061.351.5
Drukhari (14)20548.350.7
Emperor's Children (24)20758.548.8
Genestealer Cults (5)15668.668.6
Leagues of Votann (15)12458.147.6
Orks (27)80462.871.6
Space Wolves (12)15155.048.3
Thousand Sons (9)26344.970.7
World Eaters (16)34968.559.3
Army mean59.858.6

The variables (version 1)

KeyNameDefinitionlog(1 + x)
killKillpoints of enemy removed per 100 points of the unit in a turn (the ledger's ranged Kill plus melee Kill after the charge's landing share), Track A formyes
antiTankKill share into tanks and monstersshare of its Kill (β 6 class split) that lands on monsters, heavy and light vehicles
antiCharKill share into charactersshare of its Kill that lands on characters
antiHordeKill share into hordesshare of its Kill that lands on chaff infantry (elites, the remainder, are the reference)
meleeMelee share of Killmelee Kill ÷ (ranged + melee Kill)
soakSoakenemy points per 100 needed to remove it: the geometric mean of shooting and melee Soak per 100 of its pointsyes
ocOC per 100 pointsmodels × Objective Control per 100 pointsyes
moveMoveMove characteristic, inches
deepStrikeDeep Strike or reservesDeep Strike, or an arrival rule of its own (unitfx kind arrival) (1/0)
forwardInfiltrators or Scoutsdeploys forward: Infiltrators or Scouts (1/0)
hiddenLone Operative or Stealthhard to target: Lone Operative or Stealth (1/0)
flyFlythe Fly keyword (1/0)
leaderLeader (can join a squad)the Leader rule or a datasheet it can lead (1/0)
leaderGivesWhat the squad gainsa leader's gifts to its squad: dice effects it gives (leaderfx.json, count) plus 1 for a non-dice rule through the squad (characters.json leadOther); 0 for non-leadersyes
enablerArmy-rule enablertools/armyrules.json names it a giver or extender of its army's rule, or a carrier where under half the army carries it (Synapse, Officers, Cabal, Waaagh! bosses) (1/0)
auraSynapse or aura carrierSynapse, or an aura of its own (unitfx aura; characters.json aura or synapse) (1/0)
shockBattle-shock pressurea rule of its own forcing or worsening enemy Battle-shock (unitfx kind shock; characters.json shock or shockAmp) (1/0)
transportTransport capacitymodels it can carry (0 = none)yes
pointsPoints (relative to its army)points of its Track A form; standardised within the army, so relative to the army's median and spreadyes
epicEpic Herothe Epic Hero keyword (1/0)
psykerPsykerthe Psyker keyword (1/0)
indirectIndirect firecarries an Indirect Fire weapon (1/0)
siblingSibling datasheet presentanother unit of its army's ledger is of the same datasheet family by name (Hive Tyrant and Winged Hive Tyrant) (1/0)
characterCharacterthe Character keyword (1/0); separates leaders' worth from being a character at all
placeboPlacebo (random)a seeded random normal per unit: should come out at 0