Edgehalla

Data

Data sources, update schedule and quality checks

Every number on the site traces back to one of a handful of sources. This page lists them, says how often each is refreshed, and describes the checks a game has to pass before it reaches a page.

Updated

How it's calculated

Sources
SourceWhat we useSeasons
NHL play-by-playEvery event: faceoffs, shots, hits, turnovers, penalties, goals, with coordinates and the strength code2017-18 on
NHL shift chartsEvery shift of every player: who was on the ice each second2017-18 on
NHL boxscoresOfficial per-player ice time, shots, hits and blocks: the reference for our checks2017-18 on
NHL HTML game reportsFallback for games whose shift chart is missing or broken2017-18 on
NHL stats APIMaster schedule, per-game shot-attempt totals for validation, player handedness2017-18 on
NHL EDGESeason-level skating speed and distance, shot speed, zone time, 17-area shot locations2021-22 on
NHL EDGE goal trackingA short tracking clip for every goal, from which we derive numbers only2023-24 on
LineupExpertsFantasy projections, goalie start certainty, team defence rankings by position, back-to-back and off-night flags, news headlinesCurrent season
  • Pages never call the NHL during a visit. Ingest jobs fetch the data, check it, store it in our database, and then refresh the affected pages.
  • The current season is 2026-27, with 84 games per team (1,344 regular-season games).
  • Seasons are labelled like 2025-26 and include the playoffs unless a page says otherwise.
Research data

Completed games per season in the archive

Research sample: 200 games from 2025-26 (2025020500–699)

From 868 regular-season games in the shortened 2020-21 season to 1,312 in full 32-team seasons, plus 82 to 130 playoff games each year.

Source: NHL stats API game list (13,331 games including 2026-27). Notes mark when new data sources begin.

Worked example

One game's checks

Real research numbers

After a game goes final, it is fetched, rebuilt and compared with the boxscore. It passes only if every check holds.

  1. Goals and shots on goal per team from the play-by-play equal the official boxscore exactly (shootout excluded).
  2. Each player's ice time from shifts is within 5 s of the boxscore (a warning between 5 and 60 s; a failure beyond 60 s triggers a refetch and then the HTML fallback).
  3. At least 17 players per team have shifts, and there are no shifts with missing durations.
  4. Skater counts from shifts disagree with the NHL's strength code on fewer than 3% of events (5% sends the game for review).
  5. Totals add up: every player's 5v5 ice time sums to five times the team's 5v5 time, and team shot attempts equal the sum of individual attempts.

Games that fail are retried with backoff and flagged for review; pages show a "partial data" note for any game whose on-ice data is unavailable.

Update schedule

When each kind of data refreshes
DataRefresh
Completed games (play-by-play, shifts, boxscore)Several times overnight after games end, then re-checked the next day, because the NHL corrects shift charts overnight
Starting-goalie confirmations (LineupExperts)Every 15 minutes through game days
NHL EDGE season dataNightly, in batches
Fantasy projections and news (LineupExperts)Through the day
League constants (zone values, penalty value, schedule effects)Recomputed each season
xG modelRetrained each August; frozen during the season

Known issues in the source data

  • Blocked shots: the feed records the block location, not the shot location, and attributes zone from the blocker's point of view. We derive the shooting team and zones ourselves.
  • 2017-18 play-by-play lacks the field that says which net each team defends, so we infer direction from shot locations each period.
  • Some shift charts contain rows from another game; we drop rows whose team is not in the game.
  • Turnover and hit recording changed across the league in 2024-25; see the Turnover Ledger for how we handle it.
  • Missed-shot categories changed in 2023-24, and shots blocked by a teammate are flagged from 2024-25. The NHL's own shot-attempt totals credit teammate-blocked shots to the wrong team; ours don't, so our totals can differ by one or two.

Credits

  • Play-by-play, shift charts, boxscores and schedules: National Hockey League.
  • Skating, shot-speed and shot-location data: NHL EDGE.
  • Goal anatomy numbers: Tracking-derived via NHL EDGE.
  • Projections, goalie certainty, defence rankings and news: LineupExperts.
  • Scoring-chance zones follow the War-on-Ice definition as used by Natural Stat Trick. Score and venue adjustment follows Micah Blake McCurdy's method with our own coefficients. Flurry adjustment follows MoneyPuck's published approach.

Edgehalla is not affiliated with the NHL, NHL EDGE, Natural Stat Trick or MoneyPuck. All published numbers are computed from our own copies of the source data.

Reliability

Source quality is measured by agreement with official totals, checked on every game.

MeasureSplit-half rSampleVerdict
On-ice counts vs NHL strength code99.2% of events, 99.7% of shots.—200 games, 2025-26Stable
Player ice time vs boxscoreWithin 5 s, or the game is flagged.—Every gameStable
5v5 shot attempts vs NHL oracleTarget: 90% of players exact, all within ±3.—Every gameStable

Split-half r: we split each sample in two (for example odd and even games) and correlate the two halves across players or teams. Near 0 means the stat is mostly noise; near 1 means it is a stable trait.

Limitations

  • Before the full backfill completes, some older seasons may be partly loaded; pages note partial coverage.
  • Scorer-recorded events (hits, giveaways, takeaways, blocks, missed-shot locations) carry human error and arena bias, especially before 2024-25.
  • NHL EDGE data is season-level with some recent-game lists, so it can't be split by game or opponent.
  • LineupExperts projections occasionally arrive without some categories (such as power-play goals or faceoffs) for some players.

FAQ

Where does Edgehalla get its NHL data?

From the NHL's public play-by-play, shift charts and boxscores for game data, NHL EDGE for tracking-based season data, and LineupExperts for projections, goalie confirmations and news.

How far back does your data go?

Play-by-play and shift data from 2017-18, including playoffs. NHL EDGE season data starts in 2021-22 and goal tracking in 2023-24.

How quickly are games added?

Games are ingested several times overnight after they end and re-checked the next day, because the NHL corrects shift charts overnight.

Why might your numbers differ slightly from NHL.com or other sites?

Shift charts round to whole seconds, so an attempt at a line change can be credited to different players on different sites. We also count shots blocked by a teammate for the shooting team, which the NHL does not. Differences are usually one or two attempts per player per game.