Post Hockey
Beta testing

Model Changelog

Every major revision to a model or a metric on this site, newest first: what changed, why, and what a reader would actually see move.

Coming this week

Full rebuild: every season on the per-second strength split, plus iWPA v2

Pending. The second-by-second strength split below is being extended back through every season, a shift-logging duplicate is being merged at the source instead of after the fact, and iWPA is moving to its v2 pricing (13.42). Text to follow when it ships.

5v5 ice time and on-ice stats now split at every strength change

A shift used to carry one strength label for its whole length, even through a penalty taken or expiring mid-shift. Ice time and on-ice stats are now cut second by second at every strength change, and time with a goalie pulled no longer counts as 5-on-5.

Why: A reader compared a player's 5v5 ice time against Natural Stat Trick and the two didn't agree; the strength label on a shift that changed strength partway through was wrong for the part that didn't match how it started.

What moved: Every 2026-27 5v5 number so far — Matvei Michkov's 5v5 ice time, for one, moves from 13:02 to 10:10. Earlier seasons get the same fix this weekend.

Fix

Duplicate shift-chart rows merged

A handful of live-tracked shifts were logged twice, as overlapping rows on the same game's shift chart. They're now merged into one.

What moved: 2026-27 game-page shift charts.

All Three Zones now estimates untracked 2026-27 games

Corey hand-tracks roughly a third of each season; the rest used to show nothing. For games he hasn't tracked yet this season, the page now shows the same kind of estimate it has long shown for untracked games in past seasons.

Why: Passed a pre-registered test (narrowly), with a per-stat level correction, before turning it on — the same bar every change to this page has to clear.

What moved: Every skater's 2026-27 All Three Zones number that used to read blank.

Read the writeup

In-game win probability refit

The win-probability model was refit after a model file it depends on changed underneath it, and passed its usual gate before shipping.

Why: Keep the live win-probability chart reading off the same model as the rest of the site, not a stale copy of it.

What moved: Oct. 8's in-game win-probability charts were rebuilt from the stored nightly prior so they match.

Fix

Badge dates now use the last game played, not the server clock

A badge's "earned since" date is set from the date of the last game that counted toward it, in Eastern time, instead of whatever date the server happened to be on when the badge was computed. Every 2026-27 date on record was re-derived by replaying the season.

Early-season Net Rating

Before a player has 10 games this season, his Net Rating now blends in last season's position baseline instead of standing entirely on a handful of early games.

Why: A player's whole season shouldn't read off his first few games, especially in the first couple of weeks when nobody has enough of a sample yet.

What moved: Every current-season Net Rating number in October, until each player clears 10 games.

Read the writeup

iWPA shown as a percentage of a win

iWPA now reads as a signed percentage of a win ("+13.1%") everywhere it appears on the site — the game card, the front page, the win-probability panel, Before-and-after — through one shared formatter.

Why: A percentage of a win reads more plainly than the same number stated as a bare fraction.

What moved: Display only; the number underneath hasn't changed, only how it's written.

Read the writeup

Badges score a 250-game window, not the season alone

Every badge is now scored on a skater's last 250 games (about three seasons), each game weighted by how recent it is — a half-life of 55 games for skill badges, 18.3 for role and outcome badges — and carries across the season boundary instead of resetting to nothing every October.

Why: The season-only rule named nobody in the season's first weeks and threw away everything a player had shown the year before. On a three-season holdout, the windowed version predicts the rest of a season better than the season-only one (Pearson r 0.577 against 0.522).

What moved: Badges now carry into a new season instead of starting empty, and a strong start to a season counts toward one sooner.

Read the writeup

Front-page "since" numbers get one fixed starting point

Front-page movers (playoff chances, Net Rating, and the rest) now compute each comparison's starting value once, overnight, and hold it fixed — rather than comparing against whatever the metric happened to read the last time someone looked.

Why: A moving target makes a trend meaningless; the starting point has to be pinned down once, the same way, for everyone.

What moved: Every "since" callout on the front page.

Model refits recompute front-page “since” comparisons back to the season start, so a trend never shows an artifact of the refit itself. Questions about any entry go to the email on the Glossary page.

Model Changelog · Post Hockey