# M2 five-season rebuild results

Retained 13,657 games, 136,510 player rows and 23 newly verified DCGI fullstats. Two conflicts quarantined; six games lack complete stats; 1583 disputed lane labels masked while raw values remain.

Historical Lillia jungle observations (not equally weighted): {'2022': 15, '2023': 30, '2024': 235, '2025': 136, '2026': 1}

## Temporal evaluation

Grouped chronological series: train < 2025-07-01; selection July–14 September; calibration 15 September–13 October; S15 Worlds retrospective holdout. Frozen choices retested on Jul–13 Oct 2026 after fit through June. Final fit all completed by 2026-10-14.

{'train': 9948, 'selection': 766, 'calibration': 148, 's15_worlds': 84, 's16_holdout': 937, 'final_fit': 13655}

| Target | S15 N | S15 MAE / log loss | 2026 N | 2026 MAE / log loss | Tuned baseline | Half-life | Ranked weight | Shared low-rank |
|---|---:|---:|---:|---:|---:|---:|---:|---:|
| outcome | 84 | 0.6243 | 937 | 0.6521 | 0.6519 | 730 | 0 | 0.35 |
| top/10/cs | 84 | 7.9791 | 855 | 9.4937 | 9.5400 | 730 | 0 | 0 |
| top/10/gold | 84 | 271.6534 | 855 | 384.9680 | 384.9680 | 730 | 0 | 0 |
| top/10/xp | 84 | 335.4914 | 855 | 352.1514 | 352.1514 | 730 | 0 | 0 |
| top/15/cs | 84 | 12.2817 | 854 | 13.9617 | 14.0102 | 730 | 0 | 0.35 |
| top/15/gold | 84 | 503.5851 | 866 | 696.4493 | 696.4493 | 730 | 0 | 0 |
| top/15/xp | 84 | 610.0108 | 839 | 701.5574 | 701.5574 | 730 | 0 | 0 |
| top/20/cs | 84 | 16.0016 | 855 | 17.5235 | 17.5552 | 730 | 0 | 0 |
| top/20/gold | 84 | 772.0399 | 855 | 945.6282 | 946.1457 | 730 | 0 | 0.35 |
| top/20/xp | 84 | 852.4880 | 855 | 1000.0077 | 1000.0569 | 730 | 0 | 0 |
| top/25/cs | 84 | 17.4575 | 830 | 19.9451 | 20.0166 | 730 | 0 | 0 |
| top/25/gold | 84 | 1113.9402 | 830 | 1266.9389 | 1267.5698 | 730 | 0 | 0.35 |
| top/25/xp | 84 | 1411.0299 | 830 | 1532.1410 | 1532.3147 | 730 | 0 | 0 |
| jng/10/cs | 84 | 6.5545 | 855 | 7.4703 | 7.4703 | 730 | 0 | 0 |
| jng/10/gold | 84 | 295.4597 | 855 | 362.9692 | 362.4360 | 730 | 0 | 0.35 |
| jng/10/xp | 84 | 289.9134 | 855 | 342.8150 | 342.8150 | 730 | 0 | 0 |
| jng/15/cs | 84 | 10.6185 | 851 | 11.9057 | 11.9057 | 730 | 0 | 0 |
| jng/15/gold | 84 | 452.4863 | 904 | 581.5967 | 581.5967 | 730 | 0 | 0 |
| jng/15/xp | 84 | 505.0656 | 845 | 650.7372 | 650.7372 | 730 | 0 | 0 |
| jng/20/cs | 84 | 14.5431 | 855 | 15.8572 | 15.8572 | 730 | 0 | 0 |
| jng/20/gold | 84 | 673.9737 | 855 | 906.7252 | 905.3328 | 730 | 0 | 0.35 |
| jng/20/xp | 84 | 702.6621 | 855 | 982.3187 | 981.5480 | 730 | 0 | 0.35 |
| jng/25/cs | 84 | 19.1553 | 830 | 21.2858 | 21.2858 | 730 | 0 | 0 |
| jng/25/gold | 84 | 1092.3172 | 830 | 1334.5743 | 1333.9260 | 730 | 0 | 0 |
| jng/25/xp | 84 | 1416.9030 | 830 | 1587.8612 | 1587.2514 | 730 | 0 | 0.35 |
| mid/10/cs | 84 | 7.1912 | 855 | 8.1609 | 8.1640 | 730 | 0 | 0 |
| mid/10/gold | 84 | 264.6194 | 855 | 362.7135 | 363.1954 | 730 | 0 | 0 |
| mid/10/xp | 84 | 302.8725 | 855 | 312.4167 | 312.2569 | 730 | 0 | 0 |
| mid/15/cs | 84 | 10.5576 | 852 | 11.5389 | 11.5586 | 730 | 0 | 0 |
| mid/15/gold | 84 | 511.1479 | 870 | 610.0065 | 610.3506 | 730 | 0 | 0.35 |
| mid/15/xp | 84 | 494.5288 | 834 | 526.6353 | 526.3875 | 730 | 0 | 0.35 |
| mid/20/cs | 84 | 12.3058 | 855 | 15.3079 | 15.3127 | 730 | 0 | 0 |
| mid/20/gold | 84 | 686.9239 | 855 | 870.3171 | 870.7499 | 730 | 0 | 0.35 |
| mid/20/xp | 84 | 668.0225 | 855 | 814.4191 | 814.3730 | 730 | 0 | 0 |
| mid/25/cs | 84 | 16.8497 | 830 | 19.0704 | 19.0704 | 730 | 0 | 0 |
| mid/25/gold | 84 | 1256.0616 | 830 | 1293.8000 | 1293.8000 | 730 | 0 | 0 |
| mid/25/xp | 84 | 1245.6791 | 830 | 1345.5462 | 1345.5462 | 730 | 0 | 0 |
| bot_duo/10/cs | 84 | 9.4516 | 855 | 10.2228 | 10.2228 | 45 | 0 | 0 |
| bot_duo/10/gold | 84 | 402.8558 | 855 | 558.6615 | 558.6615 | 730 | 0 | 0 |
| bot_duo/10/xp | 84 | 429.0967 | 855 | 429.4444 | 429.4444 | 730 | 0 | 0 |
| bot_duo/15/cs | 84 | 12.9271 | 855 | 14.7881 | 14.7881 | 45 | 0 | 0 |
| bot_duo/15/gold | 84 | 750.4471 | 835 | 987.2800 | 987.2800 | 730 | 0 | 0 |
| bot_duo/15/xp | 84 | 608.4587 | 845 | 718.7526 | 719.2229 | 730 | 0 | 0.35 |
| bot_duo/20/cs | 84 | 15.0441 | 855 | 17.5059 | 17.5059 | 45 | 0 | 0 |
| bot_duo/20/gold | 84 | 1206.8440 | 855 | 1432.0014 | 1434.3336 | 730 | 0 | 0.35 |
| bot_duo/20/xp | 84 | 913.3358 | 855 | 1012.1635 | 1012.1635 | 730 | 0 | 0 |
| bot_duo/25/cs | 84 | 17.8453 | 830 | 20.5117 | 20.5117 | 45 | 0 | 0 |
| bot_duo/25/gold | 84 | 1746.7063 | 830 | 2048.4408 | 2047.1769 | 730 | 0 | 0.35 |
| bot_duo/25/xp | 84 | 2125.8689 | 830 | 1966.7907 | 1966.7907 | 730 | 0 | 0 |

Among 25 targets that retained extra interaction terms, 16 improve 2026 holdout MAE over the separately tuned baseline. Others do not. Outcome log loss is very close to baseline; no broad accuracy improvement is established.

## Uncertainty and raw evidence

Lane intervals use held-out calibration errors; simulations draw series-level historical errors. Cross-role terms use 20 block-bootstrap refits over 6318 series. Ranges diagnose stability, not causality. The workbench shows N, ESS, raw means, adjusted terms and sources.

## Ranked calibration

Historical timepoint transfer preserves matching units and is tuned on professional selection. Current OP.GG 26.20 only supplies game wins; no lane-unit conversion. Current outcome adjustment is a separate sensitivity value. Historical outcome-calibration gains are tiny and do not prove reliable cross-patch transfer.

{'selected_weight': 0.35, 'trials': [{'weight': 0, 'validation': {'n': 148, 'log_loss': 0.6449677030106813, 'brier': 0.22657708308795313}}, {'weight': 0.05, 'validation': {'n': 148, 'log_loss': 0.6449600785030124, 'brier': 0.226578152429842}}, {'weight': 0.1, 'validation': {'n': 148, 'log_loss': 0.6449529301370679, 'brier': 0.22657941430345713}}, {'weight': 0.2, 'validation': {'n': 148, 'log_loss': 0.6449400619432447, 'brier': 0.22658251606534832}}, {'weight': 0.35, 'validation': {'n': 148, 'log_loss': 0.644924331357204, 'brier': 0.22658861523764778}}], 'reference': 'strictly pre-2025-07-01 KR Challenger-seeded outcome residuals', 'current_reference': 'OP.GG KR Master+ 26.20; only forward-facing outcome advisory, never lane metric conversion or historical input.', 'bottom_policy': 'No ADC-plus-support sum. Current OP.GG has no complete four-hero duo data; ranked outcome advisory restricted to top/mid/jungle.', 'limits': ['Ranked participant tiers unknown in historical calibration; transfer to current Master+ is a sensitivity estimate, not proven equality of populations.', 'Whole-game outcome residual after ranked single-hero baselines; observational, not causal.'], 's15_worlds': {'n': 84, 'log_loss': 0.6255924791524201, 'brier': 0.2182110102627457}, 's16_holdout': {'n': 937, 'log_loss': 0.6520259560974705, 'brier': 0.23074021145552928}}

## Coverage limits

- Structural identity checks cover admitted games; independent GoL cells currently cover 2025–2026 only, not all five seasons.
- Historical labels denote played roles, not independently verified physical lanes; swaps, roaming and jungle intervention are unobserved.
- Unknown draft formats are usable for performance but excluded from availability calculations.
- All original OE fields and all recovered GoL cells retained separately, including team rows and nulls; no missing value becomes zero.
- Four new October14 DCGI games have GoL internal checks and secondary lineup corroboration; full independent BP remains pending, including a malformed secondary game3 ban list.

All original OE columns and recovered GoL cells are retained. Missing CC/XP/etc. stay unknown. Performance can use games with unknown rules; unverified choice opportunities cannot. Late-timepoint evaluation is conditional on data availability. M1/M3 coefficients and forecasts are preserved.
