NFL is a $132B franchise with each team competing to win the Super Bowl.
One of the biggest competitive advantages for teams is the coach and in particular the plays that they call.
Pain Points
It takes up to approximately 3 to 4 days to create play call sheet every week and sheets are based on the past likehood/tendicies.
Our Mission
To simplify the play calling process for NFL coaches and teams through the lens of advanced analytics.
Solution
A web application where the user (typically a coach) will input their team and their upcoming opponent in order to generate a play call sheet.
Ouput
The output is generated from our machine learning algorithm within few seconds.
A more traditional way consists of cutting film of the other team and then watching the film to gauge tendencies, strengths and weaknesses of their opponent. Then selecting the plays from your playbook that will do well for that week. Teams will then run the plays in the practice to see what works and what doesn’t. That process can take up to 3 or 4 days every week over a 17 week period.
Our goal is to make the first three steps more automated so the team can focus a majority of the time on the last step which is perfecting the plays in practice.
Our solution involves looking at NFL play by play data. We built out reward models using different forms of regression and then leveraged those reward models in our multiarmed bandit.
This allowed us to predict what the optimum play type would be for each specific situation found on the play call sheet.
After the user inputs in their team and opponent, our web application will pull the specific sheet that matches the scenario.
Data Source & Associated Variables
Data Source - NFL-Data-py is a Python library for interacting with NFL data sourced from NFL-FastR, NFL-Data, Dynasty-Process, and Draft-Scout.
Situational & Game Variables
Variables associated with the situation during the play such as score-differential, home/away team, quaters, etc.
Play Position Variables
On field positional variables where the play was executed such as yards to go, game clock, timeouts availables, etc.
Play Call Variables
Variables associated with play calling such as play type, yards gained, play success, play direction etc.
Defensive & Offensive Personnel
Variables associated with players on the field (Defensive & Offensive).
To identify 'optimal' play (given the game situation and opponent), we implemented a multi-arm bandit model to optimize the trade-off between 'exploration' & 'exploitation'.
The model predicts optimal play calls using the contextual vector based on the offensive team's situation and the team's priority to focus on the 'first-down' or 'yards gained', or 'touch-down'.
To establish the contextual understanding of what the team's goal should be, we utilized key features such as 'possession', 'defensive personnel', 'score differential', 'yards to go', 'down', 'time-outs', 'play-clock', 'game-clock', etc.
To explore mutliple configurations, we trained multiple models with some combination of context vectors being
To evaluate our solution, we defined the success criteria for a play as
Each prediction has these three features (Total possible outcomes - 13)
To evaluate success rate of predicted plays, we picked 'replay' metric as
To evaluate our solution, we also explored the three basic scenario
Replay (Top Choice)
Replay (Top 3 Choices)
Replay Direction (Play-Type + Direction)
Meet the Team
Product Manager
Software Engineer
Data Scientist
Project Manager