Examining Historical NFL Gambling Data

Posted on Jul 29, 2018

Link to the Web App

This application is primarily interested in examining the disparity between the realized results of NFL games and the predictions made by the Sports Books in Las Vegas. The visualization tools attempt to isolate a small handful of variables to identify trends and predict error.

Key Findings: Spreads

Bet on the underdog to cover the spread! Don't only look towards the most recent Super Bowl Champion Philadelphia Eagles, who were underdogs in all 3 of their playoff games. Take a look at the first chart on the spreads page, showing that nearly 400 more games saw the underdog cover the spread than the favorite.

The Error Variable (i.e. residuals) is expected to average 0 as we examine more games because we assume "Vegas knows," but instead a simple t-test shows that the average Error is -0.35 points, and is statistically significant.

Now let’s take a look at spreads from the 2014 season. If there ever was a year of the underdog, that's it.

We can examine the 2014 season by looking at the trend over each week of the season. The below chart is filtered to include only data from the 2014 season (showing the mean error for each week).

We can see there was only one week in which the average point differential between every game's spread and the realized results was in the direction of the favorite. It should be noted that that week is week 20, a.k.a. the conference championship games, of which there are only 2 games to draw data from (compared to the first 17 weeks of the schedule, of which there are at least 13 games per week.) I'll add that 1 of those 2 games saw the favorite blow out the underdog by a wide margin, but it also saw that same unnamed favorite illegally deflate their footballs.

Regardless of how guilty of cheating the Patriots are, it is clear that the 2014 season is an outlier in this spreads data. If we omit data from the 2014 season, we can see that Vegas has gotten better at forming their lines over the years by seeing a negative slope in the simple linear regression.


Key Findings: Over/Under

Bettors beware! Vegas has gotten more accurate with their Over/Under lines over the years.

The linear regression clearly has a negative slope, meaning that with each additional year Vegas is reducing (on average) the error in their O/U lines. This time, we didn't omit any data to draw this conclusion.

The data is also hard to find any obvious trends in.

While we can see that the under has been correct more times than the over, a t-test of the error shows the mean to be +0.65 and statistically significant.

The under bet has been right more times than the over, but on average games will score a little bit over the offered line.

You may notice the histogram is a bit right-skewed, meaning that the mean (symbolized by the vertical line) is to the right of the peak. There is a reason for this. In any given game, the teams can not combine to score less than 0, meaning that there is a limit to the negative values. There is not, however, a limit to positive value (how much more they can combine to score when compared to the offered line).

What about looking at situational betting opportunities?

When the offered line is low (37 or less), the over tends to hit. Is the inverse situation true?

Yes it is. If you're facing an extreme over/under line, betting against its extreme bias will win more times than not. For reference, the average line in all games since 1979 is about 41.7, and the average line this most recent season (2017) is 44.1.

The Data

This application uses a dataset of every regular season and postseason NFL game since the 1979 season through the Super Bowl in 2018 (the culmination of the 2017 season). In addition to descriptive data of the NFL games and their results, the data includes what Las Vegas sports books offered as spreads (including the favorite team, of course) as well as the over/under line.

In both the spreads and O/U analysis, there is an important variable called Error. Error is measured in points, and can be positive or negative. In the case of the spreads, positive Error means the favorite covered the spread, while negative Error means the underdog covered the spread. In the case of the Over/Under, positive means the teams combined to score more than the over/under line, while negative means the teams scored less than the over/under line. Error is essentially another term for residuals. We would expect error to be 0, but the data proves that to not always be the case. We can also examine absolute error - measuring by how much Vegas missed the mark.

Introduction to NFL Gambling

The NFL is the highest-grossing sports league in the world. In 2017, the NFL generated approximately $14 billion USD. In July of 2018, Forbes reported that 29 of the NFL's 32 teams are included in their list of the 50 most valuable sports franchises in the world. The American Gaming Association, a casino lobbying group, projects that Americans bet $4.76 billion on Super Bowl LII in 2018, with more than 97% of that figure represented by illegally placed bets. Some of those types of bets may become legal in the near future, though. In May of 2018, the U.S. Supreme Court lifted the federal ban on sports gambling. States will gradually legalize sports gambling over the next few years, and the industry could very well evolve to become unrecognizable from what it is today.

Two common aspects of the game to place bets on are the winner of the game and the final score of the game. Since not every matchup between two opponents is an even match, this can be offset by the spread. The spread is essentially a number of points handicapped to the perceived underdog so as to make the bet of who is going to win the game one that can be made with (nearly) even money. The over/under bet is simpler: it's a figure that represents the total score of the two teams combined.

About Author


Max Schoenfeld

Max is a data scientist pursuing opportunities to use his machine learning expertise in a market-oriented setting such as sports gambling, finance, or general business analysis. He has business experience providing investment professionals with data solutions and recommendations.
View all posts by Max Schoenfeld >

Leave a Comment

Christopher Belthoff January 19, 2020
Hi Max, Extremely interesting subject for applying R/Data Science analysis....thank you, a great post. I was curious if you are willing to share your raw data, and also, have you thought about applying this analysis to NBA or college-level data? Regards, Chris Belthoff [email protected]

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags

#python #trainwithnycdsa 2019 airbnb Alex Baransky alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus API Application artist aws beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep Bundles California Cancer Research capstone Career Career Day citibike clustering Coding Course Demo Course Report D3.js data Data Analyst data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization Deep Learning Demo Day Discount dplyr employer networking feature engineering Finance Financial Data Science Flask gbm Get Hired ggplot2 googleVis Hadoop higgs boson Hiring hiring partner events Hiring Partners Industry Experts Instructor Blog Instructor Interview Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter lasso regression Lead Data Scienctist Lead Data Scientist leaflet linear regression Logistic Regression machine learning Maps matplotlib Medical Research Meet the team meetup Networking neural network Neural networks New Courses nlp NYC NYC Data Science nyc data science academy NYC Open Data NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time Portfolio Development prediction Prework Programming PwC python python machine learning python scrapy python web scraping python webscraping Python Workshop R R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn Selenium sentiment analysis Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau team TensorFlow Testimonial tf-idf Top Data Science Bootcamp twitter visualization web scraping Weekend Course What to expect word cloud word2vec XGBoost yelp