References
Basketball-Reference.com / Elo ratings / Monte Carlo simulations
The Details
We kind of love Elo ratings at FiveThirtyEight — we’ve used them to forecast the NFL, NBA and MLB and to cover various other sports and tournaments over the years. We created Elo ratings for the WNBA in 2020, tracking team strength back to the league’s founding in 1997, and we’re now using them to predict each game and the season as a whole. Here’s how they work.
Team Elo ratings
The Elo system, created by Hungarian American physics professor and chess master Arpad Elo, is a way to rate competitors that can be tuned and customized endlessly to incorporate available data. We like using Elo ratings because they’re relatively straightforward to understand4 and can help make pretty effective and accurate statistical models.
In this system, each team gets a numerical Elo rating. (League average is 1500.) When two teams play each other, the winning team siphons rating points from the losing team. Think of Elo ratings as live team power ratings that represent a team’s quality at any given moment.
We developed our Elo-based rating system for the WNBA using results from every game in the league’s history, thanks to Basketball-Reference.com. Each team started out with an average rating of 1500 in the inaugural 1997 season,5 and we then adjusted that rating after each game that team played, season after season. Exactly how we updated these ratings — and built a WNBA forecast from them — comes from the process described below.
Game predictions
First, team Elo ratings are used to calculate win probabilities coming into each game. For a game between two teams (A and B), we calculate Team A’s probability of winning with this formula:
\begin{equation*}Pr(A) = \frac{1}{10^{\frac{-Elo Diff}{400}} + 1}\end{equation*}
EloDiff is Team A’s pregame Elo rating minus Team B’s pregame Elo rating, along with some adjustments:
- A home-court advantage adjustment adds 80 points to the home team. Because 84 Elo points are worth 3 WNBA points,6 a home team would be favored by just under 3 points if the two teams were otherwise even.
- A playoff adjustment that multiples the adjusted EloDiff by 1.25 for playoff games, accounting for our finding that better teams tend to outperform underdogs by a wider margin in the playoffs than they do in the regular season.
After each game is played, the winning team gains some Elo points (while the losing team loses the same number of points) based on pregame win probabilities and the winning team’s margin of victory. A win by a big underdog results in a bigger exchange of points than a win by a favorite — and the larger the margin of victory, the larger the shift. We calculate exactly how much to shift team Elo ratings after each game with this formula:
shift = K * Margin of victory multiplier * Pregame favorite multiplier
K represents the K-factor, a fixed parameter that determines how quickly ratings should react to new game results. In essence, it regulates how many Elo points a winning team would gain (and a losing team would lose) if there were no adjustments based on the margin of victory or which team was favored. The higher the K-factor, the more a team’s rating changes based on individual game results.
A K-factor that is too high causes jumpy ratings that overreact to recent games. A low K-factor takes too long to pick up on important changes in team quality, like injuries or roster moves. For the WNBA, we found that a K-factor of 28 hits the sweet spot between these two poles and gives us the most efficient adjustments to team ratings after each game.
Teams always gain Elo points after a win and drop Elo points after a loss — but they gain (or lose) more points in blowouts. Teams also get bigger Elo bumps for piling it on if they were expected to eke out a close win or to lose altogether.
We adjust for this with the margin-of-victory multiplier, calculated as follows for a given team:
- Take the winning team’s margin of victory, add 3 points and then take the result to the power of 0.8.
- Divide the result by 7.5 + (.006 * EloDiff), where EloDiff represents the adjusted Elo rating difference between the teams (see calculation above). EloDiff should be negative in games won by the underdog.
- Multiply the result by -1 if the team lost the game.
This formula also accounts for diminishing returns — going from a 5-point win to a 10-point win matters more than going from a 25-point win to a 30-point win.
Teams also gain more points for winning a game they were expected to lose — and drop more points for losing a game they were expected to win.
We adjust for this with the pregame-favorite multiplier, calculated as team_win – team_winprob for a given team, where:
- team_win is a binary representing the results of the game — 1 if the team won the game and 0 if the team lost.
- team_winprob is the team’s pregame probability of winning (see calculation above).
We then compute each team’s postgame Elo rating by adding this shift to the winning team’s pregame Elo rating and subtracting it from the losing team’s pregame Elo rating. These new shifted postgame Elo ratings become the pregame Elo ratings for a team’s next game, which get adjusted again based on the results of that game, and on and on. This process is repeated for every game in a season, through the last game of the WNBA Finals.
Preseason ratings
When a new season starts, we can’t reset team ratings to league average, but we also can’t just take the last postgame Elo rating from the previous season — each season is its own unique competition, even for teams whose rosters didn’t change much over the offseason. So, team preseason Elo ratings come from their last postgame Elo rating from the previous season, plus some reversion to the league average of 1500.
For our WNBA forecast, teams retain half of their rating from the end of the previous season. For example, the Los Angeles Sparks ended the 2020 season with an Elo rating of 1550,7 so they start the 2021 season with an Elo rating of:
\begin{equation*}(1550 * 0.5) + (1500 * 0.5) = 1525\end{equation*}
From team ratings to forecast
Now that we have an Elo-based system that rates every teams’ quality and responds to their game results, we need to turn that into a forecast that takes the current state of the league and calculates each team’s probability of making the playoffs or winning the Finals. We implement Monte Carlo simulations for this, using randomness to simulate the rest of the regular season and playoffs thousands of times, keeping tabs on what happens in each simulation. As with our other sports forecasts, we run these simulations “hot,” meaning that a team’s rating doesn’t stay static — rather, it changes within each simulated season based on the results of every simulated game,8 including the bonus for playoff wins and blowouts.
We then calculate how often in these simulations each team reaches certain benchmarks, like winning the Finals, and how many games they win on average. So, when you see that a team has a 20 percent chance of making the playoffs in the forecast interactive, for example, that means it made the playoffs in 20 percent of the simulations we’ve run, each of which takes its current record and remaining schedule into account. After every WNBA game is played, we rerun all those simulations and update our interactive.
Model Creators
Ryan Best A visual journalist for FiveThirtyEight.
Jay Boice A computational journalist for FiveThirtyEight.
Nate Silver The founder and editor in chief of FiveThirtyEight.
Version History
1.0 Forecast launched for the 2021 season.