Stats guide
What every number on the site means, how our expected-goals model works, where the data comes from, and what to take with a grain of salt.
The stats
- Shot attempts (Corsi, CF%)Every shot aimed at the net: on goal, missed or blocked.
- Shot attempts are a stand-in for puck possession: the team that has the puck more shoots more. CF% is a team's share of all attempts while it's on the ice. 50% is even; 55% is very good. We use 5-on-5 so power plays don't skew it.
- Unblocked attempts (Fenwick)Shot attempts minus the blocked ones.
- Blocked shots have no reliable location (the NHL records where the block happened), so our expected-goals model and shot maps use unblocked attempts only.
- Expected goals (xG, ixG, xGF%)How many goals the chances were worth, on average.
- Every unblocked shot gets a probability of going in, based on where it came from and what happened just before (details below). A shot from the slot might be worth 0.15 goals; a point shot through traffic 0.03. Add them up and you get a team's xG. ixG is a single player's own shots. xGF% is a team's share of the expected goals in its games: the best single measure of who's controlling play. G−ixG shows finishing: above zero means scoring more than the chances suggest (skill, or luck that may not last).
- High-danger chances (HD)Shots from right in front of the net, plus rebounds from the slot.
- An unblocked shot from the inner slot (an 18-foot-wide strip straight out from the net, up to 20 feet from the goal line), or a rebound from anywhere in the slot. These go in several times as often as other shots. HDCF% is a team's share of them.
- PDO5-on-5 shooting % plus save %. Roughly a luck meter.
- League average is 100 (as in 1.000). Teams well above 100 are usually getting bounces that tend to even out; teams well below are usually due for better luck. Elite shooters or goalies can hold it a point or two above 100.
- Goals saved above expected (GSAx)Expected goals faced minus goals allowed.
- The fairest single goalie number: it accounts for how hard the shots were. +10 over a season is excellent; below zero means letting in more than an average goalie would on the same shots.
- Expected save % (xSV%)The save % an average goalie would post on the same shots on goal.
- Compare it with the real save %. A goalie at .905 behind a team that allows lots of slot chances (xSV% .895) is doing better than one at .910 behind a tidy defence (xSV% .915).
- Per 60 (CF/60, xGF/60)A rate per 60 minutes of play at that strength.
- Lets you compare teams that have played different amounts of 5-on-5 or power-play time.
- Strength (5v5, PP, SH, EV)How many skaters each side had when the shot happened.
- 5v5 is full strength. PP is a power play (more skaters than the opponent); SH is shorthanded. “Other” covers 4-on-4, 3-on-3 overtime and empty nets. Most analysis uses 5v5 because special teams follow different patterns.
- ReboundA shot within 3 seconds of a teammate's shot on goal, with no stoppage.
- Rebounds are much more dangerous than first shots because the goalie is out of position.
- Rush shotA shot within 4 seconds of play outside the offensive zone.
- Off-the-rush chances catch a defence before it's set up. The NHL's play-by-play doesn't record rushes or breakaways, so this only catches the clearest ones (about 1 shot in 100). It's one small input to our expected-goals model; we don't count rush goals anywhere on the site because the numbers would miss real breakaways.
- On-ice and relative (On-ice xGF%, Rel xGF%)How the team does with a player on the ice, and how that compares with him on the bench.
- From the NHL's shift charts we know who was on the ice for every 5-on-5 shot. On-ice xGF% is his team's share of expected goals while he's out there. Relative (Rel) subtracts the team's share in the same games while he's off the ice: +3 means his team controls 3 points more of the play with him on. Relative numbers help separate a player from his team, but linemates and the minutes a coach gives him still shape them.
- Primary points (P1) and 5-on-5 points per 60Goals plus first assists; and how often a player scores at full strength.
- A second assist is often a pass several touches before the goal, so primary points (goals plus first assists) say more about who drives the scoring. 5v5 P/60 is points at 5 on 5 per 60 minutes of 5-on-5 ice time: it puts a third-liner and a top-liner on the same footing, and leaves out power-play points. It appears once a player has 50 minutes at 5 on 5.
- Empty-net pointsGoals and assists on goals scored with the other team's goalie pulled.
- A goal into an empty net counts the same as any other in the box score, so some players' totals carry a few easy ones. Empty-net points are the scorer's goal and both assists on those goals; the league's Players tab ranks them and shows how much of a player's season they make up. Clutch Score already gives an empty-net insurance goal nothing.
- Physical and discipline (FO%, penalties, hits, giveaways, takeaways)Faceoffs, penalties drawn and taken, and the scorekeeper's hits, giveaways and takeaways.
- FO% is faceoffs won, shown for centres only (hover for won and lost). Penalties drawn minus taken above zero means a player earns his team more power plays than he gives away. Hits, giveaways (losing the puck to the other team) and takeaways (winning it back) are logged by each arena's scorekeeper, and some rinks count far more than others, so compare players on the same team rather than across the league. We have them from 2026-27; earlier seasons show “—”. A lot of giveaways often just means a player has the puck a lot.
- Quality starts, really bad starts and stolen gamesGame-by-game goalie measures: how often he gives his team a chance to win.
- A goalie's start is a game where he faced his team's first shot on goal. A quality start (QS, from Rob Vollman) is a start with a save % at or above the league's average that season, or at least .885 on 20 shots or fewer; around 55–60% of starts is typical for a regular starter. A really bad start (RBS) is a save % below .850: a night that leaves his team little chance. We show both as a share of his starts (“58% quality · 8% really bad”), since a goalie who starts more often has more chances to have a bad night. The league's list of really bad starts needs 3 starts, and 1 for every 4 games his club has played. A stolen game is a win where he saved 2 or more goals above expected that night, and at least as many as the winning margin (empty-net goals aside): the team probably loses without him. A blowout he starred in doesn't count. A typical starter has a handful a season. HDSV% is save % on high-danger shots. Empty-net goals don't count against anyone.
- Luck meter (points vs deserved)How many points a team has banked compared with what its chances deserved.
- For every game we take each unblocked shot in regulation and treat it as landing with a chance equal to its expected goals. Adding those up shot by shot gives the exact chance of every final score (no simulation), and from that the chance of winning in regulation, going to overtime tied, or losing. Deserved points = 2 × the chance of a regulation win + 1.5 × the chance of a tie (a tie gives each team a point plus a coin flip for the extra one). Real games end tied more often than independent shots suggest, so tie chances are scaled up to match how often games actually go to overtime that season. The gauge shows points banked minus points deserved: right of centre is lucky, left is unlucky, and it's grey on purpose, because being lucky isn't the same as playing well. Empty-net shots and overtime are left out, and it ignores score effects (a team protecting a lead gives up more chances than usual). The verdict appears after 10 games and uses PDO to say whether things should even out.
- Team personalityA one-line label for how a team plays, from where it ranks in the league.
- Each label is a couple of conditions on league ranks, for example Run-and-gun: top 10 in 5-on-5 expected goals for per 60 and bottom 12 in expected goals against. The closer a team is to the top (or bottom) of each, the stronger the match, and the strongest match wins; a second strong match is mentioned too. The labels: Built for the playoffs, Run-and-gun, Shutdown, Puck hogs, Goalie carrying them, Unlucky: better than the record, Living dangerously, Special-teams merchants, Can't stay out of the box, Hemmed in, and middle of the pack when nothing stands out. The three reasons underneath are the ranks behind it. Labels appear once every team has played a game; early in the season they say how a team has played so far and can change from week to week. The trait map plots every rank the rules use; the shaded zones show where a team has to be for its label. We tuned the thresholds on 2024-25 and 2025-26 so the 32 teams spread across them.
- Records by situation, comebacks and blown leadsHow a team does depending on the score: scoring first, leading after two, one-goal games.
- We replay every game goal by goal. Records are wins-losses-OT/shootout losses; the league rank compares point % (points won out of points available) in that situation. One-goal games are decided by one goal (shootouts included) or by two with an empty-net goal. A comeback win is a win after trailing by two or more at any point; a blown lead is a loss (including in overtime or a shootout) after leading by two or more. Shootout goals don't count as goals by period.
- Special teams and disciplinePower plays, penalty kills, and penalties drawn and taken.
- Power-play opportunities, times shorthanded and power-play and shorthanded goals come from the NHL's team reports (they count a power-play goal scored with the goalie pulled for an extra attacker). Power-play time comes from the play-by-play, and penalties drawn and taken from the players' games. Most of these are per game so teams with games in hand compare fairly. Hits, blocks, giveaways and takeaways are ranked by volume and shown without green or red: more hits isn't clearly better, and scorekeepers count them differently.
- How they scoreWhere a team's goals and expected goals come from, against the league average.
- Every goal and unblocked shot is sorted two ways: by shot type and by strength, both recorded by the NHL for every shot. Bars compare the team's share of its own expected goals with the league's share. The rebound rate (expected goals per 60 minutes from rebounds) is ranked across the league. There's no “off the rush” split, because the NHL doesn't record rushes or breakaways.
- Lines and pairsThe same three forwards, or two defencemen, on the ice together at 5 on 5.
- Built from who was actually on the ice, second by second, not from the posted lineup. “Current lines” are the groups that played the most together in the latest game. Season tables show every combination with at least 20 minutes together, since a few shifts tell you little.
- Playoff oddsHow often a team makes the playoffs when we play out the rest of the season 10,000 times.
- At every site update we simulate every remaining regular-season game, 10,000 times over. Each game's winner is drawn at random, weighted by the two teams' strength (60% their expected-goals share this season, 40% their actual goal share), with a small edge for the home team and about one game in four going to overtime, where the loser still gets a point. Early in the season each team's strength is pulled toward average and allowed to vary between simulations, because a few games can't tell us how good a team really is. Each simulated season ends with the NHL's format (top three in each division plus two wild cards per conference) and we count how often each team gets in. Projected points is the average final total. The odds are green above 50% and red below. They're estimates: injuries, trades and the NHL's later tiebreakers aren't modelled, and they move a lot in the first few weeks.
- What's at stake in the next gameA club's playoff odds after a win, an overtime loss or a regulation loss in its next game.
- At each update we run the playoff simulation three more times with the next game's result fixed: a win (two points, counted as a regulation win), an overtime or shootout loss (one point; the opponent gets two) and a regulation loss. Everything else is drawn exactly as in the main run, so the differences come from that one game. Colours follow the odds: green above 50%, red below.
- Hot and cold: streaks and droughtsWho's on a point or goal streak, and who's in the longest drought.
- From each player's NHL game log this season. A point streak needs 3+ games in a row with a point, a goal streak 2+ in a row with a goal. Droughts (games in a row without a goal or a point) only count for regulars with 10+ games, and only once they reach 5 games.
- Milestone watchRound-number milestones a player is close to, in his career or with his current club.
- Regular-season NHL totals: games every 100, goals every 50, assists and points every 100; for goalies, games every 100, wins every 50 and shutouts every 10. The home page shows up to 3 when someone is within 10 games, 5 goals, 10 assists, 10 points, 5 wins or 2 shutouts, and stays hidden otherwise. Player pages always show the next one.
- NHL EDGEThe NHL's puck- and player-tracking numbers.
- Skating speed, speed bursts, distance skated, shot speed and time in each zone, measured by sensors in the puck and sweaters. Percentiles compare a player or team with the rest of the league. EDGE numbers come from the NHL directly; we don't compute them.
Player ratings
Every player gets a rating out of 10 for every game, like a soccer app. It starts from Game Score, a single-game measure created by hockey analyst Dom Luszczyszyn in 2016, which adds up what a player did that night:
| Goal | +0.75 |
|---|---|
| Primary assist | +0.7 |
| Secondary assist | +0.55 |
| Shot on goal | +0.075 |
| Blocked shot | +0.05 |
| Penalty drawn / taken | +0.15 / −0.15 |
| Faceoff won / lost | +0.01 / −0.01 |
| 5-on-5 shot attempt for / against while on the ice | +0.05 / −0.05 |
| 5-on-5 goal for / against while on the ice | +0.15 / −0.15 |
Goalies are scored on goals saved above expected (from our model) times 0.75, the same weight as a goal: stop one more goal than an average goalie would, and that's worth what scoring one is.
A raw Game Score is hard to read (is 1.4 good?), so we rank each one against every NHL game from the previous two seasons (92,405 skater games and 5,413 goalie games), and turn that into a rating. Goalies are only compared with goalies. The cut-offs are set once before the season, so a 7.5 means the same thing in October as in April.
| Rating | Meaning | Share of games |
|---|---|---|
| 9.0–10 | Exceptional | top 1.5% of games |
| 8.0–8.9 | Excellent | top 5% |
| 7.0–7.9 | Very good | top 18% |
| 6.0–6.9 | Good | above average |
| 5.0–5.9 | Average | the middle |
| below 5 | Rough game | bottom 22% |
For skaters this season, an average game (5.0–5.9) is a Game Score between -0.13 and 0.40; a 7.0 takes 1.13; an 8.0 takes 1.93; a 9.0 takes 2.59.
Game Score rewards what shows up in the event data, so it favours scorers and shooters, and a quiet, solid defensive game can rate as average. Treat one rating as a summary of one night, and look at several games before drawing conclusions.
Clutch Score
Nobody has found a reliable way to measure “clutch”, so treat this as a fun stat, not proof. Clutch Score adds up the big late goals: the last 10 minutes of the third period, or overtime, when the scoring team was behind by one, tied, or ahead by one just before the goal.
| Overtime winner | 3 |
|---|---|
| Tying goal | 2 (2.5 with their own goalie pulled) |
| Go-ahead goal from a tie | 2 |
| Insurance goal, from up one to up two | 0.5 (nothing for an empty-netter) |
The primary assist earns 70% of the goal's value and the secondary assist 50%, close to how Game Score weighs assists. Playoff goals count 1.5 times. Shootout goals don't count. It's worked out for every player in the league, so you can see where anyone stands on the clutch leaders page.
Even top scorers only get a handful of these a season, so one big night can move a player a long way. It also rewards being on the ice late in close games, which depends on the coach as much as the player.
Shooting vs career
Shooting percentage (goals ÷ shots on goal) bounces around a lot over weeks or even a whole season, then drifts back toward a player's usual rate. Comparing this season with his NHL career before this season shows who's scoring more often than usual (running hot) and who's scoring less (due for some puck luck).
We rank players by goals vs career rate: this season's goals minus what his career shooting % would give on the same number of shots. A player with 6 goals on 40 shots and a 10% career rate is +2.0 (he'd usually have 4). Counting goals rather than comparing percentages weighs how much a player shoots, so one goal on three shots doesn't top the list.
Players need at least 50 career NHL shots to have a career rate. On the full list, pick a player to chart every NHL season: green dots are seasons above his career average, red below.
“Due” isn't a promise: shot quality matters too (a player taking worse shots will score less often), and real skill can change with age or role. Expected goals (ixG on the Players page) is the better guide to shot quality.
Our xG model
We built our own expected-goals model from the NHL's free play-by-play data rather than paying for one. It's a logistic regression: a standard statistical method that turns a shot's features into a probability of scoring. It looks at
- distance and angle to the net (including shots from right on the doorstep or behind the goal line);
- shot type: wrist, snap, slap, backhand, tip, deflection, wraparound;
- whether it was a rebound or off the rush;
- strength: 5-on-5, power play, shorthanded;
- what happened just before (faceoff, another shot, a takeaway or giveaway, a hit) and how many seconds ago.
Empty-net shots get their own simple model based on distance. In all, 31 features, trained on 237,173 unblocked shots (15,879 goals) from 2024-25 and 2025-26.
How well it works
Tested on 2025-26 shots the model never saw while learning.
- Shots tested
- 118,251
- Goals vs xG
- 8,019 vs 8,388
- AUC
- 0.754
- Better than guessing
- 10.9%
AUC is the chance the model rates a random goal as more dangerous than a random non-goal: 0.5 is a coin flip, and well-known public NHL models generally land in the mid-to-high 0.7s. “Better than guessing” compares its log loss (a measure of how wrong the probabilities are) with assigning every shot the league-average 6.7%. It runs slightly high overall (5% more expected goals than real goals), so team and player xG are a touch generous across the board; comparisons between teams aren't affected.
Data and updates
Everything comes from the NHL's public data: the schedule, standings, rosters, box scores and play-by-play (with shot locations), shift charts (who was on the ice), the NHL stats site (power play, penalty kill, faceoffs) and NHL EDGE tracking. Our server stores every finished game's shots and calculates the advanced stats itself.
- The whole site is rebuilt three times a day: late evening after most games, overnight after West Coast games, and in the morning. During a game, the game page is a snapshot from the last update.
- Each update adds every finished game across the league and recalculates every stat and rank.
- Every section shows when its data was last updated.
Data status shows what's stored and when it last updated.
Caveats
- Early season: every number on the site is this season only. In the first few weeks that means small samples, so ranks and trends swing a lot from game to game. League ranks only appear once every team has played a game.
- Colours: green is good and red is bad, everywhere: a league rank in the top half or bottom half, a winning or losing streak, playoff odds above or below 50%, a rating above or below 5.0, and any plus/minus number above or below zero. On another team's page, green means good for that team.
- Hits, giveaways and takeaways depend on who's keeping score: some arenas record far more than others.
- Magic number: it appears from the midpoint of the season and is an estimate. It counts points against the first team outside the playoffs and doesn't model the NHL's full tiebreakers.
- Starting goalies aren't announced until game day, so the goalie matchup shows every goalie on both rosters.
- Shot locations are recorded by off-ice scorers and vary a little from rink to rink. Our model doesn't know about screens, passes before the shot or shooter skill.
- Ratings and lines need the NHL's shift charts, which are usually published within an hour of the final horn. If they're late, the game report shows shooters instead and fills in at the next update.
- Single games are noisy. A game report's xG tells you who had the better chances that night, not who's the better team.