The President’s Trophy Curse

Does winning the National Hockey League’s trophy for regular season success doom a team to futility in the playoffs? Let’s dig into the data to see what it tells us about the President’s Trophy Curse.


Wait, what about a curse?

The best team in the National Hockey League’s regular season is awarded a trophy, which is a good thing, but is actually a bad thing because any team that wins said trophy is destined for failure in the most important part of the NHL season: the playoffs. Makes sense? Then feel free to move right along to the next section. For everyone else, let’s rewind and pepper in some more details. Since the 1979-80 season, the NHL playoffs have pitted the league’s top sixteen teams against each other in a four-round gauntlet to determine which squad claims the storied Stanley Cup as champion. Playoff seeding is largely determined by regular season records with the best-performing teams earning the theoretical advantage of playing the weakest playoff qualifiers (check out NHL.com for a full explanation of playoff seeding). The team that accumulates the best regular season record has also claimed the President’s Trophy since its introduction in the 1985-86 season. For the last nine consecutive seasons the President’s Trophy winner has failed to also lift the Stanley Cup, fueling the belief among some fans and sportswriters that earning the top seed is a “curse” dooming a team to come up short in the postseason. Every time the frontrunner bows out early in the playoffs familiar articles reappear, but is the curse reality or recency bias? Significant or statistical noise? Prophecy or product of small sample size? Let’s take a look at the data and try to answer those questions.

So is the curse real?

Before we dive into the data I want to caution against drawing strong conclusions from it. Since the President’s Trophy has only been awarded 37 times, the dataset we’ll be analyzing is small and prone to significant fluctuations, especially when partitioned. For example, President’s Trophy winners won only one of the last ten championships for a win rate of 10%. Across all seasons in which the President’s Trophy was awarded, the top seed won the Stanley Cup 22% of the time. The gap between 10% and 22% might look large, but it would take only one more dual winner for the last decade of President’s Trophy winners to be very close to the overall win rate. It’s important to keep that swing in mind as we start to slice up the data; as a dataset gets smaller, differences can appear larger. With that disclaimer out of the way, let’s dig into the stats.

Bar chart of Stanley Cup wins by team regular season rank from the 1985-86 through 2021-22 seasons

This first chart shows wins by regular season ranking for all 37 seasons in which both the President’s Trophy and the Stanley Cup were awarded. The President’s Trophy winner, and top-ranked team, won the cup most frequently, eight times or 22% of all eligible championships. Interestingly teams ranked fourth overall had the second-most wins, six or 17%. The data clearly shows the teams that won President’s Trophies won more Cups than any other playoff seed, so we can all stop worrying about the curse right? Maybe not: a lot of curse talk has centered on the recent run of futility by the top-ranked teams. Let’s see if the data shows any changes in win rates over time.

Line graph of running average Stanley Cup wins for President’s Trophy winners from the 1985-86 through 2021-22 seasons

The line graph above shows changes in win rate over time by mapping a running average of Cup wins per season by President’s Trophy winners. In plain English, every data point represents a season and the percentage of championships won by the top-ranked team up to and including that season. When the line goes up teams increased the average number of championships won per season by winning more frequently; a downward trend means the opposite. If you’re still confused, hopefully reviewing some sample calculations will help. In the first charted season, 1985-86, the President’s Trophy winner did not win the Stanley Cup: the running average of Cup wins per season for 1985-86 is 0, because the one team in the calculation did not win the championship. By the conclusion of the 1988-89 season, the running average of Stanley Cup wins per season is up to .5 since two out of the four teams in the calculation won (2 / 4 = .5). The earliest seasons have some wild fluctuations because when there are only a small number of total seasons, a single win greatly alters the average Cups won. By around the 1992-93 season, the volatility starts to smooth out and we can see an upward trend that peaks with the 2001-02 season. What follows is a consistent downward trend in Stanley Cup win percentage by President’s Trophy winners, making the 2001-02 season a clear inflection point. The two opposite trends tell us that top seeds won the Stanley Cup more frequently before the 2001-02 season and have won less often since then.

Above: bar chart of Stanley Cup wins by team regular season rank from the 1985-86 through 2001-02 seasons, Below: bar chart of Stanley Cup wins by team regular season rank from the 2002-03 through 2021-22 seasons

Let’s take a look at two final bar charts, which split the first chart in this blog post along the inflection point: the 2001-02 season. The chart on the left shows Stanley Cup wins by team regular season rank between the 1985-86 and 2001-02 seasons and the one on the right shows the same metric for every season after 2001-02. We already know the President’s Trophy winners fared better in the pre-inflection era, but look at how dominant they were compared to their peers! Top seeds won 35% of those championships, far outpacing the second-winningest seeds, tied at 12%. Now compare that superiority to the performance of President’s Trophy winners since the 2001-02 season: not only is the massive Cup lead gone, but top seeds are only the third-winningest rank in the post-inflection era. Fourth-ranked teams in particular have done well for themselves in recent seasons, winning 26% of Cups to first-ranked teams’ 11% win rate. One last observation: even though the President’s Trophy winners won a smaller share of championships after 2001-02, top teams as a group were equally successful before and after the inflection point. A top-four regular season team won 59% of Cups awarded between the 1985-86 and 2001-02 seasons and 58% of championships since 2001-02. Even with the recent run of futility by President’s Trophy winners, top seeds remain as collectively dominant as ever.

So let’s finally answer the question: is the President’s Trophy curse real? I’m not superstitious enough to call it a curse, but there’s no denying that having the best record in the NHL has not led to the kind of playoff success in recent years that front-runners have enjoyed in the past. Does this mean teams with Stanley Cup aspirations should be trying to avoid winning the President’s Trophy? Absolutely not. The top 25% of playoff qualifiers have consistently won close to 60% of Stanley Cups over the last 37 seasons. Teams should not fear finishing first based on a small sample of failure, especially when the top four seeds have had such sustained success.

Maybe the real curse is the data

If you’re interested in examining President’s Trophy and Stanley Cup data yourself, you can find visualizations in this Tableau workbook and data sets in this GitHub repository. I keep warning against drawing strong conclusions throughout this post due to the small sample sizes, but that isn’t the only issue with the dataset. The NHL expanded significantly throughout the time range of the data, growing from 21 teams in the 1985-86 season to the current 32 squads. While the number of playoff entrants has remained the same since before the introduction of the President’s Trophy, the regular season point system and playoff format both evolved. Perhaps the most impactful change, the 2005 introduction of a hard salary cap prevented the league’s wealthiest clubs from grossly outspending their competitors. All of the aforementioned alterations to the league’s structure make decades-long comparisons difficult, because the competitive landscape differed significantly at the extremes of those ranges. Shrinking the time range of a data set limits the variation in rules and conditions, but exacerbates the problems associated with tiny data sets: cursed if you do, cursed if you don’t. Further complicating matters, teams played some recent seasons under anomalous conditions: labor disputes shortened regular seasons in 1994-95 and 2012-13 and the COVID-19 pandemic forced another protracted season and 24-team extended playoff in 2019-20. This combination of limited observations, league expansion, evolution of rules, and outlier seasons should temper confidence in interpreting any perceived pattern as a long-term trend.

NHL Playoffs Schedule Probability

What is the probability that the NHL’s scheduling gamble for starting the second round of the 2020 playoffs would work out as perfectly as it did? If you follow hockey, feel free to skip the setup and scroll down to the last section.


What Could Go Wrong?

Yesterday Hockey Twitter was abuzz with the news that the NHL had scheduled the opening game of Round 2 of the Stanley Cup Playoffs before waiting to see if the remaining Round 1 series would require the maximum seven games:

At the time of the decision to schedule the series opener between the Colorado Avalanche and the Dallas Stars, those two teams were the only Round 2 matchup set in stone. Two series, one in each conference, were still going and would be decided either that night or two days later on Sunday, a day after the start of the Colorado-Dallas series. Traditionally, an NHL playoff team plays games every other day with additional off days built into the schedule to accommodate travel. Because teams are isolated into bubble cities by conference for the 2020 iteration of the playoffs, the NHL doesn’t have to worry about travel days and can get a bit more creative with their schedule. Moving up Avs v Stars to Saturday gives the NHL a televised game for a prime weekend spot that they otherwise wouldn’t have. The downside of that decision is potentially having to resolve future scheduling issues. Here’s a timeline of the worst-case scenario resulting from starting the Colorado-Dallas series on Saturday:

DATEROUNDGAME
8/20/201Dallas v Calgary, Game 6
8/21/201St Louis v Vancouver, Game 6
8/22/202Colorado v Dallas, Game 1
8/23/201St Louis v Vancouver, Game 7
8/24/202Colorado v Dallas, Game 2
8/25/202Vegas v St Louis or Vancouver, Game 1
https://twitter.com/AJHaefele/status/1296871425760927744

What Actually Went Wrong?

Nothing! Last night both the Vancouver Canucks and the Philadelphia Flyers closed out their series, thus completing all Round 1 games. Had either or both teams lost it would have pushed closing game(s) to Sunday and thrown the Eastern Conference series, the Vegas v St Louis/Vancouver series, or both off the pace of the Colorado v Dallas series. But none of that happened, so the NHL should have an easy time coming up with a sensible Round 2 schedule.

How Likely Was That Outcome?

I kept my analysis pretty simple because this is a really low stakes “problem” and I just wanted to get a sense of how likely it was for everything to have worked out the way it did. I went to Hockey Reference to consult their handy tables of historical playoff results and used that data to construct this table of possible outcomes for a team leading three games to two in a series:

RESULTTIMES IT HAPPENED
Leading team wins in 6 games228
Leading team wins in 7 games91
Trailing team wins in 7 games87

On seeing those raw counts my first thought was if you have a 3-2 series lead, pull out all the stops trying to win Game 6 because Game 7s are a crapshoot. Good work, Flyers and Canucks! Next I just calculated the percentage of 3-2 series that ended in six games using this formula:

Leading team wins in 6 / (Leading team wins in 6 + Leading team wins in 7 + Trailing team wins in 7)

That works out to a 3-2 series ending in six games roughly 56% of the time. If we’re only examining the Western Conference playoff schedule, then the NHL picked the slightly more likely outcome in scheduling Avs v Stars on Saturday and hoping Vancouver would take care of business on Friday. If we want to consider that decision in the context of the entire playoff schedule, then we just need to calculate the combined probability of those two independent events like so:

Probability Philadelphia wins in 6 * Probability Vancouver wins in 6

In my simple analysis based solely on past outcomes, both of those probabilities are the same, making their combined probability the square of the probability of a 3-2 series ending in six games. That works out to a little under 32%, meaning at least one of the remaining Round 1 series going to seventh game was the likeliest outcome by a decent margin. So maybe the NHL got a bit lucky but everything worked out for them and now I get to watch the Avs take on the Stars on TV tonight!

#GoAvsGo

Predicting NHL Injuries

I’m a huge fan of both hockey and its associated analytics movement, so I wanted to work with NHL data while finding a relatively uncovered angle. I also wanted to put some of the conventional wisdom of the league to the test:

  • Do smaller and lighter players get injured more?
  • Is being injury-prone a real thing?
  • Are older players more likely to get hurt?
  • Are players from certain countries more or less likely to get injured? (European players were once considered "soft" and Alex Ovechkin once said, "Russian machine never breaks")

To help answer these questions, I built a model to predict how many games an NHL player will miss in a season due to injury. I then examined the model’s coefficient values to see if I could gain any insights into my injury questions.

Data Collection

Counting stats for sports are easy to come by and hockey is no different – I was able to download CSVs of all player stats and biometrics for the last ten NHL seasons from Natural Stat Trick. I combined the separate Natural Stat Trick datasets in the ‘player_nst_data’ notebook in my project Github repo. Unfortunately reliable player injury histories are much more difficult to come by. I was able to scrape lists of injuries from individual player profiles from the Canadian sports site TSN using Selenium and BeautifulSoup. All injury scraping and parsing is contained in the ‘player_injury_data’ notebook. While I don’t believe the TSN data is an exhaustive list of player injuries it is the best I could find so that’s what I used.

Example image of TSN player profile
An example of a TSN player profile page containing injury data

Feature Selection/Engineering

Mostly due to the amazing amount of counting stats Natural Stat Trick aggregates, I had an abundance of potential features for my models. I relied on my domain knowledge as a longtime hockey fan to whittle down the list to anything I thought could correlate with injury rates, as well as predictors to test the conventional wisdom of what causes players to get hurt. I removed goaltenders from my data set because their counting stats are completely different from those of other skaters. I also utilized sklearn’s polynomial features to account for feature interactions. Here is a partial list of individual features and my logic for choosing them:

  • Games Missed Due to Injury: what I’m trying to predict
  • Height/Weight: to see if smaller/lighter players get injured more often
  • Position: defensemen play more minutes and are more likely to block shots than other positions, wingers and defensemen are generally more likely than centers to engage in physical play along the boards
  • Penalties Drawn: penalties are often assessed when a player is injured as the result of a dangerous and illegal play
  • Hits Delivered/Hits Taken: an indicator of physical play that could lead to more injuries
  • Shots Blocked: players sometimes suffer contusions and break bones blocking shots
  • Age: to see if older players get injured more often
  • Major Penalties: majors are often assessed for fighting
  • Being European/Being Russian: to see if either correlates with increased injury rates

Additional Feature Engineering

I started off with some simple models because I wanted to evaluate what formulation of my data would work best before spending my time tweaking hyperparameters. I fit an Ordinary Least Squares regression on each of the following data sets:

  • Each entry contains the total counting stats and games missed due to injury for the last ten seasons.
  • Each entry contains the counting stats, games missed due to injury, and games missed last season for a single season for a player. In this and the following format, players can have multiple rows of data.
  • Similar to the last format except it includes rolling averages of counting stats and games missed for all previous seasons.

I created each of these data formulations in the ‘data_merge’ notebook. Unsurprisingly, the last and most robust data set resulted in the lowest test MSE so I used that formulation of my data for the final modeling. All modeling lives in the ‘nhl_injuries’ notebook.

EDA

Exploratory Data Analysis confirmed some of my assumptions going in – mainly that injuries are largely random and unpredictable. The heatmap below shows very low correlation between any of my predictors and the response.

Predictor/Response Correlation Heatmap

I also created a histogram of games missed due to injury per season that shows most players miss little or no time. As a result the distribution of games missed has an extreme right skew.

Games Missed Due to Injury Histogram

Models

Before training my final models I limited the data set to only players who had played at least 50 career games, which mainly removed career minor league players who have spotty NHL statistics. I standard-scaled all values, created a train/test split of my data set of 7,851 player-seasons, and trained a Lasso linear regression model with polynomial features and a random forest regressor model. The test R2 values for both models were low, indicating that the predictors did not explain much of the variation in the response in either model.

Model R2
Lasso 0.075
Random Forest 0.107

Results

Since the Lasso model performed similarly to the random forest model while maintaining greater interpretability, I used it for all subsequent analyses. I graphed the ten most important predictors for the Lasso model along with their coefficient values. Although the model didn’t have great predictive value I still wanted to determine which inputs had the most influence.

Predictor Coefficients

Using the chart above I was able to get some answers to my initial questions:

  • Height and weight don’t appear anywhere near the top of the predictor list, meaning my model finds little evidence that smaller or lighter players get hurt more
  • Average Previous Games Missed and Last Games Missed appear frequently in the top 10, lending credence to some players being injury-prone
  • Age times Average Previous Games Missed is the fourth-highest predictor coefficient, providing some very weak evidence of older players being more likely to get injured
  • Nationality appears to have almost no importance to the model, save for Russian defencemen having a small positive correlation with games missed due to injury

Conclusions

In many ways the results of this project confirmed my pre-existing beliefs, especially that NHL injuries are largely random events that are difficult to neatly capture in a model. Because I started off assuming a model would not have great predictive quality, I felt obligated to create the best model I could to account for my bias. I also expected to find little to no evidence of players being injury prone, but my model presents evidence that players injured in the past are more likely to get hurt in the future. While I still believe injuries are too random to be reliably predicted by a model, I do think my model can be improved with more and better data. More complete NHL and minor league injury data would fill a lot of gaps in the model, especially for players who are not NHL stalwarts. New NHL player tracking data could potentially provide input values with far more predictive value than traditional counting stats. I’m excited to see what future insights can be gleaned as we continue to collect increasingly more detailed sports data.


Check out the full project on my GitHub