Adding Context (And Meaning) To The ‘Expected Goals’ Hockey Metric

While we are without Washington Capitals hockey for the next week, the break in play provides data nerds such as myself time to explore a few ideas related to hockey metrics that were otherwise idling on the back burner during the normal day-to-day churn of the NHL hockey season. One area that we’ve been researching in recent days is the viable methods for adding meaningful context to existing hockey stats.

We’ve mentioned on numerous occasions that stand alone stats are just that. Every stat lacks significant context and needs additional supporting information (data) in order to enhance the resolution (meaning) being conveyed from the metric. Our first step (of many) will be looking at ways to fortify the expected goals for metric.


If you’ve been a regular reader of NoVa Caps then you have no doubt seen the use of the expected goals for (xGF) metric on a daily basis. The so-called next-generation stat comes from the world of soccer (football), but is very relevant and useful for assessing the game of hockey.

For those that aren’t familiar with the xGF metric, in the simplest of terms, the stat simply applies additional characteristics to your typical shot stat, including shot location, shot type and other relevant descriptors. Each shot is then given a value based on success rates for that specific shot type and location becoming a goal, based on years of historical data for that shot location and type.

Expected goals for percentage (xGF%) is simply a ratio of a teams xGF in comparison to the opposition. Anything over 50% indicates a team had more quality shots (possession) than the opposition, for a game, a period, etc.

Below is the Capitals expected goals for percentage for the 53 games played so far this season. The red line defines the 50% threshold.  [Click to enlarge].

This particular graph was used to look at peaks and valleys in the Capitals season to date. While we can see groups of games where the Capitals were above 50%, the graph doesn’t account for the strength of opposition during those specific periods of the season.

The blue lines and text help us identify games and groups of games where the Capitals performed well (or didn’t), but there is no factoring (inclusion) of the Capitals strength of opposition during those games, a commonly omitted characteristic from most stats.


The general nature of the expected goals for (xGF) stat adds context to the old school shot stats which basically just counted shots regardless of location, type, etc. But we can augment and enhance the existing metric by adding the much needed context in order to derive more meaning and attain additional insight.

Our first step (of several in coming posts) will be factoring in the strength of opposition for each game played so far this season. To do that we simply multiply the Capitals expected goals for percentage for a game by the oppositions winning percentage.

It was determined that an average game score would be somewhere in the neighborhood of an xGF% of 50.0% against a .500 team, which equates to 25. Thus, 25 is subtracted from the product of (xGF% x OppWin%) in order to derive a differential.

[xGF%(game) X OppWin%] – 25

The Following graphic plots the Capitals xGF% for each of the 53 games played so far this season. It also includes the opponents winning percentage on the season. The third column (far right) is the game score calculated for each game based on the formula above: [Click to enlarge]

The resultant “game score” provides enhanced meaning for the xGF% per game stat, in that it includes the strength of opposition in the calculation. (An xGF% of 55% against the Boston Bruins does not hold the same meaning as an xGF% of 55% against Arizona). Now we can decipher between the two, and ascertain more insight into the Capitals strength of play for each game.


If we take a big picture look at the season we can clearly see areas of positive and negative performance over multiple games, some of which aligns with the areas in the previous graphic above, but we can also begin to see a refining in the delineated areas of transition (from good to bad, or bad to good) .

We can also ascertain, to a certain degree, the significance (weight) of the trend. Rather than seeing games as over or under the 50% plateau, we can also see weighted scoring for each game, with the strength of opposition factored in. Game score values over stretches of games can be summed to find a new level of meaning.

For example, we can ascertain that the Capitals game against the Seattle Kraken on December 9 (22.85) was the team’s best offensive game, with regards to expected goals for percentages. We can also see that the Capitals worst performance was against the Blue Jackets (-13.76) on January 8.


The aforementioned fortification of the expected goals stat is only one additional brush stroke to the overall painting, but as we’ve often stated, the more context the better. In follow-up posts we will look to build on this enhancement technique as well as explore other areas for enhancing the meaning of other existing stats.

[The statistics used in this post are courtesy of Natural Stat Trick and the NoVa Caps Advanced Analytics Model (NCAAM). If you’d like to learn more about the statistical terms used in this post, please check out our NHL Analytics Glossary]

Much more to come…

By Jon Sorensen

About Jon Sorensen

Jon has been a Caps fan since day one, attending his first game at the Capital Centre in 1974. His interest in the Caps has grown over the decades and included time as a season ticket holder. He has been a journalist covering the team for 10+ years, primarily focusing on analysis, analytics and prospect development.
This entry was posted in News and tagged , , . Bookmark the permalink.

2 Responses to Adding Context (And Meaning) To The ‘Expected Goals’ Hockey Metric

  1. Anonymous says:

    Interesting insight. Appreciate this look for us data geeks. We got to stick together 😂

Leave a Reply