Member preview

Whose Point is it Anyway? Using Network Analysis to Estimate Teammate Influence in Hockey Scoring

Oliver Wahlstrom #18, Joel Farabee #28, and Jack Hughes #43 (Photo by Dave Reginek/Getty Images)

Context — the bane of hockey fans, analysts, and front office executives alike. In hockey, the most popular statistic to judge players’ value is points. A player’s points is the sum of the player’s goals, primary assists (the pass that directly precedes a goal), and secondary assists (the pass that precedes the primary assist).

What points — as a metric — gains from simplicity, it loses in statistical usefulness. Why are goals worth the same as primary and secondary assists? Should primary and secondary assists even hold equal value? Why don’t we just ignore points and consider each component individually? Since hockey is a relatively random sport, aren’t goals and assists largely random noise? Each of these questions has merit, and, frankly, they’re all difficult to answer. In using data to predict and evaluate hockey players’ performance, we’re often limited to whatever little data are publicly available. However, as I’ll further explain in this article, I think there’s still valuable information in the box scores that hockey analysts have yet to sufficiently exploit, and applying network analysis to hockey scoring may help.

Network Analysis, Betweenness, and Hockey

from Social Physics (

A network is a collection of “nodes” (things like people, products, web pages, or hockey players) connected by relationships or associations of some kind (known as “edges”). Network analysis refers to the tools and analyses used to understand the intricacies within a particular network, such as important nodes, communities of nodes within a network, and the relationships between nodes.

Within network analysis, there are multiple ways to estimate the importance or influence of a node — in this situation, a hockey player. The measures used to estimate the importance of a node within a network are known as “centrality measures”. Popular centrality measures include betweenness centrality, closeness centrality, eigenvector centrality, and PageRank. While each of these measures is useful in a variety of situations, betweenness centrality is the most applicable for this analysis.

2014–15 New York Islanders Shot and Passing Network (from Steve Burtch’s 2015 RITHAC presentation)

Betweenness centrality has been publicly applied to hockey before, though only in regard to shots and shot assists and only within limited samples. Steve Burtch spoke about betweenness centrality and other centrality measures in terms of shots and shot assists at the RIT Hockey Analytics conference in 2015. Ryan Stimson briefly referenced betweenness centrality and other centrality measures in terms of shots and shot assists during the 2015 OHL playoffs.

Betweenness centrality measures how often a node lies on the shortest path between a pair of nodes. So a node — which, in this situation, is a hockey player — will have a high betweenness centrality score if it acts as a “bridge” in a network between two other nodes, such that information must flow through it so the other two nodes can pass information to each other. Betweenness centrality is often used to measure the “influence” of a node, such that, if a node with a relatively high betweenness score is removed, it will have the greatest relative impact on its respective network’s information flow.

So, that’s a bit confusing. What does this mean for hockey? Well, let’s first try to visualize hockey scoring as a network, such that each player is a node, and the connections — or “edges” — represent primary assists to and from each players’ goals. The above visualization may help.

In terms of hockey, a player will have a high betweenness centrality score if:

  • The player scores and assists on a lot of goals
  • The player scores and assists on many distinct players’ goals
  • A player’s teammates rely on the player for their scoring, such that the teammates’ goals and assists tend to only occur with that player directly involved
  • The player fulfills some combination of the above requirements more than that player’s teammates do

Here’s an example — Joe Thornton in 2006 tended to assist on many players’ goals and score from many players’ assists, whereas Jonathan Cheechoo — while scoring 56 goals that season — tended to score from Thornton’s assists. In a way, Cheechoo relied upon Thornton for his scoring, but Thornton did not rely on Cheechoo. While I haven’t tested this hypothesis, Thornton would likely have the higher betweenness centrality score, and, from that, we could assume that Thornton was more influential to his team’s scoring than Cheechoo was.

Methods and Results

In the upcoming week or two, I’ll write a post about my specific methods and code for this analysis, but, for now, I’ll write a brief summary of my methods.

For my data, I assume that my network is directed. In graph theory, there are directed and undirected networks. Undirected networks assume that there is no inherent “direction” to the flow of information — in this situation, goal-scoring. However, since goals and assists are not inherently equal, I consider my network to be directed.

For each distinct team within my data set — for example, the 2014–15 Erie Otters — I calculate the betweenness centrality scores for each player on the team. These scores are normalized with respect to each team, so that all betweenness scores range from 0 to 1. Traded players pose a slight philosophical difficulty, as, in my current framework, they are a part of two distinct networks. To attempt to alleviate this issue, I sum these players’ normalized betweenness scores within each season, so that each player has 1 betweenness score per 1 season. While this method is not completely statistically sound, it appeared to be the least time-consuming method I could use while maintaining the amount of data that I need.

Next, to account for the effect that games played has on a player’s betweenness scores, I adjust each player’s betweenness score by the residual of a linear regression model with betweenness and games played as the dependent and independent variables, respectively. At first, I tried to account for differences in games played by dividing the betweenness scores by games played. However, this still underestimated the added effect of more games played on a player’s betweenness score. This process provided me with what I refer to as “adjusted betweenness scores”.

I, then, repeated this process for each game strength — 5-on-5, all situations, even strength (5–on-5, 4-on-4, 3-on-3), Power Play, and Penalty Kill — to find each player’s estimated influence for each of these situations (bear in mind that relatively few goals are scored on the Power Play and Penalty Kill, so I wouldn’t put much stock into those respective betweenness scores).

Now that I calculated all players’ betweenness scores for each game strength, I calculated each player’s points-per-game rates while adjusting for age, league, and era. I adjusted points-per-game in the same way that I adjusted the betweenness scores for games played. Using age (as a numeric variable), league (WHL, OHL, QMJHL, USHL, or AHL), and era (a specific season such as 2007–08, 2008–09, etc.) as independent variables, I calculated an “expected” points-per-game rate for each player given their age, season, and era. Then, I subtracted their expected points-per-game rates from their actual points-per-game rates to obtain an “adjusted points-per-game rate”. I completed this process for 5-on-5 and all situations.

So I now have adjusted betweenness scores and adjusted points-per-game rates. Standardizing each of these variables so that they’re on a similar scale, I calculate the average of these two metrics for each player to obtain an “average rating”. This is helpful, as it penalizes players with high betweenness scores but low points-per-game rates — like Martin Fasko-Rudas — as, in many situations, these players have high betweenness scores because their goals and assists were directly tied to teammates who either didn’t play or score often. Those teammates, according to the model, would appear to be reliant upon that player despite that player not truly influencing their scoring significantly. On the flip side, players who have low betweenness scores but relatively high points-per-game rates — like Barrett Hayton and Robert Thomas — get a boost, as it’s difficult to be an “influential” player on a team with many stars.

Implications for the 2018 Draft

Two of the most intriguing prospects available at the 2018 NHL Entry Draft are Oliver Wahlstrom and Joel Farabee. Generally, most scouting services rank Oliver Wahlstrom as a better prospect than Joel Farabee, and that’s often based on Wahlstrom having higher goal and point totals than Farabee has. However, by trying to understand the context by which each player scored, a different story appears.

Take a look at the 3 graphics below. They illustrate all 5-on-5 goals for Jack Hughes, Oliver Wahlstrom, and Joel Farabee in the USHL in 2017–18.

2017–18 goals during 5-on-5 play for (from left to right) Jack Hughes, Oliver Wahlstrom, and Joel Farabee

So what does this show? In 5-on-5 play, Jack Hughes had 28 primary points, Joel Farabee had 19, and Oliver Wahlstrom had 23. If the only thing we know about these players were how many primary points they got, we could say Hughes > Wahlstrom > Farabee.

However, we also know who scored and assisted on each player’s goals. Looking at each player’s goals and assists, we see that 14 distinct players had goals or assists directly tied to Jack Hughes. Farabee had 10. Wahlstrom had 7. Looking further, of Wahlstrom’s 23 primary points, 9 were directly tied to Jack Hughes.

While it likely isn’t apparent from these graphics, Jack Hughes is barely 17 years old, and he’s an elite talent who will likely be drafted 1st overall in 2019. That’s a big deal. If 9 of Wahlstrom’s 23 primary points were directly tied to a future superstar, how confident can we be that Wahlstrom is a better producer than Farabee, who had 2 of his 19 primary points directly tied to Hughes?

Frankly, it’s unclear, and that’s okay. This type of analysis is important for understanding the context behind a players’ production. After all, when a team drafts Oliver Wahlstrom, they’ll want to know if all 23 of his primary points were actually his or if he’s responsible for just 14.

As important as this analysis is, it’s time-consuming. That’s where calculating betweenness scores shines. It does all of what I just explained but at a greater scale and much more quickly. As seen in the spreadsheet I attached below, of these three players, Hughes has the highest betweenness score, followed by Farabee and then Wahlstrom.

Final Thoughts

So, like any metric, betweenness centrality isn’t perfect. Betweenness centrality is a relative metric, in that one’s betweenness score is relative to that players’ team. So, like I explained earlier with Barrett Hayton and Robert Thomas, if a player is on an offensively talented team, that player may appear to be less influential in terms of scoring than they truly are.

To summarize all of the points I’ve made:

Pros of betweenness

  • It provides a lot of information about a player’s context with 1 number
  • It is one of the few (possibly only) metrics to account for context in production
  • Anybody can calculate betweenness for virtually any league (as long as the league has data on who the goal-scorer is and who assisted on that goal)

Cons of betweenness

  • Players don’t pick their linemates/teammates
  • I haven’t yet tested its predictability and reliability

Finally, betweenness is — based on its construction — a descriptive statistic. That is, it is meant to describe what happened in the past rather than what will happen in the future. So, in that way, it is not built to be a predictive metric. However, this doesn’t mean that betweenness necessarily has no predictive ability. After all, people often use points-per-game as a predictive statistic despite it also being constructed as a descriptive statistic.

And in the end, what’s the point of a statistic? What’s the value of WAR (Wins Above Replacement)? In my opinion, the value of WAR is that it condenses a lot of information about a players’ role, value, and impact into a single number. We can then use that single number to know in what specific areas of play a particular player may excel. That is, the analysis doesn’t stop with the number — it only begins there. And that is what I think is important to remember with regard to a player’s betweenness score. A player’s betweenness score may provide us with a lot of information about that player’s context, but it is only one way of doing that. Employing betweenness scores in one’s analysis may be extremely valuable — but it’s more like a thermometer than it is an actual doctor.

Anyways, that’s it. Thanks for reading. Click here to access the spreadsheet of WHL, QMJHL, OHL, AHL, and USHL players’ betweenness scores for the past 15–20 years (depending on the league), as well as age, league, and era adjusted scoring rates. And if you’re part of the Anti-Hyperlink crowd (I know you’re all out there somewhere), here’s the link:

You can find me on Twitter (@OppenheimerEvan), and you can feel free to message me if you have any questions or e-mail me at Also, keep your eyes open for some more hockey-related analyses from me in the upcoming weeks.

I need to give huge shout-outs to Matt Barlowe, Hayden Speak, and Michael Lopez. Without Matt generously sharing his NHL play by play data back in March, I never would’ve begun a project of this magnitude. And all of the data I used in this project was generously shared by Hayden. I can’t thank him enough for the work he puts into his site, And a huge thank you to Michael Lopez for looking over my methods — I really appreciated your feedback. Finally, thank you to everybody who followed me on Twitter through the inception of this project to its semi-completion. I lost the motivation to finish this many times, but you all provided the support I needed to get through this.