Weighted Player Ages

It’s become common to say that the NHL is getting younger. It’s an understandable assumption. Recent work has shown players peak earlier than previously believed, and young stars breaking into the league have received a lot of media attention. But is it actually true? How has the league’s average age changed over time? And are there any trends in team age that lead to overall success?

I looked into the age of the league’s players by creating averages weighted by different performance metrics such as points, shots, and time on ice. I used weighted averages because an unweighted measure does not account for how important a given player is to their team. For example, when figuring out how old the Islanders generally are, Eric Boulton’s 1 game played at age 39 should not count equally with Nick Leddy playing every night at age 24.*

This post has 2 parts. First, I used Hockey Reference data to create weighted ages for the past 31 seasons. I also look at a smaller but richer dataset from War On Ice to show that these weighted averages do not meaningfully vary regardless of the measure used for the weighting. Second, I looked at whether teams who performed well in a given year had any particular age compared to the rest of the league.

I found that from the mid-1980s to 2005, the NHL gradually got older from an average of 25 to 28. In 2005, the salary cap was introduced and the trend towards older players reversed. Instead, the average age fell by about a year between 2005 and 2010 and has remained flat since. Despite perceptions, the league has been staying at about the same average age for the past 5 years. Finally, the teams that performed well in the playoffs were not consistently older or younger than the rest of the league.

*Writing this sentence guarantees that Boulton will play another game between me drafting and publishing this post. My apologies, Islander fans.

Part 1 – Historical Trends

Hockey-Reference’s data goes back decades, which allows for a long view of how the league’s average age has changed over time. In the below graph, I weighted each skater’s age by their shots on goal:


HR Age By Shots

As mentioned in the intro, the league’s age has had three main phases since 1985:

  1. 1985 – 2005: The average age rose steadily from 25 years old to 28
  2. 2005 – 2010: With the introduction of the salary cap, the aging trend reversed and the league got gradually younger to about 27
  3. 2010 – Present: The average had remained flat at 27 years old

How valid is the decision to weight by shots on goal? The weighted age could be based on any of a number of different statistics that all represent a player’s general importance to a team. The figures are nearly identical when the weighting is done based on goals or points instead, but all of these measures are more basic than what is generally preferred in modern analysis. We don’t have more ‘advanced’ statistics with larger samples like shots or scoring chances for. However, we can get these measures for skaters in a shorter timeframe if we turn to War On Ice:


Average Age by Weight Measures

The “other weights” used here are goals, points, primary points, scoring chances, shots, and time on ice. None of these significantly change the absolute value of the average age or its trend over time. Weighing by AAV shows a similar trend, but the values are about a year higher because the structure of entry-level contracts ensures that money is more heavily weighted to older players. (Note that the absolute values are a bit off from Hockey-Reference’s due to differences in the date cutoff used to determine a player’s age in a given season. The year-to-year change is nearly identical in the overlapping years  of the two datasets.)

In sum, all of the different measures show the same trends. While not surprising, this rules out the possibility that, for example, younger players were producing a greater share of the league’s points but not getting additional ice time. Overall, this shows that there’s no significant downside to using Hockey-Reference’s shots on goal as a weight. It does not deviate much from preferable non-financial measures.

Part 2 – Team Age and Success

Does this data carry any importance for decisions being made by teams today? To answer this, I adopted a method used by Moneypuck in his How To Build A Contender series in which he focused on the four teams that made the conference finals each year. I compared the average age of those teams (the Contenders) to the rest of the league that year (the Pretenders):

Contenders and Pretenders

The contending teams tend to be slightly older than the rest of the league, but this is not always true and it is not by a large margin. Overall, I am reluctant to conclude that a particularly old or young team is beneficial.


No GM is going to make decisions based on his or her team’s average age, but it’s still an interesting topic from a descriptive perspective. I found that the age of the league has remained flat for the past few years, which is contrary to what many people believe. It remains to be seen if this trend will continue in the years to come. I would not be surprised if the increased use of analytics in NHL front offices lead to a shift towards even younger players on favorable contracts.

While not the most in-depth topic, there are a few other items that could be explored. First, it could be worth investigating the age distribution within each team rather than just the average. Second, in a future post, I’ll break down these weighted averages by team so that everyone can see how a team is structured compared to the rest of the league. At this level, there are also some interesting differences between the different weight measures. All of the data files and R code used in this post are available on Dropbox here.


An Alternative to Player Usage Charts

Current Player Usage Charts

Player usage charts are one of the seminal works of data visualization in hockey. Created by Rob Vollman and automated by Robb Tufts here, these charts provide a simple look at the role played by each skater on a team. For the uninitiated, the axes of the standard player usage charts show offensive zone start % and quality of competition (relative corsi). The former is designed to give a sense of how often the player is relied on for offense or defense, and the latter shows the skill level of the player’s competition.

I suspect people look at player usage charts for one of two reasons. First, they want to see how a coach is using all of the players he has available, e.g., “Vancouver tries to give the Sedins the best offensive opportunities and has Manny Malhotra take on the tough defensive assignments. Second, they want to provide additional context for a player’s performance in other measures, e.g., “Manny Malhotra’s Corsi For % is only low because he starts every shift in the defensive zone against the toughest competition”.

However, recent work has led me to think that player usage charts do a limited job at addressing either task:

  • Micah Blake McCurdy presented work at the RIT Hockey Analytics Conference showing that zone starts don’t really matter. We would only need to make very small adjustments to account for the role of zone starts in explaining any variations in a player’s performance. In addition, faceoffs account for less than half of all shift starts and not all faceoffs are also shift starts.
  • Conor Tompkins showed on hockey-graphs.com that quality of competition does not significantly vary between players in a large sample. Over the course of a season, coaches do not have enough control to regularly shelter some players while assigning the toughest minutes to others.

Essentially, there are issues with both measures regardless of what you’re using them for:

Measure Use Concern
Zone Starts Team-Level View Lots of shift starts are not faceoffs, and the coach’s choice at a faceoff is frequently restricted by who recently played
Individual Player Evaluation Not all faceoffs are shift starts; OZ faceoffs can mean the player is driving play and then taking the OZ faceoff on the same shift
QoC Team-Level View Very little variation between players over the course of a season
Individual Player Evaluation


An Alternative Look

These two items have left me reluctant to use player usage charts for evaluation. Instead, I wanted to look into an alternative view that might effectively provide context for skater usage.

In place of zone starts on the x-axis, I’m using a measure based on player allocation in different score states: TOI % leading – TOI % trailing. This is used by Dom Galamini on his popular HERO charts, and I think adequately does the job here. It shows who a coach turns to when the team needs to come from behind or protect the lead. I also think it does nicely when used for player evaluation because differences in deployment by score status are easily corrected for by looking at score-adjusted figures.

In place of the y-axis, I used Quality of Teammates. Obviously, this does not even try to measure the same thing is Quality of Competition. However, it does provide useful context for how a player is being used, and it does not have the same distribution problems as QoC. The effects of teammates are observable over the course of a season. As Garret Hohl points out here, there are still times when looking at QoC is valuable, but if I had to pick one I’d take QoT.

In addition to the axes described above, the size of the bubbles represents average TOI per game and the color shows relative Corsi For %. Asterisks on player names means that that player was on multiple teams this season, and they should be compared to his teammates with caution. All of these features were developed in the original player usage charts and I’m adapting them here. All data shown is score adjusted data from this season and is from War-On-Ice as of January 13th.

Alternative Player Usage Charts - VAN
Click the image for the fully editable Player Usage Charts

To be clear, these are intended to be an additional tool for understanding player usage, not a complete replacement of the original charts. They are decidedly a work in progress rather than an unambiguous case for one method. The measures I use here are far from flawless, and in the case of the y-axis does not even capture the same attribute. I think that the measures worth included deserve a larger conversation, and ideally they would be shown to vary across players in a large sample and be meaningful in performance.