5 Oct 2026. Discovery, not adoption: no ledger value, setting, letter or page moves. Version 1 (reports/tiers/2026-10-05-readable-model.md) is unchanged and reproducible (tools/readable.js --v1). The units, pairs, model, shrinkage, bootstrap, controls and the frozen snapshot (d8b5a1bb14, inputs hash c5e7d85b43f8) are version 1's. Only the variables are new: design/jobs.md's priorities 1 to 25 (T-707), five interactions and seven saturation ranks. Track A is step 34b (wCarry 0).
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.
- The same 595 graded units (733 ranked) and 9,354 consensus pairs as version 1. Single-list armies count at half weight.
- 42 columns:
- jobs.md's 25 jobs (two of them, the army-rule engine and the transport, in two parts), plus three parts of their recipes: points, Fly and "can be Hidden";
- five interactions players reason about;
- seven saturation ranks (is it the army's best at a job that a list fills once or twice?);
- a placebo.
- Each column is measured against the unit's own army (one army-SD), as in version 1.
- All 25 jobs were built. The five marked "partly" in jobs.md got these small proxies:
- the army-rule engine: armyrules.json's enabler flag, plus the friends' Kill each unit is measured to add (Synapse coverage and support effects);
- the action-doer: an action's price (the field's primary action lines × points a VP) less the ranged Kill it gives up;
- VP denial: the kill-card VP a unit hands over when it dies, per point;
- mitigation: heal and leave-and-return (Tyranids and Space Marines only), Feel No Pain and heal or spawn rules;
- screening: units per point that still cost about one enemy unit's firepower to clear.
- Left out as too much for this pass: OC removed per activation, turn-one objective reach, the transport's protection, the screen's field-arrival share and a unit's chance of dying in a game. Each needs a new field from burst.js or deployments.json.
Does version 2 learn more than version 1? No. It reshuffles where the signal is found, but no more of it transfers.
- Leaving each army out and predicting its order from the other 15 (army mean, 16 armies):
| | Army mean, 16 | 15 (no Tyranids) | Every pair pooled | |---|---:|---:|---:| | Track A | 61.9 | 60.1 | 62.5 | | Version 1 | 60.1 | 59.5 | 58.5 | | Version 2 | 59.8 | 58.9 | 59.7 | | Version 2, main effects only | 59.7 | 58.6 | 60.2 | | Burst alone | 58.2 | 57.4 | 59.6 | | Version 2 + Epic Hero and Psyker (version 1's flags) | 61.9 | 61.1 | 60.6 | | Version 2 + Track A's Value | 60.4 | 59.4 | 60.3 |
- Scrambled letters through the identical pipeline give 50.2 (20 seeds, range 45.7 to 55.0; none reaches 59.8). The placebo comes out at +0.01 [−0.01, +0.04], with no army's deviation clear of 0. So the signal is real and it transfers, but it is the same ~60% ceiling as version 1 and T-635's 341 variables.
- The interactions and the saturation ranks add nothing held out: the main effects alone score 59.7, the same as the full model.
- The two flags jobs.md left out matter most. Adding version 1's Epic Hero and Psyker back lifts version 2 by 2.1 points, level with Track A (61.9). Without the Tyranids it beats Track A (61.1 against 60.1). Thousand Sons alone go from 55.0 to 67.6. Jobs.md has no "named character the army is built around" variable; this says it should.
- Beside Track A's Value, version 2 does worse than version 1 did (60.4 against 62.1). With 42 columns the chosen shrinkage is three times heavier (λβ 300 against 100), and Value's own weight is shrunk with the rest.
- By army, version 2 beats version 1 in 8 of 16 armies and Track A in 7:
- better: Leagues of Votann +11.4, World Eaters +6.4, Space Marines +5.4, Orks +5.0, Emperor's Children +4.7, Astra Militarum +3.9, Tyranids +3.6;
- worse: Blood Angels −25.0 (124 pairs, one list: 30.6%, worse than chance), Thousand Sons −10.0 (Psyker carried them), Adeptus Mechanicus −6.8, Death Guard −3.6.
- List share is where version 2 adds. Held out it predicts players' picks at 61.2%, against version 1's 58.6 and Track A's 59.8. Its board variables (OC, holding, command points, squads a leader lifts) are what players take.
What reviewers appear to value. Each figure is the weight per army-SD (β) with its 95% bootstrap interval and the share of 200 bootstraps above 0. Burst shares its credit with the four target-class Bursts, which correlate with it at 0.7 to 0.9, so read the damage block together.
- Clearly valued (interval above 0):
- Damage into the hard targets: anti-tank +0.05 [+0.03, +0.06], 16 of 16 armies the same sign; anti-elite +0.04 [+0.02, +0.05], 16 of 16;
- horde clearing +0.03 and Burst +0.02;
- character hunting +0.01 [+0.00, +0.03];
- reserves and Deep Strike +0.04 [+0.01, +0.06];
- the army-rule enabler +0.03 [+0.02, +0.05];
- can be Hidden (all Infantry, Beasts or Swarm) +0.03 [+0.01, +0.05];
- command points +0.03 [+0.00, +0.05];
- being the army's best horde-clearer, beyond the amount (saturation rank) +0.03 [+0.01, +0.04]; the best anti-tank unit +0.02 (97% above 0).
- Clearly marked down:
- Fly −0.04 [−0.06, −0.01] (13 of 15 armies), as in version 1;
- the cheapest bodies and the cheapest action-doers of each army, beyond what their cheapness and OC say: saturation ranks −0.03 [−0.04, −0.01] (15 of 16 armies) and −0.03 [−0.04, −0.01] (16 of 16). Reviewers don't reward being the army's cheapest unit. The opposite of jobs.md's "cheap activations" hypothesis, at least for letters.
- Leaning, 85 to 97% of draws above 0:
- OC kept steady +0.02;
- holding power +0.02;
- hard to target +0.02;
- forward deployment +0.02;
- the engine measured +0.02;
- durability × OC +0.02;
- transport × rider +0.01;
- points +0.01;
- list dependence +0.01.
- No sign either way:
- durability per point on its own (14% above 0, leaning down);
- melee delivery;
- threat range;
- transport capacity;
- slot competition among siblings (13%, leaning down as expected, but weak);
- Battle-shock pressure;
- the action-doer;
- VP denial;
- mitigation;
- screening;
- Burst × Soak;
- delivery × melee damage (6%, leaning down).
- "Unlocks a squad": +0.01 [−0.01, +0.03] (84%), and the squad's side +0.00. The package synergy, measured as jobs.md asked, carries little for reviewers. T-705's stated tag (+1.0 letter) is on 21 units, so the reason is real for those units, but our joined-form Value doesn't pick out which leaders reviewers mean.
Where reviewers and players differ (the same model on list share; read as leans):
- Players take what leaders lift: the squad's side of the leader package is +0.10 [+0.06, +0.14] for list share, 0.00 for reviewers, and the leader's side +0.04 against +0.01. Lists are built around joined pairs more than letters show.
- Players weigh board control more:
- OC kept steady +0.07 against +0.02;
- holding power +0.06 against +0.02;
- command points +0.09 against +0.03;
- durability × OC +0.05 against +0.02;
- hard to target +0.06 against +0.02.
- Players take units that need one detachment more: list dependence +0.06 against +0.01. A list built for a detachment takes its specialists.
- Both value the damage block, reserves, Hidden and enablers about equally. Both mark down Fly and the cheapest bodies' and action-doers' rank.
- Reviewers lean on points (+0.01) and players don't (0.00), as in version 1.
Which armies differ (the clearest deviations; the placebo's clears 0 in none of the 16):
- Space Marines: durability × OC, anti-elite, horde clearing and screening count more.
- Tyranids: Fly is marked down harder; forward deployment, anti-tank and command points count more.
- World Eaters: anti-elite and Hidden count more, and Fly is marked down harder.
- Astra Militarum: anti-tank and durability count more; action-doers and cheap bodies count less.
- Genestealer Cults: OC counts more; melee delivery and the cheapest bodies count less.
- Dark Angels: Fly is not marked down; durability is marked down.
- Orks: enablers (the bosses) count about four times the shared weight.
- Death Guard: Deep Strike counts about four times the shared weight.
Read with care.
- Heavy shrinkage (λβ 300) and strongly correlated columns share credit:
- OC kept steady with holding power (0.99 within armies);
- cheap activations with screening and points (0.85, −0.89);
- the Bursts with each other;
- transport with transport × rider. Read a group's signs together, not one column alone.
- Saturation ranks are reciprocal ranks (1, ½, ⅓…): they reward the army's top unit at a job. A negative weight on the cheapest-body rank says the army's single cheapest unit grades below its measured worth.
- The interactions are products of the two parts' within-army z-scores, so a unit low on both scores positive.
- 12 of 16 armies have one 11th-edition list. Blood Angels' collapse rests on 124 pairs from one reviewer.
- Recipes chosen alone are listed in the handoff (reports/handoff.md). They include the 30 points a CP, the kill cards' VP and the 1.2 for a heal or spawn rule.
- What it suggests (Jordan's call; nothing adopted):
- jobs.md's variables explain list share better than version 1's, and reviewers no better;
- the one thing they miss is the named centrepiece (Epic Hero, Psyker);
- a version 3 might keep version 2's main effects, add a "centrepiece" variable and drop the interactions and most saturation ranks, which add nothing held out.
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-v2.json --md <file>runs in about 12.5 minutes on one thread.- The sections below are the tool's
--mdoutput; 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) and the share of draws above 0. Burst, version 2's nearest to Kill, shares its credit with the four target-class Bursts (correlation 0.7 to 0.9 within armies), so its own β is small and ratios to it are unstable; read the β themselves (the JSON keeps the ratios). Reviewers: λβ 300, λδ 30. List share (grimstat-corpus, CC BY 4.0; discovery only): λβ 300, λδ 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).
| Variable | Kind | Reviewers β [95%] | Reviewers P(β > 0) | Armies same sign | List share β [95%] | List share P(β > 0) | Median within-army SD |
|---|---|---|---|---|---|---|---|
| Burst | +0.02 [+0.01, +0.04] | 100% | 12/16 | +0.03 [+0.00, +0.06] | 99% | 0.70 | |
| Anti-tank | +0.05 [+0.03, +0.06] | 100% | 16/16 | +0.03 [+0.00, +0.07] | 99% | 1.09 | |
| Anti-elite | +0.04 [+0.02, +0.05] | 100% | 16/16 | +0.04 [+0.01, +0.06] | 100% | 1.08 | |
| Horde clearing | +0.03 [+0.01, +0.05] | 100% | 14/16 | +0.04 [+0.01, +0.07] | 98% | 1.16 | |
| Durability per point | −0.02 [−0.03, +0.01] | 14% | 12/16 | −0.03 [−0.07, +0.02] | 17% | 0.47 | |
| OC per point, kept steady | +0.02 [−0.00, +0.03] | 97% | 12/16 | +0.07 [+0.04, +0.10] | 100% | 0.57 | |
| Unlocks a squad | +0.01 [−0.01, +0.03] | 84% | 10/16 | +0.04 [+0.01, +0.08] | 100% | 3.04 | |
| Forward deployment | +0.02 [−0.00, +0.04] | 91% | 12/15 | +0.04 [−0.01, +0.08] | 96% | 0.34 | |
| Reserves and Deep Strike | +0.04 [+0.01, +0.06] | 100% | 14/16 | +0.04 [+0.00, +0.09] | 98% | 0.45 | |
| Hard to target | +0.02 [−0.00, +0.04] | 94% | 11/13 | +0.06 [+0.01, +0.10] | 99% | 0.25 | |
| Can be Hidden | +0.03 [+0.01, +0.05] | 100% | 13/16 | +0.05 [+0.01, +0.09] | 100% | 0.49 | |
| Melee delivery | −0.00 [−0.02, +0.02] | 54% | 9/16 | +0.02 [−0.02, +0.06] | 89% | 0.42 | |
| Threat range | +0.00 [−0.02, +0.02] | 48% | 9/16 | −0.00 [−0.04, +0.04] | 39% | 0.47 | |
| Fly | −0.04 [−0.06, −0.01] | 1% | 13/15 | −0.03 [−0.07, +0.02] | 10% | 0.35 | |
| Cheap activations | −0.01 [−0.03, +0.00] | 5% | 11/16 | −0.01 [−0.03, +0.02] | 30% | 0.23 | |
| Holding power | +0.02 [−0.00, +0.03] | 97% | 11/16 | +0.06 [+0.03, +0.10] | 100% | 0.64 | |
| Army-rule enabler | +0.03 [+0.02, +0.05] | 100% | 7/9 | +0.05 [+0.01, +0.09] | 100% | 0.39 | |
| Engine, measured | +0.02 [−0.00, +0.04] | 95% | 5/8 | +0.02 [−0.03, +0.06] | 75% | 0.35 | |
| Transport | +0.00 [−0.02, +0.02] | 50% | 8/14 | −0.02 [−0.06, +0.02] | 13% | 0.75 | |
| Slot competition (siblings) | −0.01 [−0.04, +0.01] | 13% | 10/13 | +0.02 [−0.04, +0.06] | 70% | 0.04 | |
| Battle-shock pressure | −0.01 [−0.02, +0.01] | 15% | 3/6 | +0.00 [−0.04, +0.05] | 53% | 0.84 | |
| Command points | +0.03 [+0.00, +0.05] | 99% | 12/14 | +0.09 [+0.04, +0.12] | 100% | 1.00 | |
| Character hunting | +0.01 [+0.00, +0.03] | 99% | 11/16 | +0.02 [−0.00, +0.06] | 96% | 0.66 | |
| Action-doer | −0.00 [−0.02, +0.02] | 42% | 9/16 | +0.03 [−0.01, +0.06] | 92% | 1.80 | |
| VP denial | −0.00 [−0.02, +0.02] | 55% | 9/16 | +0.00 [−0.03, +0.04] | 51% | 0.64 | |
| Mitigation and recursion | +0.00 [−0.03, +0.03] | 63% | 10/16 | +0.02 [−0.02, +0.07] | 83% | 0.11 | |
| List dependence | +0.01 [−0.02, +0.04] | 86% | 10/15 | +0.06 [+0.01, +0.10] | 100% | 0.09 | |
| Screening | −0.00 [−0.02, +0.01] | 30% | 9/16 | +0.03 [−0.01, +0.06] | 94% | 0.21 | |
| Points (relative to its army) | +0.01 [−0.01, +0.03] | 89% | 10/16 | −0.00 [−0.03, +0.02] | 42% | 0.51 | |
| × Delivery × melee damage | interaction | −0.02 [−0.04, +0.01] | 6% | 11/16 | −0.01 [−0.05, +0.03] | 34% | 0.89 |
| × Leader × squad (the squad's side) | interaction | +0.00 [−0.02, +0.03] | 74% | 8/16 | +0.10 [+0.06, +0.14] | 100% | 2.78 |
| × Durability × OC | interaction | +0.02 [−0.00, +0.05] | 94% | 13/16 | +0.05 [+0.00, +0.09] | 98% | 0.77 |
| × Transport × rider | interaction | +0.01 [−0.01, +0.03] | 90% | 9/13 | +0.00 [−0.04, +0.04] | 49% | 1.58 |
| × Burst × Soak | interaction | −0.00 [−0.03, +0.02] | 48% | 8/16 | +0.01 [−0.04, +0.05] | 60% | 1.05 |
| Saturation: anti-tank rank | saturation | +0.02 [−0.00, +0.04] | 97% | 12/16 | +0.03 [−0.01, +0.07] | 91% | 0.18 |
| Saturation: anti-elite rank | saturation | +0.02 [−0.01, +0.03] | 94% | 12/16 | +0.01 [−0.04, +0.05] | 66% | 0.18 |
| Saturation: horde-clearing rank | saturation | +0.03 [+0.01, +0.04] | 100% | 13/16 | +0.02 [−0.03, +0.05] | 75% | 0.18 |
| Saturation: character-hunting rank | saturation | −0.01 [−0.03, +0.01] | 21% | 9/16 | −0.02 [−0.06, +0.02] | 21% | 0.18 |
| Saturation: cheap-activation rank | saturation | −0.03 [−0.04, −0.01] | 0% | 15/16 | −0.04 [−0.06, −0.00] | 1% | 0.19 |
| Saturation: screening rank | saturation | +0.00 [−0.02, +0.02] | 50% | 9/16 | +0.01 [−0.03, +0.04] | 70% | 0.18 |
| Saturation: action-doer rank | saturation | −0.03 [−0.04, −0.01] | 0% | 16/16 | −0.04 [−0.06, +0.00] | 3% | 0.19 |
| Placebo (random) | +0.01 [−0.01, +0.04] | 83% | 11/16 | +0.04 [−0.01, +0.08] | 91% | 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.
| Army | Deviation size | Largest clear deviations (shared → this army) |
|---|---|---|
| Space Marines | 0.086 | × Durability × OC +0.02 → +0.16; Anti-elite +0.04 → +0.18; Horde clearing +0.03 → +0.17; Screening −0.00 → +0.12 |
| Tyranids | 0.078 | Fly −0.04 → −0.19; Forward deployment +0.02 → +0.16; Anti-tank +0.05 → +0.18; Command points +0.03 → +0.15 |
| World Eaters | 0.058 | Anti-elite +0.04 → +0.17; Can be Hidden +0.03 → +0.16; Fly −0.04 → −0.15; Horde clearing +0.03 → +0.14 |
| Astra Militarum | 0.058 | Action-doer −0.00 → −0.14; Anti-tank +0.05 → +0.16; Durability per point −0.02 → +0.09; Cheap activations −0.01 → −0.11 |
| Genestealer Cults | 0.057 | Melee delivery −0.00 → −0.11; Saturation: cheap-activation rank −0.03 → −0.13; Saturation: action-doer rank −0.03 → −0.13; OC per point, kept steady +0.02 → +0.11 |
| Dark Angels | 0.055 | Fly −0.04 → +0.12; Durability per point −0.02 → −0.15; Engine, measured +0.02 → +0.11; Threat range +0.00 → +0.08 |
| Orks | 0.046 | Army-rule enabler +0.03 → +0.12; List dependence +0.01 → −0.07; Points (relative to its army) +0.01 → +0.09; Saturation: anti-tank rank +0.02 → +0.09 |
| Death Guard | 0.042 | Reserves and Deep Strike +0.04 → +0.17; × Delivery × melee damage −0.02 → +0.09; Threat range +0.00 → −0.08; Action-doer −0.00 → +0.05 |
| Blood Angels | 0.039 | Fly −0.04 → +0.03; Command points +0.03 → −0.04; Screening −0.00 → −0.06; × Delivery × melee damage −0.02 → +0.03 |
| Adeptus Mechanicus | 0.036 | Durability per point −0.02 → +0.04 |
| Thousand Sons | 0.035 | Character hunting +0.01 → −0.05; List dependence +0.01 → +0.08; Army-rule enabler +0.03 → +0.09; × Delivery × melee damage −0.02 → +0.04 |
| Drukhari | 0.035 | Action-doer −0.00 → +0.08; Saturation: anti-elite rank +0.02 → +0.05 |
| Leagues of Votann | 0.035 | Saturation: screening rank +0.00 → −0.08; × Leader × squad (the squad's side) +0.00 → +0.08; Screening −0.00 → −0.07; Threat range +0.00 → +0.06 |
| Agents of the Imperium | 0.034 | Mitigation and recursion +0.00 → −0.09; Melee delivery −0.00 → +0.08; Durability per point −0.02 → −0.09; Saturation: cheap-activation rank −0.03 → −0.10 |
| Emperor's Children | 0.030 | Saturation: anti-tank rank +0.02 → +0.08; Saturation: character-hunting rank −0.01 → +0.04 |
| Space Wolves | 0.028 | × Leader × squad (the squad's side) +0.00 → −0.05 |
Leave one army out: version 2 against version 1 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). Version 1 is the same pipeline on version 1's 25 variables. Tyranids: Track A was tuned on them.
| Army (11e lists) | Consensus pairs | Track A | Version 1 | Version 2 | v2 − v1 | v2 − Track A | Burst alone | v2 main effects only | v2 + Epic Hero, Psyker | v2 + Track A's Value |
|---|---|---|---|---|---|---|---|---|---|---|
| Tyranids (3) | 757 | 89.2 | 68.6 | 72.1 | +3.6 | −17.0 | 69.7 | 76.4 | 73.8 | 74.0 |
| Space Marines (2) | 1904 | 63.3 | 59.9 | 65.3 | +5.4 | +2.0 | 68.4 | 63.9 | 65.8 | 65.7 |
| Adeptus Mechanicus (1) | 322 | 71.4 | 57.1 | 50.3 | −6.8 | −21.1 | 59.0 | 52.5 | 53.4 | 52.2 |
| Agents of the Imperium (1) | 223 | 56.5 | 64.1 | 64.1 | +0.0 | +7.6 | 65.0 | 61.0 | 66.4 | 62.3 |
| Astra Militarum (1) | 1319 | 67.9 | 55.6 | 59.4 | +3.9 | −8.5 | 58.8 | 61.9 | 57.4 | 60.0 |
| Blood Angels (1) | 124 | 61.3 | 55.6 | 30.6 | −25.0 | −30.6 | 41.9 | 33.9 | 44.4 | 34.7 |
| Dark Angels (1) | 2325 | 53.6 | 51.4 | 49.8 | −1.5 | −3.8 | 51.5 | 50.6 | 49.5 | 50.8 |
| Death Guard (1) | 476 | 55.0 | 55.0 | 51.5 | −3.6 | −3.6 | 52.9 | 52.7 | 54.8 | 52.7 |
| Drukhari (1) | 207 | 58.0 | 61.4 | 64.3 | +2.9 | +6.3 | 64.3 | 58.9 | 63.8 | 64.3 |
| Emperor's Children (1) | 191 | 69.6 | 58.6 | 63.4 | +4.7 | −6.3 | 62.8 | 61.3 | 63.4 | 63.9 |
| Genestealer Cults (2) | 127 | 54.3 | 66.1 | 65.4 | −0.8 | +11.0 | 52.8 | 58.3 | 67.7 | 63.0 |
| Leagues of Votann (1) | 105 | 61.0 | 48.6 | 60.0 | +11.4 | −1.0 | 51.4 | 57.1 | 54.3 | 61.9 |
| Orks (1) | 606 | 63.5 | 69.5 | 74.4 | +5.0 | +10.9 | 65.7 | 74.1 | 76.7 | 73.8 |
| Space Wolves (1) | 140 | 50.7 | 57.1 | 56.4 | −0.7 | +5.7 | 53.6 | 65.7 | 56.4 | 55.7 |
| Thousand Sons (1) | 309 | 38.2 | 65.0 | 55.0 | −10.0 | +16.8 | 41.4 | 53.7 | 67.6 | 52.8 |
| World Eaters (3) | 219 | 76.7 | 67.6 | 74.0 | +6.4 | −2.7 | 72.1 | 74.0 | 75.3 | 78.1 |
| Army mean, 16 | 61.9 | 60.1 | 59.8 | −0.3 | −2.1 | 58.2 | 59.7 | 61.9 | 60.4 | |
| Army mean, 15 (no Tyranids) | 60.1 | 59.5 | 58.9 | −0.6 | −1.1 | 57.4 | 58.6 | 61.1 | 59.4 | |
| Every pair pooled | 9354 | 62.5 | 58.5 | 59.7 | +1.2 | −2.8 | 59.6 | 60.2 | 60.6 | 60.3 |
Version 2 beats Track A in 7 of 16 armies (version 1: 6), and version 1 in 8 of 16. Without the placebo column: army mean 60.0. Beside Track A's Value, version 2 beats Track A alone in 9 of 16 armies.
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, version 2's variables.
| Version 2 (army mean) | Track A on the same scrambled pairs | |
|---|---|---|
| Real letters | 59.8 | 61.9 |
| Scrambled, mean of 20 | 50.2 | 49.9 |
| Scrambled, range | 45.7 – 55.0 | 46.2 – 54.7 |
Scrambled seeds at or above the real letters' 59.8: 0 of 20.
The placebo column (random per unit): β +0.01 [−0.01, +0.04], 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 pairs | Track A | Version 1 | Version 2 |
|---|---|---|---|---|
| Tyranids (27) | 1085 | 79.8 | 66.0 | 66.5 |
| Space Marines (33) | 2432 | 63.7 | 63.0 | 70.0 |
| Adeptus Mechanicus (18) | 336 | 63.1 | 57.1 | 50.9 |
| Astra Militarum (17) | 1208 | 62.3 | 68.4 | 70.9 |
| Blood Angels (14) | 131 | 48.1 | 43.5 | 45.8 |
| Dark Angels (28) | 2033 | 54.6 | 63.2 | 58.7 |
| Death Guard (19) | 460 | 61.3 | 51.5 | 61.5 |
| Drukhari (14) | 205 | 48.3 | 50.7 | 57.6 |
| Emperor's Children (24) | 207 | 58.5 | 48.8 | 59.4 |
| Genestealer Cults (5) | 156 | 68.6 | 68.6 | 55.8 |
| Leagues of Votann (15) | 124 | 58.1 | 47.6 | 54.8 |
| Orks (27) | 804 | 62.8 | 71.6 | 75.9 |
| Space Wolves (12) | 151 | 55.0 | 48.3 | 53.0 |
| Thousand Sons (9) | 263 | 44.9 | 70.7 | 68.8 |
| World Eaters (16) | 349 | 68.5 | 59.3 | 67.9 |
| Army mean | 59.8 | 58.6 | 61.2 |
The variables (version 2: design/jobs.md priorities 1 to 25, T-707)
| Key | Name | Kind | Definition |
|---|---|---|---|
| burst | Burst | main | log(1 + points finished in one activation of its natural mode, per 100 of its points; form.burst.value, T-644) |
| antiTank | Anti-tank | main | log(1 + Burst into monsters, vehicles and aircraft with the typical army's characters attached; form.prefer.tank, T-655) |
| antiElite | Anti-elite | main | log(1 + Burst into heavy and elite infantry, cavalry and beasts; form.prefer.elite) |
| antiHorde | Horde clearing | main | log(1 + Burst into chaff; form.prefer.horde) |
| tough | Durability per point | main | log(1 + Soak): the geometric mean of shooting and melee Soak at β 6 (enemy points per 100 of its points to remove it) |
| oc | OC per point, kept steady | main | log(1 + OC per 100 points × P(2D6 ≥ its Leadership), so a unit likely to fail Battle-shock holds less) |
| unlock | Unlocks a squad | main | a leader's package: its best joined form's Value × points less the squad's and the leader's own solo Values × points (same detachment, same squad size), per 100 of the leader's points, signed log; 0 for non-leaders |
| forward | Forward deployment | main | Infiltrators or Scouts (1/0) |
| reserves | Reserves and Deep Strike | main | Deep Strike, an arrival rule of its own, or an arrival way in the ledger other than Scouts and Infiltrators (rapid ingress, tunnels, reserves, aerial seeding...) (1/0) |
| elusive | Hard to target | main | Lone Operative or Stealth (1/0) |
| hide | Can be Hidden | main | every member Infantry, Beasts or Swarm, so it may be Hidden in terrain when it hasn't fired (form.mission.hide) (1/0) |
| lands | Melee delivery | main | the charge model's landing chance × the melee share of its raw Kill (0 for a pure shooter) |
| reach | Threat range | main | log(1 + inches): melee share × (Move + 7, + 3.5 with an advance-and-charge rule) + ranged share × (Move + longest range) |
| fly | Fly | main | the Fly keyword (1/0); part of jobs.md's reach recipe |
| bodies | Cheap activations | main | log(1 + 100 ÷ its points at its smallest size) |
| hold | Holding power | main | log(1 + OC per 100 points × (1 − the chance the typical army finishes it in one enemy turn, form.life.q)) |
| engine | Army-rule enabler | main | tools/armyrules.json names it a giver or extender of its army's rule, or a carrier where under half the army carries it (1/0) |
| engineM | Engine, measured | main | log(1 + the friends' Kill it adds at β 6: Synapse coverage (form.synapseAdd) plus support effects (form.supportfx.kill)); 0 where unmeasured |
| transport | Transport | main | log(1 + models it carries) |
| rival | Slot competition (siblings) | main | the strongest pull of a better sibling datasheet (one family by name): tools/rivals.js likeness × gap (how much better per point, capped at twice), 0 to 1 |
| shock | Battle-shock pressure | main | log(1 + the ledger's Battle-shock line, points a game per 100 of its points, step 34) |
| cp | Command points | main | log(1 + 30 points a CP × 100 ÷ its points) when it carries a CP-gain rule of its army (tools/characters.json cpGain, cpStack, by rule name); else 0 |
| antiChar | Character hunting | main | log(1 + Burst into characters with the typical army's leaders attached, alone reachable only by Precision; form.prefer.char) |
| actor | Action-doer | main | log(1 + max(0, an action's price − the ranged Kill it forgoes) per 100 of its points) for a unit that can act; the price: the action lines' mean VP over the field's primary mix × points a VP (2,000 ÷ 65) |
| denial | VP denial | main | −log(1 + kill-card VP it hands over when destroyed × points a VP, per 100 of its points): Grievous Blow at 13+ models, Bring It Down per W10+ model, Assassination for a character (+1 at W4+), No Prisoners for every unit; each at 4.5, 4.5, 3, 2.5 VP × cards live (2 in 3) |
| recover | Mitigation and recursion | main | log of the Soak it gains from its own effects: heal ÷ exposed (soakfx, Tyranids and Space Marines), × 6 ÷ (FNP − 1), × 1.2 with a heal or spawn rule |
| depends | List dependence | main | log(its best detachment's Value ÷ the median detachment's), solo forms |
| screen | Screening | main | log(1 + 100 ÷ its points at its smallest size × min(1, enemy points to remove that size ÷ 100, about one enemy unit)): units per point that cost an activation to clear |
| points | Points (relative to its army) | main | log points of its Track A form; standardised within the army |
| ixDeliverMelee | × Delivery × melee damage | interaction | z(landing chance) × z(log(1 + raw melee Kill)): big claws that also get there |
| ixLeaderSquad | × Leader × squad (the squad's side) | interaction | a squad's best package with any leader: the joined Value × points less both solo Values, per 100 of the squad's points, signed log; 0 for a unit no leader joins |
| ixDurOC | × Durability × OC | interaction | z(durability) × z(OC kept steady) |
| ixTransportRider | × Transport × rider | interaction | a transport's best rider's need: log(1 + rider Value × melee share × (1 − its landing chance)); 0 for a non-transport |
| ixBurstSoak | × Burst × Soak | interaction | z(Burst) × z(durability): trades up |
| satTank | Saturation: anti-tank rank | saturation | 1 ÷ its rank in its army by anti-tank Burst (0 if none) |
| satElite | Saturation: anti-elite rank | saturation | 1 ÷ its rank by anti-elite Burst |
| satHorde | Saturation: horde-clearing rank | saturation | 1 ÷ its rank by horde Burst |
| satChar | Saturation: character-hunting rank | saturation | 1 ÷ its rank by character Burst |
| satBodies | Saturation: cheap-activation rank | saturation | 1 ÷ its rank by units per 100 points |
| satScreen | Saturation: screening rank | saturation | 1 ÷ its rank by screening |
| satActor | Saturation: action-doer rank | saturation | 1 ÷ its rank by action-doing (0 for a unit that can't act) |
| placebo | Placebo (random) | main | a seeded random normal per unit: should come out at 0 |