Inspiration

NBA teams consistently have to make decisions about trading, free agency, and constructing the roster. However, even though a great player scores well on a points per game scale, it does not necessarily mean that this player would fit a particular team.

This led us to develop The Missing Piece, the NBA analytics tool, which will ask:

“Which is the missing piece, and who should play for it?”

It was our aim to create something more than just trade calculators with regards to the needs of a team, player fit, lineup synergies, salaries, and team impact projections.

What it does

Missing Piece uses NBA player and team statistics to determine the team’s weakness points and find out who among those players could improve the situation.

Some of the things users can discover are:

Player offensive and defensive efficiency Player net rating Player shooting/spacing ability Player rebounding and ball-handling ability Player salary/contract Players' line-up chemistry Team projected performance

The results are further converted to charts and comparison tables with scores and suggestions.

Unlike “Which one is the better player?”, the question Missing Piece asks is “Which one is the better player for this particular team?”

How we built it

The Missing Piece was mainly implemented using Python. Our source of NBA data involved scraping from APIs and datasets. We cleaned and transformed the data and used Python for our statistical analysis and model building.

Features we designed involved player performance, weakness of the team, efficiency, salary, and fit. With this we evaluated and made predictions on how suitable certain players are on our team roster.

Furthermore, we designed an interactive visualization of our work.

Challenges we ran into

The difficulty with which we worked on NBA APIs and data sets. Data sets came from various sources, and thus their formats, naming conventions, and issues related to missing values as well as API constraints had to be accounted for. We also couldn't get the data from the last 2 years so we had used data from a few years back (2024).

It was important to integrate the Python analysis into our UI and decide how we would communicate complex analytical outputs using easy-to-understand charts and scores.

Another difficulty was that of finding a balance between complexity and performance of the analysis.

Accomplishments that we're proud of

It’s nice to be able to convert NBA raw data to a working application that can indeed contribute towards solving a real sports decision-making problem.

What we’re most proud of is developing a mechanism of evaluating fit of players, not the players themselves. Same player can be worth entirely differently depending on the team acquiring him.

What we are proud of is combining data analysis, modeling, APIs and user interface into one whole thing.

What we learned

Through this project, we came to realize that sports analytics is not just about coming up with relevant metrics. We learned the importance of data cleaning, feature engineering, and context in building an analytics model.

We were also introduced to how one goes about programming with Python, using APIs, manipulating data, building predictive models, and creating data visualizations to better understand how complicated analytics can be simplified.

But above all, what we came to learn is that the most useful sports analytics question is not always “Who is the best?” but “Who is the best for this situation?”

What's next for The Missing Piece

In order to enhance the realism and the completeness of our project, we need to include more advanced player tracking stats, as well as more detailed lineup and match-up analysis along with improved prediction models.

In addition, we would like to take the project one step further and move from player recommendation to simulation of trades for the users to see how their decisions could impact their teams' future.

Finally, we would like The Missing Piece to evolve into a virtual version of an NBA front office decision-making platform.

Built With

Share this project:

Updates

Submission history