What is Expected Goals For?
The total number of high-quality scoring chances your team creates, measured on a scale where a prime slot shot is worth 1 and a long-range attempt is worth much less.
What this tells us
When this player is on the ice, xGF tells you how many *dangerous* shots his team took—not just how many shots, but weighted by how likely each one was to go in. A player with a high xGF is creating the kinds of looks that typically end up in the net, even if the puck hasn't gone in yet. It's the difference between "we took 20 shots" and "we took 20 shots, and 5 of them were from the doorstep."
Limitations
xGF rewards volume and positioning but can't account for the chaos of the game—a goaltender playing out of his mind, a post, a deflection. It also doesn't tell you who actually *finished* those chances; a playmaker setting up five slot-shot attempts will post a high xGF whether the shooters are McDavid or a rookie. That's why we pair xGF with actual goals and with the share of chances (xG%).
Formula[show]
Sum of the expected-goal value of each shot attempt taken by the player's team while the player is on the ice.How PuckLab calculates this
PuckLab calculates xG using a proprietary model (56 features, AUC 0.758) trained on shot outcomes. Full methodology will be available on the /methodology page. We weight each unblocked shot attempt by its probability of becoming a goal based on distance, angle, defensive positioning, and other contextual factors.
Example
A top-line forward on a strong offensive team might post an xGF around 8–12 per 60 minutes of ice time. A depth player might be closer to 3–5. A goaltender's team xGF tells you the quality of offense they're facing—a high xGF against means tough minutes.