Methodology: How I Calculate Odds and Projections
1. Team Strength: The Elo Rating System
The first step in my process is to assign a score to each team representing it's relative strength. For this I use the Elo rating system, a method originally developed for chess players, adapted here for NFL teams. Each team's Elo rating changes throughout the season based on game outcomes.
Initial Elo for a New Season:
- A team's Elo from the end of the previous season is partially regressed towards the league average. This accounts for year-to-year fluctuations and roster changes.
- I also calculate a market-implied Elo from pre-season Vegas odds on team win totals. I then combine the market-based Elo and the regressed Elo from last season to set the initial Elo for each team.
Updating Elo After Each Game (Completed Games):
- Before a game, I calculate the expected outcome based on the Elo ratings of the two teams, including an adjustment for home-field advantage. A higher-rated team is expected to win more often.
- After a completed game, team Elos are updated. Winning teams gain Elo points, and losing teams lose them.
- The magnitude of the change depends on the game's outcome relative to the expectation:
- Upset wins (a lower-rated team beating a higher-rated one) result in larger Elo swings.
- Expected wins (a higher-rated team beating a lower-rated one) result in smaller changes.
- Ties also result in an adjustment, typically benefiting the lower-rated team slightly.
- A K-factor determines how sensitive the Elo ratings are to recent results.
This dynamic Elo rating provides a constantly updated measure of each team's current strength based on actual game results. I do not factor in things like in-season injuries, trades, or weather.
2. Simulating the Season: The Monte Carlo Method
Once I have each team's current Elo rating and the schedule of remaining games, I use a Monte Carlo simulation to project the rest of the season. This involves:
Simulating Individual Future Games:
For each unplayed game in the schedule:
- I calculate the home team's win probability using the current Elo ratings of both teams (including home-field advantage).Win Probability (Home)Where and are Elo ratings; is home-field advantage (≈ 55 Elo); and is the Elo scaling parameter (commonly 400).Example
Let's say the Broncos have Elo 1600 and the Raiders have Elo 1400, and it’s a home game for Denver. I use a home‑field advantage of HFA = 55 Elo, which effectively boosts the home team’s Elo by 55 points for this calculation.
Step‑by‑step- adjusted home Elo
- rating difference
- (typical)
- exponent
Win probability≈ 81.3% chance that the Broncos win. - Then I generate a random number between 0-1. If it's below the home team's win probability, the home team is marked as the winner for that simulated game. Otherwise, the away team wins.
Repeating Many Times:
I simulate the entire remaining schedule in this way to create one simulated season. I then repeat this process 5 million times. Each of these 5 million run-throughs of the remaining schedule provides a complete, unique potential outcome for the season.
3. Aggregating Results and Calculating Probabilities
After generating 5 million simulated season outcomes, I analyze the results:
- Win-Loss Records & Standings: For each of the 5 million simulated seasons, I tally the final records for every team. These records are based on actual past results combined with the outcomes from the simulated future games.
- Playoff Qualification: Based on the simulated standings and NFL tie-breaking rules (including head-to-head results, divisional and conference records, strength of victory, and strength of schedule derived from the simulated games), I determine which teams make the playoffs for each simulated season.
- Conference Winners: I identify the top seed in each conference in each simulation.
- Draft Order: In each simulation, I determine the draft order for all of the teams that missed the playoffs. I then apply first round draft pick trades, and tally up how often a team gets the first overall pick or a top 5 pick.
By counting how many times each event occurs across all 5 million simulations, I can calculate probabilities:
- Playoff Odds: If a team makes the playoffs in 3 million out of 5 million simulations, their playoff odds are 60%.
- Conference Winner Odds: Calculated similarly based on how often a team secures the #1 seed.
- Draft Pick Odds (#1, Top 5, etc.): Based on how often the current owner of a pick lands in those draft slots.
4. Game Impact Analysis ("Who to Root For")
To determine how a specific upcoming game impacts a team's chances for various outcomes (like making the playoffs or getting the #1 pick), I downselect the 5 million simulations to only those where the home team won the game in question, and calculate the fraction of simulations where the target team makes the playoffs. Then I repeat this for the away team winning. The difference in these two probabilities shows how much that game's outcome impacts the target team's chances.
- Baseline: I first note the team's probability for an outcome (e.g., playoff odds) based on all 5 million simulations.
- Conditional Probabilities: I identify the subset of simulations where Team A wins a particular upcoming game. Within this subset, I calculate the target team's outcome probability (e.g., playoff odds if Team A wins). I do the same for the subset of simulations where Team B (Team A's opponent) wins that game.
- Impact (Delta): The difference in probabilities between these scenarios shows how much that game's outcome "swings" the target team's chances. The "Root For" suggestion points to the game outcome (Team A winning or Team B winning) that most benefits the team you are viewing for a selected projection (e.g., making the playoffs).