p4-9-market-logloss-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) inscrit (d'où vient ce nombre) On the live 2026-27 ledger, the champion's standing pre-start home-win probability is compared with the vig-free market closing line (The Odds API v4, h2h, region us; proportional devig per book, median across books; last snapshot before puck drop) on log loss, same games. (d'où vient ce nombre) pas encore exécuté (d'où vient ce nombre) Afficher le détail de + p10-6-voi-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Each Sportradar trial feed (transactions, injuries, depth charts, starters) adds measurable value over its allowed replacement (league roster lists + NHL.com trades; none for injuries; the club's last shift chart for lines; the league boxscore starter flag) to model accuracy or to panel completeness and accuracy. (d'où vient ce nombre) logLossGainPerfectLineupOverReplacement 0.004 · ci95 -0.002, 0.007 · perfectStarterOverReplacement 0.001 · ci95Starter -0.003, 0.003 · linesNamedWhoDressed sportradar: 0.907, replacement: 0.954 · trios sportradar: 0.428, replacement: 0.601 (d'où vient ce nombre) Afficher le détail de + p10-6-shiftchart-lines-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) After the Sportradar licence lapses, each club's most recent shift chart (lines, pairs and power-play units grouped by shared 5v5 and PP ice time; goalie 1 = that game's boxscore starter) is a usable replacement for the depth-chart panel. (d'où vient ce nombre) namedWhoDressed 0.954, 0.907 · forwardTriosRight 0.601, 0.428 · clubGames 78 · barMet true (d'où vient ce nombre) Afficher le détail de + assistant-prompt-v2 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) inscrit (d'où vient ce nombre) Sonnet 5.5 states the right facts but often leaves the direct-answer sentence without an [n] marker, and the gate deletes it (26.4% answerable pass against Sonnet 5's 71.8% on prompt v1). A v2 system prompt that says exactly where markers go (every sentence including the first, inside the sentence before its full stop, [n] = position in the quotes array, a self-check before returning) and shows one worked example (an invented, non-hockey passage) lets a model that follows instructions closely keep its citations, without hurting refusals or planted-number resistance. Expected: Sonnet 5.5 recovers most of the gap; Sonnet 5 moves little. (d'où vient ce nombre) pas encore exécuté (d'où vient ce nombre) Afficher le détail de + p6-7b-summer-cap-space-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Adding summer (June-September) retention trades quoted from NHL.com/ESPN/theScore stories, 2013 on, gives the summer window enough priced retentions for a range of pick value per 1M cap-season. (d'où vient ce nombre) kind description · summer n: 13, withPicks: 7, p25: 0, median: 5.04, p75: 36.2 · deadline n: 13, median: 190.5, p25: 29.5, p75: 510.4 · researchedRows 13 · floor 5 · passed true (d'où vient ce nombre) Afficher le détail de + p6-5b-slot-market-description-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) inscrit (d'où vient ce nombre) Per deployment slot (forward line 1-4, defence pair 1-3, goalies) the market's pricing of current contracts can be described by the champion hedonic fit's terms; description only, the P6.5 challenger is not adopted. (d'où vient ce nombre) pas encore exécuté (d'où vient ce nombre) Afficher le détail de + p6-8b-win-now-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) rejeté (d'où vient ce nombre) Deadline rental prices (pick value sent for a pending free agent, January 1 to the deadline) rise with the marginal value of a win to the buying club on the trade date (closeness to its conference's playoff line given games left); the part of each price the standings explain is 'justified', the rest is not. (d'où vient ce nombre) kind description · rentals 30 · deadlineTrades 227 · meanPrice 61.9 · slope -99.4 · slope95 -658.2, 383.4 (d'où vient ce nombre) Afficher le détail de + p6-4b-relative-tax-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) The flat-cap tax is relative: a contract's room lost in a flat season is compared with the hit-weighted mean tax rate (1 - actual cap / expected cap) of every archive deal in force that season; deals signed before the 2020 MOU carried a higher rate than the league average of deals in force in 2020-21 to 2023-24. (d'où vient ce nombre) kind description · deals 790 · preFlatDeals 56 · preFlatRelativeRate 0.027 · ci95 0.022, 0.031 · leagueRate 2020-21: 0.026, 2021-22: 0.048, 2022-23: 0.049, 2023-24: 0.05 (d'où vient ce nombre) Afficher le détail de + p6-4b-buyers-market-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) rejeté (d'où vient ce nombre) The flat cap made a buyer's market: standard deals signed in the 2020 and 2021 signing summers carry a lower first-season cap share than the market line (champion hedonic fit, BASE terms, fitted on every other signing summer) predicts for the same production, age, term, position and UFA status. (d'où vient ce nombre) kind description · n 49 · medianLogResidual 0.008 · ci95 -0.06, 0.106 · bySummer 2020: (n: 12, median: 0.003), 2021: (n: 37, median: 0.008) · lineN 388 (d'où vient ce nombre) Afficher le détail de + p7-2-move-fit-v2 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) rejeté (d'où vient ce nombre) Point-in-time fit components (club strength change, destination club strength, system-profile change and distance, mid-season, coach familiarity and tenure) predict the change in a mover's point-in-time 5v5 RAPM (teammate- and opponent-adjusted xG/60, offence + defence) beyond a baseline of age, prior RAPM and minutes. (d'où vient ce nombre) kind study · pass false · deltaR2 0.009 · topMinusBottom 0.034 · T2bar 0.039 · band95 -0.012, 0.08 (d'où vient ce nombre) Afficher le détail de + p5-10-arbitrage-v2 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Platform public stats, weighted by their value in wins (win weights fitted on selection deals), predict a deal's realised first-season WAR beyond what its cap share predicts: the arbitrage table carries information the price does not. (d'où vient ce nombre) kind arbitrage · partialRho 0.207 · pValue 0.001 · nProof 228 · nSelection 86 (d'où vient ce nombre) Afficher le détail de + p5-10-arbitrage-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) rejeté (d'où vient ce nombre) Public stats priced by the market differ from their value in wins, and the gap is real: a deal's arbitrage score (WAR predicted from platform stats with win weights, minus the WAR its cap share buys) predicts its realised first-season WAR net of price, out of sample. (d'où vient ce nombre) kind arbitrage · rho 0.636 · pValue 0 · nProof 228 · nSelection 86 (d'où vient ce nombre) Afficher le détail de + p4-7-contract-next-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) inscrit (d'où vient ce nombre) Frozen Next calls (champion pricing fit, term mixture from the archive) for every pending 2027 UFA and RFA predict the signed deal: share inside the 80% band about 80% of the time; median share error near the backtest's 28.9%; and the market pays against the cap in force ($104M) or the projected cap ($113.5M), read by which framing errs less. (d'où vient ce nombre) pas encore exécuté (d'où vient ce nombre) Afficher le détail de + p7-4-minutes-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) rejeté (d'où vient ce nombre) The lineup optimiser, on point-in-time values, places a mover in a slot whose club TOI is within 2:00 of the all-situation TOI he actually plays in his first 20 games at the new club. (d'où vient ce nombre) kind study · pass false · within2 0.505 · mae 2.515 · n 816 · alpha 1 (d'où vient ce nombre) Afficher le détail de + p7-5-goalie-surface-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) rejeté (d'où vient ce nombre) A mover's GP-smoothed save surface integrated against his new club's shot-against density predicts his GSAx per shot at the new club better than the movers' save% persistence baseline (r = 0.01). (d'où vient ce nombre) kind study · pass false · r -0.007 · band95 -0.253, 0.237 · n 52 (d'où vient ce nombre) Afficher le détail de + p6-5-market-fits-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) A signings history that covers short terms fixes the pricing fit's unseen-term failure: the champion hedonic fit (BASE terms, linear term, trained on ledger deals with first seasons to 2024-25) re-fitted with log(term) and the archive's researched short-term history rows (fall-2020 one- and two-year deals, Toronto 2018-19 signings) in training. (d'où vient ce nombre) kind price · championUnseenMedianApe 0.44 · challengerUnseenMedianApe 0.425 · championUnseenCoverage 0.424 · challengerUnseenCoverage 0.424 · n 99 (d'où vient ce nombre) Afficher le détail de + p7-2-move-fit-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Point-in-time fit components (club strength change, destination club strength, system-profile change and distance, mid-season, coach familiarity and tenure) predict the change in a mover's isolated 5v5 xG share beyond a baseline of age, prior level and minutes. (d'où vient ce nombre) kind study · pass true · deltaR2 0.039 · topMinusBottom 0.037 · band95 0.027, 0.046 · pValue 0.001 (d'où vient ce nombre) Afficher le détail de + scout-dawid-skene-v2 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Same model as v1 with two defences redesigned after the v1 finding: (a) the sybil check counts shared mistakes against GOLD (known truth) instead of the crowd consensus, so a ring large enough to swing the consensus is still caught; (b) the gold screen is also applied per club: a scout whose gold accuracy on items involving one club is below the floor (with at least the minimum gold answers there) gets weight 0 on that club items only. (d'où vient ce nombre) pass true · freshSeeds 6: (all: 0.998, tor: 0.993, ott: 0.993, brier: 0.002, ringFound: 1, honestClustered: 0), 7: (all: 0.998, tor: 1, ott: 1, brier: 0.002, ringFound: 1, honestClustered: 0.017), 8: (all: 0.999, tor: 1, ott: 0.998, brier: 0.001, ringFound: 1, honestClustered: 0.017), 9: (all: 0.999, tor: 1, ott: 1, brier: 0.001, ringFound: 1, honestClustered: 0), 10: (all: 0.999, tor: 0.998, ott: 0.995, brier: 0.001, ringFound: 1, honestClustered: 0.017), 11: (all: 0.999, tor: 0.998, ott: 1, brier: 0.001, ringFound: 1, honestClustered: 0) (d'où vient ce nombre) Afficher le détail de + scout-dawid-skene-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) rejeté (d'où vient ce nombre) Dawid-Skene with allegiance-aware confusion matrices (own/rival/neutral per worker, shrunk to the worker pooled matrix), gold clamping, a gold screen, correlated-error sybil clustering and arbitration freezes recovers known truth from a simulated scout crowd that contains club fans with a lean, a coordinated sybil ring and a brigade inside a freeze window. (d'où vient ce nombre) pass false · seeds 1: (all: 0.874, tor: 0.532, ott: 0.929, brier: 0.126, ringFound: 0, honestClustered: 0.058, pass: no), 2: (all: 0.879, tor: 0.526, ott: 0.92, brier: 0.121, ringFound: 0.1, honestClustered: 0.092, pass: no), 3: (all: 0.864, tor: 0.486, ott: 0.931, brier: 0.136, ringFound: 0, honestClustered: 0.133, pass: no), 4: (all: 0.867, tor: 0.484, ott: 0.915, brier: 0.133, ringFound: 0, honestClustered: 0.075, pass: no), 5: (all: 1, tor: 1, ott: 1, brier: 0, ringFound: 1, honestClustered: 0, pass: yes), 20261008: (all: 0.871, tor: 0.517, ott: 0.912, brier: 0.129, ringFound: 0, honestClustered: 0.083, pass: no) (d'où vient ce nombre) Afficher le détail de + p7-1-pit-canary-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Every pre-move input of the fit backtest is rebuilt from rows dated on or before the day before the player's first game in new colours; no post-move data enters. (d'où vient ce nombre) pass true · sampled 400 · identical 400 · positiveControlFired true · moves 3018 (d'où vient ce nombre) Afficher le détail de + p5-8-defence-in-front-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Defence-in-front: mean champion xG per unblocked shot a goalie faced minus the league mean (empty net excluded). Disclosed before the look: it is mostly a club measure; the card also reports the YoY r on goalies who changed club (descriptive only). (d'où vient ce nombre) kind reliability · pValue 0.002 · passesBar true · yoyR 0.398 · yoyRange95 0.201, 0.55 · n 205 (d'où vient ce nombre) Afficher le détail de + p5-8-workload-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) rejeté (d'où vient ce nombre) Workload sensitivity: GSAx per 100 shots in heavy games (second game of a back-to-back for that goalie, or >= 35 unblocked shots faced) minus GSAx per 100 in the rest; goalies need >= 200 heavy-game shots in both seasons (else excluded). (d'où vient ce nombre) kind reliability · pValue 0.727 · passesBar false · yoyR 0.043 · yoyRange95 -0.094, 0.179 · n 205 (d'où vient ce nombre) Afficher le détail de + p5-8-pull-propensity-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Pull propensity: share of a goalie's starts (first goalie on the ice for his club) in which he leaves before the end of regulation for another goalie (not an empty-net pull), relief entries excluded; goalies with >= 20 starts in both seasons. (d'où vient ce nombre) kind reliability · pValue 0.009 · passesBar true · yoyR 0.314 · yoyRange95 0.123, 0.455 · n 184 (d'où vient ce nombre) Afficher le détail de + p5-8-freeze-road-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Scorer-effect check on p5-8-freeze-rate-v1: the same freeze rate above expected computed on ROAD games only (different scorers every night). If the road-only YoY r fails the bar, the freeze-rate card says its reliability may be the home scorer. (d'où vient ce nombre) kind reliability · pValue 0 · passesBar true · yoyR 0.422 · yoyRange95 0.292, 0.525 · n 216 (d'où vient ce nombre) Afficher le détail de + p5-5-nowcast-finish-v2 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Finish nowcast, second registration: v1 chose q/tau2 = 0.1 at the top edge of its grid. v2 = the same model and proof with the grid widened to q/tau2 in {0, 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1, 3, 10}. v1 stays on the record unchanged. (d'où vient ce nombre) kind nowcast · pValue 0.019 · passesBar true · publishedEitherWay true · verdict form is real: the time-varying state predicts the next game better · qRelChosen 0.1 (d'où vient ce nombre) Afficher le détail de + p5-7-rapm-priors-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) rejeté (d'où vient ce nombre) Isolation with priors. A: 5v5 ridge RAPM chained from 2018 like D3, but (i) the prior mean is last season's estimate moved by the position x age drift (mean change of the chained estimate by age, F/D, measured on dev seasons 2018-2023), and (ii) club-season attack and defence columns (lightly penalised, lambda_club = lambda / 20) absorb club strength. Coach terms: NOT included (no coach-by-game file on disk; stated). B: A plus pair-interaction columns for skater pairs sharing >= 300 5v5 minutes in the season, penalised at 4 x lambda. lambda from {16000, 32000, 64000} on dev end seasons 2021-2023 (targets 2022-2024), same harness as D3 (drive_multi). (d'où vient ce nombre) kind validity · pValue 0.894 · passesBar false · variantChosen — · variants A: (lambda: 64000, proofR: 0.365, d3ProofR_sameRows: 0.383, gainVsD3: (mean: -0.018, range95: 2 items, shareAboveZero: 0.049, players: 502, B: 2000, seed: 5), clubLeakage: 0.197, passes: no, n: 502), B: (lambda: 64000, proofR: 0.37, d3ProofR_sameRows: 0.383, gainVsD3: (mean: -0.013, range95: 2 items, shareAboveZero: 0.106, players: 502, B: 2000, seed: 5), clubLeakage: 0.201, passes: no, n: 502) · coachTerms not included: no coach-by-game file on disk (d'où vient ce nombre) Afficher le détail de + p5-9-xg-gbm-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) xG challenger: LightGBM (fixed params: 255 leaves max 31, lr 0.05, 400 rounds, min data 200, seed 5) on the champion's 34 features plus strength state as categorical and pre-shot proxies from the events (previous event type, seconds since it, distance from its location, same club or not). Trained 2023-24 + 2024-25, tested 2025-26 (the challengers' test season; not sealed). (d'où vient ce nombre) kind challenger · pValue 0 · passesBar true · testShots 105288 · logLossChallenger 0.226 · logLossChampion 0.229 (d'où vient ce nombre) Afficher le détail de + p5-9-xg-uncertainty-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) xG uncertainty carried into bands: refit the champion logistic (numpy ridge IRLS on the replica's features) on 50 game-cluster bootstrap resamples of 2023-24 + 2024-25; per-shot SD of xG; per player 2025 Finish and goalie GSAx recomputed under each draw. Descriptive: no adoption bar; published as the model-uncertainty share of each band. (d'où vient ce nombre) kind descriptive · passesBar true · publishedEitherWay true · meanShotSD 0.003 · medianModelOverSampling finish: 0.043, gsax: 0.095 · bandWidening finish: 0.001, gsax: 0.005 (d'où vient ce nombre) Afficher le détail de + p5-4-gp-aging-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Hierarchical Gaussian-process aging: m_it = mu_pos(age) + f_i(age) + e_it, f_i ~ GP(0, s_c^2 + s_l^2 RBF(ell)), e_it ~ N(0, v_it) (v from the careers desk, same as forecaster K). mu_pos = smoothed dev-season age mean per position. (s_c, s_l, ell) by type-II maximum likelihood on qualifying seasons <= the careers DEV_LAST. Joint exit model: logistic P(no qualifying season next year | GP-predicted level, age), fitted on dev seasons, reported (it does not enter the MSE). Exact GP in numpy (series are <= 20 points): the GPU is not needed. (d'où vient ce nombre) kind per-position · pValue 0 · passesBar true · adoptedPositions G · groups F: (rows: 3212, mseK: 153.208, mseGP: 174.77, gpMinusK: 21.562, range95: 16.684, 26.345, hyper: (sc2: 320.129, sl2: 160.065, ell: 2, residualVar: 533.549, onGridEdge: 3 fields), exitModel: (coef[intercept, level z, age, age^2]: 4 items, rows: 7432, exitRate: 0.231), pValue: 1, passesBar: no), D: (rows: 1654, mseK: 91.466, mseGP: 99.111, gpMinusK: 7.645, range95: 3.793, 11.678, hyper: (sc2: 88.364, sl2: 66.273, ell: 2, residualVar: 220.91, onGridEdge: 3 fields), exitModel: (coef[intercept, level z, age, age^2]: 4 items, rows: 3929, exitRate: 0.223), pValue: 1, passesBar: no), G: (rows: 432, mseK: 1.472, mseGP: 1.194, gpMinusK: -0.278, range95: -0.398, -0.166, hyper: (sc2: 0.246, sl2: 0.185, ell: 2, residualVar: 1.232, onGridEdge: 3 fields), exitModel: (coef[intercept, level z, age, age^2]: 4 items, rows: 901, exitRate: 0.252), pValue: 0, passesBar: yes) · gpu not used: exact GP in numpy on <= 20-point series; Ollama left running (d'où vient ce nombre) Afficher le détail de + p5-6-lgcp-fields-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Shot fields: log intensity on a 4 ft grid of the offensive half-rink = league field + arena (venue) field + club field, each a Gaussian Markov random field (second-difference penalty), fitted by penalised Poisson Newton (MAP of the log-Gaussian Cox process); penalties chosen on 2024 odd/even games. Archetypes as probabilities: Gaussian mixture (4 components, like the k-means) responsibilities on the club fields. (d'où vient ce nombre) kind challenger · pValue 0 · passesBar true · diffPerShot 0.056 · range95 0.052, 0.059 · chosen tauL: 1, tauA: 1000, tauC: 100, llField: -7.58, llBins: -7.629 (d'où vient ce nombre) Afficher le détail de + shadow-ratings-only-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) inscrit (d'où vient ce nombre) The ratings-only game simulation (lib/game-sim.ts without the champion's learned layer), already frozen beside every champion price as challengers.ratingsOnly, is a weaker forecaster than the champion on live games; it is kept in shadow so a regression of the champion shows up against a simpler model. (d'où vient ce nombre) pas encore exécuté (d'où vient ce nombre) Afficher le détail de + p5-5-nowcast-drive-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) In-season form for Drive (5v5 on-ice xG differential per 60 minus the club without him, per game) is real: a time-varying state predicts the next game better than the season-to-date static estimate. (d'où vient ce nombre) kind nowcast · pValue 0.021 · passesBar true · publishedEitherWay true · verdict form is real: the time-varying state predicts the next game better · qRelChosen 0.003 (d'où vient ce nombre) Afficher le détail de + p5-5-nowcast-finish-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) In-season form for Finish (goals minus xG per shot, per game) is real: a time-varying state predicts the next game better than the season-to-date static estimate. (d'où vient ce nombre) kind nowcast · pValue 0.019 · passesBar true · publishedEitherWay true · verdict form is real: the time-varying state predicts the next game better · qRelChosen 0.1 (d'où vient ce nombre) Afficher le détail de + p5-5-nowcast-gsax-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) In-season form for GSAx (xG minus goals per shot faced, per goalie game) is real: a time-varying state predicts the next game better than the season-to-date static estimate. (d'où vient ce nombre) kind nowcast · pValue 0.032 · passesBar true · publishedEitherWay true · verdict form is mostly noise · qRelChosen 0.003 (d'où vient ce nombre) Afficher le détail de + p5-8-hd-gsax-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) rejeté (d'où vient ce nombre) High-danger GSAx: sum(xG - goal) per 100 faced shots with champion-replica xG >= 0.15 (threshold fixed before looking). (d'où vient ce nombre) kind reliability · pValue 0.893 · passesBar false · yoyR 0 · yoyRange95 -0.145, 0.138 · lo90OneSided -0.118 (d'où vient ce nombre) Afficher le détail de + p5-8-rebound-control-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Rebound control: (expected - actual) rebounds per 100 saves; a rebound = the next unblocked shot of the shooting club within 3 s in the same period after a save; expected = league rebound rate of the saved shot's shot type that season. (d'où vient ce nombre) kind reliability · pValue 0.023 · passesBar true · yoyR 0.251 · yoyRange95 0.086, 0.402 · lo90OneSided 0.111 (d'où vient ce nombre) Afficher le détail de + p5-8-freeze-rate-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Freeze rate: share of saves (shot-on-goal events that are not goals, goalie from the shots file) followed by a stoppage event within 2 s with no other event in between, minus the league rate for the saved shot's shot type. (d'où vient ce nombre) kind reliability · pValue 0 · passesBar true · yoyR 0.597 · yoyRange95 0.473, 0.695 · lo90OneSided 0.495 (d'où vient ce nombre) Afficher le détail de + p5-3-pp-rapm-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Power-play offence RAPM: ridge regression of the power-play club's xG per 60 on its skaters (+1) and the short-handed skaters (-1, separate PK-defence columns) and the PK goalie, with 5v3 / 4v3 / home covariates, over all man-advantage stints (both goalies in, periods 1-3) built from shift charts; lambda by 5-fold-by-game CV. ppO in xG/60 of PP time; goals above average = ppO x PP minutes / 60. (d'où vient ce nombre) kind reliability · pValue 0.001 · passesBar true · yoyR 0.451 · measured pp · yoyRange95 0.388, 0.503 (d'où vient ce nombre) Afficher le détail de + p5-3-pk-rapm-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Penalty-kill defence RAPM: the PK-defence columns of the same fit (positive = suppresses the power play's xG/60). Goals above average = pkD x PK minutes / 60. (d'où vient ce nombre) kind reliability · pValue 0.001 · passesBar true · yoyR 0.218 · measured pk · yoyRange95 0.149, 0.28 (d'où vient ce nombre) Afficher le détail de + p5-3-penalty-diff-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Penalty differential in goals: (penalties drawn - penalties taken, minors+majors, excluding offsetting/misconduct-only) per player, referee-adjusted (each game divided by the mean of its two referees' empirical-Bayes-shrunk call-rate ratios), times the season's net power-play goal value per penalty (net ST xG of the advantaged club over ST seconds, per penalty). (d'où vient ce nombre) kind reliability · pValue 0.001 · passesBar true · yoyR 0.543 · measured penRaw · yoyRange95 0.494, 0.582 (d'où vient ce nombre) Afficher le détail de + p5-3-faceoffs-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Faceoffs in goals: (wins - losses) by zone times the zone's goal value of a win, the latter = mean net xG of the winning club in the 20 s after the faceoff (cut at the next faceoff), even strength, measured per season on the season itself. (d'où vient ce nombre) kind reliability · pValue 0.001 · passesBar true · yoyR 0.757 · measured fo · yoyRange95 0.7, 0.8 (d'où vient ce nombre) Afficher le détail de + p5-2-war-v1 (d'où vient ce nombre) 2026-10-08 (d'où vient ce nombre) exécuté (d'où vient ce nombre) WAR = (EV RAPM goals + PP goals + PK goals + penalty-differential goals + faceoff goals - replacement) / goals-per-win. EV goals = (oRAPM + dRAPM) x 5v5 minutes / 60 from rapm-<Y>.json (D3 champion). Replacement = per position group (F, D), the mean per-60 total of players outside the top 13 F / 7 D per club by TOI, times the player's minutes. Goals-per-win per season = least-squares slope of club wins on club goal differential (that season). Components that fail their own entry enter at zero. Goalies excluded from this version (goalie WAR waits on P5.8). (d'où vient ce nombre) kind validity · pValue 0 · passesBar true · r 0.62 · range95 0.524, 0.704 · baselinePointsR 0.55 (d'où vient ce nombre) Afficher le détail de + xg-era-recal-v1 (d'où vient ce nombre) 2026-09-30 (d'où vient ce nombre) exécuté (d'où vient ce nombre) The site's xG champion (xg-2025-26.json, trained 2023-24/2024-25 on the corrected clock) over-predicts goals in the back-filled seasons (goals/xG 0.92-0.96 in 2010-11 to 2014-15; slap shots 21-24% of unblocked attempts then vs ~15% now). R1 = per-season recalibration: logit(p) = logit(champion xG) + d_season, one intercept per season fitted by maximum likelihood (Newton, offset = champion logit) on that season's own unblocked shots (data/pbp/shots-<Y>.json, the same rows as the xG sidecar). R2 = R1 + a slap-shot offset per season (the shot-type-by-era term): logit(p) = logit(champion) + d_season + s_season * [shotType == slap]. Seasons 2010-11 to 2017-18, each on its own. Cross-fitting by game halves: each season's games are split in two by a seeded permutation (seed 5); parameters fitted on half A are scored on half B and vice versa; the held-out log loss is the mean over all shots of both held-out halves. Calibration by decile of predicted xG on the held-out halves (predicted vs observed goals per decile, and the max absolute decile gap). (d'où vient ce nombre) adoptedBySeason 2010: R2 (d -0.063, slap -0.209), 2011: champion (R1 interval crossed 0), 2012: champion, 2013: R1 (d -0.081), 2014: R1 (d -0.091), 2015: R1 (d -0.095), 2016: R1 (d -0.083), 2017: champion · heldOutLogLossR1minusChamp 2010: 0, 2011: 0, 2012: 0, 2013: 0, 2014: 0, 2015: 0, 2016: 0, 2017: 0 · decileAbsErrorSumChampToR1 2010 661->410, 2014 620->267, 2015 638->303 · maxRelDecileGapWorsens bottom decile under-predicted more after the level shift: the era misfit is partly slope, not only level · rankingSpearmanDrive 0.9992 (2010) to 1.0000; top-30 kept 29-30/30 · files data/models/xg-era-recal-study.json, xg-era-recal.json, xg-era-recal-ranking.json; column xgCal in data/pbp/xg-shots-2010..2017.json (d'où vient ce nombre) Afficher le détail de + careers-goalie-labels-v2 (d'où vient ce nombre) 2026-09-30 (d'où vient ce nombre) not-shipped (d'où vient ce nombre) G2, second look at the goalie arc and ceiling labels after filling birth dates (registered 2026-09-30, before the refreshed goalie numbers were computed). careers-goalie-labels-v1 failed on data where only 32% of goalie shots had a known age: every goalie missing from the birth-date sources was absent from K_G, the curves and every label sample. Change: birth dates for every goalie and skater in the season record requested from the league's player landing endpoint (cached in data/landing-cache). NOTHING ELSE CHANGES: K_G (zero aging drift, extended likelihood grid, binomial observation variance), the label rules, thresholds and the scale fix of v1 are kept exactly. BLINDNESS: not blind with respect to careers-goalie-labels-v1 (same development seasons <= 2018, same proof seasons 2019-2025, and the v1 proof numbers were seen). Blind with respect to every season not yet examined: no goalie-season of 2026-27 or later has been looked at, and the goalie-seasons of goalies who had no birth date at v1 were never in any examined sample; their calibration is reported separately as the never-examined subset (a description, not an extra gate). (d'où vient ce nombre) calibration proofSeasons: 345, residualSd: 1.04, window: 0.85, 1.15, ok: yes, residualMean: -0.139 · flash beta: -0.032, devSpikePairs: 7, devSpikeMeanResidual: -0.032, devRange95: -0.37, 0.286, proofPairs: 345, proofSpikePairs: 3, proofSpikeMeanResidual: -0.469, proofSpikeRange95: -1.053, -0.029, proofNonSpikeMeanResidual: -0.136, proofMseImprovement: 0, proofMseImprovementRange95: 0, 0.001, mseA: 1.102 … +3 fields · sustained dev: (n: 0), proof: (n: 0), ship: no, decision: only 0 proof label-holders (< 20) · lateBloomer dev: (n: 1, players: 1, meanZvsPreWindow: 1.297, range95: 1.297, 1.297, shareAbove0: 1, meanZvsFullK: 0.687, fullKRange95: 0.687, 0.687), proof: (n: 3, players: 3, meanZvsPreWindow: 0.302, range95: -0.182, 1.061, shareAbove0: 0.745, meanZvsFullK: -0.81, fullKRange95: -1.269, -0.325), ship: no, decision: only 3 proof label-holders (< 20) · neverExaminedSubset goalies: 129, proofSeasons: 71, residualSd: 0.966, residualMean: -0.276, note: description only (not a gate): goalies with no birth date at careers-goalie-labels-v1 · ship flashInThePan: no, sustainedBreakout: no, lateBloomer: no, earlyPeak: no (d'où vient ce nombre) Afficher le détail de + careers-label-early-peak-v1-look2 (d'où vient ce nombre) 2026-09-30 (d'où vient ce nombre) not-shipped (d'où vient ce nombre) SECOND LOOK at careers-label-early-peak-v1 (registered 2026-09-30 before the refreshed numbers were computed). The first look failed only on sample size (12 proof label-holders, rule needs 20). Since: birth dates filled from the league's landing endpoint and on-ice game data extended back to 2010-11. Definition, forecaster (K + headline curve, dev-fitted), threshold (z <= -1.5 at 26-27), proof window (age-28 season in 2019-2025) and decision rule are exactly those of v1. NOT BLIND: the proof seasons are the ones already examined in the first look. (d'où vient ce nombre) dev n: 17, players: 17, meanZvsPreWindow: -1.009, range95: -1.408, -0.6, shareAbove0: 0, meanZvsFullK: 0.565, fullKRange95: 0.047, 1.119 · proof n: 9, players: 9, meanZvsPreWindow: -1.255, range95: -1.476, -1.066, shareAbove0: 0, meanZvsFullK: 0.305, fullKRange95: -0.195, 0.818 · ship false · decision only 9 proof label-holders (< 20) · secondLook true · evaluatedAt 2026-10-18T12:42:17Z (d'où vient ce nombre) Afficher le détail de + careers-label-fell-short-v1-look2 (d'où vient ce nombre) 2026-09-30 (d'où vient ce nombre) not-shipped (d'où vient ce nombre) SECOND LOOK at the fell-short half of careers-label-ceiling-v1 (registered 2026-09-30 before the refreshed numbers were computed). First look: fell short passed its rule only at age 22 and did not ship there because the age-22 projection's lower tail failed; at the draft and age 20 it had too few held-out label-holders. Since: birth dates filled and on-ice data extended to 2010-11. Definition (V25 below the conformalised 10th percentile where that bound is > 0; validation through 23 vs the season-24/25 q10), bounds (v2 registered), proof classes 2015-2018 and the decision rule are exactly those of careers-label-ceiling-v1. NOT BLIND: the proof classes are the ones already examined. (d'où vient ce nombre) fellShort draft: (dev: (seasonsTested: 34, players: 17, rate: 0.529, rateOverNominal: 5.294, range95: 2 items), proof: (seasonsTested: 24, players: 12, rate: 0.458, rateOverNominal: 4.583, range95: 2 items), ship: no, decision: NOT SHIPPED: proof rate/nominal 4.58 range [1.6666666666666667, 7.083333333333333] on 12 players (bounds v2)), age20: (dev: (seasonsTested: 98, players: 49, rate: 0.878, rateOverNominal: 8.776, range95: 2 items), proof: (seasonsTested: 38, players: 19, rate: 0.737, rateOverNominal: 7.368, range95: 2 items), ship: no, decision: NOT SHIPPED: proof rate/nominal 7.37 range [5.526315789473684, 8.947368421052632] on 19 players (bounds v2)), age22: (dev: (seasonsTested: 98, players: 49, rate: 0.51, rateOverNominal: 5.102, range95: 2 items), proof: (seasonsTested: 106, players: 53, rate: 0.481, rateOverNominal: 4.811, range95: 2 items), ship: yes, decision: SHIP: proof rate/nominal 4.81 range [3.5849056603773586, 6.037735849056604] on 53 players (bounds v2)) · lowerTailOk draft: yes, age20: no, age22: no · ship draft: no, age20: no, age22: no · secondLook true · evaluatedAt 2026-10-18T12:42:17Z (d'où vient ce nombre) Afficher le détail de + careers-goalie-labels-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) not-shipped (d'où vient ce nombre) G, goalie-specific arc labels and ceiling label. REGISTERED AFTER the pooled label and ceiling results (all positions together) were seen; the goalie-only proof numbers below had NOT been computed. Diagnosis that prompted it (development data and code only): (1) the labels were validated with K built on the development goalie aging curve, which is empty (no age step with >= 30 pairs before 2018, so zero drift), but applied on the site with the all-season curve (pattern-mixture, peak 24, -0.24 save-% points a year, from 477 qualifying goalie-seasons with a known age; the mixed model on the same rows says -0.02 a year). That drift pulled a 31-year-old's expectation down ~1.5 points, so 'expected' in a goalie sentence was on a different scale from the one validated (Hellebuyck 2024-25: expected -0.07 on the site, +0.77 under the validated K). (2) The maximum-likelihood tau^2 sat on the lower edge of the search grid. (3) Goalie label-holders were a small share of the pooled validation, so no goalie label was ever tested on goalies. (4) Goalie draft-checkpoint upper-tail misses run 18-20% against a nominal 10%, and the position check only asked the Wilson interval to overlap the window. K_G: zero aging drift for goalies everywhere (fit, labels, site bands); tau^2, omega^2 by maximum likelihood on seasons <= 2018 over an extended grid (tau^2 0.002-1.5 x level variance, omega^2 0.0005-0.3 x); observation variance binomial by shots faced (shot-volume-aware shrinkage, unchanged). Label rules and thresholds unchanged (z 2.0 spike, 1.0 flash, 1.5 sustained / late bloomer). (d'où vient ce nombre) calibration proofSeasons: 274, residualSd: 1.162, window: 0.85, 1.15, ok: no, residualMean: -0.156 · flash beta: 0.602, devSpikePairs: 2, devSpikeMeanResidual: 0.602, devRange95: 0.602, 0.602, proofPairs: 274, proofSpikePairs: 2, proofSpikeMeanResidual: 0.173, proofSpikeRange95: 0.007, 0.338, proofNonSpikeMeanResidual: -0.159, proofMseImprovement: -0.001, proofMseImprovementRange95: -0.004, 0, mseA: 1.375 … +3 fields · sustained dev: (n: 0), proof: (n: 0), ship: no, decision: only 0 proof label-holders (< 20) · lateBloomer dev: (n: 0), proof: (n: 3, players: 3, meanZvsPreWindow: 0.745, range95: -0.439, 1.607, shareAbove0: 0.962, meanZvsFullK: 0.276, fullKRange95: -0.9, 1.39), ship: no, decision: only 3 proof label-holders (< 20) · ship flashInThePan: no, sustainedBreakout: no, lateBloomer: no, earlyPeak: no · kalman measure: savePctAboveLeague, tau2: 0.007, omega2: 0.023, levelVar: 1.23, atGridEdge: no, drift: none (careers-goalie-labels-v1), bloomCut75: 0.277, curveEstimator: pm, players: 153 (d'où vient ce nombre) Afficher le détail de + careers-checkpoint-projection-v5 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) inscrit (d'où vient ce nombre) P, next blind test (registered 2026-09-29, NOT run: its proof data do not exist yet). After v2-v4 all failed the lower tail at ages 20 and 22 on the 2015-2018 classes with the median too high (PIT mean 0.37-0.41), while the draft checkpoint passed: those classes played ages ~21-25 through the shortened 2019-20 (~70 games) and 2020-21 (56 games) schedules, which a model fitted on 2010-2014 cannot know. v5 = v4 (increment target, Mondrian CQR) with every NHL season's TOI, games and points scaled to an 82-game schedule (x 82 / club games that season) in both features and outcomes, fitted on classes 2010-2018. (d'où vient ce nombre) pas encore exécuté (d'où vient ce nombre) Afficher le détail de + careers-checkpoint-projection-v4 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) shipped (d'où vient ce nombre) P, structural repair. REGISTERED AFTER the v2 and v3 proof results were seen (v3: lower-tail misses 16.5% at 20 and 16.8% at 22). A development-only diagnosis (leave-one-class-out, 2010-2014) shows the cause: the models predict cumulative totals and are then floored at the minutes already banked; for about half the rows the raw 10th percentile is below what is banked, so the floor lifts the median (P(y < q50) 0.48 -> 0.56 at 20, 0.51 -> 0.58 at 22) and raw quantile boosting under-covers the lower tail (35-38% misses). v4 models the INCREMENT after the checkpoint (>= 0) and adds the banked amount back; Mondrian CQR as v3. Models, features and model choice otherwise unchanged. (d'où vient ce nombre) draft proof: (players: 855, upperMiss: 0.095, lowerMiss: 0.089, lowerEligible: 124, coverage80: 0.892, pitMean: 0.488, pitHist10: 75, 101, 94, 98, 59, 118, 64, 109, 56, 81, pinball: 5.81, pinballQ0: 5.81, gainOverQ0: (mean: 0, range95: 2 items, shareAbove0: 0), spearmanMedianVsOutcome: 0.479), dev: (players: 1047, upperMiss: 0.098, lowerMiss: 0.104, lowerEligible: 154, coverage80: 0.886, pitMean: 0.485, pitHist10: 99, 108, 140, 98, 87, 147, 64, 123, 78, 103, pinball: 6.36, pinballQ0: 6.36, gainOverQ0: (mean: 0, range95: 2 items, shareAbove0: 0), spearmanMedianVsOutcome: 0.518), ship: yes, decision: PROVISIONAL SHIP (dev and non-blind proof tails) · age20 proof: (players: 854, upperMiss: 0.126, lowerMiss: 0.191, lowerEligible: 278, coverage80: 0.811, pitMean: 0.404, pitHist10: 194, 154, 63, 76, 35, 72, 47, 60, 45, 108, pinball: 4.842, pinballQ0: 5.408, gainOverQ0: (mean: 0.567, range95: 2 items, shareAbove0: 1), spearmanMedianVsOutcome: 0.58), dev: (players: 1046, upperMiss: 0.126, lowerMiss: 0.228, lowerEligible: 351, coverage80: 0.797, pitMean: 0.402, pitHist10: 294, 171, 74, 50, 36, 68, 70, 74, 76, 133, pinball: 5.01, pinballQ0: 5.923, gainOverQ0: (mean: 0.913, range95: 2 items, shareAbove0: 1), spearmanMedianVsOutcome: 0.608), ship: no, decision: NOT SHIPPED (dev and non-blind proof tails) · age22 proof: (players: 855, upperMiss: 0.101, lowerMiss: 0.184, lowerEligible: 332, coverage80: 0.828, pitMean: 0.373, pitHist10: 205, 171, 64, 85, 46, 58, 46, 45, 49, 86, pinball: 2.591, pinballQ0: 4.067, gainOverQ0: (mean: 1.476, range95: 2 items, shareAbove0: 1), spearmanMedianVsOutcome: 0.751), dev: (players: 1047, upperMiss: 0.124, lowerMiss: 0.172, lowerEligible: 430, coverage80: 0.805, pitMean: 0.384, pitHist10: 270, 195, 81, 77, 57, 70, 44, 61, 61, 131, pinball: 2.802, pinballQ0: 4.326, gainOverQ0: (mean: 1.524, range95: 2 items, shareAbove0: 1), spearmanMedianVsOutcome: 0.766), ship: no, decision: NOT SHIPPED (dev and non-blind proof tails) · shippedFrom draft: (ship: yes, mode: v2, provisional: no), age20: (ship: no, mode: v2, provisional: no), age22: (ship: no, mode: v2, provisional: no) · evaluatedAt 2026-10-18T12:42:17Z (d'où vient ce nombre) Afficher le détail de + careers-checkpoint-projection-v3 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) not-shipped (d'où vient ce nombre) P, calibration repair. REGISTERED AFTER v2's proof result was seen: v2 failed the lower-tail test at age 20 (21% misses) and age 22 (20%); the development folds show the same (~25%), so the cause is structural: the single pooled conformal correction is set by the mass of players at 0 NHL minutes and never moves the lower bound of players already on an NHL path. v3 = v2 with Mondrian (group-conditional) CQR: separate corrections per checkpoint x target x target age x group, group = (q10 > 0 or not) for the lower bound and tercile of q90 for the upper, each from development leave-one-class-out scores only (groups under 30 rows fall back to the pooled correction). Models, features and choice unchanged. (d'où vient ce nombre) draft proof: (players: 855, upperMiss: 0.095, lowerMiss: 0.089, lowerEligible: 124, coverage80: 0.892, pitMean: 0.488, pitHist10: 75, 101, 94, 98, 59, 118, 64, 109, 56, 81, pinball: 5.81, pinballQ0: 5.81, gainOverQ0: (mean: 0, range95: 2 items, shareAbove0: 0), spearmanMedianVsOutcome: 0.479), dev: (players: 1047, upperMiss: 0.098, lowerMiss: 0.104, lowerEligible: 154, coverage80: 0.886, pitMean: 0.485, pitHist10: 99, 108, 140, 98, 87, 147, 64, 123, 78, 103, pinball: 6.36, pinballQ0: 6.36, gainOverQ0: (mean: 0, range95: 2 items, shareAbove0: 0), spearmanMedianVsOutcome: 0.518), ship: yes, decision: SHIP: upper miss 0.095 (in [0.05,0.15]), lower miss 0.089 on 124 eligible (ok) · age20 proof: (players: 854, upperMiss: 0.122, lowerMiss: 0.165, lowerEligible: 254, coverage80: 0.829, pitMean: 0.406, pitHist10: 204, 147, 59, 72, 30, 81, 49, 56, 52, 104, pinball: 4.884, pinballQ0: 5.782, gainOverQ0: (mean: 0.898, range95: 2 items, shareAbove0: 1), spearmanMedianVsOutcome: 0.581), dev: (players: 1046, upperMiss: 0.125, lowerMiss: 0.224, lowerEligible: 331, coverage80: 0.804, pitMean: 0.403, pitHist10: 298, 163, 75, 53, 33, 66, 66, 85, 76, 131, pinball: 5.047, pinballQ0: 6.287, gainOverQ0: (mean: 1.24, range95: 2 items, shareAbove0: 1), spearmanMedianVsOutcome: 0.608), ship: no, decision: NOT SHIPPED: upper miss 0.122 (in [0.05,0.15]), lower miss 0.165 on 254 eligible (outside [0.05,0.15]) · age22 proof: (players: 855, upperMiss: 0.095, lowerMiss: 0.168, lowerEligible: 327, coverage80: 0.841, pitMean: 0.37, pitHist10: 217, 156, 70, 76, 60, 55, 41, 45, 54, 81, pinball: 2.624, pinballQ0: 5.195, gainOverQ0: (mean: 2.571, range95: 2 items, shareAbove0: 1), spearmanMedianVsOutcome: 0.731), dev: (players: 1047, upperMiss: 0.119, lowerMiss: 0.171, lowerEligible: 422, coverage80: 0.812, pitMean: 0.383, pitHist10: 277, 205, 75, 64, 53, 72, 45, 60, 71, 125, pinball: 2.845, pinballQ0: 5.646, gainOverQ0: (mean: 2.801, range95: 2 items, shareAbove0: 1), spearmanMedianVsOutcome: 0.764), ship: no, decision: NOT SHIPPED: upper miss 0.095 (in [0.05,0.15]), lower miss 0.168 on 327 eligible (outside [0.05,0.15]) · shippedFrom draft: (ship: yes, mode: v2, provisional: no), age20: (ship: no, mode: v2, provisional: no), age22: (ship: no, mode: v2, provisional: no) · evaluatedAt 2026-10-18T12:42:17Z (d'où vient ce nombre) Afficher le détail de + careers-checkpoint-projection-v2 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) shipped (d'où vient ce nombre) P (amended before any projection was fitted or scored). Identical to careers-checkpoint-projection-v1 except the shipping test. Reason: V25 has a large mass at exactly 0 (most picks never play), so for a player whose 10th percentile is 0 the interval [q10, q90] covers about 90%, not 80%, by construction; the v1 window [0.75, 0.85] for two-sided coverage would fail a perfectly calibrated model. The amended test checks each tail where a miss is possible. (d'où vient ce nombre) draft proof: (players: 855, upperMiss: 0.104, lowerMiss: 0.137, lowerEligible: 124, coverage80: 0.876, pitMean: 0.488, pitHist10: 81, 98, 93, 92, 64, 122, 63, 97, 56, 89, pinball: 5.81, pinballQ0: 5.81, gainOverQ0: (mean: 0, range95: 2 items, shareAbove0: 0), spearmanMedianVsOutcome: 0.479), dev: (players: 1047, upperMiss: 0.124, lowerMiss: 0.136, lowerEligible: 154, coverage80: 0.856, pitMean: 0.487, pitHist10: 107, 105, 139, 98, 80, 147, 65, 107, 69, 130, pinball: 6.36, pinballQ0: 6.36, gainOverQ0: (mean: 0, range95: 2 items, shareAbove0: 0), spearmanMedianVsOutcome: 0.518), ship: yes, decision: SHIP: upper miss 0.104 (in [0.05,0.15]), lower miss 0.137 on 124 eligible (ok) · age20 proof: (players: 854, upperMiss: 0.137, lowerMiss: 0.209, lowerEligible: 292, coverage80: 0.792, pitMean: 0.408, pitHist10: 201, 138, 69, 79, 26, 80, 48, 55, 41, 117, pinball: 4.884, pinballQ0: 5.782, gainOverQ0: (mean: 0.898, range95: 2 items, shareAbove0: 1), spearmanMedianVsOutcome: 0.581), dev: (players: 1046, upperMiss: 0.141, lowerMiss: 0.271, lowerEligible: 421, coverage80: 0.75, pitMean: 0.401, pitHist10: 323, 147, 77, 50, 32, 61, 64, 76, 68, 148, pinball: 5.047, pinballQ0: 6.287, gainOverQ0: (mean: 1.24, range95: 2 items, shareAbove0: 1), spearmanMedianVsOutcome: 0.608), ship: no, decision: NOT SHIPPED: upper miss 0.137 (in [0.05,0.15]), lower miss 0.209 on 292 eligible (outside [0.05,0.15]) · age22 proof: (players: 855, upperMiss: 0.109, lowerMiss: 0.202, lowerEligible: 341, coverage80: 0.811, pitMean: 0.372, pitHist10: 231, 135, 79, 78, 56, 53, 43, 45, 42, 93, pinball: 2.624, pinballQ0: 5.195, gainOverQ0: (mean: 2.571, range95: 2 items, shareAbove0: 1), spearmanMedianVsOutcome: 0.731), dev: (players: 1047, upperMiss: 0.138, lowerMiss: 0.221, lowerEligible: 475, coverage80: 0.761, pitMean: 0.381, pitHist10: 315, 167, 78, 66, 52, 73, 44, 51, 56, 145, pinball: 2.845, pinballQ0: 5.646, gainOverQ0: (mean: 2.801, range95: 2 items, shareAbove0: 1), spearmanMedianVsOutcome: 0.764), ship: no, decision: NOT SHIPPED: upper miss 0.109 (in [0.05,0.15]), lower miss 0.202 on 341 eligible (outside [0.05,0.15]) · shippedFrom draft: (ship: yes, mode: v2, provisional: no), age20: (ship: no, mode: v2, provisional: no), age22: (ship: no, mode: v2, provisional: no) · evaluatedAt 2026-10-18T12:42:17Z (d'où vient ce nombre) Afficher le détail de + careers-aging-survivorship-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) adopté (d'où vient ce nombre) A1. Delta-method aging curves (mean within-player change between consecutive qualifying seasons, weighted by the harmonic mean of the two seasons' TOI, chained from age 19) are biased upward at older ages because players who decline leave the sample. Two corrections: (i) inverse-probability weighting of each observed pair by 1 / P(next season observed | age, position, level percentile, TOI share, GP, previous delta) from a logistic fitted by position; (ii) pattern-mixture imputation: every exit (no qualifying next season, age <= 38) gets a next-season delta = the IPW-weighted conditional mean delta for its covariates plus a shift s estimated from near-dropouts (next season 1-19 GP, observed but thin), s = TOI-weighted mean residual of near-dropouts. Expected: the corrections move peak age earlier and steepen the post-peak decline, most for forwards' points/60. (d'où vient ce nombre) simulationMarMnarRmse naive: 0.062, ipw: 0.064, pm: 0.039 · winner pm · curves F:pointsPer60: (headline: pm, peakAge: 24, peakAgeRange: 23, 24, declinePerYear: -0.055, naivePeak: 24, proofCheck: (naive: 2 fields, ipw: 2 fields, pm: 2 fields)), F:toiShare: (headline: pm, peakAge: 26, peakAgeRange: 25, 26, declinePerYear: -0.006, naivePeak: 26, proofCheck: (naive: 2 fields, ipw: 2 fields, pm: 2 fields)), F:pointsPer82: (headline: pm, peakAge: 24, peakAgeRange: 24, 26, declinePerYear: -1.214, naivePeak: 26, proofCheck: (naive: 2 fields, ipw: 2 fields, pm: 2 fields)), F:drive: (headline: pm, peakAge: 22, peakAgeRange: 19, 23, declinePerYear: -0.004, naivePeak: 22, proofCheck: (naive: 2 fields, ipw: 2 fields, pm: 2 fields)), F:xgf60: (headline: pm, peakAge: 23, peakAgeRange: 21, 24, declinePerYear: -0.026, naivePeak: 24, proofCheck: (naive: 2 fields, ipw: 2 fields, pm: 2 fields)), F:xgaPrevented60: (headline: pm, peakAge: 20, peakAgeRange: 19, 33.025, declinePerYear: -0.011, naivePeak: 20, proofCheck: (naive: 2 fields, ipw: 2 fields, pm: 2 fields)), F:ixg60: (headline: pm, peakAge: 24, peakAgeRange: 23, 24, declinePerYear: -0.018, naivePeak: 24, proofCheck: (naive: 2 fields, ipw: 2 fields, pm: 2 fields)), D:pointsPer60: (headline: pm, peakAge: 23, peakAgeRange: 19, 26, declinePerYear: -0.012, naivePeak: 23, proofCheck: (naive: 2 fields, ipw: 2 fields, pm: 2 fields)), D:toiShare: (headline: pm, peakAge: 25, peakAgeRange: 24, 27, declinePerYear: -0.003, naivePeak: 27, proofCheck: (naive: 2 fields, ipw: 2 fields, pm: 2 fields)), D:pointsPer82: (headline: pm, peakAge: 26, peakAgeRange: 23, 26, declinePerYear: -1.077, naivePeak: 26, proofCheck: (naive: 2 fields, ipw: 2 fields, pm: 2 fields)), D:drive: (headline: pm, peakAge: 23, peakAgeRange: 19, 24, declinePerYear: -0.003, naivePeak: 24, proofCheck: (naive: 2 fields, ipw: 2 fields, pm: 2 fields)), D:xgf60: (headline: pm, peakAge: 24, peakAgeRange: 19, 26, declinePerYear: -0.018, naivePeak: 26, proofCheck: (naive: 2 fields, ipw: 2 fields, pm: 2 fields)) … +4 fields · evaluatedAt 2026-10-18T12:42:17Z (d'où vient ce nombre) Afficher le détail de + careers-aging-mixed-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) benchmark (d'où vient ce nombre) A2. A linear mixed model level_it = f(age) + b0_i + b1_i (age - 27) + e_it, f a natural cubic spline (knots 21, 24, 27, 30, 33, 36), random intercept and slope with unstructured 2x2 covariance, residual variance inversely proportional to the season's TOI, fitted by EM (REML-style) in numpy, gives a peak and decline in the same place as the corrected delta curve (likelihood under MAR dropout ignores exit that depends on past observed level). (d'où vient ce nombre) peaks F:pointsPer60: (peakAge: 24.9, range: 24.5, 25.503, declinePerYear: -0.035), F:toiShare: (peakAge: 26.3, range: 25.8, 26.7, declinePerYear: -0.004), F:pointsPer82: (peakAge: 25.6, range: 25.2, 26.003, declinePerYear: -1.27), F:drive: (peakAge: 23.4, range: 19, 25.003, declinePerYear: -0.002), D:pointsPer60: (peakAge: 25.7, range: 24.497, 26.802, declinePerYear: -0.014), D:toiShare: (peakAge: 26.9, range: 25.897, 28.9, declinePerYear: -0.003), D:pointsPer82: (peakAge: 26.1, range: 25.1, 27, declinePerYear: -0.516), D:drive: (peakAge: 23.8, range: 23.3, 24.5, declinePerYear: -0.001), G:savePctAboveLeague: (peakAge: 26, range: 23.875, 27.203, declinePerYear: -0.05) · oneStepVsK F: (rows: 3212, mseK: 153.538, mseMixed: 159.533, mixedMinusK: 5.995, range95: 0.229, 12.15, winner: K), D: (rows: 1654, mseK: 91.663, mseMixed: 102.624, mixedMinusK: 10.961, range95: 4.001, 18.405, winner: K), G: (rows: 432, mseK: 1.472, mseMixed: 1.178, mixedMinusK: -0.293, range95: -0.404, -0.191, winner: mixed) · evaluatedAt 2026-10-18T12:42:17Z (d'où vient ce nombre) Afficher le détail de + careers-aging-tiers-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) exécuté (d'où vient ce nombre) A3. Stars and depth players age differently. Tier is fixed one season BEFORE the delta is measured (tier from season t-1, delta t -> t+1) so selection noise in t does not create regression to the mean: star = top 10% of position-age level in t-1, depth = bottom 50%. Plus quantile curves: linear quantile regression (MM algorithm) of level on the age spline at tau 0.1, 0.5, 0.9, IPW-weighted. Expected: stars peak later and decline slower in points/60. (d'où vient ce nombre) F:pointsPer60 peakDiff: (estimate: 0, range95: -5, 4), declineDiff: (estimate: -0.047, range95: -0.089, 0.062), starPairs: 854, depthPairs: 2633 · D:pointsPer60 peakDiff: (estimate: -5, range95: -7, 2.05), declineDiff: (estimate: 0.002, range95: -0.117, 0.026), starPairs: 434, depthPairs: 1522 (d'où vient ce nombre) Afficher le détail de + careers-checkpoint-projection-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) superseded (d'où vient ce nombre) P. From information available at a checkpoint only (draft: through the draft-year season; age 20 and age 22: through that season) - draft position, round, age in days at the checkpoint, position, height, weight, pre-NHL production translated by the site league ladder (league-ladder.json; leagues without a translation keep raw points per game plus a league-family indicator), NHL games / points / TOI to date - a quantile model projects each drafted player's path: cumulative NHL TOI hours, cumulative NHL games and cumulative NHL points through each age to 25, and season TOI hours at each age, with calibrated 10/50/90% bounds. Career outcome V25 = cumulative NHL TOI hours through the age-25 season (observable for every pick of 2010-2018). (d'où vient ce nombre) pas encore exécuté (d'où vient ce nombre) Afficher le détail de + careers-label-ceiling-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) shipped (d'où vient ce nombre) L1. Exceeded ceiling at checkpoint c (draft / 20 / 22): V25 above the conformalised 90th percentile projection at c. Fell short: V25 below the conformalised 10th percentile (only defined where that bound is > 0). Probability shown = 1 - projected CDF at the realised V25. Validation (does it predict anything out of sample): the same label computed on cumulative TOI through 23 must predict season TOI at 24 and 25 beyond the projection's own 90th (10th) percentile of those seasons. (d'où vient ce nombre) registeredV2Bounds exceeded: (draft: (dev: 5 fields, proof: 5 fields, ship: yes, decision: SHIP: proof rate/nominal 6.21 range [5.329670329670329, 7.032967032967033] on 91 players (bounds v2)), age20: (dev: 5 fields, proof: 5 fields, ship: yes, decision: SHIP: proof rate/nominal 6.36 range [5.454545454545454, 7.215909090909091] on 88 players (bounds v2)), age22: (dev: 5 fields, proof: 5 fields, ship: yes, decision: SHIP: proof rate/nominal 5.56 range [4.027777777777778, 6.944444444444445] on 36 players (bounds v2))), fellShort: (draft: (dev: 5 fields, proof: 5 fields, ship: no, decision: NOT SHIPPED: proof rate/nominal 4.58 range [1.6666666666666667, 7.083333333333333] on 12 players (bounds v2)), age20: (dev: 5 fields, proof: 5 fields, ship: no, decision: NOT SHIPPED: proof rate/nominal 7.37 range [5.526315789473684, 8.947368421052632] on 19 players (bounds v2)), age22: (dev: 5 fields, proof: 5 fields, ship: yes, decision: SHIP: proof rate/nominal 4.81 range [3.5849056603773586, 6.037735849056604] on 53 players (bounds v2))) · shipping draft: (mode: v2, provisional: no, exceeded: yes, fellShort: no, registeredV2: (exceeded: yes, fellShort: no), upperTailOk: yes, lowerTailOk: yes, byGroup: (F: yes, D: yes, G: no)), age20: (mode: v2, provisional: no, exceeded: yes, fellShort: no, registeredV2: (exceeded: yes, fellShort: no), upperTailOk: yes, lowerTailOk: no, byGroup: (F: yes, D: yes, G: no)), age22: (mode: v2, provisional: no, exceeded: yes, fellShort: no, registeredV2: (exceeded: yes, fellShort: yes), upperTailOk: yes, lowerTailOk: no, byGroup: (F: yes, D: yes, G: no)) · evaluatedAt 2026-10-18T12:42:17Z · fellShortNote fell-short block frozen at its first look; second look in careers-label-fell-short-v1-look2 (d'où vient ce nombre) Afficher le détail de + careers-label-flash-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) shipped (d'où vient ce nombre) L2. Spike season: qualifying season t with z >= 2.0 against K's forecast from strictly earlier seasons, the player having >= 2 earlier qualifying seasons. Flash in the pan (retrospective): spike, and the mean of the qualifying seasons among t+1..t+2 (at least one) has z <= 1.0 against the PRE-spike forecast. Claim: a spike season regresses MORE than regression to the mean alone (K with all seasons through t) predicts, i.e. spikes are disproportionately luck. (d'où vient ce nombre) beta -0.002 · devSpikePairs 278 · devSpikeMeanResidual -0.002 · devRange95 -0.136, 0.134 · proofPairs 4408 · proofSpikePairs 132 (d'où vient ce nombre) Afficher le détail de + careers-label-sustained-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) shipped (d'où vient ce nombre) L3. Sustained breakout: a spike season t (as L2) and both t+1 and t+2 qualifying with the z of their variance-weighted mean against the PRE-spike forecast >= 1.5. Claim: the change is real, so the season after the window (t+3) stays above the pre-spike forecast. (d'où vient ce nombre) dev n: 81, players: 75, meanZvsPreWindow: 1.301, range95: 1.116, 1.491, shareAbove0: 1, meanZvsFullK: -0.316, fullKRange95: -0.625, -0.002 · proof n: 47, players: 45, meanZvsPreWindow: 1.583, range95: 1.385, 1.784, shareAbove0: 1, meanZvsFullK: -0.074, fullKRange95: -0.378, 0.227 · ship true · decision proof mean z range above 0 · evaluatedAt 2026-10-18T12:42:17Z (d'où vient ce nombre) Afficher le détail de + careers-label-late-bloomer-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) shipped (d'où vient ce nombre) L4. Late bloomer: two consecutive qualifying seasons both at age >= 26 whose variance-weighted mean has z >= 1.5 against K's forecast from seasons through age 25 only (prior alone if none), and the player's K estimate at 25 is not above the position's 75th percentile of age-25 talent. Claim: the late rise is real, so the next season stays above the through-25 forecast. (d'où vient ce nombre) dev n: 26, players: 26, meanZvsPreWindow: 1.234, range95: 0.96, 1.495, shareAbove0: 1, meanZvsFullK: -0.126, fullKRange95: -0.498, 0.276 · proof n: 33, players: 33, meanZvsPreWindow: 1.24, range95: 0.974, 1.487, shareAbove0: 1, meanZvsFullK: -0.145, fullKRange95: -0.44, 0.14 · ship true · decision proof mean z range above 0 · evaluatedAt 2026-10-18T12:42:17Z (d'où vient ce nombre) Afficher le détail de + careers-label-early-peak-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) not-shipped (d'où vient ce nombre) L5. Early peak: the player's best two consecutive qualifying seasons (variance-weighted mean level) end at age <= 24, and the variance-weighted mean of his qualifying seasons at ages 26-27 has z <= -1.5 against the forecast made at the end of the peak pair (K + headline curve). Claim: the decline is real, so age 28 stays below that forecast. (d'où vient ce nombre) dev n: 19, players: 19, meanZvsPreWindow: -1.102, range95: -1.43, -0.754, shareAbove0: 0, meanZvsFullK: 0.404, fullKRange95: -0.078, 0.905 · proof n: 12, players: 12, meanZvsPreWindow: -1.124, range95: -1.383, -0.856, shareAbove0: 0, meanZvsFullK: 0.355, fullKRange95: -0.075, 0.757 · ship false · decision only 12 proof label-holders (< 20) · evaluatedAt 2026-09-30T14:01:46Z (d'où vient ce nombre) Afficher le détail de + careers-bias-fdr-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) exécuté (d'où vient ce nombre) B. The checkpoint projections are fair across nationality (birth country: CAN, USA, SWE, FIN, RUS, CZE+SVK, other), draft round (1..7), birth quarter (Jan-Mar ... Oct-Dec), league of origin at the draft (CHL, NCAA/US college, US junior, Sweden, Finland, Russia, Czechia/Slovakia, other Europe, other) and market (drafting club's metro tercile from data/assay/market-size.json). Residual = PIT of V25 under the out-of-fold projection (leave-one-class-out for 2010-2014, frozen model for 2015-2018). (d'où vient ce nombre) tests 251 · q 0.1 · discoveries (checkpoint: age20, attribute: draftRound, level: 1, statistic: meanPIT, n: 271, value: 0.616, rest: 0.367, diff: 0.249, p: 0, pAdjBH: 0.008, discovery: yes); (checkpoint: age20, attribute: draftRound, level: 1, statistic: exceededRate, n: 271, value: 0.258, rest: 0.12, diff: 0.139, p: 0, pAdjBH: 0.008, discovery: yes); (checkpoint: age20, attribute: draftRound, level: 1, statistic: fellShortRate, n: 271, value: 0.059, rest: 0.36, diff: -0.301, p: 0, pAdjBH: 0.008, discovery: yes); (checkpoint: age20, attribute: draftRound, level: 2, statistic: meanPIT, n: 275, value: 0.488, rest: 0.388, diff: 0.101, p: 0, pAdjBH: 0.008, discovery: yes); (checkpoint: age20, attribute: draftRound, level: 3, statistic: fellShortRate, n: 89, value: 0.36, rest: 0.229, diff: 0.13, p: 0.008, pAdjBH: 0.085, discovery: yes); (checkpoint: age20, attribute: draftRound, level: 5, statistic: meanPIT, n: 271, value: 0.35, rest: 0.411, diff: -0.06, p: 0.008, pAdjBH: 0.084, discovery: yes); (checkpoint: age20, attribute: draftRound, level: 5, statistic: fellShortRate, n: 48, value: 0.479, rest: 0.229, diff: 0.251, p: 0, pAdjBH: 0.008, discovery: yes); (checkpoint: age20, attribute: draftRound, level: 6, statistic: meanPIT, n: 271, value: 0.313, rest: 0.417, diff: -0.104, p: 0, pAdjBH: 0.008, discovery: yes); (checkpoint: age20, attribute: draftRound, level: 6, statistic: fellShortRate, n: 44, value: 0.455, rest: 0.232, diff: 0.223, p: 0.002, pAdjBH: 0.026, discovery: yes); (checkpoint: age20, attribute: draftRound, level: 7, statistic: meanPIT, n: 271, value: 0.281, rest: 0.422, diff: -0.142, p: 0, pAdjBH: 0.008, discovery: yes); (checkpoint: age20, attribute: draftRound, level: 7, statistic: exceededRate, n: 271, value: 0.059, rest: 0.153, diff: -0.094, p: 0, pAdjBH: 0.008, discovery: yes); (checkpoint: age20, attribute: draftRound, level: 7, statistic: fellShortRate, n: 30, value: 0.533, rest: 0.233, diff: 0.301, p: 0.001, pAdjBH: 0.022, discovery: yes) … +15 more · evaluatedAt 2026-10-18T12:42:17Z (d'où vient ce nombre) Afficher le détail de + drive-multiseason-d1-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) adopté (d'où vient ce nombre) D1. Drive computed on 5v5 on-ice and off-ice xG pooled over the current and prior two seasons with decay weights (1, a, b), a and b on a 0.05 grid in [0,1] chosen on the development end seasons 2021-2023 by maximising the pooled next-season correlation, predicts next season's single-season Drive better than the single-season Drive, with no more club leakage. (d'où vient ce nombre) weights current: 1, prior1: 0.7, prior2: 0.4 · devR 0.486 · devChampionR 0.437 · devGain mean: 0.05, range95: 0.03, 0.069, shareAboveZero: 1, players: 1487, B: 2000, seed: 5 · proofR 0.477 · championProofR 0.385 (d'où vient ce nombre) Afficher le détail de + drive-eb-prior-d2-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) passed-not-adopted (d'où vient ce nombre) D2. D1 shrunk toward a position/usage prior (weighted regression of D1 on position F/D/unknown and 5v5 minutes per game, fitted cross-sectionally within the season) by normal-normal empirical Bayes: each player's sampling variance from a 200-rep game-cluster bootstrap, prior variance tau^2 estimated by method of moments (never hand-set). Beats the champion and possibly D1. (d'où vient ce nombre) devR 0.516 · devGain mean: 0.079, range95: 0.058, 0.101, shareAboveZero: 1, players: 1487, B: 2000, seed: 5 · proofR 0.494 · championProofR 0.385 · gain mean: 0.108, range95: 0.069, 0.15, shareAboveZero: 1, players: 502, B: 2000, seed: 5 · clubLeakage 0.081 (d'où vient ce nombre) Afficher le détail de + drive-rapm-chain-d3-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) rejeté (d'où vient ce nombre) D3. Multi-season RAPM: each season's ridge RAPM (tools/assay/py/measures/rapm.py design) penalised toward the previous season's estimate instead of zero, chained from 2018; ranking value = oRAPM + dRAPM; lambda from {16000, 32000, 64000} chosen on the development end seasons. Expected to predict well but to carry club leakage (single-season RAPM total r_club 0.41). (d'où vient ce nombre) lambda 64000 · devByLambda 16000: (pooled: 0.357, byEnd: (2021: 0.383, 2022: 0.337, 2023: 0.355), n: 1487), 32000: (pooled: 0.386, byEnd: (2021: 0.41, 2022: 0.362, 2023: 0.389), n: 1487), 64000: (pooled: 0.403, byEnd: (2021: 0.423, 2022: 0.379, 2023: 0.411), n: 1487) · devR 0.403 · proofR 0.383 · championProofR 0.385 · gain mean: -0.002, range95: -0.062, 0.058, shareAboveZero: 0.466, players: 502, B: 2000, seed: 5 (d'où vient ce nombre) Afficher le détail de + prospect-growth-age-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) rejeté (d'où vient ce nombre) P1. The site's hand-set age line (1.00 at 18, minus 0.06 a year, floor 0.58) is flatter than measured same-league growth in points per game (whole classes: steeper through 22). Replacing it with the measured curve, selection-corrected (same-league pairs reweighted so their production mix matches every line at that age in that league, because stayers are the unpromoted), ranks prospects better. Within one age the change only reorders by months of age, so the expected per-age gain is small (under 0.01); the effect is across ages. (d'où vient ce nombre) proofMeanRho 0.473 · championMeanRho 0.471 · gain mean: 0.002, range95: -0.002, 0.006, shareAboveZero: 0.807, players: 644, B: 2000, seed: 5 · logLossVsChampion -0.003 · devGain mean: 0.003, range95: 0, 0.005, shareAboveZero: 0.969, players: 1236, B: 2000, seed: 5 · decision REJECT: the 95% range of the gain does not lie above zero (d'où vient ce nombre) Afficher le détail de + prospect-pick-blend-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) adopté (d'où vient ce nombre) P2. Draft position ranks NHL games through 23 better than the formula at 18 and 19 (whole classes 0.605 vs 0.448 at 18). A blend of the two percentiles with one weight w, chosen on the development classes, beats the formula alone. Expected: a large gain at 18, shrinking by 20. (d'où vient ce nombre) proofMeanRho 0.636 · championMeanRho 0.471 · gain mean: 0.165, range95: 0.127, 0.203, shareAboveZero: 1, players: 644, B: 2000, seed: 5 · logLossVsChampion -0.088 · devGain mean: 0.136, range95: 0.105, 0.163, shareAboveZero: 1, players: 1236, B: 2000, seed: 5 · decision PASS: gain range above zero and graduation log loss not worse (d'où vient ce nombre) Afficher le détail de + prospect-corrected-ladder-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) rejeté (d'où vient ce nombre) P3. The league ladder is measured on players who moved to the NHL, who are the league's best scorers, so it understates what a typical line is worth. Re-measuring each league's translation with movers reweighted to the league's production deciles (inverse probability of moving), on 2010-2015 classes only, and using it in place of the site's ladder ranks prospects better. (d'où vient ce nombre) proofMeanRho 0.476 · championMeanRho 0.471 · gain mean: 0.005, range95: -0.004, 0.015, shareAboveZero: 0.855, players: 644, B: 2000, seed: 5 · logLossVsChampion -0.002 · devGain mean: -0.005, range95: -0.015, 0.004, shareAboveZero: 0.138, players: 1236, B: 2000, seed: 5 · decision REJECT: the 95% range of the gain does not lie above zero (d'où vient ce nombre) Afficher le détail de + prospect-fitted-benchmark-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) benchmark (d'où vient ce nombre) P4. A fitted benchmark (L2-regularised logistic regression on graduation, numpy only because lightgbm is not installed) on the formula's parts, age, position, league family, height, draft-year production and draft position shows how much ranking the formula leaves on the table. It is a ceiling, not a site candidate: it uses draft position and a fitted black box the page could not print. (d'où vient ce nombre) proofMeanRho 0.63 · championMeanRho 0.471 · gain mean: 0.159, range95: 0.122, 0.197, shareAboveZero: 1, players: 644, B: 2000, seed: 5 · logLossVsChampion -0.095 · devGain mean: 0.146, range95: 0.12, 0.17, shareAboveZero: 1, players: 1236, B: 2000, seed: 5 · decision PASS: gain range above zero and graduation log loss not worse (d'où vient ce nombre) Afficher le détail de + cba-retrieval-r1-vocab-repair-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) rejeté (d'où vient ce nombre) The contract-term rule of the question expansion fires on 'long-term', 'how long' and 'length' in questions that are not about contract length, and several rules append words that are common across the agreement. Repairing the triggers and dropping the common words raises the rank of the passage that answers a fan-worded question. Expected: a gain concentrated on long-term-injury and duration questions and small overall (the rule fired on 24 of 110 development questions); 60 held-out questions may be too few to show it. (d'où vient ce nombre) testedAt 2026-09-29T14:02:40.456Z · results data/assay/assistant-eval-heldout-results.json · comparator B0 · params dropAboveShare: 0.05 · development leaveOneOut: (mrr: 0.674, recallAt5: 0.8, picks: (2 fields), againstComparator: (recallAt5: 5 fields, mrr: 5 fields)), inSample: (n: 110, candidate: (recallAt1: 0.573, recallAt5: 0.8, recallAt8: 0.836, mrr: 0.674), comparator: (recallAt1: 0.527, recallAt5: 0.764, recallAt8: 0.818, mrr: 0.631), recallAt5: (difference: 0.036, lo: 0.009, hi: 0.073, better: 4, worse: 0), mrr: (difference: 0.043, lo: 0.014, hi: 0.075, better: 17, worse: 3)) · heldOut n: 60, candidate: (recallAt1: 0.25, recallAt5: 0.517, recallAt8: 0.583, mrr: 0.366), comparator: (recallAt1: 0.25, recallAt5: 0.533, recallAt8: 0.567, mrr: 0.369), recallAt5: (difference: -0.017, lo: -0.05, hi: 0, better: 0, worse: 1), mrr: (difference: -0.002, lo: -0.058, hi: 0.052, better: 9, worse: 12) (d'où vient ce nombre) Afficher le détail de + cba-retrieval-r2-weighted-expansion-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) rejeté (d'où vient ce nombre) Expansion words at full weight can outweigh the fan's own words. Entering them at a reduced weight keeps the bridge between a fan's vocabulary and the agreement's while letting the question lead. Expected: a small gain in MRR; possibly none if R1 has already removed the expansions that did harm. (d'où vient ce nombre) testedAt 2026-09-29T14:02:40.456Z · results data/assay/assistant-eval-heldout-results.json · comparator B0 · params weight: 0.25 · development leaveOneOut: (mrr: 0.652, recallAt5: 0.782, picks: (2 fields); (2 fields), againstComparator: (recallAt5: 5 fields, mrr: 5 fields)), inSample: (n: 110, candidate: (recallAt1: 0.564, recallAt5: 0.782, recallAt8: 0.855, mrr: 0.664), comparator: (recallAt1: 0.527, recallAt5: 0.764, recallAt8: 0.818, mrr: 0.631), recallAt5: (difference: 0.018, lo: -0.018, hi: 0.054, better: 3, worse: 1), mrr: (difference: 0.033, lo: -0.003, hi: 0.072, better: 17, worse: 3)) · heldOut n: 60, candidate: (recallAt1: 0.25, recallAt5: 0.483, recallAt8: 0.55, mrr: 0.354), comparator: (recallAt1: 0.25, recallAt5: 0.533, recallAt8: 0.567, mrr: 0.369), recallAt5: (difference: -0.05, lo: -0.133, hi: 0.017, better: 1, worse: 4), mrr: (difference: -0.015, lo: -0.088, hi: 0.057, better: 9, worse: 17) (d'où vient ce nombre) Afficher le détail de + cba-retrieval-r3-ocr-word-split-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) rejeté (d'où vient ce nombre) In the scanned 2025 MOU, words run together by the OCR are single tokens that no question contains. Splitting them, for the index only, into words of the clean documents (2013 CBA, 2020 MOU) makes those passages findable; the passage text shown and quoted is unchanged. Expected: gains only where the gold sits in the 2025 MOU (12 of the 60 held-out questions), so the overall effect may be too small to pass the rule. (d'où vient ce nombre) testedAt 2026-09-29T14:02:40.456Z · results data/assay/assistant-eval-heldout-results.json · comparator B0 · params — · development leaveOneOut: (mrr: 0.627, recallAt5: 0.754, picks: (2 fields), againstComparator: (recallAt5: 5 fields, mrr: 5 fields)), inSample: (n: 110, candidate: (recallAt1: 0.518, recallAt5: 0.754, recallAt8: 0.818, mrr: 0.627), comparator: (recallAt1: 0.527, recallAt5: 0.764, recallAt8: 0.818, mrr: 0.631), recallAt5: (difference: -0.009, lo: -0.027, hi: 0, better: 0, worse: 1), mrr: (difference: -0.004, lo: -0.02, hi: 0.011, better: 7, worse: 13)) · heldOut n: 60, candidate: (recallAt1: 0.233, recallAt5: 0.517, recallAt8: 0.55, mrr: 0.364), comparator: (recallAt1: 0.25, recallAt5: 0.533, recallAt8: 0.567, mrr: 0.369), recallAt5: (difference: -0.017, lo: -0.05, hi: 0, better: 0, worse: 1), mrr: (difference: -0.005, lo: -0.024, hi: 0.008, better: 6, worse: 12) (d'où vient ce nombre) Afficher le détail de + cba-retrieval-r3b-ocr-letter-repair-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) rejeté (d'où vient ce nombre) The same scan reads the letter m as 'in', 'im', 'iin' or 'rn' ('terin' for term, 'aimount' for amount, 'liimit' for limit, 'gaine' for game). Replacing, for the index only, a token that is absent from the clean vocabulary by the one clean-vocabulary word those confusions lead to makes the agreement's commonest words match in the 2025 MOU. Expected: larger than R3 on 2025 MOU questions, because the damaged words are the ones fans type; still limited to the 12 held-out questions whose gold sits there. Added by the desk; not in the coordinator's list. (d'où vient ce nombre) testedAt 2026-09-29T14:02:40.456Z · results data/assay/assistant-eval-heldout-results.json · comparator B0 · params — · development leaveOneOut: (mrr: 0.628, recallAt5: 0.764, picks: (2 fields), againstComparator: (recallAt5: 5 fields, mrr: 5 fields)), inSample: (n: 110, candidate: (recallAt1: 0.518, recallAt5: 0.764, recallAt8: 0.818, mrr: 0.628), comparator: (recallAt1: 0.527, recallAt5: 0.764, recallAt8: 0.818, mrr: 0.631), recallAt5: (difference: 0, lo: 0, hi: 0, better: 0, worse: 0), mrr: (difference: -0.003, lo: -0.013, hi: 0.005, better: 5, worse: 10)) · heldOut n: 60, candidate: (recallAt1: 0.25, recallAt5: 0.533, recallAt8: 0.55, mrr: 0.368), comparator: (recallAt1: 0.25, recallAt5: 0.533, recallAt8: 0.567, mrr: 0.369), recallAt5: (difference: 0, lo: 0, hi: 0, better: 0, worse: 0), mrr: (difference: -0.001, lo: -0.001, hi: 0, better: 1, worse: 6) (d'où vient ce nombre) Afficher le détail de + cba-retrieval-r4-field-weights-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) rejeté (d'où vient ce nombre) The title is counted twice and the score is raised 8% per document rank; both were set by hand. A title weight or document boost chosen on development questions ranks the gold passage higher. Expected: small. On the development questions the boost was worth 2 points of recall@5, inside the noise, and the 2020 and 2025 MOU chunks all carry the same title, so the title can only help in the 2013 CBA. (d'où vient ce nombre) testedAt 2026-09-29T14:02:40.456Z · results data/assay/assistant-eval-heldout-results.json · comparator B0 · params titleWeight: 1, rankBoost: 0.08 · development leaveOneOut: (mrr: 0.609, recallAt5: 0.746, picks: (2 fields); (2 fields); (2 fields); (2 fields); (2 fields), againstComparator: (recallAt5: 5 fields, mrr: 5 fields)), inSample: (n: 110, candidate: (recallAt1: 0.527, recallAt5: 0.754, recallAt8: 0.818, mrr: 0.634), comparator: (recallAt1: 0.527, recallAt5: 0.764, recallAt8: 0.818, mrr: 0.631), recallAt5: (difference: -0.009, lo: -0.027, hi: 0, better: 0, worse: 1), mrr: (difference: 0.003, lo: -0.011, hi: 0.018, better: 12, worse: 14)) · heldOut n: 60, candidate: (recallAt1: 0.233, recallAt5: 0.533, recallAt8: 0.567, mrr: 0.36), comparator: (recallAt1: 0.25, recallAt5: 0.533, recallAt8: 0.567, mrr: 0.369), recallAt5: (difference: 0, lo: 0, hi: 0, better: 0, worse: 0), mrr: (difference: -0.009, lo: -0.04, hi: 0.02, better: 9, worse: 15) (d'où vient ce nombre) Afficher le détail de + cba-retrieval-r5-feedback-pass-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) rejeté (d'où vient ce nombre) A second ranking pass that appends the most distinctive terms of the first pass's top three passages, at low weight, finds passages the fan's words miss. Expected: uncertain; feedback helps when the first pass is mostly right and hurts when it is wrong, and a fan's first pass is often wrong. (d'où vient ce nombre) testedAt 2026-09-29T14:02:40.456Z · results data/assay/assistant-eval-heldout-results.json · comparator B0 · params terms: 5, weight: 0.1 · development leaveOneOut: (mrr: 0.609, recallAt5: 0.736, picks: (2 fields), againstComparator: (recallAt5: 5 fields, mrr: 5 fields)), inSample: (n: 110, candidate: (recallAt1: 0.491, recallAt5: 0.736, recallAt8: 0.818, mrr: 0.609), comparator: (recallAt1: 0.527, recallAt5: 0.764, recallAt8: 0.818, mrr: 0.631), recallAt5: (difference: -0.027, lo: -0.064, hi: 0, better: 0, worse: 3), mrr: (difference: -0.022, lo: -0.046, hi: -0.001, better: 13, worse: 22)) · heldOut n: 60, candidate: (recallAt1: 0.233, recallAt5: 0.517, recallAt8: 0.567, mrr: 0.363), comparator: (recallAt1: 0.25, recallAt5: 0.533, recallAt8: 0.567, mrr: 0.369), recallAt5: (difference: -0.017, lo: -0.067, hi: 0.033, better: 1, worse: 2), mrr: (difference: -0.005, lo: -0.037, hi: 0.025, better: 16, worse: 17) (d'où vient ce nombre) Afficher le détail de + cba-fallback-refusal-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) adopté (d'où vient ce nombre) While the model is unavailable the passages-only fallback answers every question, including the 30 of 30 development questions the agreement cannot answer. Retrieval evidence alone (top score, margin to the second, share of the question's words found in the top passages, a named player or club) separates enough of them to refuse or warn without often refusing a question the agreement does answer. Expected: the name rule catches the named-player and club questions; the evidence rule catches about half of the rest at 5% wrong refusals (the top score alone caught 50% at that point on development). (d'où vient ce nombre) testedAt 2026-09-29T14:02:40.456Z · configuration B0 · rule mean: 27.339, 3.971, 0.694, 0.597, scale: 11.952, 4.368, 0.165, 0.183, weights: -2.448, 0.626, -0.833, -0.156, intercept: -2.515, weak: 0.289, none: 0.557 · development answerable: 110, unanswerable: 30, method: leave-one-out, levelC: (wrongRefusals: 5, wrongRate: 0.045, caught: 15, tpr: 0.5, tprInterval: 0.332, 0.668), levelBorC: (wronglyFlagged: 16, wrongRate: 0.145, caught: 23, tpr: 0.767, tprInterval: 0.591, 0.882), auc: 0.906 · heldOut withNameRule: (levelC: (caught: 15, tpr: 0.75, tprInterval: 2 items, wrongRefusals: 13, wrongRate: 0.217, wrongInterval: 2 items), levelBorC: (caught: 18, tpr: 0.9, wronglyFlagged: 25, wrongRate: 0.417), byNameRule: (unanswerable: 9, answerable: 3, answerableIds: 3 items)), evidenceRuleAlone: (levelC: (caught: 14, tpr: 0.7, tprInterval: 2 items, wrongRefusals: 11, wrongRate: 0.183, wrongInterval: 2 items), levelBorC: (caught: 18, tpr: 0.9, wronglyFlagged: 23, wrongRate: 0.383)), guard: (answerableNamingNoOne: 57, wronglyRefusedAtC: 10, rate: 0.175, limit: 0.1, holds: no, consequence: level (c) switched off for evidence; levels (a) and (b) only; the name rule stays) · shipped levels (a) confident and (b) weak from evidence; level (c) from evidence switched OFF by the registered guard (held-out answerable naming no one wrongly refused (d'où vient ce nombre) Afficher le détail de + cba-number-gate-exact-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) adopté (d'où vient ce nombre) The check that every number in an answer appears in the passage it cites is a substring test, so a claimed '5' passes against a passage that says '50' or '2025'. An exact test on number tokens, compared as canonical decimals, closes that hole without failing answers that are right. (d'où vient ce nombre) selfTest tools/assay/eval/selftest.mjs 20/20 incl. the 5-vs-fifty (50) false accept; vitest src/server/__tests__/grounded-core.test.ts: 8.50==8.5, 5!=50, 5!=15/2025, 50! · developmentAnswers no model answers exist (model mode not run); instead every gold answer and every gold number of the 160-item set was put through both gates as a sentence citing · sentences 258 · passOld 258 · passNew 258 · passOldFailNew 0 (d'où vient ce nombre) Afficher le détail de + cba-clause-split-fix-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) adopté (d'où vient ce nombre) The fallback is meant to quote clauses of semicolon lists, but its split pattern has a literal 's' where whitespace was meant, so it never splits at '; ' and quotes whole sentences. Splitting on whitespace after a semicolon gives shorter quotes that are nearer the question. (d'où vient ce nombre) split /(?<=;)s+/ · quotesBefore 657 · quotesAfter 657 · medianQuoteLengthBefore 362 · medianQuoteLengthAfter 329 · everyQuoteVerbatim true (d'où vient ce nombre) Afficher le détail de + xg-clock-corrected-flags-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) adopté (d'où vient ce nombre) With the champion's rebound and rush flags recomputed on a clock that does not depend on the outcome (goal times moved back 1 s, the offset measured on 2023-24 + 2024-25, before the 3 s and 4 s windows are applied) and everything else unchanged, held-out log loss does NOT improve and is expected to get slightly worse, by about 0.0002 to 0.0003 per shot, because the raw flags carry information about the outcome through the clock. A worse log loss here means part of the champion's published accuracy was the clock. (d'où vient ce nombre) offsetSeconds 1 · rows trainRows: 227076, testRows: 105288, testGames: 1232, testRowsInShotFile: 112091, testGamesInShotFile: 1312, trainGoals: 15987, testGoals: 7601 · trainLogLoss 0.221 · testLogLoss 0.229 · testAuc 0.756 · championReplicaTestLogLoss 0.229 (d'où vient ce nombre) Afficher le détail de + xg-clock-corrected-split-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) exécuté (d'où vient ce nombre) F's corrected flags inside the four strength-state fits of challenger B. Expected against the champion: the strength split's gain on the proof season (about 0.0005 with two seasons of training) less the cost of correcting the clock (about 0.0002 to 0.0003), a net gain near 0.0002 that may not clear the rule. The split's gain is not robust to the amount of training data: trained on one season it was worse than a single fit. (d'où vient ce nombre) offsetSeconds 1 · rows trainRows: 227076, testRows: 105288, testGames: 1232, testRowsInShotFile: 112091, testGamesInShotFile: 1312, trainGoals: 15987, testGoals: 7601 · trainLogLoss 0.22 · testLogLoss 0.228 · testAuc 0.757 · championReplicaTestLogLoss 0.229 (d'où vient ce nombre) Afficher le détail de + xg-clock-corrected-flurry-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) exécuté (d'où vient ce nombre) G plus the flurry features of challenger C (seconds since the previous unblocked shot by the same club in the same period, capped at 30 s, and an indicator for under 3 s) computed on the corrected clock. Expected: little or nothing beyond G. The gain C showed with goal times moved back is expected to have been mostly a repair of the raw flags, which G already has. (d'où vient ce nombre) offsetSeconds 1 · rows trainRows: 227076, testRows: 105288, testGames: 1232, testRowsInShotFile: 112091, testGamesInShotFile: 1312, trainGoals: 15987, testGoals: 7601 · trainLogLoss 0.22 · testLogLoss 0.228 · testAuc 0.757 · championReplicaTestLogLoss 0.229 (d'où vient ce nombre) Afficher le détail de + xg-rink-adjusted-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Replacing the recorded shot distance with its league-equivalent (the arena quantile map estimated on 2023-24 + 2024-25 only, applied to the training rows and carried unchanged to 2025-26; angle recomputed from the same geometry where well conditioned) removes scorer error from the most important xG input and lowers held-out log loss. Expected effect: very small and possibly negative - the arena study found the scorer effect has shrunk to about 1 ft standard deviation against about 0.55 ft of noise, and that an unshrunk map carried into the next season did not improve agreement. (d'où vient ce nombre) trainLogLoss 0.221 · testLogLoss 0.228 · testAuc 0.757 · championReplicaTestLogLoss 0.228 · championReplicaTestAuc 0.757 · diffVsChampion 0 (d'où vient ce nombre) Afficher le détail de + xg-strength-split-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Four separate fits by strength state (5v5 = strengthDiff 0 and net occupied, power play, shorthanded, empty net) with the champion's features minus the strength flags let distance, angle and shot-type effects differ by state and lower the combined held-out log loss. Expected effect: a small gain concentrated on the power play; the shorthanded and empty-net fits have few rows and may give some of it back. (d'où vient ce nombre) trainLogLoss 0.22 · testLogLoss 0.228 · testAuc 0.758 · championReplicaTestLogLoss 0.228 · championReplicaTestAuc 0.757 · diffVsChampion 0 (d'où vient ce nombre) Afficher le détail de + xg-flurry-feature-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Adding the time since the previous unblocked shot by the same club in the same period (capped at 30 s) and an indicator for under 3 s to the champion's 34 features lowers held-out log loss, because shots inside a flurry are taken against a goalie out of position beyond what the rebound flag already records. (d'où vient ce nombre) trainLogLoss 0.219 · testLogLoss 0.227 · testAuc 0.761 · championReplicaTestLogLoss 0.228 · championReplicaTestAuc 0.757 · diffVsChampion -0.002 (d'où vient ce nombre) Afficher le détail de + xg-combined-abc-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Rink-adjusted distance, strength-state fits and the flurry features together lower held-out log loss by more than any of them alone. (d'où vient ce nombre) trainLogLoss 0.218 · testLogLoss 0.226 · testAuc 0.762 · championReplicaTestLogLoss 0.228 · championReplicaTestAuc 0.757 · diffVsChampion -0.002 (d'où vient ce nombre) Afficher le détail de + arena-scorer-profiles-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Some NHL arenas record unblocked shots at systematically different distances than the same clubs' shots are recorded elsewhere (a scorer effect in the recorded location, visible in |x| as well as in distance), the effect persists from one season to the next, and subjective counts (hits, giveaways, takeaways, blocked shots) differ by building beyond what the clubs involved explain. Expected size in the 2021+ feed: a standard deviation across arenas near 1 ft, far below the 3-5 ft effects published for the 2007-2013 feed. (d'où vient ce nombre) meanConsecutiveR_2021on 0.519 · meanConsecutiveR_allSeasons 0.591 · consecutiveR 2018->2019: 0.803, 2019->2020: 0.763, 2020->2021: 0.494, 2021->2022: 0.57, 2022->2023: 0.561, 2023->2024: 0.64, 2024->2025: 0.306 · shareKsPBelow0.01_2025 0.25 · placeboShareKsPBelow0.01 0.035 · sdOfArenaMeanDiff_ft 2018: 1.698, 2019: 1.67, 2020: 1.814, 2021: 1.713, 2022: 1.174, 2023: 0.801, 2024: 0.832, 2025: 0.996 (d'où vient ce nombre) Afficher le détail de + score-dist-challengers-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) rejeté (d'où vient ce nombre) Given the same walk-forward Kalman goal rates, a low-score dependence (Dixon-Coles), a shared component (bivariate Poisson) or per-side over-dispersion (negative binomial) improves the regulation-score log score over independent Poisson on 2025-26; NHL regulation scores are close to independent Poisson so any gain is expected to be small (under 0.01 nats per game) and the negative binomial may fit worse than Poisson. (d'où vient ce nombre) fits dixonColes: (rho: -0.116), bivariatePoisson: (lambda3: 0), negativeBinomial: (r: 522.36, impliedVarianceInflationAtLambda3: 1.006) · test2025 poissonLeagueAverage: (scoreLogScore: 3.851, crps: 1.307, sixPlus: (predicted: 0.546, actual: 0.573), vsPoissonRange95: -0.009, 0.022), poissonIndependent: (scoreLogScore: 3.844, crps: 1.312, sixPlus: (predicted: 0.54, actual: 0.573), vsPoissonRange95: —), dixonColes: (scoreLogScore: 3.844, crps: 1.312, sixPlus: (predicted: 0.54, actual: 0.573), vsPoissonRange95: -0.003, 0.002), bivariatePoisson: (scoreLogScore: 3.844, crps: 1.312, sixPlus: (predicted: 0.54, actual: 0.573), vsPoissonRange95: 0, 0), negativeBinomial: (scoreLogScore: 3.845, crps: 1.312, sixPlus: (predicted: 0.54, actual: 0.573), vsPoissonRange95: 0, 0) · decision keep independent Poisson (no family beats it with the range excluding zero and no worse 6+ share) · evaluatedAt 2026-09-29T03:13:03Z (d'où vient ce nombre) Afficher le détail de + momentum-hawkes-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) exécuté (d'où vient ce nombre) Within NHL regulation play, goals cluster in time beyond what a Poisson process with a rate varying by game minute and by score state predicts (a "reply goal" / momentum effect); if it exists, the Hawkes branching ratio fitted on data exceeds the ratio the same fit produces on simulated null games, and short inter-goal intervals (under 60 s) are more common than in the null. (d'où vient ce nombre) alphaData 0 · alphaBootstrap95 0, 0 · alphaNull95 0.001, 0.014 · alphaMcP 1 · under60Data 0.085 · under60Null95 0.113, 0.119 (d'où vient ce nombre) Afficher le détail de + state-space-kalman-v2 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) exécuté (d'où vient ce nombre) A Kalman random-walk attack/defence model on regulation goals (linear-Gaussian observation, daily process noise, season-start inflation, home advantage and scoring level as slowly drifting states) predicts home wins walk-forward about as well as the champion; it is expected NOT to beat the champion on log loss because it sees only goals, but it may add information in a blend and gives a transparent rating. (d'où vient ce nombre) tuned q: 0, sigma2: 3.5, seasonInflation: 0.02, logLoss: 0.657, games: 3491 · tunedOnGridEdge q: no, sigma2: yes, seasonInflation: no · proof 2023: (n: 1230, logLossStateSpace: 0.659, logLossChampion: 0.654, blend5050LogLoss: 0.654, diffRange95: -0.003, 0.013), 2024: (n: 1235, logLossStateSpace: 0.664, logLossChampion: 0.653, blend5050LogLoss: 0.656, diffRange95: 0.002, 0.019), 2025: (n: 1311, logLossStateSpace: 0.695, logLossChampion: 0.681, blend5050LogLoss: 0.685, diffRange95: 0.006, 0.022), pooled: (n: 3776, logLossStateSpace: 0.673, logLossChampion: 0.663, blend5050LogLoss: 0.665, diffRange95: 0.005, 0.015) · decision display rating only; remains a challenger (pooled proof does not beat the champion with the range excluding zero) · evaluatedAt 2026-09-29T03:06:56Z (d'où vient ce nombre) Afficher le détail de + state-space-kalman-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) exécuté (d'où vient ce nombre) A Kalman random-walk attack/defence model on regulation goals (linear-Gaussian observation, daily process noise, season-start inflation, home advantage and scoring level as slowly drifting states) predicts home wins walk-forward about as well as the champion; it is expected NOT to beat the champion on log loss because it sees only goals, but it may add information in a blend and gives a transparent rating. (d'où vient ce nombre) tuned q: 0.001, sigma2: 4.5, seasonInflation: 0.02, logLoss: 0.657, games: 3491 · tunedOnGridEdge q: yes, sigma2: yes, seasonInflation: yes · proof 2023: (n: 1230, logLossStateSpace: 0.66, logLossChampion: 0.654, blend5050LogLoss: 0.655, diffRange95: -0.002, 0.014), 2024: (n: 1235, logLossStateSpace: 0.664, logLossChampion: 0.653, blend5050LogLoss: 0.656, diffRange95: 0.003, 0.019), 2025: (n: 1311, logLossStateSpace: 0.695, logLossChampion: 0.681, blend5050LogLoss: 0.685, diffRange95: 0.006, 0.022), pooled: (n: 3776, logLossStateSpace: 0.673, logLossChampion: 0.663, blend5050LogLoss: 0.666, diffRange95: 0.006, 0.015) · decision display rating only; remains a challenger (pooled proof does not beat the champion with the range excluding zero) · evaluatedAt 2026-09-29T03:06:09Z (d'où vient ce nombre) Afficher le détail de + isotonic-calibrator-v1 (d'où vient ce nombre) 2026-09-29 (d'où vient ce nombre) rejeté (d'où vient ce nombre) The champion home-win probabilities carry a miscalibration that a monotone (isotonic) map fitted on earlier seasons corrects out of sample; because the walk-forward reliability is already close to the diagonal the expected gain is small (under 0.003 log loss) and may be zero or negative. (d'où vient ce nombre) fit2020to2024 logLossBefore: 0.681, logLossAfter: 0.683, diffRange95: 0, 0.005 · fit2023to2024 logLossBefore: 0.681, logLossAfter: 0.683, diffRange95: -0.001, 0.006 · decision rejected · evaluatedAt 2026-09-29T02:49:22Z (d'où vient ce nombre) Afficher le détail de + hist-2026-09-26-game-model-v2 (d'où vient ce nombre) 2026-09-26 (d'où vient ce nombre) adopté (d'où vient ce nombre) Even-strength xG Elo + goals Elo + PP/PK EWMA + rest and back-to-back lowers held-out log loss versus ratings only. (d'où vient ce nombre) ratingsOnly 0.675 · plusRest 0.672 · plusSpecialTeams no gain · note 60-70% bucket ~4 points over-confident (d'où vient ce nombre) Afficher le détail de + hist-2026-09-26-starting-goalie-feature (d'où vient ce nombre) 2026-09-26 (d'où vient ce nombre) rejeté (d'où vient ce nombre) Adding the starting goalie's GSAx as a pre-game feature lowers log loss. (d'où vient ce nombre) before 0.678 · after 0.679 · note worse; dropped (d'où vient ce nombre) Afficher le détail de + hist-2026-09-26-tournament (d'où vient ce nombre) 2026-09-26 (d'où vient ce nombre) adopté (d'où vient ce nombre) Boosted trees or added feature families beat a ridge logistic on ratings + rest. (d'où vient ce nombre) winner logistic, everything, ridge 50 · avgLogLoss 0.651 · accuracy 0.614 · ratingsPlusRest 0.654 · trees worse on every fold · note numbers before shootout results were added; later comparable figures ~0.656-0.667 (d'où vient ce nombre) Afficher le détail de + hist-2026-09-26-search-3000 (d'où vient ce nombre) 2026-09-26 (d'où vient ce nombre) rejeté (d'où vient ce nombre) One of 3,000 feature-set versions beats the champion on a proof season it was not selected on. (d'où vient ce nombre) top10SelectionLL 0.658 · proofLL 0.682-0.687 vs champion 0.6806 · luckGap 0.027 · note every finalist lost on proof; champion holds (d'où vient ce nombre) Afficher le détail de + hist-2026-09-26-block-search-49k (d'où vient ce nombre) 2026-09-26 (d'où vient ce nombre) rejeté (d'où vient ce nombre) Some combination of 14 input families (special teams, finishing+goalie, lineup, rivalry, travel, goalie rotation, schedule spot, GM context, discipline+referees, puck play, grudge scrums, league scoring) beats the champion. (d'où vient ce nombre) versions 49152 · championProof 0.664 · bestFinalist 0.664 · range -0.001, 0 · note not better; model saturated on public box data. Top-200 family shares: special teams 100%, lineup 84%, finishing+goalie 62% (d'où vient ce nombre) Afficher le détail de + hist-2026-09-26-travel (d'où vient ce nombre) 2026-09-26 (d'où vient ce nombre) rejeté (d'où vient ce nombre) Travel distance, time zones crossed, three-in-four and road-trip length carry information beyond rest and back-to-backs. (d'où vient ce nombre) all 0.656 · minusTravel 0.656 · note no gain (d'où vient ce nombre) Afficher le détail de + hist-2026-09-26-goalie-rotation-trap (d'où vient ce nombre) 2026-09-26 (d'où vient ce nombre) rejeté (d'où vient ce nombre) Goalie rotation (backup/tired) and schedule-spot (trap game) features lower log loss. (d'où vient ce nombre) all 0.657 · minusTrap 0.657 · minusRotation 0.657 · note neither adopted (d'où vient ce nombre) Afficher le détail de + hist-2026-09-26-score-engines (d'où vient ce nombre) 2026-09-26 (d'où vient ce nombre) rejeté (d'où vient ce nombre) Monte Carlo minute-level or Markov score engines beat the closed-form Poisson on score and finish log loss. (d'où vient ce nombre) win indistinguishable · score indistinguishable (3.648 vs 3.650) · finish closed form clearly best; MC and Markov under-predict ties · note late-tied caution measured: last 5 minutes tied x0.77 (d'où vient ce nombre) Afficher le détail de + hist-2026-09-26-lineups (d'où vient ce nombre) 2026-09-26 (d'où vient ce nombre) adopté (d'où vient ce nombre) Walk-forward skater relative-xG ratings plus starter GSAx and missing-vs-usual lineup lower log loss. (d'où vient ce nombre) before 0.678 · after 0.677 · note small gain; confident (>=70%) games ~78% right on ~70 of 1,301 (d'où vient ce nombre) Afficher le détail de + hist-2026-09-26-props (d'où vient ce nombre) 2026-09-26 (d'où vient ce nombre) adopté (d'où vient ce nombre) A learned logistic layer over hand features (shot rate, finishing, opponent shots allowed, venue, ice time, individual xG rate, opposing starter form) beats the base rate for anytime-goal and anytime-point. (d'où vient ce nombre) goal logistic: 0.381, trees: 0.381, baseline: 0.386 · point blend: 0.59, baselinePtsPerGame: 0.597 · note stars (>=40%) ~3.5 points over-confident; training on 2019-24 was WORSE for points than 2022-24 (scoring drift) (d'où vient ce nombre) Afficher le détail de + hist-2026-09-26-confidence (d'où vient ce nombre) 2026-09-26 (d'où vient ce nombre) rejeté (d'où vient ce nombre) Bootstrap spread across 100 refits marks the games the model gets right more often. (d'où vient ce nombre) medianSpread 0.024 · note loose estimates were right MORE often; shrink-by-spread gave no gain. Confidence = lean tier, calibrated within ~2 points (d'où vient ce nombre) Afficher le détail de + hist-2026-09-22-xg-v1 (d'où vient ce nombre) 2026-09-22 (d'où vient ce nombre) adopté (d'où vient ce nombre) A logistic expected-goals model on distance, angle, shot type, strength, rebound, rush and empty-net flags beats the league-average goal rate on an unseen season. (d'où vient ce nombre) logLoss 0.228 · baseline 0.259 · auc 0.757 · note top decile over-predicted by ~15%; bottom decile under-predicted (d'où vient ce nombre) Afficher le détail de +