xGExpected Goals — a probability estimate (0 to 1) that a shot results in a goal, based on shot location. A shot from the slot scores more often than one from the perimeter, so it gets a higher xG.
Cum. xGCumulative Expected Goals — running total of xG over the course of the game. The momentum chart shows how this builds for each team over time.
xG ModelGame Flow uses a distance + angle model. Distance is measured from the shot location to the net (x=89). Angle is measured from the shooting position to the goalpost. Closer, more central shots get higher xG.
PP MultiplierPower play shots receive a 1.20× xG boost (5v4) or 1.45× (5v3), reflecting the higher scoring probability from man-advantage situations.
Counts for xGOnly shots-on-goal and goals count toward cumulative xG totals. Missed shots and blocked shots appear on the shot map for context but do not accumulate.
NormalizationBoth teams' shots are flipped so they always appear attacking the same end of the rink on the shot map. Direction is determined by the homeTeamDefendingSide field from the NHL API.
Dashboard Metrics
SOGShots on Goal — shots that would have entered the net if not saved by the goaltender. Excludes missed shots and blocked shots.
OutchancedThe team with the higher cumulative xG at the end of the game "outchanced" the opponent — they generated higher quality scoring opportunities regardless of the final score.
Period tablexG and goal totals broken down by period, including OT. Helps identify which period a team dominated or collapsed in.
Goal log xGThe xG value shown next to each goal is the model's pre-shot probability for that specific attempt — not 1.0. A low xG goal (e.g. 0.04) indicates a lucky or unlikely finish.
Skating (NHL Edge)
TOITime On Ice — aggregate seconds all skaters on the team were on the ice combined across the game. This is a roster-level total, not per-player.
Dist. AllTotal miles skated by all players on the team across all situations (even strength, power play, penalty kill).
Dist/60Distance skated per 60 minutes of ice time — normalizes for teams that had more or less time on ice due to penalties.
ES / PP / PKEven Strength / Power Play / Penalty Kill — breakdowns of distance skated in each game situation.
League rankThe team's rank among all 32 NHL teams for that skating metric during the current series or season. Green = above league average, red = below.
Last 10The skating distance panel shows data from the team's last 10 games. This is the limit of the NHL Edge team endpoint — deeper history requires per-player queries.
FAQ
Why does the shot map only show one end of the ice?
Both teams' shots are normalized to attack the same end so you can compare shot quality and location side-by-side. A shot appearing deep in the zone means it was taken close to the net regardless of which period it happened in.
Why doesn't a goal always show xG 1.00?
Game Flow uses the model's pre-shot probability rather than overriding goals to 1.0. This preserves the accuracy of the xG model — a tap-in shows high xG, a long shot shows low xG, even if both went in.
The outchanced team won — how?
xG measures shot quality and volume, not actual goals. A team can win by burying low-probability chances (goaltending, clutch finishing) or benefit from lucky bounces. The "but they lost" caption is the model flagging the statistical anomaly.
How accurate is the xG model?
The distance + angle model is a solid baseline but a simplified one. Professional models (Evolving Hockey, Moneypuck) also factor in shot type, traffic, rebounds, game state, and prior events. This model intentionally stays interpretable.
Why is skating data unavailable for live games?
The NHL Edge skating endpoint updates after the game is finalized. Live game skating data isn't streamed in real time through the public API.
What game IDs can I use?
Game IDs follow the format YYYYSSGGGG — the first 4 digits are the season start year, the next 2 are the game type (02=regular season, 03=playoffs), and the last 4 are the game number. Use the date picker to browse games without needing to know the ID.
DATA SOURCE: NHL STATS API · api-web.nhle.com · NHL EDGE TRACKING