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/gm | PIM/gm | spread |
|---|---|---|---|---|
| 1917-18 – 1919-20 | 3 | 9.11 | 27.3 | 1.758 |
| 1920-21 – 1922-23 | 3 | 7.63 | 16.8 | 0.715 |
| 1923-24 – 1941-42 | 19 | 4.83 | 18.4 | 0.702 |
| 1942-43 – 1944-45 | 3 | 7.58 | 13.7 | 1.393 |
| 1945-46 – 1969-70 | 25 | 5.66 | 22.1 | 0.697 |
| 1970-71 – 1978-79 | 9 | 6.58 | 26.8 | 1.055 |
| 1979-80 – 1985-86 | 7 | 7.72 | 37.4 | 0.789 |
| 1986-87 – 1995-96 | 10 | 6.95 | 46.1 | 0.592 |
| 1996-97 – 2010-11 | 14 | 5.50 | 30.1 | 0.437 |
| 2011-12 – 2025-26 | 15 | 5.77 | 18.7 | 0.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 predictions are 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.633 | 0.2338 | 0.6604 |
| 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.
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.