
NBA Advantages Dashboard
An important step of all data tools is the ability to grant access and training to its users. A custom, well-designed dashboard accessible in the cloud is one of the best ways to begin impactful analysis across an intended group.
Recently I designed some really nice visualizations in Tableau for use in analyzing the NBA and its teams. They feature unique perspectives and custom metrics that bridge what I've identified as being a gap between superficial data (i.e. box score) and advanced metrics (i.e. RAPTOR).
My ultimate goal is to deliver these tools using a robust data pipeline. With the metrics defined and visualizations designed, I turn my attention to access and delivery. Thanks to Tableau, we have a customizeable tool with cloud hosting.
I aim to put together the metrics and visualizations into a public, Tableau dashboard in the cloud for simple delivery and powerful transformation through the interface.
Learning
My previous experience with dashboard reporting has mostly been localized to the cloud BI tool Grow that I've implemented and supported at TETON Sports. While similar in the UI as a low-code data environment, Tableau is far more advanced.
I felt the quickest way to the end result and "hack" some of the learning curve would be to tap into the knowledge of the industry.
I found an excellent resource on creating dashboards in Tableau that not helped me setup the NBA Advantages Dashboard, but also inspired future project I'm interested in (stay tuned).
I was able to experiment with the settings and configuration after having distilled the basics from the video. It resulted in some pretty stunning dashboards, if I do say so myself. Let's take a look!
The Dashboards
While I didn't dive into every perspective and tool built upon the foundation of the "NBA eFG% Advantage" and "NBA Points/Possession Swing" metrics, I had approximately 7-10 resources that I wanted on a dashboard to give a comprehensive picture.
All of these tools could essentially be classified as a "league" tool (where isolating a single team yielded little value in comparison to a macro view of the league) or a "team" tool that afforded greater detail and inter-connections.
I decided to organize the dashboard into tabs of the aforementioned groups. Here's a look into each:
League Tab
Here's a demo of the "League Tab":

We see two visualizations focusing on the metrics mentioned above. Corresponding team colors and logos make the visualizations aesthetically appealing and there's a lot of power in the filters located on the right.
Users can pick from a slew of attributes that will dynamically transform the visualizations. Some of my favorite configurations are:
- Filtering the "Opponents" attribute to see how teams fare against a particular conference, division, or type of opponent (users must be familiar with such context in order to select the appropriate teams)
- Filtering the "Game Date" range to look at specific stretches likes months, pre/post-All-Star break, etc.
- Filtering the "Type" attribute to select "Playoffs" and then use the "Game Date" to adjust for entire playoff series.
This league tool is very valuable to get a picture into who's performing against who and how.
Team Tab
Here's a demo of the "Team Tab":

Here you'll see new tools and presentation, but they all still revolve around the core metrics we've been talking about. A similar set of filters are available here as well.
This is tool is very valuable as a first-look that may prompt use of the "League" tool to put certain data points into context while also being a second-look tool when needing additional info from observations made with the "League" tool.
Problem Solving
Dashboard Tabs
My first attempts to publish a dashboard only displayed an individual workbook sheet. This complicated matters since I wanted users to have access to both "League" and "Team" tabs.
I found the solution by selecting "Show All Sheets" in the Tableau Public page for the dashboard. Then it was a matter of hiding the sheets feeding the dashboard and I achieved the result I was looking for.
Displaying the Big Team Logo
An aesthetic I wanted to achieve was to display the team logo in the top-left corner of the "Team" tab when the respecting team acronym is selected from the filter. I search online and found odd solutions, often with including the file name in the original data set.
Given that Tableau allows us to relate custom shapes to column values, there had to be a simpler way.
From my data visualization experience with {ggplot2} in R, I implemented a solution by ploting a single observation at (0,0) in the cartesian plane and setting the shape to depend on the team in the filter. Removing all semblance of plot underneath the logo (stripping the axis, labels, grid, etc.) and depositing the plot into the dashboard and voila!
If you haven't checked out these dashboards yet, do so HERE
The next step in this project is to focus on automating the data extraction process into Tableau. This may prove tricky since the ideal solution involved Tableau Server, however, there should definitely be approaches to explore.