Tactical Reroll
⋯

The big crack: every dial against the Tyranid reviewers (T-662)

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

5 Oct 2026. tools/ledgercrack2.js on 4 worker threads: 184,902,102 evaluations in 17 minutes. Every number is docs/lab/ledger/ledger.js's own maths: tools/crack2model.js reproduces compute() unit by unit (relative gaps about 1e-15 at random settings of every knob, every switch setting and both profile forms, on all 16 armies), and the reported bests were re-scored through compute(). The yardstick: pairwise accuracy on the five Tyranid lists (tyr.auspexFull, hivemindFull, secondFull, maelstrom, astrategas), the mean over them, on the panels' own rows where they are finer than the letters (auspexFull: Auspex's six bands, so two units of one letter on different rows are a pair); the letters are the extra column. Track A (step 34b) 79.3% on letters, 78.9% on rows; Track B 77.7% on letters, 77.5% on rows. The run was capped at about an hour (the coordinator's order: the family grid with its fake worlds first, then the other armies, then the searched ladder); what that cost is in "What was exhaustive". Ceiling: the reviewers' own agreement ≈ 89% (each list against the other four's consensus) and ≈ 84% (one reviewer against another) (our own count on these five lists, ties in the other lists left out: 90.4% consensus, 84%–96%); anything above about 89% on the lists is marked ⚑: fitting the reviewers' noise, not insight. A report: nothing is adopted. Our own numbers; unit and keyword names only.

Every dial is one value for the whole game: one number per rule, stat or family, the same on every unit that has it, in every army. There is no per-unit knob anywhere in this search.

The short answer

The headline question: does the family grid beat luck?

The family grid (G3: twelve family dials, every combination of −0.25 / 0 / +0.25, on G2's best settings) against the same grid on 8 fake worlds, where the truth is Track A's built ledger with every family at 0 and only the reviewers' noise is added. Exhaustive in both: every combination is scored, so the gain is the grid's own best, not a search's luck of the draw.

Built (the truth in a fake world)Grid's bestGainWinners in the band
Real letters, all 62 settings78.91%84.33%+5.4112,641
Real letters, the fake worlds' kind of settings (built A and B, G2's top 10)78.91%84.21%+5.3–
Fake world 191.68%91.90%+0.2145,608
Fake world 292.32%92.69%+0.4124,821
Fake world 390.84%91.31%+0.5209,403
Fake world 491.77%92.01%+0.2170,208
Fake world 590.65%91.01%+0.4165,027
Fake world 690.22%90.83%+0.6188,349
Fake world 790.29%90.76%+0.5137,337
Fake world 892.83%92.92%+0.165,142
Shuffled letters 1 (no link to the units)43.08%62.17%+19.154,354
Shuffled letters 2 (no link to the units)51.42%67.26%+15.819,262
Shuffled letters 3 (no link to the units)58.40%67.84%+9.4109,193

Answer (against luck): on like-for-like settings the real gain is +5.3 points; the fake worlds gain +0.4 (median), +0.1 to +0.6 by luck. The real gain is above every one of the 8 worlds: p ≤ 1/9 ≈ 0.11, the smallest p this test can give with 8 worlds (more worlds would be needed to say more). The shuffles (no link between letters and units at all) reach 67.8%, far below.

But the held-out units say most of it is these units, not a code. Picked on four fifths of the graded Tyranid units and scored on the pairs with a held-out unit (five folds), the family grid's pick scores 79.7% against the built setting's 79.3% (+0.4 points; G2's 79.6%, +0.4). Leaving a whole list out instead, the pick scores 82.7% on the left-out list against the built 78.9% (+3.8): the reviewers agree with each other about these units, so a left-out reviewer is not new evidence, a left-out unit is. And the shuffles, whose letters have no link to the units at all, climb +9.4 to +19.1 points over the built setting on the same letters: a grid this flexible fits whatever ordering it is given. The fake worlds' small gain is the luck of picking a best when the truth is in the grid and already near the ceiling; it does not bound what a wrong model with twelve family dials and 62 settings can fit on 52 units.

And the placebos can't be told from the real families. Three fake perks on 4, 10 and 30 random Tyranid units, gridded beside the twelve (every combination on the two built settings): their winners' weighted medians 0 (4 units), -0.25 (10 units), 0 (30 units); the real families' 0, 0.25, 0, 0.25, -0.25, -0.25, 0, 0, 0, -0.25, -0.25, 0. 0 of the twelve real families and 0 of the three placebos have a 10–90% range that leaves out 0: at this resolution the family layer cannot tell a real perk from a random label.

What this does and doesn't say. It says the families' gain is not the grid's selection luck: a grid of this size, fitted to letters this noisy, finds about +0.4 points where there is nothing to find, and the real letters give +5.3. One caveat on the control: a fake world's truth already scores about 91.3% on its own letters (the noise is all there is to fit), while the real built ledger scores 78.9%, so the real grid has more room to move; the fake worlds measure the selection luck of a grid this size on letters this noisy, not what a wrong-but-flexible model can gain. It does not say the family dials are right: the held-out units (section 1), the leave-one-list-out and above all the other armies (section 2) are the test of that. The smoke run's "+3 to 4 points of luck" was an artefact of the smoke: its thinned grid had lost the truth's setting, so the gain was measured from a wrong truth.

Fake worlds whose winners' 10–90% range leaves out a family's true 0: none. A real family range that leaves out 0 means something only beside this (and the placebos, section 1).

What was exhaustive and what was searched

PartKnobs (each at its levels)Combinations checkedExhaustive?
G2: the dials and switches, with the weights (both tracks)supportMeasured (0/1), kill (burst/attach8/attach4/prefer), lifeKill (0/1), arrivalKillW (0/1.5/3), secondaryVPW (0/0.5/1), supportMeasuredW (1/3/6/n/a), shockPressureW (0/1/2/4), threatSoakW (0/1), scoreFloorW (0/1), pointsExp (0/0.25/0.5), wSoak (0/1/2), wScore (0/1/2), wActions (0/1/2), wHold (0/1/2), wSpawn (0/1/2), wPresence (0/1/2)10,077,696 (× 12 letter sets: real, 3 shuffles, 8 fake worlds)yes: every combination
G3: the twelve family dials12 family dials × 3 levels on 62 settings (both tracks' built settings and G2's best)32,949,342 (real letters; the 3 shuffles and 8 fake worlds each on 12 settings of their own: built A and B and their own G2 top 10)yes: every combination
The trims (the hour's cap)G2 at reduced levels (the full set, 69,120 settings × 729 weights, is --g2-full, about 2.5 worker-hours with the controls); G1 (the sliders per track) not run in the capped order; 3 shuffles and 8 fake worlds (with 8 worlds the smallest p-value the fake-world test can give is 1/9 ≈ 0.11); placebo families on the two built settings
The wide net and the staged examevery combination of each grid at or above min(best − 2 SE, 75%) on the Tyranids (G2 5,121,913, G3 11,764,811), each scored as it is on the exam's gates (reports/tiers/2026-10-05-crack-exam.md)33,775,448 combination-gatesyes: every stored combination on the first gate; the next gates on its pass-ons
Ladder A (c)155 continuous knobs (+ every feature as a line-targeted slope: the families split among their members)1,162,592no: searched (CMA-ES and coordinate ascent from Latin-hypercube starts and the grids' winners)
Ladder B (c)152 continuous knobs (+ every feature as a line-targeted slope: the families split among their members)1,162,463no: searched (CMA-ES and coordinate ascent from Latin-hypercube starts and the grids' winners)
The dials only compute() reproducesscarceAnswersW, missionVPW, vpMissionW, wCarry, preferC, preferN, lifeSurvive, lifeBlend103checked at G2's best winners and the T-661 stack

Why not one grid of everything: the knobs together are 17 sliders, 10 dials and switches and 12 families; even at 3 levels each that is about 3^39 ≈ 4 × 10^18 combinations. Each grid is exhaustive over its own block; the blocks meet through their winners (G3 runs on G2's best settings, the ladder starts from all of them).

1. The exhaustive grids

A combination wins when its pairwise is within one bootstrap standard error (graded units resampled, 1,000 times) of its grid's best. The same grid is run on 3 shuffled letter sets (each graded unit's whole row of five letters moved to another unit: the reviewers still agree with each other, only the link to the units is gone) and on 8 fake worlds (the blind appraisal's control: letters drawn from the built ledger itself, every perk at its built value, plus reviewer-like noise calibrated so the fake reviewers agree one to one as the real ones do, 87.9% against 89.5% on our count; σ 0.39 in log Value for Track A's worlds, 0.32 for Track B's). In a fake world the truth is known, so the search's gain over it is pure luck: a real result has to beat the fake worlds' gain, not just the shuffles.

G2G3
Combinations10,077,69632,949,342
Built setting (A / B), rows; lettersA 78.9%; 79.3%, B 77.5%; 77.7%78.9% / 77.5%; 79.3% / 77.7%
Best (on rows: the objective)82.51%84.33%
The same best on letters82.71%84.46%
Noise band (1 SE)±3.46%±2.67%
Winners (within 1 SE of the best)755,411 (7.50%)112,641 (0.34%)
Above the built setting896,937 (A), 2,285,866 (B)2,378,698 (A)
Above the ceiling (89%) ⚑00
Shuffled letters: best (median, max)60.3%, 62.8%67.3%, 67.8%
Shuffled: own winners (median per set)378,97654,354
Shuffled combinations inside the real band00
Gap: real best − best shuffle+19.7 pts+16.5 pts
Real gain over the built setting+3.6 (A), +5.0 (B) pts+5.4 (A), +6.9 (B) pts
Fake worlds: gain over their truth (median, max)+0.3, +0.6 pts+0.4, +0.6 pts
Fake worlds: their winners (median)705,667155,318
Leave one list out: the pick on the left-out list82.5% (built 78.9%)82.7%
Leave units out: the pick on held-out pairs79.6% (built 79.3%)79.7%
Page check (largest gap)1e-16–

G2: the dials and switches, with the weights (both tracks)

10,077,696 combinations in 3.9 minutes. The best: 82.51% (per list 83% / 88% / 81% / 83% / 78%): supportMeasured 1, kill burst, lifeKill 0, arrivalKillW 1.5, secondaryVPW 0, supportMeasuredW 1, shockPressureW 4, threatSoakW 1, scoreFloorW 0, pointsExp 0, wSoak 2×, wScore 2×, wActions 0×, wHold 2×, wSpawn 2×, wPresence 2×.

Winners at other widths of the band: within 0.25 SE: 864 (the median shuffled set: 4,400; the median fake world: 14,696); within 0.5 SE: 13,379 (the median shuffled set: 31,489; the median fake world: 93,412); within 1 SE: 755,411 (the median shuffled set: 378,976; the median fake world: 705,667); within 2 SE: 4,432,878 (the median shuffled set: 4,090,672; the median fake world: 3,423,389).

Each dial's levels among the winners: the share of the winners at each level (the grid has every level equally often: 'even'), the same weighted by exp((pairwise − best) ÷ SE), the weighted 10th / 50th / 90th percentile (the error bar on the dial), the levels no winner has and the levels every winner has.

DialBuiltLevelsShare of winnersWeighted shareEvenWeighted 10 / 50 / 90NeverAlwaysFake worlds whose 10–90 leaves out the built level
supportMeasuredA 0, B 10 / 152% / 48%51% / 49%50%0 / 0 / 1––0 of 8
killA burst, B preferburst / attach8 / attach4 / prefer17% / 22% / 21% / 40%17% / 22% / 21% / 40%25%burst / attach4 / prefer––0 of 8
lifeKillA 0, B 00 / 153% / 47%54% / 46%50%0 / 0 / 1––0 of 8
arrivalKillWA 0, B 00 / 1.5 / 323% / 36% / 41%22% / 36% / 41%33%0 / 1.5 / 3––0 of 8
secondaryVPWA 0, B 00 / 0.5 / 149% / 41% / 11%48% / 41% / 11%33%0 / 0.5 / 1––0 of 8
supportMeasuredWA n/a, B 11 / 3 / 6 / n/a27% / 21% / 0% / 52%28% / 21% / 0% / 51%25%1 / n/a / n/a––0 of 8
shockPressureWA 1, B 10 / 1 / 2 / 41% / 18% / 37% / 45%1% / 17% / 37% / 45%25%1 / 2 / 4––0 of 8
threatSoakWA 1, B 10 / 148% / 52%48% / 52%50%0 / 1 / 1––0 of 8
scoreFloorWA 0, B 00 / 154% / 46%54% / 46%50%0 / 0 / 1––0 of 8
pointsExpA 0, B 00 / 0.25 / 0.559% / 31% / 11%60% / 30% / 10%33%0 / 0 / 0.5––0 of 8
wSoakA 1, B 10 / 1 / 231% / 33% / 35%31% / 33% / 36%33%0 / 1 / 2––0 of 8
wScoreA 1, B 10 / 1 / 233% / 34% / 33%33% / 34% / 34%33%0 / 1 / 2––0 of 8
wActionsA 1, B 10 / 1 / 233% / 33% / 33%33% / 33% / 33%33%0 / 1 / 2––0 of 8
wHoldA 1, B 10 / 1 / 226% / 38% / 36%26% / 37% / 37%33%0 / 1 / 2––0 of 8
wSpawnA 1, B 10 / 1 / 235% / 33% / 32%35% / 33% / 32%33%0 / 1 / 2––0 of 8
wPresenceA 1, B 10 / 1 / 20% / 47% / 53%0% / 46% / 54%33%1 / 2 / 20–0 of 8

With a gentle pull toward the built value (Track A) (0.2 points of pairwise per level step away from it, so a dial moves only when the data asks): the best 80.48% after the pull (82.08% before it); 633,691 winners. Weighted medians with the pull: supportMeasured 0, kill attach4, lifeKill 0, arrivalKillW 1.5, secondaryVPW 0, supportMeasuredW n/a, shockPressureW 2, threatSoakW 1, scoreFloorW 0, pointsExp 0, wSoak 1, wScore 1, wActions 1, wHold 1, wSpawn 1, wPresence 1. Its best: supportMeasured 1, kill burst, lifeKill 0, arrivalKillW 1.5, secondaryVPW 0, supportMeasuredW 1, shockPressureW 2, threatSoakW 1, scoreFloorW 0, pointsExp 0, wSoak 1×, wScore 2×, wActions 1×, wHold 2×, wSpawn 1×, wPresence 1×.

With a gentle pull toward the built value (Track B) (0.2 points of pairwise per level step away from it, so a dial moves only when the data asks): the best 81.08% after the pull (82.08% before it); 243,465 winners. Weighted medians with the pull: supportMeasured 1, kill attach4, lifeKill 0, arrivalKillW 1.5, secondaryVPW 0, supportMeasuredW 1, shockPressureW 2, threatSoakW 1, scoreFloorW 0, pointsExp 0, wSoak 1, wScore 1, wActions 1, wHold 1, wSpawn 1, wPresence 1. Its best: supportMeasured 1, kill burst, lifeKill 0, arrivalKillW 1.5, secondaryVPW 0, supportMeasuredW 1, shockPressureW 2, threatSoakW 1, scoreFloorW 0, pointsExp 0, wSoak 1×, wScore 2×, wActions 1×, wHold 2×, wSpawn 1×, wPresence 1×.

Dials that go together or trade off among the winners (from a uniform sample of 456,916 winners, weighted): r the correlation of their levels; "sum pinned": one high goes with the other low, their sum varies far less than each alone (a trade-off); "difference pinned": they move together.

Dial aDial brSum pinnedDifference pinnedWith a at its top: b at its bottom / top
supportMeasuredsupportMeasuredW-0.958yes58% / 0% (257,925)
secondaryVPWpointsExp-0.3809100% / 0% (44,103)
lifeKillsupportMeasuredW0.360116% / 62% (187,831)
supportMeasuredlifeKill-0.334673% / 27% (257,925)
lifeKillpointsExp0.269849% / 14% (187,831)
secondaryVPWwHold-0.248846% / 15% (44,103)
killpointsExp0.234546% / 16% (162,592)
supportMeasuredpointsExp-0.223572% / 5% (257,925)
lifeKillarrivalKillW0.214816% / 53% (187,831)
supportMeasuredwHold0.210819% / 44% (257,925)
supportMeasuredWwHold-0.196233% / 28% (198,991)
supportMeasuredsecondaryVPW-0.172852% / 5% (257,925)

The T-661 stack (Track B with arrivalKillW 1.5, secondaryVPW 0.5, supportMeasuredW 3, shockPressureW 2, the weights as built) is a point of this grid: 81.04% on the five lists, against the grid's best 82.51% and its band from 79.05%. It is inside the winning region, one of 755,411 winners: the level shares above show how wide the region is around it (each dial's levels among the winners).

G3: the twelve family dials

32,949,342 combinations in 11.4 minutes. The best: 84.33% (per list 84% / 87% / 80% / 88% / 82%): G2 #2861264; move 0.25, defence 0.25, tough 0.25, objective 0.25, ranged 0, melee 0, weaponkw 0.25, leader 0.25, synapse 0, size 0, body -0.25, loadout 0.

Each dial's levels among the winners: the share of the winners at each level (the grid has every level equally often: 'even'), the same weighted by exp((pairwise − best) ÷ SE), the weighted 10th / 50th / 90th percentile (the error bar on the dial), the levels no winner has and the levels every winner has.

DialBuiltLevelsShare of winnersWeighted shareEvenWeighted 10 / 50 / 90NeverAlwaysFake worlds whose 10–90 leaves out the built levelUnits carrying it (index> 0.5 SD)
fam:move0-0.25 / 0 / 0.2513% / 31% / 57%12% / 31% / 58%33%-0.25 / 0.25 / 0.25––0 of 836
fam:defence0-0.25 / 0 / 0.250% / 14% / 86%0% / 13% / 87%33%0 / 0.25 / 0.25––0 of 827
fam:tough0-0.25 / 0 / 0.255% / 42% / 54%4% / 39% / 56%33%0 / 0.25 / 0.25––0 of 833
fam:objective0-0.25 / 0 / 0.253% / 27% / 70%3% / 27% / 70%33%0 / 0.25 / 0.25––0 of 831
fam:ranged0-0.25 / 0 / 0.2537% / 50% / 13%37% / 51% / 13%33%-0.25 / 0 / 0.25––0 of 844
fam:melee0-0.25 / 0 / 0.2545% / 50% / 5%45% / 51% / 4%33%-0.25 / 0 / 0––0 of 834
fam:weaponkw0-0.25 / 0 / 0.250% / 38% / 62%0% / 38% / 62%33%0 / 0.25 / 0.25-0.25–0 of 828
fam:leader0-0.25 / 0 / 0.2518% / 31% / 51%18% / 31% / 51%33%-0.25 / 0.25 / 0.25––0 of 832
fam:synapse0-0.25 / 0 / 0.2530% / 37% / 33%30% / 37% / 33%33%-0.25 / 0 / 0.25––0 of 836
fam:size0-0.25 / 0 / 0.2535% / 65% / 0%34% / 66% / 0%33%-0.25 / 0 / 00.25–0 of 816
fam:body0-0.25 / 0 / 0.2568% / 32% / 0%68% / 32% / 0%33%-0.25 / -0.25 / 00.25–0 of 84
fam:loadout0-20 / 0 / 205% / 68% / 27%5% / 70% / 26%33%0 / 0 / 20––0 of 838

With a gentle pull toward the built value (0.2 points of pairwise per level step away from it, so a dial moves only when the data asks): the best 83.23% after the pull; 76,043 winners. Weighted medians with the pull: fam:move 0.25, fam:defence 0.25, fam:tough 0, fam:objective 0.25, fam:ranged 0, fam:melee 0, fam:weaponkw 0, fam:leader 0, fam:synapse 0, fam:size 0, fam:body -0.25, fam:loadout 0.

Dials that go together or trade off among the winners (from a uniform sample of 28,636 winners, weighted): r the correlation of their levels; "sum pinned": one high goes with the other low, their sum varies far less than each alone (a trade-off); "difference pinned": they move together.

Dial aDial brSum pinnedDifference pinnedWith a at its top: b at its bottom / top
fam:rangedfam:melee0.75490% / 34% (3,780)
fam:meleefam:loadout-0.478949% / 0% (1,360)
fam:rangedfam:loadout-0.432923% / 6% (3,780)
fam:objectivefam:size-0.382448% / 0% (19,936)
fam:toughfam:ranged-0.326545% / 7% (15,486)
fam:defencefam:tough0.28654% / 60% (24,585)
fam:toughfam:size0.268627% / 0% (15,486)
fam:rangedfam:weaponkw-0.2580% / 47% (3,780)
fam:rangedfam:body-0.21193% / 0% (3,780)
fam:weaponkwfam:loadout-0.21087% / 20% (17,695)
fam:sizefam:body0.2078– / – (0)
fam:meleefam:weaponkw-0.20710% / 53% (1,360)

Placebo families (three fake perks on 4, 10 and 30 random Tyranid units, acting on the whole Value, beside the twelve real families, every combination on the two built settings: 28,697,814 combinations; best 83.53%, 11,619 winners). A real family's range means something only when it is narrower or further from 0 than a placebo carried by about as many units:

FamilyUnits carrying itWeighted 10 / 50 / 90Leaves out 0
Movement and arrival36-0.25 / 0 / 0.25no
Defensive rules270 / 0.25 / 0.25no
Toughness stats330 / 0 / 0.25no
OC, bodies and objectives310 / 0.25 / 0.25no
Ranged firepower44-0.25 / -0.25 / 0no
Melee firepower34-0.25 / -0.25 / 0no
Weapon keywords280 / 0 / 0.25no
Leaders and support32-0.25 / 0 / 0.25no
Synapse, psychic and Battle-shock36-0.25 / 0 / 0.25no
Size and points16-0.25 / -0.25 / 0no
Body type4-0.25 / -0.25 / 0no
Loadout and other rules380 / 0 / 20no
Placebo (4 random units)40 / 0 / 0no
Placebo (10 random units)10-0.25 / -0.25 / 0no
Placebo (30 random units)300 / 0 / 0.25no

The outers (G3 runs every family combination on each): #0 G2 (82.2% best with families); #1 G2 (82.8% best with families); #2 G2 (84.1% best with families); #3 G2 (83.7% best with families); #4 G2 (83.8% best with families); #5 G2 (84.1% best with families); …. Shuffled letters, each on its own G2 bests: 62.2%, 67.3%, 67.8%.

2. The headline test: the Tyranid net on the other armies (the staged exam)

Fit on Tyranids only; every Tyranid combination at or above a generous floor stored (the wide net) and scored as it is on the other armies, gate by gate (the bar: pairwise ≥ 70% on an army); the full tables, the survivors and their dial ranges (the "code") are in reports/tiers/2026-10-05-crack-exam.md. The gates run:

3. The searched part: a ladder of knob counts

Searched, not exhaustive. The searches climb a smooth surrogate of pairwise accuracy (per pair, 0.5 + 0.5 x ÷ (1 + |x|), x the log-Value gap ÷ 0.1: pairwise accuracy is a step function with flat plateaus) and report pairwise accuracy; the winning set is defined by pairwise within one bootstrap SE. Seeds: the track's built setting, its G1 and G2 winners, and for (c) G3's winners with the family dials split evenly over their members. The shuffled searches had the same budget and seeds from their own grids. The perk dials act on the parts of Value each perk affects (profileLines, section 4); the whole-Value form (profileDials) is kept as a hibernated switch.

Track, rungKnobsEvaluationsFive lists: start → best (gain)Fake worlds: gain over the truth (median, max)Shuffles: best (gap)Left-out list: start → fitHeld-out units: start → fit14 armies: start → bestSpace MarinesBand solutionsAbove every shuffleAbove 89% ⚑
A (c)1551,162,59278.9% → 92.9% ⚑ (+14.0)+1.8, +2.291.5% (+1.4)78.9% → 88.5%79.3% → 80.2%58.9% → 57.1%64.2% → 61.7%4,3244,3244,324
B (c)1521,162,46377.5% → 92.8% ⚑ (+15.4)+2.5, +3.092.6% (+0.2)77.5% → 88.4%77.6% → 79.8%59.9% → 54.0%61.6% → 57.2%4,8323304,832

Track A, rung (c): 155 knobs

Best 92.91% ⚑ (page 92.97%, ρ 0.883; per list 93% / 95% / 91% / 98% / 87%); band ±1.34%; 4,324 settings in the band. Shuffled searches: 90.9%, 90.6%, 91.5%. With the gentle pull (0.01 × Σ (distance ÷ range)²): best 93.01%, 1,494 in its band.

Per knob over the band, weighted by exp((pairwise − best) ÷ SE): the weighted 10th / 50th / 90th percentile (the error bar), the span of that range as a share of the prior (PINNED under 25%, FREE over half), the weighted share above and below the start, and the weighted median with the pull; the profile dials shown are the 25 whose freezing costs most (every knob is in the .json).

KnobPriorStartBestWeighted 10 / 50 / 90SpanStatusAbove / below startMedian with the pullFake worlds leaving out the startAlready modelled by
wSoak× [0, 4] of the built weight100 / 0 / 1.105628%between19% / 81%0.74880 of 8
wScore× [0, 4] of the built weight11.65280 / 1.3459 / 3.231181%FREE71% / 29%1.1931 of 8
wActions× [0, 4] of the built weight100 / 0 / 0.79720%PINNED6% / 94%0.99320 of 8
wHold× [0, 4] of the built weight100 / 0.4863 / 1.286332%between19% / 81%0.37390 of 8
wSpawn× [0, 4] of the built weight100 / 0 / 1.396835%between12% / 88%0.80792 of 8
wPresence× [0, 4] of the built weight142.8873 / 4 / 428%between100% / 0%1.68864 of 8
lands[0.25, 3]1.50.58830.3956 / 1.1858 / 395%FREE40% / 60%1.32950 of 8
reach[0.5, 3]11.29560.5187 / 1.1292 / 1.301231%between61% / 39%1.04611 of 8
r.mortal[0.5, 4]10.850.5 / 0.85 / 1.220%PINNED17% / 83%0.83176 of 8
r.first[0.5, 4]2.640.93180.5 / 2.1296 / 3.261679%FREE29% / 71%2.58036 of 8
r.movement[0.5, 4]11.13390.5 / 1.3089 / 3.017972%FREE70% / 30%0.81672 of 8
r.detachment[0.5, 4]1.0650.76210.5827 / 1.9854 / 498%FREE62% / 38%0.98642 of 8
r.lone[0.5, 4]1.933.29670.5 / 2.2467 / 4100%FREE53% / 47%2.0070 of 8
r.synapse[0.5, 4]2.181.93290.5 / 1.2849 / 1.932941%between6% / 94%1.42297 of 8
r.debuff[0.5, 4]10.69410.5 / 0.5 / 0.69416%PINNED0% / 100%0.52 of 8
r.buff[0.5, 4]1.122.30290.6356 / 1.267 / 2.302948%between67% / 33%1.1627 of 8
r.cp[0.5, 4]1.8841.2881 / 3.0599 / 477%FREE76% / 24%2.34228 of 8
arrivalKillW[0, 3]01.80.4482 / 1.7789 / 1.971651%FREE94% / 0%0.41285 of 8
secondaryVPW[0, 2]00.16560 / 0.1302 / 0.210%PINNED59% / 0%00 of 8
shockPressureW[0, 6]14.2113.611 / 6 / 640%between100% / 0%2.52041 of 8
threatSoakW[0, 3]10.2570 / 0.9873 / 3100%FREE49% / 51%1.01153 of 8
scoreFloorW[0, 1]00.90290 / 0.557 / 0.902990%FREE67% / 0%02 of 8
pointsExp[0, 1]000 / 0 / 0.110%PINNED20% / 0%02 of 8
pts:carriedDistinct[−40, 40] points a unit per SD032-14.7012 / 1.653 / 3258%FREE57% / 43%3.27490 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
slope:modelProfiles[−0.5, 0.5] per SD (log of its parts)0-0.4-0.5 / -0.4 / 0.023252%FREE21% / 79%-0.25334 of 8
pts:carriedTotal[−40, 40] points a unit per SD032-6.2313 / 24.8713 / 33.404150%between89% / 11%16.07531 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
pts:choicePicks[−40, 40] points a unit per SD0-26.5929-34.5929 / -16.1662 / 12.094858%FREE24% / 76%-6.72883 of 8
pts:choiceEntries[−40, 40] points a unit per SD030.1926-21.6568 / 9.5182 / 30.192665%FREE57% / 43%5.40513 of 8
slope:shortRanged[−0.5, 0.5] per SD (log of its parts)0-0.456-0.4784 / -0.3245 / 0.241172%FREE37% / 63%-0.122 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
slope:kw_twinLinked[−0.5, 0.5] per SD (log of its parts)00.24390.2439 / 0.4 / 0.526%between100% / 0%0.18345 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
slope:ppmDiscount[−0.5, 0.5] per SD (log of its parts)0-0.2806-0.4325 / -0.3796 / -0.280615%PINNED0% / 100%-0.22667 of 8every line is per 100 points: points enter every line's denominator
pts:fx_noted[−40, 40] points a unit per SD027.7231-30.7866 / -22.9075 / 27.723173%FREE31% / 69%3.12440 of 8
slope:bestR_AP[−0.5, 0.5] per SD (log of its parts)00.50.1652 / 0.5 / 0.533%between100% / 0%0.23560 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
slope:kw_anti[−0.5, 0.5] per SD (log of its parts)0-0.4502-0.4502 / -0.1699 / 0.173762%FREE33% / 67%-0.02922 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
slope:carriedMelee[−0.5, 0.5] per SD (log of its parts)00.35610.1398 / 0.3561 / 0.536%between92% / 8%0.23951 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
slope:kw_heavy[−0.5, 0.5] per SD (log of its parts)00.50.3118 / 0.5 / 0.519%PINNED100% / 0%0.2444 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
slope:kw_is_burrowers[−0.5, 0.5] per SD (log of its parts)00.2593-0.2405 / 0.1255 / 0.259350%between79% / 21%0.02830 of 8arrival: the charge model's lands and the reach slider (Presence)
slope:fx_arrival[−0.5, 0.5] per SD (log of its parts)00.5-0.4 / 0.5 / 0.590%FREE87% / 13%0.1310 of 8arrival: the charge model's lands and the reach slider (Presence)
slope:woundsPer100[−0.5, 0.5] per SD (log of its parts)00.0504-0.2919 / -0.0118 / 0.100439%between37% / 63%0.05651 of 8Soak (toughness, saves, wounds) and threat-gated Soak
slope:bestR_S[−0.5, 0.5] per SD (log of its parts)00.45270.1145 / 0.3 / 0.539%between100% / 0%0.23230 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
pts:fx_partly[−40, 40] points a unit per SD08.9751-16.524 / -0.412 / 10.344234%between38% / 62%0.76643 of 8
slope:meleeMeq100[−0.5, 0.5] per SD (log of its parts)00.3026-0.0423 / 0.3104 / 0.366941%between88% / 12%0.25872 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
slope:ix_durHeavy100[−0.5, 0.5] per SD (log of its parts)00.50.024 / 0.5 / 0.548%between97% / 3%0.2980 of 8Soak (toughness, saves, wounds) and threat-gated Soak
slope:kw_extraAttacks[−0.5, 0.5] per SD (log of its parts)00.0614-0.0124 / 0.0614 / 0.149116%PINNED87% / 14%0.05333 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
slope:rangedMeq100[−0.5, 0.5] per SD (log of its parts)0-0.5-0.5 / -0.1404 / 0.287379%FREE31% / 69%-0.01244 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
slope:kw_is_titanic[−0.5, 0.5] per SD (log of its parts)0-0.5-0.5 / -0.4764 / -0.215428%between0% / 100%-0.18334 of 8
slope:bestR_D[−0.5, 0.5] per SD (log of its parts)00.3212-0.1639 / 0.3069 / 0.375954%FREE60% / 40%0.11541 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
slope:maxAP_any[−0.5, 0.5] per SD (log of its parts)00.50.2101 / 0.385 / 0.529%between100% / 0%0.0634 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)

Correlated knobs in the band (|r| > 0.6, or a sum or difference pinned while each alone varies): slope:bestR_skill ↔ pts:abilitiesOwn (r 0.9023); pts:abilitiesCount ↔ pts:fx_noted (r -0.895); slope:rangedChaff100 ↔ slope:ix_durHeavy100 (r -0.894, sum pinned); threatSoakW ↔ pts:fx_modelled (r -0.8925); wPresence ↔ slope:rangedVeh100 (r 0.8894); slope:has_fightsFirst ↔ pts:choiceEntries (r -0.8847); slope:bestR_range ↔ pts:abilitiesCount (r 0.8836); slope:kw_is_epicHero ↔ slope:fx_chosen (r 0.8826); r.debuff ↔ pts:rulesWeaponLike (r -0.8747); slope:bestR_A ↔ slope:rangedMeq100 (r -0.8743); slope:kw_blast ↔ slope:minRange (r -0.8713); slope:bestM_S ↔ slope:fx_lead (r -0.8706).

What the best loses with each knob frozen at its start (raw; and with the rest re-searched), the 12 costliest: pts:carriedDistinct 1.3 / 0.7; slope:modelProfiles 0.7 / 0.5; pts:carriedTotal 0.9 / 0.5; wPresence 0.9 / 0.4; pts:choicePicks 0.7 / 0.4; pts:choiceEntries 0.8 / 0.4; slope:shortRanged 1.3 / 0.4; secondaryVPW 0.3 / 0.3; slope:kw_twinLinked 0.4 / 0.3; slope:ppmDiscount 0.8 / 0.3; pts:fx_noted 0.5 / 0.3; wHold 0.8 / 0.2 (points of pairwise).

Leave one list out: auspexFull 82% → 89%; hivemindFull 84% → 92%; secondFull 80% → 86%; maelstrom 77% → 92%; astrategas 72% → 83%. Leave units out: fold 1 82% → 82%; fold 2 77% → 80%; fold 3 74% → 80%; fold 4 80% → 82%; fold 5 83% → 76%.

Track B, rung (c): 152 knobs

Best 92.84% ⚑ (page 92.95%, ρ 0.885; per list 95% / 95% / 90% / 98% / 88%); band ±1.46%; 4,832 settings in the band. Shuffled searches: 91.4%, 89.9%, 92.6%. With the gentle pull (0.01 × Σ (distance ÷ range)²): best 92.93%, 1,482 in its band.

Per knob over the band, weighted by exp((pairwise − best) ÷ SE): the weighted 10th / 50th / 90th percentile (the error bar), the span of that range as a share of the prior (PINNED under 25%, FREE over half), the weighted share above and below the start, and the weighted median with the pull; the profile dials shown are the 25 whose freezing costs most (every knob is in the .json).

KnobPriorStartBestWeighted 10 / 50 / 90SpanStatusAbove / below startMedian with the pullFake worlds leaving out the startAlready modelled by
wSoak× [0, 4] of the built weight12.33390.4299 / 2.2791 / 489%FREE69% / 31%0.70520 of 8
wScore× [0, 4] of the built weight10.95620 / 1.5259 / 2.192955%FREE65% / 35%1.03560 of 8
wActions× [0, 4] of the built weight100 / 0 / 250%between17% / 83%0.97950 of 8
wHold× [0, 4] of the built weight10.18990 / 0.535 / 2.00950%FREE29% / 71%0.53351 of 8
wSpawn× [0, 4] of the built weight100 / 0.2102 / 4100%FREE21% / 79%0.86521 of 8
wPresence× [0, 4] of the built weight140 / 4 / 4100%FREE87% / 13%1.54258 of 8
lands[0.25, 3]1.50.250.25 / 1.8601 / 2.904797%FREE64% / 36%1.53970 of 8
reach[0.5, 3]11.10020.8131 / 1.5099 / 2.877583%FREE87% / 13%0.99220 of 8
r.mortal[0.5, 4]12.31820.5 / 0.5 / 2.318252%FREE26% / 74%1.11173 of 8
r.first[0.5, 4]2.642.60.629 / 2.6 / 3.82591%FREE37% / 63%2.31525 of 8
r.movement[0.5, 4]10.50.5 / 0.9929 / 2.70163%FREE43% / 57%0.88191 of 8
r.detachment[0.5, 4]1.06541.2716 / 1.5826 / 3.721270%FREE100% / 0%1.27441 of 8
r.lone[0.5, 4]1.932.57920.5 / 2.8407 / 4100%FREE70% / 30%2.00510 of 8
arrivalKillW[0, 3]01.83770.2781 / 1.8377 / 2.459273%FREE100% / 0%0.19967 of 8
secondaryVPW[0, 2]00.29680 / 0 / 0.375419%PINNED38% / 0%00 of 8
supportMeasuredW[0, 8]11.84430 / 1.5622 / 4.426855%FREE74% / 26%0.72064 of 8
shockPressureW[0, 6]165.0255 / 6 / 616%PINNED100% / 0%2.25891 of 8
threatSoakW[0, 3]131.3598 / 2.5126 / 355%FREE99% / 1%0.96354 of 8
scoreFloorW[0, 1]00.10 / 0.4235 / 0.990%FREE88% / 0%03 of 8
pointsExp[0, 1]000 / 0.05 / 0.348335%between51% / 0%0.07871 of 8
pts:dsWeapons[−40, 40] points a unit per SD030.2928-27.2335 / 3.6915 / 30.292872%FREE55% / 45%-5.17431 of 8
pts:rulesCount[−40, 40] points a unit per SD030.755211.3976 / 29.2799 / 32.567326%between100% / 0%12.51283 of 8
slope:fnp[−0.5, 0.5] per SD (log of its parts)0-0.5-0.4142 / -0.2081 / 0.174259%FREE32% / 68%-0.07880 of 8Soak (toughness, saves, wounds) and threat-gated Soak
slope:fx_arrival[−0.5, 0.5] per SD (log of its parts)00.5-0.0375 / 0.5 / 0.554%FREE90% / 10%0.07582 of 8arrival: the charge model's lands and the reach slider (Presence)
slope:bestM_AP[−0.5, 0.5] per SD (log of its parts)00.4081-0.0894 / 0.0574 / 0.408150%between83% / 17%0.07151 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
slope:has_fightsFirst[−0.5, 0.5] per SD (log of its parts)0-0.5-0.5 / -0.1668 / 0.143864%FREE44% / 56%-0.05066 of 8r.first (Fights First kind)
slope:dsMelee[−0.5, 0.5] per SD (log of its parts)00.3334-0.2046 / 0.1159 / 0.333454%FREE56% / 44%-0.01753 of 8
slope:ppmDiscount[−0.5, 0.5] per SD (log of its parts)0-0.5-0.5 / -0.5 / -0.043646%between0% / 100%-0.27395 of 8every line is per 100 points: points enter every line's denominator
pts:fx_rules[−40, 40] points a unit per SD0-31.2385-31.2385 / -14.5066 / 19.477363%FREE41% / 59%-1.28831 of 8
slope:kw_is_epicHero[−0.5, 0.5] per SD (log of its parts)00.5-0.4187 / 0.2779 / 0.592%FREE84% / 16%0.0160 of 8
slope:kw_twinLinked[−0.5, 0.5] per SD (log of its parts)00.2566-0.0919 / 0.2566 / 0.384548%between89% / 11%0.10241 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
slope:kw_sustained[−0.5, 0.5] per SD (log of its parts)00.0867-0.5 / -0.04 / 0.42793%FREE47% / 53%0.03791 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
pts:has_deadlyDemise[−40, 40] points a unit per SD013.2922-21.2269 / -6.7903 / 13.292243%between17% / 83%-1.1922 of 8
slope:kw_precision[−0.5, 0.5] per SD (log of its parts)00.50.193 / 0.4 / 0.531%between100% / 0%0.21312 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
slope:fx_enemy[−0.5, 0.5] per SD (log of its parts)00.50.2849 / 0.5 / 0.522%PINNED100% / 0%0.11035 of 8r.debuff / shockPressure
slope:formShare[−0.5, 0.5] per SD (log of its parts)00.2657-0.0464 / 0.1248 / 0.265731%between73% / 27%0.13554 of 8every line is per 100 points: points enter every line's denominator
slope:has_leader[−0.5, 0.5] per SD (log of its parts)00.40.2237 / 0.3848 / 0.528%between94% / 6%0.07043 of 8
slope:damagedBracket[−0.5, 0.5] per SD (log of its parts)0-0.2128-0.4 / -0.142 / 0.260866%FREE33% / 67%0.07231 of 8Soak (toughness, saves, wounds) and threat-gated Soak
slope:fx_shock[−0.5, 0.5] per SD (log of its parts)00.3101-0.1923 / 0.2948 / 0.457665%FREE89% / 11%0.11141 of 8r.debuff / shockPressure
slope:fx_once[−0.5, 0.5] per SD (log of its parts)0-0.5-0.5 / -0.5 / 0.490%FREE33% / 67%-0.09164 of 8
slope:bestR_skill[−0.5, 0.5] per SD (log of its parts)0-0.4-0.4 / 0.2254 / 0.590%FREE51% / 49%0.05190 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
pts:defaultWeapons[−40, 40] points a unit per SD0-40-40 / -1.3137 / 11.160264%FREE39% / 61%0.39051 of 8
slope:shortRanged[−0.5, 0.5] per SD (log of its parts)0-0.3343-0.3343 / -0.1894 / 0.084742%between24% / 76%-0.12753 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
pts:carriedTotal[−40, 40] points a unit per SD016.79367.4844 / 25.5627 / 4041%between90% / 10%13.38021 of 8Kill (the engine's dice on the form's loadout; Burst and its targets)
slope:kw_is_vanguard[−0.5, 0.5] per SD (log of its parts)00.5-0.0155 / 0.5 / 0.552%FREE87% / 13%0.0760 of 8arrival: the charge model's lands and the reach slider (Presence)

Correlated knobs in the band (|r| > 0.6, or a sum or difference pinned while each alone varies): slope:has_loneOperative ↔ slope:fx_arrival (r -0.9225); wPresence ↔ slope:carriedRanged (r -0.9217); wSpawn ↔ slope:ppmDiscount (r 0.9201); slope:has_scouts ↔ slope:ix_invxT (r -0.918, sum pinned); slope:kw_anti ↔ slope:capacityPer100 (r -0.9166, sum pinned); slope:bestR_A ↔ slope:meleeVeh100 (r -0.9156, sum pinned); reach ↔ slope:woundsPer100 (r -0.9152, sum pinned); slope:rangedChaff100 ↔ slope:spawns (r 0.9019, difference pinned); pts:defaultWeapons ↔ slope:maxAP_any (r 0.8981); secondaryVPW ↔ pts:carriedDistinct (r 0.8824); slope:bestM_AP ↔ pts:has_deadlyDemise (r 0.882); slope:rangedMeq100 ↔ pts:carriedDistinct (r -0.8801).

What the best loses with each knob frozen at its start (raw; and with the rest re-searched), the 12 costliest: pts:dsWeapons 1.2 / 0.3; pts:rulesCount 0.7 / 0.3; slope:fnp 0.7 / 0.3; shockPressureW 0.7 / 0.2; slope:fx_arrival 0.7 / 0.2; threatSoakW 0.4 / 0.2; slope:bestM_AP 0.9 / 0.2; slope:has_fightsFirst 0.8 / 0.2; slope:dsMelee 0.6 / 0.2; slope:ppmDiscount 1.9 / 0.2; arrivalKillW 1.8 / 0.2; pts:fx_rules 0.6 / 0.2 (points of pairwise).

Leave one list out: auspexFull 79% → 89%; hivemindFull 81% → 91%; secondFull 77% → 86%; maelstrom 74% → 93%; astrategas 75% → 83%. Leave units out: fold 1 76% → 88%; fold 2 79% → 81%; fold 3 77% → 80%; fold 4 75% → 80%; fold 5 81% → 71%.

4. The family layer and what each family's dial acts on

305 datasheet variables (tools/diagnose.js's 341 less the ledger's own lines, kill by class and rule kinds); 132 vary on the graded Tyranid units after grouping near-duplicates (|r| ≥ 0.95). Each goes in one of twelve families; a family's index is the mean of its members' standardised values (each oriented so more is better by the catalogue's sign) ÷ its SD over the Tyranid units, and its dial is a slope per SD on the parts of Value it affects (profileLines): −0.25, 0 or +0.25 (× e^{±0.25} per SD), the flat family −20, 0 or +20 points a unit per SD at the median unit's rate. The same family setting is the same per-variable slopes on every army.

FamilyActs onWhat it scales: the perk's added part (counterfactual) or the carrier's whole lineAlready modelled by the dice engine (the dial is then a correction on top: 0 = trust the engine)Units carrying itWinners' weighted 10 / 50 / 90The designers' implied dial (T-663)Members
Movement and arrivalKill on arrival, Presence, Scorethe added part on Kill (Kill on arrival); the whole line on Presence and Scorepartly: the charge model's lands (Move, arrival ways) and Kill on arrival (arrivalKillW); the reach slider on Presence36-0.25 / 0.25 / 0.25not meaningful (inside the charge model; in points Fly +10%, Deep Strike +2%, Scouts +1%)M, has_deepStrike, has_scouts, has_infiltrators, kw_is_fly, kw_is_burrowers, kw_is_vanguard, fx_arrival, fx_move, arrives, ix_MxMelee, kwu_Aircraft
Defensive rulesSoak, Kill needing the unit alivethe whole line (no counterfactual in the frozen data)yes: invulnerable saves, Feel No Pain, Stealth (as cover) and the like are in the engine's Soak270 / 0.25 / 0.25Lone Operative 1.08× (multiplier) or 8.1× (increment); Feel No Pain 0.23×; Stealth not meaningful−inv, −fnp, −damagedBracket, has_loneOperative, has_stealth, ix_invxT
Toughness statsSoak, Kill needing the unit alivethe whole line (no counterfactual in the frozen data)yes: Toughness, Save and Wounds are the engine's Soak330 / 0.25 / 0.25–T, −Sv, W, −ptsPerWound, woundsPer100, ix_durLight100, ix_durHeavy100
OC, bodies and objectivesScore, Holdthe whole line (no counterfactual in the frozen data)yes: OC per 100 points is Score and Hold310 / 0.25 / 0.25not meaningful (Hold and Score are weighted lines; in points Battleline +2%, OC per model +0%)−Ld, OC, kw_is_battleline, fx_spawn, spawns, ix_bodiesxOC, kwu_Harvester, kwu_Endless_Multitude
Ranged firepowerKill on arrival, Kill needing the unit alive, the rest of Killthe whole line (no counterfactual in the frozen data)yes: the engine's dice on the form's loadout (Burst, its targets)44-0.25 / 0 / 0.25–bestR_A, bestR_S, bestR_AP, bestR_D, bestR_skill, bestR_range, rangedMeq100, rangedVeh100, rangedChaff100, rangedAttacks100, dsRanged, carriedRanged, minRange, shortRanged
Melee firepowerKill on arrival, Kill needing the unit alive, the rest of Killthe whole line (no counterfactual in the frozen data)yes: the engine's dice and the charge model34-0.25 / 0 / 0–bestM_A, bestM_S, bestM_AP, bestM_D, bestM_skill, meleeMeq100, meleeVeh100, meleeChaff100, meleeAttacks100, has_fightsFirst, dsMelee, carriedMelee
Weapon keywordsKill on arrival, Kill needing the unit alive, the rest of Killthe whole line (no counterfactual in the frozen data)mostly: Lethal, Sustained, Devastating, Anti-X, Torrent, Blast, Melta and the like are in the dice280 / 0.25 / 0.251.12× (0.84 to 1.44)kw_anti, kw_devastating, kw_sustained, kw_precision, kw_torrent, kw_blast, kw_twinLinked, kw_ignoresCover, kw_psychic, kw_heavy, kw_assault, kw_extraAttacks, maxS_any, maxAP_any, maxD_any, maxA_any, anti_infantry, anti_vehicle
Leaders and supportthe support creditthe added part (the support credit)partly: support measured (T-657) on the friends reached; the rule multipliers when it is off32-0.25 / 0.25 / 0.250.97× (multiplier) or −0.05× (increment): the points don't pay for the support credithas_leader, kw_is_character, kw_is_epicHero, leadsCount, fx_heal, fx_cp, fx_aura, fx_mark, fx_chosen, fx_once, fx_lead, fx_attMods, lfx_effects, buffsOthers, lfx_rules, ledByCount
Synapse, psychic and Battle-shockthe support credit, Battle-shockthe added part (the support credit, Battle-shock pressure)partly: support measured (Synapse), Battle-shock pressure (T-653)36-0.25 / 0 / 0.25not meaningful (held at 1 under support measured; +4% in points)has_synapse, kw_is_psyker, fx_enemy, fx_shock, fx_mortal, fx_synapse, fx_overwatch
Size and pointsthe whole Value (no single part)the whole line (no counterfactual in the frozen data)every line is per 100 points16-0.25 / 0 / 0–models, −pts, ptsPerModel, sizeRatio, ppmDiscount, formShare, modelProfiles
Body typethe whole Value (no single part)the whole line (no counterfactual in the frozen data)partly: through the engine's targets and Soak4-0.25 / -0.25 / 0–kw_is_monster, kw_is_infantry, kw_is_transport, kw_is_titanic, kw_is_beast, capacityPer100
Loadout and other rulesflat points a unit (no line to scale)the whole line (no counterfactual in the frozen data)no: the rules the effects files only note380 / 0 / 20–has_deadlyDemise, dsWeapons, dsMultiProfile, carriedDistinct, carriedTotal, defaultWeapons, choiceEntries, choicePicks, limitsCount, dd_value, rulesWeaponLike, rulesCount, abilitiesCount, abilitiesOwn, fx_rules, fx_modelled, fx_partly, fx_noted, fx_condEffects

The designers' column is T-663's price list (reports/tiers/2026-10-05-pricelist.md, section 7) on its own scale, 1× = what the engine already credits: a dial above 1× there points the same way as a positive slope here, below 1× as a negative one. Our family dials are slopes per SD of a family index on the lines it acts on, not multipliers on one perk's credit, so only the direction compares; where T-663 says its price isn't meaningful on the dial scale the column says so.

The appraisal asks that a dial scale what its perk adds (the line with the perk minus the line without), so 0 = the perk adds nothing and 1 = trust the engine. The frozen data holds that counterfactual only where a line is itself a perk's addition: Kill on arrival (what arriving adds), the support credit (what support rules add to the friends they reach), Battle-shock pressure (what the shock rules add) and secondary VP. Everywhere else the dial scales the carrier's whole line (a with-and-without dice run per perk would be a new engine stage; not built here), but only the line the perk affects, and as a slope per SD of the family's index (e^{±0.25} per SD), so nothing stacks toward 64×.

5. Unset by Tyranids

Dials for rules and variables no Tyranid unit carries (or on fewer than 3 Tyranid units, or not varying across them) stay at their built value (1×) on the other armies. Rule kinds: overwatch (7 armies), heal (13 armies), spawn (2 armies). Datasheet variables: 145 of 305 (145 don't vary on the graded Tyranid units; the rest are near-duplicates of a kept one), among them kw_lethal, kw_indirect, kw_melta, kw_pistol, has_hover, kw_is_towering, kw_is_swarm, fx_oc, fx_list, fx_defMods, kwu_Vehicle, kwu_Walker, kwu_Mounted, kwu_Dedicated_Transport, kwu_Grenades, kwu_Smoke, kwu_Frame, kwu_Tacticus, kwu_Daemon, kwu_Terminator, kwu_Jump_Pack, kwu_Squadron, kwu_Phobos, kwu_Gravis, kwu_Support, kwu_Captain, kwu_Chaplain, kwu_Ancient, kwu_Lieutenant, kwu_Librarian…. The optional step of letting these move on the selection armies only (Tyranid dials held) was not run.

6. T-661's dials, read from the page's DIALS list

DialSwitchDefaultRangeHow the crack treats it
arrivalKillWarrivalKill10–3grid G2 (a fast dial)
scarceAnswersWscarceAnswers10–3checked at the winners through compute()
wCarrycarryDedicated00–3checked at the winners through compute()
scoreFloorWscoreFloor10–3grid G2 (a fast dial)
killClassWeightWkillClassWeight10–3checked at the winners (a model per value)
secondaryVPWsecondaryVP10–3grid G2 (a fast dial)
missionVPWmissionVP10–3checked at the winners through compute()
vpMissionWvpLedger10–3checked at the winners through compute()
vpPerUnitvpLedger10–1checked at the winners through compute()
threatSoakWthreatSoak10–3grid G2 (a fast dial)
shockPressureWshockPressure10–3grid G2 (a fast dial)
supportMeasuredWsupportMeasured10–3grid G2 (a fast dial)
preferCpreferredTargets40.5–16checked at the winners (a model per value)
preferNpreferredTargets41–8checked at the winners (a model per value)
attachRateattachCharsmeasured0–1grid G2 (attach at 0.8 or 0.4)
lifeSurvivelifeKill10–2checked at the winners (a model per value)
lifeBlendlifeKill0.50–1checked at the winners (a model per value)

The dials only compute() reproduces, checked at G2's 10 best winners and the T-661 stack (the change in five-list pairwise when the dial's switch is on at each level, best case and mean over the settings checked):

DialSettings × levelsBest changeMean change
scarceAnswersW22−1.5 pts (at 0.5)−5.6 pts
missionVPW33−0.7 pts (at 0.25)−4.9 pts
vpMissionW22−2.1 pts (at 0.5)−7.6 pts
wCarry22−0.1 pts (at 0.5)−0.4 pts
preferC2−1.1 pts (at 8)−2.0 pts
preferN2−1.1 pts (at 2)−1.2 pts
lifeSurvive0––
lifeBlend0––

7. The panels' dates against the frozen points (BSData 374f505, 30 Sep)

ListDateEditionAligned toUnits left out for a points move over 10%
auspexFull2026-09-1211th, after the 5 Sep balance update, before any new Tyranid codex.none in our datanone
hivemindFull2026-06-2111th, launch window (before any balance update).80568ccPyrovores 45 → 40; Neurotyrant 115 → 130; Tyrannocyte 90 → 80; Toxicrene 135 → 120
secondFull2026-07-2711th, after the July balance dataslate.80568ccPyrovores 45 → 40; Neurotyrant 115 → 130; Tyrannocyte 90 → 80; Toxicrene 135 → 120
maelstrom2026-0310thnone in our datanone
astrategas2026-04-2110th (April 2026)none in our datanone

With and without stale grades (T-667's tools/panelstale.json: the units a panel graded on other points, rules or data than the frozen ones; a 10th-edition panel's blanket flag not used; units left out per list: auspexFull 0, hivemindFull 16, secondFull 1, maelstrom 0, astrategas 0). Five-list pairwise on rows, with → without:

SettingWithWithoutChange
Track A (built)78.91%78.41%−0.5
Track B (built)77.48%77.17%−0.3
G2 best82.51%82.13%−0.4
G3 best84.33%84.39%+0.1

Maelstrom and Astrategas graded 10th-edition units: no 11th-edition points exist for their dates, so every pair in those two lists is a cross-edition pair no dial can be expected to fit (their per-list scores are lowest throughout). HivemindHobbies and Into the Hive Mind are aligned to 2 Jul (80568cc); four units moved more than 10% by 30 Sep and are already out of their scores; smaller moves stay in. Auspex's list (12 Sep) is graded on the frozen points.

8. Method and caveats