The biggest fourth-quarter movers, and what a hot finish is worth
Every skater who moved in the closing quarter of 2025-26, what changed in his deployment, and what a hot finish is worth in September. Built from 540 skaters and 47,231 game rows of our own.
Every March a set of players finishes hot in the grinder categories, and every September somebody drafts them for it. This is the whole league measured: each skater's final quarter set against the rest of his own season, in the four counting stats a fantasy roster lives on.
The window is the club's schedule, not the player's game count. It is the last quarter of the team's fixtures, which opened between the 3rd and the 12th of March, and a skater needs 40 games on the season with 10 inside the window. That keeps out the man who played four games in March and posted a meaningless split.
The short version. The deviations are real and some are enormous. Hits move for real, by a distance. Blocks and shots move a little. Penalty minutes do not move at all beyond chance. And none of it, in any category, is worth extra weight at a draft: the closing quarter counts exactly as much as any other quarter, and no more.
Reading the tables. Every change is checked against how much that player bounces around from night to night. Real means the shift is bigger than his usual hot and cold stretches. Noise means a couple of loud nights would produce the same thing without anything about him changing. It is the difference between a man who was given a new job and a man who had a good fortnight.
The biggest movers
Blocks
| Player | Tm | Pos | GP | Rest | Q4 | Change | Real or noise | Min | PP | PK |
|---|---|---|---|---|---|---|---|---|---|---|
| Zach Whitecloud | CGY | D | 78 | 1.49 | 2.88 | +1.39 | Real | +3.65 | 0.00 | +1.86 |
| Brandt Clarke | LAK | D | 82 | 1.97 | 3.15 | +1.18 | Real | +0.95 | +0.32 | 0.00 |
| Connor Murphy | EDM | D | 80 | 1.45 | 2.55 | +1.10 | Real | +3.88 | +0.13 | -0.78 |
| Olli Maatta | CGY | D | 43 | 0.96 | 2.00 | +1.04 | Real | +9.75 | +0.18 | +2.72 |
| Tom Willander | VAN | D | 70 | 0.90 | 1.65 | +0.75 | Real | +4.35 | -0.48 | +0.72 |
| Garnet Hathaway | PHI | R | 66 | 0.76 | 1.39 | +0.63 | Real | +1.22 | +0.14 | -0.07 |
| Nick Perbix | NSH | D | 79 | 1.05 | 1.65 | +0.60 | Unclear | -0.83 | -0.09 | +0.19 |
| Braden Schneider | NYR | D | 82 | 1.56 | 2.15 | +0.58 | Real | +0.50 | +0.09 | +0.43 |
| Egor Chinakhov | PIT | R | 72 | 0.28 | 0.84 | +0.56 | Real | +5.07 | +1.30 | +0.11 |
| Vasily Podkolzin | EDM | R | 82 | 0.50 | 1.05 | +0.55 | Real | +0.60 | +1.62 | -0.68 |
Shots
| Player | Tm | Pos | GP | Rest | Q4 | Change | Real or noise | Min | PP | PK |
|---|---|---|---|---|---|---|---|---|---|---|
| Trevor Moore | LAK | L | 69 | 1.92 | 3.25 | +1.33 | Real | +2.39 | +0.53 | -0.34 |
| Troy Terry | ANA | R | 61 | 2.33 | 3.60 | +1.27 | Real | -0.04 | +0.50 | -1.02 |
| Bobby McMann | SEA | L | 78 | 2.08 | 3.22 | +1.14 | Real | +2.64 | +0.71 | -0.24 |
| Matthew Schaefer | NYI | D | 82 | 2.44 | 3.55 | +1.11 | Real | +2.28 | +0.62 | -0.45 |
| Jimmy Snuggerud | STL | R | 70 | 2.10 | 3.20 | +1.10 | Real | +1.96 | +0.23 | +0.10 |
| Matt Savoie | EDM | C | 82 | 1.42 | 2.50 | +1.08 | Real | +3.36 | +1.20 | -0.02 |
| Brayden McNabb | VGK | D | 63 | 0.98 | 1.95 | +0.97 | Real | -0.66 | -0.02 | +0.07 |
| Ryan Winterton | SEA | C | 68 | 1.12 | 2.09 | +0.97 | Real | +1.56 | -0.06 | -0.06 |
| Filip Hronek | VAN | D | 82 | 1.44 | 2.40 | +0.96 | Real | +2.11 | +0.34 | +0.10 |
| Jack Hughes | NJD | C | 61 | 3.44 | 4.35 | +0.91 | Unclear | +1.03 | -0.29 | -0.10 |
And the falls, which is where the interesting cases live:
| Player | Tm | Pos | GP | Rest | Q4 | Change | Real or noise | Min | PP | PK |
|---|---|---|---|---|---|---|---|---|---|---|
| Jakob Chychrun | WSH | D | 80 | 3.18 | 1.50 | -1.68 | Real | -1.35 | -0.55 | -0.11 |
| Zach Hyman | EDM | L | 58 | 3.05 | 1.87 | -1.18 | Real | -1.03 | -0.19 | +0.11 |
| Seth Jones | FLA | D | 52 | 1.95 | 0.83 | -1.12 | Real | +0.90 | -1.53 | +0.86 |
| Ross Colton | COL | L | 73 | 2.31 | 1.21 | -1.09 | Real | -1.93 | -0.56 | -0.06 |
| Mikko Rantanen | DAL | R | 64 | 2.33 | 1.30 | -1.03 | Real | -0.18 | +0.13 | -0.04 |
| Quinn Hughes | MIN | D | 74 | 2.77 | 1.78 | -0.99 | Real | -0.06 | -1.13 | -0.07 |
Hits
| Player | Tm | Pos | GP | Rest | Q4 | Change | Real or noise | Min | PP | PK |
|---|---|---|---|---|---|---|---|---|---|---|
| Joe Veleno | MTL | C | 61 | 2.43 | 3.92 | +1.49 | Real | -0.76 | +0.04 | +0.70 |
| Ryan Winterton | SEA | C | 68 | 0.90 | 2.09 | +1.20 | Real | +1.56 | -0.06 | -0.06 |
| Curtis Douglas | VAN | C | 43 | 1.10 | 2.29 | +1.18 | Real | +2.39 | -0.03 | +0.02 |
| Artyom Levshunov | CHI | D | 68 | 1.26 | 2.36 | +1.10 | Unclear | +2.66 | -0.23 | +1.11 |
| Cole Reinhardt | FLA | L | 59 | 1.91 | 3.00 | +1.09 | Unclear | +3.38 | -0.08 | +0.39 |
| Michael Carcone | UTA | L | 79 | 1.59 | 2.65 | +1.06 | Real | +1.14 | +0.22 | -0.01 |
| Darnell Nurse | EDM | D | 82 | 1.42 | 2.45 | +1.03 | Real | +0.47 | -0.21 | +0.81 |
| Ryan Leonard | WSH | R | 75 | 1.38 | 2.40 | +1.02 | Real | -0.41 | -0.46 | -0.02 |
| Jordan Staal | CAR | C | 75 | 2.00 | 3.00 | +1.00 | Real | +0.54 | +0.33 | +0.06 |
| Alexandre Texier | MTL | L | 51 | 1.05 | 2.00 | +0.95 | Real | -0.67 | +0.29 | -0.34 |
Penalty minutes
| Player | Tm | Pos | GP | Rest | Q4 | Change | Real or noise | Min | PP | PK |
|---|---|---|---|---|---|---|---|---|---|---|
| Max Domi | TOR | C | 80 | 0.73 | 2.55 | +1.82 | Unclear | -0.68 | -0.05 | +0.02 |
| Brandon Tanev | UTA | L | 56 | 0.62 | 2.00 | +1.38 | Noise | -0.21 | -0.04 | -0.18 |
| Oliver Ekman-Larsson | TOR | D | 78 | 0.62 | 1.88 | +1.26 | Unclear | -0.88 | +0.94 | -0.14 |
| Brock Faber | MIN | D | 80 | 0.23 | 1.39 | +1.16 | Unclear | -1.13 | -0.80 | -0.30 |
| Neal Pionk | WPG | D | 51 | 0.47 | 1.64 | +1.16 | Unclear | -0.37 | -0.10 | -1.70 |
| Lawson Crouse | UTA | L | 81 | 0.29 | 1.40 | +1.10 | Unclear | +0.50 | +0.05 | -0.51 |
| Easton Cowan | TOR | R | 66 | 0.35 | 1.45 | +1.10 | Unclear | +4.03 | +0.55 | +0.10 |
| Alexandre Texier | MTL | L | 51 | 0.26 | 1.33 | +1.08 | Unclear | -0.67 | +0.29 | -0.34 |
What actually happened to these men
A change is a symptom. Behind almost every large one is a coach changing his mind about somebody, and the change shows up in the minutes: total ice time, power-play time, penalty-kill time. Those three pull the four categories in different directions, and a manager who knows which lever moved knows whether to believe it.
The promotion: Olli Maatta and the Calgary penalty kill
The single largest deployment change in the league belongs to a defenceman nobody drafted. Olli Maatta played 43 games and averaged 12.68 minutes through the first three quarters. In the last one he averaged 22.43, a gain of 9.75 minutes a night, and 2.72 of that gain was shorthanded. His blocks went 0.96 to 2.00 a game.
He did not become a better shot blocker in March. He became a penalty killer, and blocks are what penalty killers accumulate.
The same club did the same thing to Zach Whitecloud, whose 3.65 extra minutes came with 1.86 extra on the kill and took his blocks from 1.49 to 2.88, the largest blocks rise in the league. When two defencemen on one team both spike in the same category in the same month, that is not two hot streaks. That is a coaching staff rebuilding a penalty kill.
The inversion: Seth Jones traded a power play for a penalty kill
Seth Jones is the cleanest example of why a raw change misleads. His shots collapsed from 1.95 to 0.83 a game, one of the four steepest falls in the league, while his total ice time went up by 0.90 minutes. Nothing was taken from him.
What changed is the kind of minute: 1.53 fewer power-play minutes and 0.86 more shorthanded. He was moved from the unit that generates shots to the unit that prevents them. Read as a shooting slump it is a buy-low. Read as a role change it is a repricing, and the minutes support the second reading.
The rookie handed the keys: Matthew Schaefer
Matthew Schaefer played all 82 games and was already playing 24.13 minutes a night, which is a workload most defencemen never see. The Islanders gave him 2.28 more anyway, 0.62 of it on the power play, and his shots went 2.44 to 3.55.
This is the version of a hot finish a manager most wants to find, and also the version most likely to be a mirage: the club had already committed to him, so there was no promotion left to price in. Matt Savoie in Edmonton is the same shape with more room, 3.36 extra minutes and 1.20 of them on the power play, shots from 1.42 to 2.50.
The quiet demotion: Jakob Chychrun
The largest single change in shots anywhere in the league, and it is a fall. Jakob Chychrun went from 3.18 shots a game to 1.50, far outside anything his own hot and cold stretches produce. His ice time fell only 1.35 minutes and his power-play time only 0.55, so the minutes explain part of it and not the whole. Some of the largest changes have no tidy cause, and saying so is more useful than inventing one.
The tempers: where the change is loudest and means least
Max Domi posted the biggest penalty-minute rise in the league, 0.73 to 2.55 a game, and it reads as noise: his own game-to-game bouncing accounts for a swing that size without anything about him changing. His ice time barely moved.
That combination, an enormous headline number on a change nothing else supports, is the signature of the category. Penalty minutes arrive in fives, so two majors in a fifteen-game window will manufacture a spike out of an unchanged temperament. This is not one player being unlucky either: penalty minutes are the one category of the four whose league-wide spread does not beat a shuffle at all.
The opposite case is a sustained absence rather than a single quiet night. Garnet Hathaway went from 1.11 penalty minutes a game to exactly zero across his last 13, which counts as real precisely because it held. And Donovan Sebrango stopped taking them, 2.52 down to 0.53, while being handed 5.36 more minutes a night. A fringe defenceman who stops sitting in the box is a fringe defenceman his coach starts trusting; the two facts are one fact.
The category that answers to nobody: hits
Hits are the outlier of the four. They show the most genuine movement of any category here and they answer to nobody: they correlate with total ice time at only +0.13, with power-play time at +0.008 and with penalty-kill time at +0.011. A hit is not something a deployment produces. It is a decision a player makes.
Joe Veleno went from 2.43 to 3.92 hits a game while losing 0.76 of a minute, and finished with 47 hits in his last 12 games. The two steepest collapses belong to a pair of Florida centres on flat minutes: Sam Bennett fell 1.73 to 0.57, the most clear-cut change of any kind in this piece, and Eetu Luostarinen 1.96 to 0.79. Bennett finished with 8 hits in 14 games.
Neither lost ice time worth mentioning, neither came off a power play or a penalty kill, and both play for the same club. Two teammates abandoning the same category at the same time on unchanged minutes is not two slumps, though what it is instead cannot be read off a stat line.
The practical read. A blocks or shots surge that arrives with the minutes is a role change, and a role change is the closest thing here to a reason: it can be checked against a depth chart in September. A hits or penalty-minute surge on flat minutes has nothing underneath it you can look up, which does not make it fake, but does mean there is nothing to confirm it with.
Which minutes moved
A defenceman who joins the penalty kill blocks more shots because he is on the ice for more shots. A forward promoted to the first power-play unit takes more of them. So the honest question about any change is which minutes moved, and the three kinds pull the four categories in visibly different directions.
| Stat | All minutes | Power play | Penalty kill | Reads as |
|---|---|---|---|---|
| Shots | +0.36 | +0.25 | +0.03 | power-play deployment |
| Hits | +0.13 | +0.01 | +0.01 | a choice, not a deployment |
| Blocks | +0.39 | +0.09 | +0.29 | penalty-kill deployment |
| PIM | +0.03 | +0.04 | -0.04 | nothing you can look up |
Shots follow the power play. Blocks follow the penalty kill. Hits follow nothing, and penalty minutes follow nothing at all. A correlation near +0.35 still leaves most of the movement unexplained: deployment is the largest single cause of a real change and it is not the only one.
How much of this is chance
A quarter of a season is ten to twenty games, and fifteen games of anything bounces. To separate a real change from a hot fortnight, each player's own games are shuffled and re-split: same player, same rate, same spread, but any genuine late-season effect removed. Whatever survives the shuffle is what chance alone produces.
| Stat | League rate | Real spread | Shuffled | Excess | Players with a real change | Chance gives |
|---|---|---|---|---|---|---|
| Shots | 1.619 | 0.404 | 0.365 | +10.9% | 10.4% | 4.6% |
| Hits | 1.127 | 0.4 | 0.306 | +30.5% | 13.5% | 4.6% |
| Blocks | 0.81 | 0.291 | 0.255 | +14.1% | 11.1% | 4.6% |
| PIM | 0.483 | 0.387 | 0.391 | -1.1% | 6.5% | 4.6% |
Hits clear chance by 30 per cent of extra spread, and 13.5 per cent of skaters show a change bigger than their own bouncing accounts for, against the 4.6 per cent chance alone would hand you. Blocks and shots clear the bar more modestly. Penalty minutes do not clear it at all: their real spread is marginally narrower than the shuffled one, which is as close to a flat nothing as this test produces.
The banger groups, added up properly
Nobody rosters shots alone. The categories here travel together, so the question a manager actually has is which skaters moved across a whole group, and which category inside it did the moving.
Added, not summed. A shot, a hit and a block are not worth the same and do not vary the same: shots run 1.62 a game across the league against 0.81 for blocks, and their spreads differ too, so a raw total is dominated by whichever category happens to carry the biggest numbers. Each change is divided by the spread of that category across the 540 qualified skaters before adding, which is the same standardisation a category league already uses to price a contribution. A group move of +2.00 means two standard deviations of combined category value, however it was assembled.
| Group | Real spread | Shuffled | Excess | Big movers | Chance gives |
|---|---|---|---|---|---|
| Hits and blocks | 0.764 | 0.618 | +23.7% | 2.2% | 0.3% |
| Shots, hits and blocks | 0.979 | 0.819 | +19.6% | 4.3% | 1.6% |
| Hits, blocks and penalty minutes | 1.363 | 1.259 | +8.3% | 12.8% | 9.9% |
Hits and blocks is the cleanest pairing in the sport. Its spread runs almost a quarter past what shuffling produces and it throws up seven times as many big movers as chance allows. Adding shots dilutes it slightly. Adding penalty minutes nearly destroys it: the three-category group barely clears chance at all, and it is the only one of the three whose big movers are mostly manufactured.
Why that happens is worth understanding before you trust a banger total. Penalty minutes have the smallest spread of the four, so standardising hands them the largest weight per unit of change, and they do not beat chance on their own. The result is a group in which the noisiest category is given the loudest voice: penalty minutes supply 50 per cent of all movement in hits, blocks and penalty minutes, against 23 and 27 per cent for the two categories that are actually moving.
Hits and blocks
| Player | Tm | Pos | Weighted | Raw | Hits | Blocks | Hits share | Blocks share | Min |
|---|---|---|---|---|---|---|---|---|---|
| Zach Whitecloud | CGY | D | +2.60 | +1.31 | -0.09 | +2.70 | 3% | 97% | +3.65 |
| Connor Murphy | EDM | D | +2.57 | +1.47 | +0.44 | +2.13 | 17% | 83% | +3.88 |
| Tom Willander | VAN | D | +2.46 | +1.59 | +1.00 | +1.45 | 41% | 59% | +4.35 |
| Artyom Levshunov | CHI | D | +2.34 | +1.63 | +1.32 | +1.02 | 56% | 44% | +2.66 |
| Jordan Staal | CAR | C | +2.24 | +1.54 | +1.20 | +1.04 | 53% | 47% | +0.54 |
| Joe Veleno | MTL | C | +2.12 | +1.67 | +1.78 | +0.34 | 84% | 16% | -0.76 |
| Olli Maatta | CGY | D | +2.09 | +1.10 | +0.07 | +2.02 | 3% | 97% | +9.75 |
| Brandt Clarke | LAK | D | +2.03 | +0.96 | -0.26 | +2.29 | 10% | 90% | +0.95 |
| Cole Reinhardt | FLA | L | +1.99 | +1.44 | +1.30 | +0.68 | 66% | 34% | +3.38 |
| Ryan Winterton | SEA | C | +1.78 | +1.38 | +1.43 | +0.35 | 80% | 20% | +1.56 |
Whitecloud tops this the way he tops the blocks table alone, and the share column says why: 97 per cent of his move is blocks. Compare Joe Veleno further down, whose move is mostly hits. Two similar totals, two completely different players, and only the first arrived with a deployment change behind it.
Shots, hits and blocks
| Player | Tm | Pos | Weighted | Raw | Shots | Hits | Blocks | Shots share | Hits share | Blocks share | Min |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Ryan Winterton | SEA | C | +3.14 | +2.34 | +1.36 | +1.43 | +0.35 | 43% | 46% | 11% | +1.56 |
| Olli Maatta | CGY | D | +3.04 | +1.77 | +0.95 | +0.07 | +2.02 | 31% | 2% | 67% | +9.75 |
| Zach Whitecloud | CGY | D | +2.86 | +1.49 | +0.25 | -0.09 | +2.70 | 8% | 3% | 89% | +3.65 |
| Jordan Staal | CAR | C | +2.48 | +1.71 | +0.24 | +1.20 | +1.04 | 10% | 48% | 42% | +0.54 |
| Artyom Levshunov | CHI | D | +2.40 | +1.67 | +0.06 | +1.32 | +1.02 | 3% | 55% | 43% | +2.66 |
| Connor Murphy | EDM | D | +2.34 | +1.30 | -0.23 | +0.44 | +2.13 | 8% | 16% | 76% | +3.88 |
| Cole Reinhardt | FLA | L | +2.31 | +1.67 | +0.32 | +1.30 | +0.68 | 14% | 57% | 30% | +3.38 |
| Garnet Hathaway | PHI | R | +2.30 | +1.46 | +0.58 | +0.50 | +1.22 | 25% | 22% | 53% | +1.22 |
| Trevor Moore | LAK | L | +2.28 | +1.69 | +1.87 | +0.46 | -0.06 | 78% | 19% | 3% | +2.39 |
| Tom Willander | VAN | D | +2.28 | +1.46 | -0.18 | +1.00 | +1.45 | 7% | 38% | 55% | +4.35 |
Across the whole league this group's movement is 36 per cent shots, 29 per cent hits and 35 per cent blocks, about as even a three-way split as you could ask for. That balance is the argument for using it: no single category can run away with the total.
And the other end of it:
| Player | Tm | Pos | Weighted | Raw | Shots | Hits | Blocks | Shots share | Hits share | Blocks share | Min |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Kaedan Korczak | VGK | D | -2.87 | -1.86 | -0.59 | -0.84 | -1.45 | 20% | 29% | 50% | -3.86 |
| Rasmus Dahlin | BUF | D | -2.56 | -1.60 | -0.68 | -0.46 | -1.42 | 26% | 18% | 56% | -1.35 |
| Ross Colton | COL | L | -2.53 | -1.82 | -1.53 | -0.69 | -0.31 | 61% | 27% | 12% | -1.93 |
| MacKenzie Weegar | UTA | D | -2.40 | -1.48 | -0.78 | -0.26 | -1.35 | 33% | 11% | 56% | -2.69 |
| Frank Vatrano | ANA | R | -2.25 | -1.52 | -1.20 | -0.42 | -0.63 | 53% | 19% | 28% | -2.65 |
| Jakob Chychrun | WSH | D | -2.19 | -1.68 | -2.37 | -0.28 | +0.45 | 76% | 9% | 15% | -1.35 |
| Hampus Lindholm | BOS | D | -2.11 | -1.25 | -0.76 | -0.04 | -1.31 | 36% | 2% | 62% | -1.49 |
| Artturi Lehkonen | COL | L | -2.06 | -1.54 | -1.37 | -0.65 | -0.04 | 66% | 32% | 2% | -1.52 |
Hits, blocks and penalty minutes
| Player | Tm | Pos | Weighted | Raw | Hits | Blocks | PIM | Hits share | Blocks share | PIM share | Min |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Max Domi | TOR | C | +4.82 | +1.55 | -0.26 | -0.10 | +5.18 | 5% | 2% | 94% | -0.68 |
| Brandon Tanev | UTA | L | +4.16 | +1.48 | -0.06 | +0.29 | +3.93 | 1% | 7% | 92% | -0.21 |
| Connor Murphy | EDM | D | +3.95 | +1.95 | +0.44 | +2.13 | +1.38 | 11% | 54% | 35% | +3.88 |
| Alexandre Texier | MTL | L | +3.88 | +1.86 | +1.14 | -0.32 | +3.07 | 25% | 7% | 68% | -0.67 |
| Josh Norris | BUF | C | +3.86 | +1.84 | +0.78 | +0.66 | +2.42 | 20% | 17% | 63% | -0.30 |
| Zeev Buium | VAN | D | +3.85 | +1.65 | +0.38 | +0.73 | +2.75 | 10% | 19% | 71% | +1.85 |
| Tom Willander | VAN | D | +3.66 | +2.01 | +1.00 | +1.45 | +1.20 | 27% | 40% | 33% | +4.35 |
| Lawson Crouse | UTA | L | +3.54 | +1.43 | +0.37 | +0.02 | +3.15 | 10% | 1% | 89% | +0.50 |
| Oliver Ekman-Larsson | TOR | D | +3.39 | +1.08 | -0.25 | +0.04 | +3.59 | 6% | 1% | 92% | -0.88 |
| Easton Cowan | TOR | R | +3.23 | +1.21 | +0.19 | -0.10 | +3.14 | 5% | 3% | 92% | +4.03 |
Read the share column before the weighted column. The top of this table is not a list of players who changed, it is a list of players who took penalties, and the shuffle test says penalty minutes do not move beyond chance at all. Max Domi leads it on 94 per cent penalty minutes, on a change his own bouncing explains. If your league counts penalty minutes you still have to roster them, but do not read this group as evidence that anybody's role changed.
The test that matters
Descriptive is one thing. The question in September is whether a strong close says anything about next season. So: predict each skater's 2025-26 per-game rate from his 2024-25 season, three ways, scored on players the model was not fitted to. 500 skaters cleared 40 games in both years.
| Stat | Rest of season only | The full season | Full season plus a Q4 term |
|---|---|---|---|
| Shots | +5.36% | 0.00% | +0.00% |
| Hits | +5.46% | 0.00% | +0.40% |
| Blocks | +7.73% | 0.00% | -0.49% |
| PIM | +3.74% | 0.00% | -0.10% |
Error against the full-season model, so lower is better and zero is the benchmark. Two things fall out, and the second is the answer.
Throwing the closing quarter away costs you. A model built on the first three quarters only is 3.7 to 7.7 per cent worse. Those games carry information, exactly as games do.
But weighting them extra buys nothing. Add a closing-quarter term on top of the full-season rate and the error moves by less than half a per cent either way. The earlier gain was never about recency: it was a model handed three quarters of the evidence and glad to get the rest. Once every game is counted once, the fact that some happened in March stops mattering.
So use the season line. A late surge is not a reason to move a player up and a cold finish is not a reason to fade him. The closing quarter is already in the season line, at exactly the weight it deserves. What a late move IS good for is spotting a role change you can then confirm against a depth chart.
Method
Source is our own game-log table for the 2025-26 regular season, 47,231 skater game rows, joined to the per-game ice-time table for the even-strength, power-play and shorthanded splits. The closing quarter is defined on each club's schedule rather than a player's own game count: the last quarter of that team's fixtures in date order, opening between 3 and 12 March 2026. A skater qualifies with 40 or more games on the season and 10 or more inside the window.
The real-or-noise verdict compares each change against how far that player's own results normally swing from night to night, measured in each window. A change at least twice that swing is called real; under it, noise. The shuffled comparison re-deals each player's games six times into a window of the same length, which keeps his rate and his spread and removes only the order they happened in. The predictive test is cross-validated, so no model is graded on a player it was fitted to.
Faceoff wins are deliberately absent. Faceoff counts are stored only at season level and the game log carries a win percentage with no draw count beside it, so a per-game win total cannot be recovered: only 1.6 per cent of games have a single solution, because a ratio carries no scale and 0.500 fits one win in two draws and ten in twenty equally well.