About the project

An all-time team, simulated.

NHL 82-0 is a hockey-port of the viral basketball game 82-0.com. You roll random team-and-decade combinations, draft a six-player starting lineup, and find out whether your team can take an 82-game season unbeaten. Skater ratings are Dom Luszczyszyn's Net Ratings; goalies are scored with Hockey Reference's GSAA.

01

The premise

Inspired by the NBA game 82-0, I set out to recreate it for the NHL. But using simple box-score stats felt like it would leave out too many great players and overlook defense entirely. Hockey has also seen massive statistical swings across eras, and I didn't want to punish players from lower-scoring eras, or goalies who happened to play through high-scoring ones.

The skater ratings here are Dom Luszczyszyn's Net Ratings, published at The Athletic. Goalies are rated with Hockey Reference's Goals Saved Above Average (GSAA).

02

Net Ratings

Net Rating is a player's impact on goal differential, in goals, above an average player at the same usage. (For a deeper read on how Dom builds it, see his article on Net Rating at The Athletic.) The components:

  • Offensive Rating (OFF): goals added on offense above an average player, per 82.
  • Defensive Rating (DEF): goals prevented on defense above average, per 82.
  • Net Rating (NET) = OFF + DEF.

For each (franchise, decade) bucket, a player's ratings are GP-weighted across the seasons they played there. Connor McDavid's Edmonton card in the 2020s is the sum of his Edmonton OffRtg/DefRtg divided by his total games, scaled to 82.

About 60% of skater seasons score negative on Net Rating, which makes sense: a hockey league of average players is exactly that, average, and below-average players exist in the same currency. A lineup full of replacement-level skaters loses on real goal differential, not just on missed counting stats.

03

Goalies: GSAA, adjusted

Goalies use Hockey Reference's Goals Saved Above Average (GSAA). It's already era-adjusted by construction: the 1980s and 2010s save baselines are very different, and GSAA bakes those in. So a Hašek save and a Dryden save sit on the same scale, both expressed as goals above the league-average goalie of their era.

GSAA is on the same currency as skater Net Ratings (goals above average), so it adds cleanly into the team total.

04

The simulation

Once you've drafted, the math runs in three steps.

  1. Aggregate to team goals. Your six players are scaled to a full lineup's worth of usage, then added to an era-neutral baseline of 6 goals per game to get the team's projected goals for and against.
  2. Pythagorean win probability. Convert that goals-for / goals-against pair into a single per-game win probability using hockey's standard Pythagorean formula.
  3. 82 Monte Carlo games. Each game is an independent coin flip at that win probability, with about a quarter of losses going to overtime (worth 1 standings point). The W-L-OTL record you see is one random 82-game season at your team's true skill.

Expected wins is the long-run average. Any single sim has variance, which is why a stacked lineup might land 78-4 one run and 82-0 the next.

05

What's in the data

  • Skaters and goalies from 1969–70 onward.
  • Every season needs 41+ GP per team to count toward a card. A franchise also needs at least 2 seasons in a decade to appear there.
  • Traded-season rows count toward every franchise the player suited up for.
  • Franchise continuity follows real history: Atlanta Flames → Calgary, Hartford → Carolina, Quebec → Colorado, etc. Defunct California Golden Seals / Cleveland Barons get their own bucket.
  • 33 franchises × 6 decades (1970s–2020s), 158 non-empty (franchise, decade) buckets.
06

What it's not

This isn't a serious projection system. It's a game on top of a reasonable approximation. A few honest limitations:

  • Pre-1998 seasons have no time-on-ice data, so role-share assumptions are stylized.
  • Pythagorean assumes goals-for and goals-against scale independently. Real teams have feedback loops the model doesn't see.
  • An era-neutral baseline of 6 goals per game is convenient for cross-decade comparison but flattens the actual difficulty of scoring in, say, 2003–04 vs. 1981–82.
07

Credit