e.g. Template, Bootstrap, WordPress theme

Computer Generated

NBA Schedule: Zero Back to Backs

A "Back to Back" is when teams play on consecutive days.



Total Travel Decreases by:~500K Miles or 42%


I have been a data analyst since 2017. This is an after work project that I am confident could be the solution to the NBA's back to back problem. Five improvements must be implemented for this model to become the actual NBA schedule. Number 1 is interest from legitimate decision makers; if you have any ideas for marketing this project, please find my email in the contact me section. Numbers 2-5 are adding a facility availability constraint, adding a primetime TV constraint, making games possible everyday not just every other day, and finally, creating 1 combined Linear Programming model. I know exactly how I will implement these additions but I need to focus on other technical skills or generate legitimate interest in the project before proceeding with any improvements. Because I know how to execute items 2-5 but do not have the time, my current challenge is generating interest.
Please see the "Controversy" tab in the "Non Technical" section to read more about why back to backs are a problem. This is a mathematical proof of concept project. However, I believe this project could demonstrate the method that the NBA and other sports leagues use to eliminate games on consecutive days.

Step 1 is a 60,000 variable linear programming model which is essentially a computer stitching together pre-determined road trips into a sensible season. (There's actually 2 LP models and a manually generated beginning of the season.) Step 2 is manipulating the large amount of output using Python which is useful for rapidly generating new schedules and comparing output. A key aspect of steps 1 and 2 is checking my work which is described in the appendix. Finally step 3 is communicating the project through this website despite not being a web developer. I spend 40 hrs a week looking at spreadsheets, python and sql code as a data analyst and this is a demonstration of my own personal work involving numerous technical skills. I would consider the scale of this project to be quite large for a project I work on after work and on weekends. There are still aspects of the computer generated schedule that could be improved.

Improvement Number 1: Back to Backs

A back to back is when a team plays a game on two consecutive days. For example, the Warriors played a game on April 9th and April 10th in 2021. In the second game, James Wiseman tore his meniscus in an injury which required the teenager to undergo season ending surgery. The Warriors had to play without a center (typically the tallest player) for the rest of the season.
The graphic below is for the actual NBA schedule from 2018-2019 which is the last full regular season played because of Covid.

For the schedule I created, the graphic below would not exist, each bar would just display zero.

The back to back totals refer to the number of games in which a game was played the day before, the first game of a back to back set is not counted.

Back to Back and Five Games in Seven Days By Team

Improvement Number 2: Total Distance Traveled Decreases by over 570,000 Miles

Equivalent to 23 laps around Earth or 2.1 laps around the planet Jupiter

Away teams play home teams in nearby cities, creating efficient routes for teams to follow. Furthermore, The Linear Programming model chooses the most efficient set of road trips to complete the season.
Note how every single team travels significantly less in my schedule compared to the actual 2018-2019 season. These calculations were generated automatically using a python script which senses the beginnings and ends of road trips. The script then calculates the distance required to leave home, fly to each city and subsequently fly home again. I made calculations on both the actual season and my own. Please see the Python Automation section and the Appendix for more details including output and the code itself.

Total Distance Comparison