Unlock the data: free with registration

Get Free Access
NHL Analytics

NHL Advanced Stats

Corsi, Fenwick and expected goals (xG) for every skater, line and team: on-ice shot share, high-danger chances, PDO and zone starts at 5v5, on the power play and on the penalty kill. Computed in-house from official NHL play-by-play and shift reports, as season totals or per-60 rates.

1283 games processed

NHL data tables, built from the source

Every number on this page is computed in-house from the NHL's official play-by-play and shift reports, the same primary sources the public advanced-stats sites parse, and each metric was validated against them one at a time before it shipped. Nothing here is scraped from another analytics site, so the tables stay available and consistent even when a third party changes or goes down.

Shot attempts (Corsi), unblocked attempts (Fenwick), shots, goals, scoring chances and high-danger chances all use on-ice attribution taken from the official event reports rather than inferred from a box score. Zone starts and faceoff locations follow the zone the league recorded for each event. Ice time comes from the published shift charts, which is why on-ice rates here line up with the per-60 numbers you see elsewhere.


What each table shows

Players: Individual is a skater's own production. Goals, assists and points, personal shot attempts (iCF and iFF), personal scoring chances (iSCF and iHDCF), expected goals (ixG), rush attempts, penalties drawn and taken, hits, blocks and faceoffs.

Players: On-Ice is what happened while that skater was on the ice, regardless of who touched the puck. Shot-share percentages, goals for and against, expected goals for and against, PDO, and deployment through zone starts and faceoffs. A player can post strong individual numbers on a team that is losing the shot battle whenever he plays, and comparing the two tabs is how you see that.

Teams aggregates the same framework to the club level. Lines covers forward trios with the intersection rule the official reports imply, so overlapping seconds credit every unit that was on the ice. Shifts breaks performance down per shift, and WOWY ("with or without you") splits a player's results by whether a chosen teammate was on the ice with him.

Every view is available at 5v5, on the power play and on the penalty kill, as raw totals or per-60-minute rates. Per-60 is the fair comparison between a first-line forward and a fourth-liner, because it removes the ice-time advantage; totals are the right view when you care about accumulated production, as in most fantasy formats.


Metric glossary

  • CF% (Corsi For %)Share of all shot attempts, on goal or not, that belonged to this team while the player was on the ice. The standard proxy for territorial play.
  • FF% (Fenwick For %)The same idea with blocked shots excluded, which some analysts prefer because a block is partly a defensive skill.
  • SCF% (Scoring Chances For %)Share of scoring chances, weighting attempts by where they came from rather than counting every attempt equally.
  • HDCF% (High-Danger Chances For %)Share of chances from the most dangerous areas, the slot and the front of the net.
  • xGF% (Expected Goals For %)Share of expected goals, where every unblocked attempt is weighted by its historical scoring probability given shot location, type and situation.
  • PDOOn-ice shooting percentage plus on-ice save percentage. It tends to regress toward 100, so a number far from it usually signals luck rather than skill.
  • ixG (Individual Expected Goals)The goals a skater's own shots would be expected to produce. Compare it to actual goals to see who is finishing above or below the quality of their chances.
  • OZS% (Offensive Zone Start %)Share of a player's shifts starting in the offensive zone. Heavy defensive-zone deployment depresses shot shares independent of ability.

Common questions

Why do these numbers differ slightly from other sites?

Small differences are expected and come from three places: how each site handles blocked-shot attribution, where it draws the boundary of the high-danger area, and how it treats brief goalie-pull sequences when classifying strength. Core counting stats match exactly.

What counts as power play and penalty kill here?

The season tables treat a team as on the power play when its opponent is short-handed and it has the skater advantage, which includes a team pulling its goalie for a sixth attacker against a penalty kill. Even-strength empty-net play is not counted as a power play.

How often does this update?

Games are ingested nightly, and the previous week is re-pulled each night so official stat corrections are picked up rather than frozen at whatever was true at the final horn.

How many games should I look at before trusting a number?

Shot-share metrics such as CF% settle down fastest and are reasonably stable inside a season. Anything built on shooting or save percentage, PDO included, needs far longer and is best read as noise until the sample is large. Per-60 rates on small ice-time totals move violently, so check the games and time-on-ice columns before drawing a conclusion.