NHL Analytics Guide
Hockey analytics turn raw game data into measurable insights about team and player performance. This guide explains the core metrics used in modern NHL analysis — from shot-attempt counts like Corsi to probability-based measures like expected goals — and how our prediction model puts them to work.
Shot Attempt Metrics: Corsi & Fenwick
Corsi counts every shot attempt directed at the net: goals, saves, misses, and blocked shots. It is the broadest measure of puck possession and offensive pressure. Teams with a Corsi-for percentage (CF%) above 50% are out-attempting their opponents.
Fenwick is the same idea minus blocked shots. Because blocks never test the goalie, Fenwick isolates unblocked shot attempts and can be a slightly cleaner proxy for shot generation.
Both metrics are typically reported at even strength (5-on-5) to remove the distortion of power plays and penalty kills.
Expected Goals (xG)
While Corsi and Fenwick measure shot volume, expected goals measure shot quality. An xG model assigns each shot a probability of scoring based on features like:
- Distance and angle to the net
- Shot type (wrist, slap, backhand, tip, etc.)
- Whether the shot followed a rebound or rush
- Game situation (score state, strength state)
Summing those probabilities produces an expected goal total. A team or player who consistently outscores their xG is "finishing above expectation" — which may reflect elite skill or unsustainable luck.
Explore our xG analysis for team and player leaderboards built from this season's shot data.
Win Probability & Prediction Models
Prediction models combine team-level features — rolling win rates, goal differentials, goalie stats, home-ice advantage, and rest days — to estimate the probability that each team wins a given game. Our model blends logistic regression and gradient-boosted classifiers, then calibrates the output so that "60% win probability" really means the team wins about 60% of the time.
View today's NHL predictions to see the model in action, or read our full methodology for technical details on how predictions are produced.
Calibration & Model Evaluation
A prediction model is only useful if its probabilities are well-calibrated — meaning the stated confidence matches observed outcomes. We track calibration across probability bins, time windows, and team splits to verify the model stays honest.
Key evaluation metrics include:
- Accuracy — How often the predicted winner actually wins
- Brier score — Measures probability accuracy (lower is better, 0.25 = coin flip)
- Log loss — Penalises confident wrong predictions heavily
- Calibration charts — Visual check that 70% predictions win ~70% of the time
View our live model performance for accuracy, Brier scores, and calibration charts updated daily.
Glossary of NHL Analytics Terms
- Corsi (CF / CA / CF%)
- All shot attempts (goals + saves + misses + blocks). CF% = Corsi For / (Corsi For + Corsi Against).
- Fenwick (FF / FA / FF%)
- Unblocked shot attempts (Corsi minus blocked shots).
- Expected Goals (xG)
- The sum of goal probabilities for all shots, based on shot quality factors.
- PDO
- Shooting percentage + save percentage. League average is ~1.000; extreme values tend to regress.
- GSAx (Goals Saved Above Expected)
- xGA minus actual goals allowed. Positive = goalie is stopping more than expected.
- Brier Score
- Mean squared error of probability predictions. Range 0–1; lower is better. A coin flip yields 0.25.
- Log Loss
- Logarithmic scoring rule that heavily penalises confident incorrect predictions.
- Calibration
- How closely predicted probabilities match observed frequencies (e.g., 60% predictions should win ~60%).
- RMSE (Root Mean Squared Error)
- Standard measure of prediction error for continuous values like goal totals.
- Isotonic Calibration
- A post-processing step that adjusts raw model probabilities to improve calibration.
Frequently Asked Questions
What is Corsi in hockey?
Corsi is a shot-attempt metric that counts all shots directed at the net — goals, saves, misses, and blocked shots — while a player or team is on the ice. A positive Corsi (CF% above 50%) means the team is generating more shot attempts than it allows.
What does expected goals (xG) mean in hockey?
Expected goals (xG) assigns a probability to each shot based on factors like distance, angle, shot type, and game situation. Summing those probabilities gives an expected goal total that reflects shot quality, not just shot volume.
How is Fenwick different from Corsi?
Fenwick is identical to Corsi except it excludes blocked shots. Because a blocked shot never reaches the goalie, some analysts prefer Fenwick as a purer measure of unblocked shot generation.
What is a good Brier score for NHL predictions?
A Brier score measures the accuracy of probabilistic predictions on a 0–1 scale where lower is better. For NHL game predictions, a Brier score below 0.24 is competitive, and anything below 0.23 is strong. A coin-flip baseline produces a Brier score of 0.25.
Further Reading
- Our Methodology — How the prediction model works
- Model Performance — Live accuracy and calibration
- Today's Predictions — Daily NHL game probabilities
- xG Analysis — Team and player expected goals
- Articles — Deep-dive analytics pieces