Context
Are midweek betting odds actually a good predictor of a game’s outcome?

In the last several years, the popularity of online sports betting has exploded across the United States. One might take for granted that the odds quoted by a sportsbook are fairly accurate to the true odds of a given outcome. However, the real incentive for oddsmakers is not to quote odds reflective of the true probabilities of each outcome, but to quote odds that will cause an equal number of bettors to go in for and against each bet because doing so minimizes risk for the oddsmakers themselves. Therefore, if some bettors disregard the expected payout while placing their bets, their non-probabilistic behavior could bias quoted betting odds away from the true probabilities as oddsmakers attempt to balance takers on both sides of a given bet.

In this analysis, we look for evidence of these distortions by comparing opening betting odds calculated by oddsmakers based on their probabilistic understanding of a game’s outcome to midweek betting odds that have been influenced by bettor behavior. Because as time goes on, bettors and oddsmakers get access to more information, we would expect that in the absence of distortions, midweek betting odds should be at least as effective a predictor of game outcome as opening odds. Further, if shifts in odds from opening to midweek are caused by new information, they should not be associated with variables that were already known when opening odds were calculated, but should rather be associated with variables containing new information that could impact the empirical probabilistic calculus. Therefore, in order to answer our question about the accuracy of betting odds as a predictor, we consider the following two questions:

  • Are midweek betting odds a more effective predictor of game outcomes than opening betting odds?
  • What factors impact the changes in betting odds from opening to midweek?

In the remainder of this dashboard, we leverage data from the NFL 2024-2025 season to construct visualizations and tables to answer these questions.

Data Set Construction

To answer our questions of interest, we used data from the 2024-2025 NFL season. For each team, we scraped data on each of their games from a number of websites. Information on game outcomes, scores, yardage, and location was scraped from www.pro-football-reference.com, and information on player injuries by week was scraped from a series of web pages at www.profootballnetwork.com. The latter site only had pages for the first 5 weeks of the season and did not cover Thursday games or the first Friday game, so we were unfortunately left with no data for later weeks and some missing data in early weeks.

Finding compiled information on betting odds proved more challenging, but by accessing the Wayback Machine at web.archive.org, we were able to scrape betting odds information for most weeks of the season from www.sportsline.com. Note that because SportsLine was only sporadically archived to the Wayback Machine, betting data for weeks 7, 10, and 11 were unavailable. Further, although we scraped data from Wednesdays when available, when SportsLine was not archived on Wednesday for a given week, we scraped Thursday instead, and failing Thursday, we scraped Tuesday. The exact date and time at which the odds were scraped are recorded in the scrape_date and scrape_time variables of the data set respectively. We also note that because betting odds data on two teams in the same game were paired such that their implied probabilities always summed to one, in a number of our visualizations we consider only game winners or losers.

After all the data were scraped, they were compiled into a single data set with outcome and betting odd information for each team in each game for 15 of the 18 weeks of the regular NFL season and injury information for the first 5 of those weeks. The data set in full is available at the github repository for our analysis. Descriptions of each variable in the data set are listed to the right.

Variable Descriptions
  • game_id: A unique identifier of each game played.
  • date: The day on which the game was played.
  • week_day: The day of the week on which the game was played.
  • week: The week of regular season when game was played.
  • team: The team within the game which future variables describe.
  • winner: A binary description of whether team won.
  • opening_prob: The implied probability of the team winning when betting opened; calculated from opening_bet_odds.
  • midweek_prob: The implied probability of the team winning when data were scraped; calculated from midweek_bet_odds.
  • prob_change: The difference between midweek and opening implied probabilities (midweek - opening).
  • opening_stat_odds: The implied statistical odds of winning when betting opened; calculated from opening_bet_odds.
  • midweek_stat_odds: The implied statistical odds of winning when data were scraped; calculated from midweek_bet_odds.
  • opening_bet_odds: The betting odds on the team when betting opened.
  • midweek_bet_odds: The betting odds on the team when data were scraped.
  • injury_concern: The number of players going into the game reported as having injuries that call into question their ability to play. Missing values arise from the previously-described issues.
  • in_win_streak: A binary variable describing whether the team won their game the previous week; constructed recursively from the winner variable. It is marked 0 for all teams in week 1, regardless of pre-season performance.
  • win_streak: The number of consecutive games won by the team before the game in question. It is marked 0 for all teams in week 1, regardless of pre-season performance.
  • in_loss_streak: A binary variable describing whether the team lost their game the previous week; constructed recursively from the winner variable. It is marked 0 for all teams in week 1, regardless of pre-season performance.
  • loss_streak: The number of consecutive games lost by the team before the game in question. It is marked 0 for all teams in week 1, regardless of pre-season performance.
  • home: A binary variable describing whether the team was the home team during the game.
  • points: The number of points scored by the team during the game.
  • yards: The number of yards traveled by the team during the game.
  • scrape_date: The day the betting odds information was archived to the Wayback machine.
  • scrape_time: The time the betting odds information was archived to the Wayback machine
Opening to Midweek Changes in Probability for all Teams in all Games

Note: For game winners, an increase in win probability from opening to midweek indicates the midweek probability was more accurate, while for game losers, a similar increase would suggest that the midweek probability was less accurate.

Ordinal Accuracy of Opening and Midweek Odds
Opening Odds more Accurate Midweek Odds more Accurate No Change Total
73 128 26 227
30 Biggest Swings in Win Probability among Game Winners
Team Week Change in Probability
Denver Broncos 18 0.7090909
Dallas Cowboys 12 -0.6908213
Dallas Cowboys 16 -0.6181818
Dallas Cowboys 15 -0.6166667
Washington Commanders 15 0.5966387
Seattle Seahawks 18 0.5961538
Los Angeles Rams 8 -0.5959596
Seattle Seahawks 17 0.5555556
Green Bay Packers 2 -0.5500000
Green Bay Packers 3 -0.5500000
Arizona Cardinals 18 0.5500000
Seattle Seahawks 3 0.5324675
Cleveland Browns 12 -0.5277778
Washington Commanders 17 0.5142857
Minnesota Vikings 5 0.4920635
Minnesota Vikings 12 0.4920635
Washington Commanders 5 0.4920635
Seattle Seahawks 13 0.4848485
Buffalo Bills 13 0.4750000
Los Angeles Chargers 9 0.4666667
Philadelphia Eagles 3 -0.4642857
Minnesota Vikings 16 0.4642857
Cincinnati Bengals 14 0.4461538
Denver Broncos 12 0.4461538
Green Bay Packers 12 0.4285714
Jacksonville Jaguars 14 -0.3777778
Carolina Panthers 9 -0.3750000
Pittsburgh Steelers 14 0.3666667
Tennessee Titans 4 0.3666667
Tampa Bay Buccaneers 14 0.3666667
Teams Ranked by Average Change in Implied Win Probability
Rank Team Mean Change in Probability
1 Minnesota Vikings 0.241554675
2 Dallas Cowboys -0.236256771
3 Cleveland Browns -0.213456852
4 Washington Commanders 0.191019764
5 Los Angeles Rams -0.172958134
6 New York Jets -0.145921399
7 San Francisco 49ers -0.136835769
8 Tampa Bay Buccaneers 0.132949999
9 Buffalo Bills 0.105762690
10 Denver Broncos 0.103353760
11 Pittsburgh Steelers 0.100170068
12 Tennessee Titans 0.099360360
13 Arizona Cardinals 0.092172142
14 Seattle Seahawks 0.089477559
15 Chicago Bears -0.086803631
16 New York Giants -0.085116151
17 Las Vegas Raiders -0.084557226
18 Jacksonville Jaguars -0.076058011
19 Detroit Lions 0.075232395
20 Baltimore Ravens 0.068064412
21 Los Angeles Chargers 0.066797357
22 Atlanta Falcons -0.053938772
23 Kansas City Chiefs -0.034572448
24 Carolina Panthers -0.034069942
25 Miami Dolphins -0.033838384
26 Philadelphia Eagles 0.029975456
27 Houston Texans 0.027454959
28 Green Bay Packers -0.019115890
29 Cincinnati Bengals 0.011983873
30 New England Patriots 0.007557165
31 New Orleans Saints -0.005341932
32 Indianapolis Colts -0.004540301
Discussion and Conclusions

The visualizations presented on the previous two pages illuminate both our questions of interest. Our analysis of the predictive accuracy of opening versus midweek betting odds showed that midweek odds generally tended to be a more accurate predictor of the outcome of a game than opening odds, suggesting that if there was any distortive effect from non-probabilistic betting behavior, its impacts were overpowered by new information gained over the period.Our analysis of the factors that lead to changes in probability was less definitive.

Surprisingly, we found no clear relationship between the number of injured team members and changes in implied probability even after considering the specific team and competitive week, suggesting that information about injury was not a major cause of shifts in betting odds. Likewise, we found that a game’s location and place in the season did not seem to majorly impact its change in odds, weakening the idea that either might be related to non-probabilistic behavior. Interestingly, we did find that the mean change in implied probability varied widely between teams, indicating that betting behavior associated with teams could be shifting market betting odds away from purely probabilistic estimation.

As we conclude, we return to our original question of interest to review what we’ve learned. Are midweek odds an effective predictor of game outcome? Based on their superiority over carefully-calculated opening betting odds, it appears so. Despite this, however, there remain questions about how non-probabilistic betting behavior might bias these estimates from their purest form. For further analysis, the interested visitor is encouraged to read my paper “Fixing the Odds: A Bayesian Analysis of the Accuracy and Distortion of Sports Betting Odds” which is available upon request.

References

Pro-Football-Reference.com. “2024 NFL Regular Season Schedule,” Accessed November 15, 2025. https://www.pro-football-reference.com/years/2024/games.htm.

Robinson, Dallas. “NFL Injuries Week 1: Tracking Every Practice Report, Including the Latest on Christian McCaffrey, Ja’Marr.” PFSN, September 12, 2024. Accessed November 21, 2025. https://www.profootballnetwork.com/nfl-injuries-week-1-2024/.

SportsLine. “NFL Odds and Lines,” archived September 4, 2024, at the Wayback Machine, https://web.archive.org/web/20240601000000*/https://www.sportsline.com/nfl/odds/

Note: For sites with multiple pages scraped, only the first is cited formally. Links and access date information for all pages for SportsLine are available in the odds_scrapes_urls.csv file in the data folder of the repository. Links to all pages for Pro Football Reference can be found in the injury_scrape_urls.csv file also in the data folder of the repository.