Armchair Hockey Scout

Ask the book

2026-27 edition Ask a direct question about this edition of the book — who, how many, how common, which group more — and it is answered with a table computed on this page from the edition’s index: the season line, height and age, the on-ice percentiles, the grades and the traits read out of every report. Ask for a view on named players — what a comparison comes down to, what makes a man — and you get the book’s reading of their own pages, and only those. The model turns your question into a query and phrases the result, or reads the pages it is handed; it never originates a figure, and an answer carrying a figure that is on neither the table nor the pages is withheld. It does not forecast, and it says so when a question is outside what the book holds.

Tables are computed on this page from the 2026-27 edition’s index; readings rest on the players’ own pages; the model never counts. Twenty questions an hour.

Measured, not remembered

The record, and what it will not say

The reports on this site go back five seasons. The measurement goes back to 1917-18 — 108 seasons and 1,759 team-seasons of the league's own counting record. Every figure on this page was computed from it. None of it was recalled, and where the record stops, this page says where.

Last computed 2026-09-05.

The spine

League goals per game, both clubs combined. It is the one series the archive has for every season, and everything else on this page is measured against its shape.

Highest

9.58

1919-20

Lowest

2.92

1928-29

Now

6.16

2025-26

108 seasons. 2004-05 is absent because it was not played.

The eras

Where the record stops being one game and starts being another. The boundaries are found by the data, not chosen — and the method recovers the war years on its own, without being told they happened.

Era Seasons goals/gmPIM/gmspread
1917-18 – 1919-20 3 9.1127.31.758
1920-21 – 1922-23 3 7.6316.80.715
1923-24 – 1941-42 19 4.8318.40.702
1942-43 – 1944-45 3 7.5813.71.393
1945-46 – 1969-70 25 5.6622.10.697
1970-71 – 1978-79 9 6.5826.81.055
1979-80 – 1985-86 7 7.7237.40.789
1986-87 – 1995-96 10 6.9546.10.592
1996-97 – 2010-11 14 5.5030.10.437
2011-12 – 2025-26 15 5.7718.70.462

Which boundaries hold

The number of eras is a near-tie — several counts describe the record about equally well — so naming one would dress a tie as an answer. What is readable instead is which breaks recur across every solution, and how far the record moves across each one, measured in standard deviations of that series.

Break Solutions The biggest move across it
1920-21 or 1921-22 15 of 16 goals/gm down 8.95 → 5.87 (2.7 sd)
1923-24 9 of 16 goals/gm down 8.15 → 4.54 (3.2 sd)
1942-43 12 of 16 goals/gm up 5.34 → 7.15 (1.6 sd)
1945-46 12 of 16 spread down 1.160 → 0.526 (1.9 sd)
1970-71 12 of 16 spread up 0.719 → 1.071 (1.1 sd)
1979-80 or 1980-81 15 of 16 PIM/gm up 28.4 → 37.7 (1.0 sd)
1986-87 8 of 16 PIM/gm up 38.0 → 48.9 (1.2 sd)
1996-97 8 of 16 PIM/gm down 43.2 → 33.2 (1.1 sd)

Five seasons either side of the break. A break in the last few seasons is worth less than the others: there is no future yet to compare the present against.

The test this fails

Everyone assumes the eras were made by the rule book. So 7 rule changes were fixed in the source before the segmentation was run, under one criterion applied uniformly: the first season the change was in force league-wide. Then the boundaries were measured against them.

The boundaries land a mean of 3.78 seasons from the nearest rule change, and randomly placed boundaries do as well or better 23.0% of the time. Chance explains the alignment. The breaks in the record are real; their coincidence with the rule book is not established, and this site will not write as though it were.

Rule changes the data does not break at

  • 1929 forward passing legal in all three zones
  • 1967 expansion from six clubs to twelve
  • 2000 two referees, full time
  • 2005 the obstruction standard, no two-line pass, smaller goalie kit
  • 2013 divisional realignment and hybrid icing

Which seasons are the same sport

From 1959-60 the record also carries shot volume and conversion, and segmenting that narrower window finds breaks the long record cannot see. This is not trivia: it decides how far back a model may be trained and tested before it is quietly learning a different game.

Break Solutions The biggest move across it
1970-71 13 of 16 spread up 0.719 → 1.071 (1.5 sd)
1977-78 or 1980-81 15 of 16 spread down 1.088 → 0.792 (1.2 sd)
1986-87 12 of 16 spread down 0.819 → 0.527 (1.2 sd)
1993-94 or 1994-95 15 of 16 goals/gm down 6.99 → 5.73 (1.6 sd)
1996-97 or 1997-98 12 of 16 shots/gm down 60.3 → 55.4 (1.9 sd)
2005-06 11 of 16 shots/gm up 55.9 → 59.7 (1.5 sd)
2008-09 or 2009-10 10 of 16 PIM/gm down 29.1 → 23.5 (0.6 sd)
2017-18 10 of 16 shots/gm up 59.6 → 62.6 (1.2 sd)
2023-24 9 of 16 shots/gm down 62.3 → 57.6 (1.9 sd)

The nearest break behind the seasons this site tracks in full is 2017-18, which is why the backtest below runs seven postseasons and not twenty. Reaching further would cross a boundary, and a model scored across one is being marked on a game it was not trained for. 2019-20 and 2020-21 are left out for a different reason: a 24-club play-in and an all-divisional postseason are different tournaments, not merely earlier ones.

The last row is unfinished business rather than a result. Shots per game fell sharply across 2023-24 while scoring barely moved, which is as consistent with a change in what the scorers record as with a change in how the game is played. Nothing measured so far settles which, and until it does, no claim on this site rests on comparing shot volume across that break.

When each number began

The league's feeds answer for all 1,759 team-seasons whether or not the field meant anything that year. Several are written as zero rather than left empty before they begin, so they read as data when they are not. This table is computed from the feeds themselves, every time the numbers refresh, because it is the check that has to run before anything is divided by anything.

Kept from Unbroken from Field
1917-18 1917-18 goals, games, wins and losses
1917-18 1917-18 penalty minutes
1918-19 1930-31 shorthanded goals — none at all in 1929-30
1959-60 1959-60 shots on goal
1977-78 1977-78 times shorthanded
1977-78 1977-78 power play and penalty kill percentage
1997-98 1997-98 faceoff win percentage
1997-98 1997-98 penalty kill time on ice
2009-10 2009-10 goals scored four-on-four
2009-10 2015-16 goals scored three-on-three — none at all in 2010-11, 2012-13, 2014-15

Kept from is when the league began recording the field. Unbroken from is the first season it is populated in that season and every season after, which is the date a denominator has to clear. Where the two differ, the field was being kept and the league genuinely did none of it that year — a real zero and an unkept column look identical from here, which is why both dates are reported rather than one.

A question that lands before one of these dates gets the date as its answer. There is no version of this site that guesses instead.

What the bracket is worth

105 playoff series across 7 postseasons, all of them already played. The model is shown each matchup as it stood before the puck dropped and asked for a probability, then scored against what happened — and every series is scored by a model that never saw its own season. The bar is not a coin. It is always picking the home club, which took 63 of the 105 and is a rule you can apply in your head.

Every rating on every series — same sample, same arithmetic

105 series, 7 postseasons

Rating Accuracy AUC Brier Log score
expected goals 57.1% 0.620 0.2353 0.6638
goals for and against 59.0% 0.542 0.2420 0.6789
always the home club 60.0% 0.500 0.2400 0.6730
a coin 60.0% 0.500 0.2500 0.6931

Lower is better for Brier and log score; higher is better for accuracy and AUC, and AUC is the only one of the four a constant prediction cannot fake. Where a rating loses to the home-ice rule, the table says so rather than quietly dropping the comparison.

And April's home ice is not the season's

Fitting a separate home edge for the playoffs was tried on these 105 series and failed in a way worth keeping. Offered a grid, it pinned at the top of it, bought coarse accuracy at the cost of calibration, and would not have been measuring home ice in the first place: a playoff home club is a selected one — it earned the ice by finishing higher — so an edge fitted on series is really absorbing seed quality the rating has not counted. That was an argument, and it is the reason the bracket still runs on the regular season's 1.045.

Asked one game at a time it can be measured instead, because over a series the better seed is home four times and away three, so both clubs are seen at home and the selection very nearly cancels. Over 604 playoff games across 7 postseasons the edge fits at 1.0176 — below the regular season's, which is the opposite of what the series fit was reaching for. Compressing the talent gap the way a playoff series does moves it to 1.0178, so the answer does not depend on that choice.

The comparison it has to be made against is not the 1.0392 the section below gets from the regular season, because that fit rates each season from the one before and a playoff game is rated from its own regular year, three weeks earlier. So the same years' regular seasons were fitted at that same vintage — 9,102 games, 1.0430 — and against that, April comes out 1.00 standard errors smaller. Which is not a finding. The per-postseason fits run 0.9636 to 1.1112 on 86 games each and do what samples that size do.

What it does is turn the series fit's diagnosis from an argument into evidence. If April's home ice were genuinely worth more, the game-level fit is where it would show, and it points the other way: at 1.045 the model expects 54.47% of playoff games to the home club and the home club took 51.82%. Whatever the bracket is missing about the higher seed, it is not home ice — and what follows asks whether it is missing anything at all.

Whether there is anything there to explain

That last sentence was carried as an open fault from the first bracket backtest onward, so it is worth putting the number under it. Over 105 series the bracket said 53.92% for the club with home ice and that club won 60.00% of them, which is 6.08 points and looks like a model with a hole in it.

It is 1.36 standard errors from zero. A postseason is fifteen series sharing their clubs, their goaltenders and their bounces, so the unit here is the April rather than the series — and across 7 postseasons it changes sign in 3. Counting series as independent trials, which would be the flattering error, gives 1.25 instead, so this does not turn on the choice of unit either. It is not established.

Which is not the same as nothing being there, so the four places it could live were each measured. The compression — how far a series is assumed to pull two clubs together, a stated assumption in the model that had never been fitted — turns out to be unmeasurable at this size: the whole sweep from heavy narrowing to heavy widening spans 0.00235 of log score, and fitted one postseason at a time it runs to an end of its own grid in 6 of 7, which is a search out of room rather than an estimate. The conversion from a game price to a series price is right: playing the model's own game prices out as independent coins gives 54.12% against the 53.92% the bracket uses, and those series should have run 607.4 games and ran 604. Games inside a series would have to be correlated for that to come out even, and they are not.

The talent gap is the one that can be asked properly, because it has a regular-season form and 6,519 out-of-sample games to ask it on. If the rating were too timid about how far apart two clubs are, the home favourite is where it would show. Over 3,265 games with the better club at home the model said 60.43% and the better club took 60.43% — 0.01 standard errors, which is as close to nothing as this page has ever printed. And the home edge, untied so that its two ends can move apart — the shape no symmetric fit could have found — buys 0.00007 of log score over those same games.

So the honest answer is that the hole may not be there. Five cuts of the same 604 playoff games — the series, the games inside them, the seed at home, the seed on the road, the home favourite — land between 0.21 and 1.36 standard errors, and five cuts of one sample are one observation, not five. Settling a gap this size would take about 16 postseasons, 9 more Aprils than this archive holds.

When it says sixty per cent

The bracket above is 105 series. The model that runs every night prices a single game, and that one can be scored on 6,519 of them — 5 seasons, 2018-19, 2022-23, 2023-24, 2024-25, 2025-26. Each was priced by the strength file the site itself loads on a game page, and that file holds the season before its edition, so nothing here was predicted by ratings that contained it. The home club took 53.7% of the 6,519; the model said 54.3% on average.

40% 40% 45% 45% 50% 50% 55% 55% 60% 60% 65% 65% 70% 70% what the model said what happened
Each point is a tenth of the games, ordered by what the model said. The dashed line is a model that is exactly right about its own uncertainty; the bars are Wilson intervals, and they assume the games inside a point are independent, which they are not, so read them as a floor.
Games It said It happened Interval
651 40.7% 43.9% 40.2–47.8%
652 46.2% 44.2% 40.4–48.0%
652 49.1% 43.7% 40.0–47.5%
652 51.4% 50.6% 46.8–54.4%
652 53.3% 52.1% 48.3–56.0%
652 55.4% 57.2% 53.4–61.0%
652 57.3% 56.4% 52.6–60.2%
652 59.6% 58.6% 54.8–62.3%
652 62.4% 61.7% 57.9–65.3%
652 67.6% 68.7% 65.0–72.2%

9 of the 10 points sit close enough to the diagonal that their own interval reaches it. The exception is the 652 games it rated between 47.8% and 50.3%, where it said 49.1% and the home club took 43.7%. One miss in ten intervals at ninety-five per cent is what chance produces about half the time, so it is named rather than explained. Split the score the way Murphy did — Brier = reliability − resolution + uncertainty — and the miscalibration term is 0.00052 against a score of 0.2425, which is 0.2% of it. Fitting a correction confirms there is nothing to correct: the recalibration slope is 1.021 where one is perfect, and running the fit five times with a different season held out each time gives 0.906 to 1.107, which straddles one.

That is the good news, and it is smaller than it sounds. The same decomposition puts the uncertainty term — the variance of the result itself, which belongs to the sport and not to any model — at 0.2486, and the model's resolution, the part it actually takes back, at 0.0063. It recovers 2.5% of what there is to recover. A single hockey game is very close to a coin, the model knows it, and being well calibrated about a coin is worth having and is not worth much.

Which is the argument for calibration rather than against it. A pool is not won by picking favourites, because everybody has those picks. It is won by knowing which favourites are thinner than the room thinks, and that requires the number to mean what it says — which, over 6,519 games, it does.

The same race, at 62 times the sample

Same games, same Poisson arithmetic, same home edge; only the rating changes.

Rating Accuracy AUC Brier Log score
expected goals 57.2% 0.590 0.2425 0.6780
expected goals, no roster adjustment 57.2% 0.589 0.2426 0.6781
goals for and against 56.2% 0.581 0.2471 0.6881
always the home club 53.7% 0.500 0.2487 0.6906
a coin 53.7% 0.500 0.2500 0.6931

Season by season, which is the unit that counts

A club's rating is one number that all eighty-two of its games inherit, so 6,519 games are nothing like 6,519 independent trials. Five seasons are five.

Season Rated from Games Home won Accuracy AUC Brier Home rule
2018-19 2017-18 1,271 53.7% 56.8% 0.585 0.2438 0.2487
2022-23 2021-22 1,312 52.4% 59.8% 0.637 0.2379 0.2497
2023-24 2022-23 1,312 54.1% 58.2% 0.598 0.2408 0.2483
2024-25 2023-24 1,312 56.3% 57.5% 0.580 0.2410 0.2471
2025-26 2024-25 1,312 52.2% 53.4% 0.545 0.2493 0.2499

Expected goals beat the home-ice rule on Brier in 5 of 5 seasons. Five of five is a sign test at one in thirty-two, which is a claim five seasons can carry — and the margin in 2025-26 is 0.0006, so one of the five is a win by a rounding error and is reported as one rather than folded into the count and forgotten.

Against last season's goals for and against, the same model wins 4 of 5. Pooled, expected goals take back 4.0 times as much of the sport's uncertainty as goals for and against do — but 4 seasons out of 5 is not a result; it is the direction the evidence points, and it is written that way here because the bracket backtest asks the same question of 105 series and this is the larger sample, not a second opinion that settles it.

The roster adjustment is the one input in the strength file that knows anything at all about the season it is predicting: continuity counts who of last season's minutes turned up in the NHL during the following one, which is close to what a reader knows in September and is not exactly it. So the model is also run with it switched off, and that row is in the table above. It beats the home-ice rule in 5 of 5 seasons too. The door was open; the measurement says nothing came through it.

It does not go stale. The ratings never move, so by April the model is pricing games from a file eighteen months old, against clubs that have traded at the deadline since — and if its edge decayed through a season, no figure taken part-way through one could be read on its own. Split each of the 5 seasons in half at its own midpoint and the edge over the home-ice rule was -0.00536 in the first half against -0.00703 in the second: larger late, in 4 of 5 seasons, and the change is 0.91 standard errors, which is nothing either way. There is no decay to correct for. By month it runs from October at -0.00470 to April at -0.01020.

The home edge was tested, and it stands. Every expected-goal total the model produces is multiplied by 1.045 at home and 0.955 on the road, and that number was written down rather than measured — the model says 54.29% on average where the home club took 53.72%, which is the shape of an edge set a little too high. Fitted by maximum likelihood over all 6,519 it comes out at 1.0392 (1.0388 if the criterion is Brier instead). But fitted on each season alone — 5 figures that share no games with each other — it runs 1.0234 to 1.0658, mean 1.0391, and the stated value sits 0.78 standard errors above that mean. That is not a finding.

And moving it would buy nothing. Out of sample — each season scored with the edge fitted on the other 4 — the fitted edge beats the stated one in 3 of 5 seasons, and the Brier changes in the fifth decimal (0.24254 against 0.24251). The one figure that does move is the recalibration intercept, from -0.0273 to -0.004, which reads like a standing bias being removed. It is not. The miscalibration term does not improve at all (0.00052 against 0.00053), because the deciles above already reach the diagonal at 1.045. The intercept is a property of how the fit is parameterised rather than of anything a reader ever meets. So the stated edge stays, and it is now a measurement rather than an assumption — which also spares the bracket, the pool simulation and every playoff path on a matchup page, all of which are built around it and none of which a regular-season fit has any standing to move.

What this is not. The bins are deciles of the prediction rather than round numbers, because the model's probabilities cluster hard around the home edge and fixed bands would leave most of a season in two of them. The boundaries therefore come from the data. The intervals are Wilson and assume the games inside a point are independent, which they are not. 29 of the 6,519 were played at a neutral site and were given home ice anyway, because that is what the model does. And 5 seasons is what the archive allows: an edition can be scored only if the season before it was played and its own season was finished, which rules out 2021-22 — a 56-game all-divisional season is a poor prior for a normal one even where the data exists — along with 2019-20, which is not in the archive at all.

A count is not a confidence

The rating is expected goals at even strength and on the power play, and as a count of goals it is short: over these 6,519 games the model's means come to 5.18 a game where 6.19 were scored, a ratio of 1.195, and 1.149 over 604 playoff games. A Poisson game is not scale-free — the same two clubs at higher means are a bigger favourite — so the question is whether the shortfall belongs under the win probability too. It does not. Multiplying both means by every scale from 0.7 to 2 moves the regular-season log score by 0.0022 a game across the whole range, the best of it at 1.00; a scale fitted on the other four seasons made the held-out season better in 0 of 5. The playoff curve leans the other way, at the edge of the grid, and is 0.6 standard errors from nothing held out. So the scale is applied where a mean is read as a number of goals — the pool's tiebreaker — and nowhere else. npm run probe:scale.

Written by npm run backtest:games, last on 2026-09-09. It checks itself before it writes: that the bins hold every game and are in order, that the season rows add back to the same total, that the base rate agrees with the count of home wins, and that Murphy's three terms reconcile with the score.

Is it any good this year

2025-26 is finished — all 1,312 games, the last on 2026-04-16. So there is no season in motion to watch yet: what follows is last season closed, and from the first night of the next one it becomes the season being played and changes every morning. It is priced from the 2024-25 strength file, so like the backtest above it has never seen a minute of what it is predicting. And because the season is closed it is the same games the backtest scores as its newest row: the two land on the same score to four decimals, which is the check that this tally and that backtest are one piece of arithmetic rather than two that resemble each other.

Over 1,312 games Right Brier ± one error
expected goals 53.4% 0.2493 0.0022
expected goals, no roster adjustment 53.7% 0.2498 0.0024
goals for and against 51.4% 0.2610 0.0034
always the home club 52.2% 0.2499 0.0011
a coin 52.2% 0.2500 0.0000

The home-ice rule here is a flat 54.1%, the home rate over 2018-19, 2022-23, 2023-24, 2024-25 — every season the backtest scores except this one. A season part-way through has no other four of its own to be measured against, and a rate drawn from the games it is being compared with would be grading the season against itself.

Against that rule the model is 0.0006 ahead on Brier, give or take 0.0018 — which is 0.33 standard errors. The comparison is paired game by game, because both are badly wrong about the same coin-flip nights and only the difference between them is the question. The interval assumes those games are independent, which they are not: a club's rating is one number all eighty-two of its games inherit, so read it as a floor.

What this number does on its own

The same tally applied to 2025-26 — the season above, replayed as it filled, stopped at points through the year. That season ended 0.33 standard errors from the home-ice rule, which is to say it ended up saying nothing at all.

After Model Home rule Gap Standard errors
50 games 0.2482 0.2582 -0.00999 -1.17
100 games 0.2425 0.2509 -0.00839 -1.36
200 games 0.2473 0.2480 -0.00069 -0.15
400 games 0.2498 0.2500 -0.00027 -0.08
700 games 0.2497 0.2496 0.00017 0.07
1,000 games 0.2507 0.2498 0.00095 0.45
1,312 games 0.2493 0.2499 -0.00060 -0.33

At 100 games it read 1.36 standard errors clear of the rule. It changed sides on the way. It finished the season at 0.33. Nothing about the model changed in between — only the number of games it had been asked about. If this year's figure looks like a verdict in November, that is what a verdict looks like when it is made of fifty games.

The curve below holds 1,312 games in ten deciles, and the recalibration slope on them is 0.569 against the 1.021 the 5 closed seasons give. One season is not five, and a slope fitted on one is exactly the kind of figure that moves a great deal.

40% 40% 45% 45% 50% 50% 55% 55% 60% 60% 65% 65% 70% 70% what the model said what happened
Each point is a tenth of the games, ordered by what the model said. The dashed line is a model that is exactly right about its own uncertainty; the bars are Wilson intervals, and they assume the games inside a point are independent, which they are not, so read them as a floor.

Written by npm run grade:season, last on 2026-09-09, and rerun by the nightly refresh so it is never older than last night's games. It shares its arithmetic with the backtest above rather than copying it, and it refuses to write unless the home count agrees with the rate, the baseline excludes the season it is grading, the curve appears exactly when the sample can carry it, and — once the season is closed — its figures match the backtest's row for the same season exactly.

How this was measured

Exact changepoint detection by optimal partitioning over the standardised series, minimum segment three seasons. The number of boundaries is chosen against AR(1) surrogates fitted to each series with the innovation covariance preserved, which have no boundaries in them at all. Club-to-club spread is corrected for the sampling variance a Poisson league of the same size and schedule would show on its own.

Changepoint detection always finds boundaries. Run it on a series that merely drifts and it returns a confident era structure, because a drifting series is well described piecewise. So the number of boundaries is not chosen by eye or by a penalty off a shelf — it is chosen against surrogate series fitted to the record's own persistence and co-movement, which have no boundaries in them at all. That null is deliberately too strong: a fitted persistence overstates memory when the data really does break, because a break looks like memory. The method errs toward finding nothing, which is the direction this site wants to be wrong in.

There are no scouting reports before 2021-22 and there never will be. Nobody here watched those men play, and a read assembled from a stat line is a guess wearing a suit. The numbers reach back to 1917-18; the readings do not, and the two are kept apart on purpose.

Every figure on this page is rendered from files written by the measurement scripts themselves. Nothing is retyped, so nothing can drift away from what was actually computed.