NFL Model Recap

With the Super Bowl behind us, the 2018 NFL season comes to an end. This season definitely was quite the ride, and the debut of my NFL model concluded with a 75-47-6 record (good for a 60.94% hit rate) and a +89.30 unit yield and 18.10% ROI. Before we say goodbye to the NFL season, I thought it’d be interesting to do a model recap and take a deeper look at how the model performed across various splits and to highlight some things I’ve eyed as potential areas of improvement for the 2019 season. Let’s get started.

Did higher unit plays generate higher profit?

One of the biggest ways to measure the strength of a model is to see how it performs as its disagreement levels increase. I first took a look at model plays of 3.5 units or more, as there doesn’t exist a spread that doesn’t move off of or through a key number or zero when adding 3.5 points. I then went up by two units from there. Here’s a look at those splits:

  • All plays: 75-47-6 (60.94%) for +89.30 units (18.10 % ROI)
  • 3.5+ unit plays: 34-21-0 (61.82%) for +52.94 units (19.04% ROI)
  • 5.5+ unit plays: 10-6-0 (62.5%) for +22.19 units (21.36% ROI)
  • 7.5+ unit plays: 3-2-0 (60.0%) for +9.53 units (23.59% ROI)

As you can see, the ROI steadily increases as the unit split increases. This is very reassuring for the model as it demonstrates the model’s ability to scale unit disagreement with profit expectation. On top of that, the fifteen largest plays of the season had a 10-5-0 record with a 27.82 unit yield, which was good for a 28.32% ROI. This obviously includes a win on the model’s largest play of the season when the Panthers miraculously covered a 8.8 unit play on a +6 spread in their Week 15 matchup against the Saints. That also marked the model’s peak profit point of the season at +102.27 units. Furthermore, the top 15 model plays were all on underdogs, and 37 of the top 38 model plays were on underdogs. 26 of the top 29 model plays were also on home teams. Here’s a look at the overall home / road and favorite / underdog splits:

How did the model do by team?

Speaking of the Panthers, they happened to be the most profitable team to bet on for the model this season and the third-most profitable team to bet against. Across those two sets of plays for the Panthers, the model went 7-0 for +28.52 and an insane 98.32% ROI. Below is a look at the earnings betting on each team, betting against each team, and total earnings on  model plays relating to each team.

Looking at the last chart, there are only 11 teams the model had overall losses on (only 9 were of >1 unit) while it managed to profit on the remaining 21. Outside of that, there are definitely some other key takeaways you can pull from this. Looking at the “Earnings Betting Against Each Team” chart, you’ll see that 11 of the 17 teams that the model profited on were teams with winning records. Out of the other six teams, three made the playoffs last year (CAR, ATL, JAX) and one is a historical public favorite (GB). This demonstrates the typical overvaluing of good teams by the public and the consequent overpricing of those teams in the market to capitalize on that perception. When looking at the “Earnings Betting On Each Team” chart, you’ll see that 8 of the 11 most profitable teams had losing records. The counterpoint would be that 7 of the 8 teams that are net negative in that chart had losing records as well, but the losses of those seven teams are offset by the earnings generated by just the top five profit-generating teams with losing records.

Was your low juice tolerance +EV?

Many, especially those who read these newsletters, have noticed that I try my best to keep the juice low on model plays (-105 or lower). I succeded in that regard as 80.5% of all model plays had a juice of -105 or lower. A common misconception was that I was often selling a half point, which was definitely not the case. This is because the book I used for this experiment had a reduced juice of -105 on equal lines as opposed to the “standard” -110. However, there are 33 model plays out of the total 128 plays (25.6%) that had a juice of -102 or lower. Of those 33, two plays lost by a half point and one play pushed. They were:

  • Loss on TB -3.5 -102 (2.254 for 2.2u) Week 7 vs. CLE
  • Loss on NYJ +6.5 -101 (5.781 for 5.7u) Week 15 vs. HOU
  • Push on SEA +2 +106 (2.1 for 2.218u) Wild Card round @ DAL

The first play wasn’t really selling a half point since you pay way more juice to move to a key number. TB -3 would have likely been around -120, which is just way too much juice. The same applies to the second play, as a NYJ +7 line would have similarly been around -120. On top of that, I removed spreads of +7 and higher from model consideration by that point so NYJ +7 wouldn’t have been a play for that reason as well. However, the last play I did indeed sell a half point and it was very lucky to push but I still stand firmly behind the proposition of selling points, especially around non-key numbers. Speaking of key numbers…

Are “key numbers” really that important?

These splits were actually the most eye-opening to me, as I really didn’t take a good look at it until the season was over:

  • Plays on +3 and +3.5: 20-7-1 (70.69%) for +37.05 units (38.07% ROI)
  • Plays on +2.5: 2-5-0 (40%) for -6.79 units (-25.90% ROI)
  • Plays on -2.5 and -3: 5-3-1 (61.11%) for +6.07 units (25.47% ROI)
  • Plays on -3.5: 1-3-0 (25.00%) for -4.74 units (-52.56% ROI)

I didn’t include plays on or around -7 and +7 since there weren’t many plays at all on those numbers, especially with the model exclusion that was established Week 10 onward.

What are you looking to change for 2019?

As great as the model’s performance was both on a macro and micro level, there are certainly many improvements I am looking to make in preparation for next season. The most obvious areas of improvement would be taking a look at the two things that caused enough trouble to warrant on-the-fly model exclusions: Thursday Night Football games and spreads of +7 and higher.

For Thursday Night Football, I don’t believe there is a mathematically derivable solution or adjustment that I can make that would provide a consistent positive performance. The game of football is just played so entirely different when you have just three days to rest and prepare, and for that reason I fully anticipate removing Thursday Night Football games entirely from model consideration from the start.

As for spreads of +7 and higher, I will have to take a more thorough and refined look at the win probability data at the more extreme handicap levels and see what adjustments I can make to more accurately capture edges in those ranges. I think the relatively poor performance on such spreads may have been tied to the league-wide jump in scoring, but that will obviously take some time to investigate and even if my assumption is true, using a single season of data would be a dangerous proposition.

Another thing I’ve mentioned previously as something I’d like to take a deeper look at in the offseason is the entire “not every point is created equal” reality that comes with football spreads. This applies in several ways, whether it be points moving on/off key numbers being worth more or points being worth more in low-scoring environments and less in high-scoring environments.

I’ve also considered backtesting how the model would have performed if all model plays were done on the moneyline as opposed to against the spread. This could potentially be beneficial as it avoids the “not every point is created equal” dilemma while also aligning our desired outcome (a win) with the team’s desired outcome (a win).

On the complete opposite end of the spectrum, I want to see if there is a way to backtest how the model would have performed if model plays consisted of playing alternate spreads that matched the model’s spread. This would be interesting as the disagreement level between the model expectation and the Vegas implied probability would be captured in the odds of the alternative spread, and the staking method would just have to be a flat unit on each wager.

All in all it was a great season, whether it was the model’s performance or the amazing response I’ve gotten from all of you. I’d like to thank you all again for your support and interest in my work. I am more than excited to see how my work with other sports compares, especially with the MLB. Beginning next week I’ll be pivoting my weekly write-ups to the MLB, covering several higher level analytical topics as we inch closer and closer to Opening Day.

And if you need just a little more NFL content to hold you over, I did join Whale Capper and Andy from the Deep Dive podcast to discuss some of the lessons we’ve learned from our 2018 NFL seasons. I think we had some pretty insightful discussion on quite a few topics, so make sure to check it out! And as always, don’t hesitate to reach out to me via Twitter.

We’ll talk again soon.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.