How HighDanger works
Hockey answers backed by real NHL data.
Every number on HighDanger comes from NHL data and HighDanger's own models. No scraped third-party stats. No mystery formulas. No numbers invented to fill gaps.
When the AI Scout answers a question, it is reading the same data that powers the player pages, comparisons, projections, and analytics tools across the site.
Where the data comes from
One source: the NHL.
HighDanger uses the NHL's public API for:
- Play-by-play events
- Shot locations
- Rosters
- Box scores
- Standings
- Player information
The advantage of using one source is consistency. The xG on a player page, the GSAx on a goalie profile, and the numbers used by the AI Scout all come from the same underlying data.
Two things come from outside that feed, and both are named rather than folded in quietly. Contract and cap figures are compiled from public reporting, because the NHL does not publish salary data. NHLe conversion factors incorporate published research on how scoring translates between leagues.
Expected Goals (xG)
What was the quality of the shot?
Expected goals answers one question:
A shot from the crease and a shot from the blue line are not equal chances. xG gives each shot a value based on thousands of similar NHL attempts.
The current model reads seven things about every shot:
- Distance from the net
- Shot angle
- Shot type
- Game situation (5v5, power play, penalty kill)
- Whether it was a rebound
- The score at the time
- How quickly it came (rush, quick strike, or sustained pressure)
Shot types include wrist shots, snap shots, slap shots, backhands, deflections, tips and wraparounds.
The calculation is straightforward:
If historical NHL shots from a certain location and situation score 20% of the time, that shot is worth 0.20 xG. There is no black box to take on faith. If you want to know why a shot was worth 0.20, the answer is that shots like it go in one time in five.
What it is trained on
| Shots | 462,281 NHL attempts (314,867 on goal) |
| Seasons | Three seasons of play-by-play, 2023-24 through 2025-26 |
| Situations covered | 14,803 distinct shot profiles |
| Updated | Retrained daily during the season, as new games are played |
Rare shot profiles get pooled with similar ones rather than trusted on their own, so a cell with a handful of shots never produces a confident-looking number it has not earned.
What xG does not include yet
Every model has limits. HighDanger xG currently does not include:
- Pre-shot passing and puck movement
- Screens and traffic in front of the goalie
- Goalie identity or positioning
Those are important future improvements. The current model is designed to answer one question well: was this a dangerous chance?
Goals Saved Above Expected (GSAx)
Separating the goalie from the defence.
Save percentage alone does not tell the whole story. A goalie facing 30 shots from the slot has a different job than a goalie facing 30 shots from the outside.
GSAx compares the goals a goalie was expected to allow with the goals they actually allowed.
- Positive GSAx: the goalie stopped more than expected.
- Negative GSAx: the goalie allowed more than expected.
Because GSAx uses HighDanger's xG model, the goalie evaluation matches the rest of the site.
Player projections
Where is a player heading?
HighDanger projections combine three things.
1. Recent production
Recent seasons matter more, because they better represent a player's current ability. What a player did last year tells you more than what he did four years ago.
2. Age curve
Players develop and decline differently. Production rises through the early twenties, peaks in the mid-twenties, and declines from there. A 22-year-old and a 34-year-old with the same recent production should not receive the same projection.
3. Finishing adjustment
Goals are influenced by both skill and randomness. If a player scores far above their expected goals, the model asks: was this repeatable finishing talent, or a hot shooting season? If a player creates excellent chances but does not finish them, the model recognizes that too.
Floor and ceiling
How confident is the projection?
A single projection does not tell the whole story. A player projected for 70 points could be:
- A consistent 70-point player
- A player who recently bounced between 45 and 90 points
Those are very different forecasts. So every projection carries a range, built from how much the player's own production has moved around in recent seasons. Steady producer, narrow band. Up-and-down career, wide band. The range comes from the player's actual history, not a league-wide assumption.
Young players receive more upside, because their career paths are still developing. Steady early production is usually the setup for a leap, not evidence of a locked-in ceiling, so the range is deliberately skewed upward for players still in their development years.
Player similarity
Who does this player resemble?
Comparables are based on production, not scouting opinions. Skaters are compared with players at the same position, because a defenceman and a winger scoring at the same rate are not the same player. Goalies use goalie-specific measures.
Similarity does not know:
- Playing style
- Linemates
- Coaching
- Usage
It answers one question:
What the AI Scout reads
It looks the numbers up before it answers.
The AI Scout does not answer hockey questions from memory alone. It reads HighDanger's data before responding.
| Question | Data |
|---|---|
| Player performance | Stats, xG, trends |
| Projections | 2026-27 forecasts |
| Contracts | Cap hits and value |
| Trades | Players, picks, values |
| Prospects | Draft and development data |
| Matchups | Goalie weaknesses and shooter profiles |
That means the Scout can answer questions like:
- "Who is the best trade target?"
- "Is this contract worth it?"
- "Which goalie gives McDavid the toughest matchup?"
- "Who is ready for a breakout season?"
The numbers come from HighDanger. The interpretation comes from the Scout. It is still a language model, so treat the numbers as reliable and the read on them as an opinion worth arguing with.
Model limitations
HighDanger models are built to improve.
| Limitation | What it means |
|---|---|
| No 5v5-only projections | Measurement is situation-aware: xG is split by 5v5, power play and penalty kill, and on-ice xGF% is 5v5 only. Projections are not. Every projected total is all-situations, with power-play points as a category rather than a split. |
| xG cannot see the whole play | The model knows where a shot came from, whether it was a rebound, the score, and how fast the sequence developed. It does not know about the pass that set it up, the screen in front, or which goalie is in net. |
| Similarity is production-based | Style and role are not included. |
| Small samples stay noisy | xG, GSAx and finishing all need volume before they mean much. A 12-game sample is a hint, not a verdict. |
| Projections cannot predict the future | Trades, injuries, and role changes can change outcomes. |
| Goalies remain volatile | Goaltending is difficult to project year to year, so goalies run on their own track. |
A model is only useful if you understand what it can and cannot tell you. That is why HighDanger publishes the details.
Looking for what a specific stat means rather than how it is built? The glossary explains every number on the site in plain English.