NBA Viewership
The NBA has been in the news recently because of its relatively low viewership thus far through the regular season. By most accounts its ratings are down 20% or more this season as compared to past seasons. Such a large jump naturally gets people to start talking and speculating. Some of the theories mentioned include the following:
Competition with an intense news cycle including the US election this past fall
Star players either being rested (commonly referred to as ‘load management’) or injured has brought fan engagement down
The season is too long and thus individual games have become less meaningful
Broadcasters are not compelling enough
But one of the most interesting theories, pushed out there by former NBA great Shaquille O’Neal among others, is that there are too many three-pointers being taken in games now.
Shaq’s opinion was even recently the subject of an article by BarStool Sports, where they did a deeper dive on 3 pointer statistics over the NBA history.
At Pontem, this isn’t the first time we’ve looked at NBA statistics. The first article we ever wrote used statistics to find unexpected NBA performances.
Rather than relying on the Barstool sports, we can perform our own analysis to understand what is going on with NBA three-pointers.
Grabbing the Data
In order to understand how NBA three-pointers are changing, we’ll need to obtain quite a lot of data on all the various games played in the NBA across the various seasons from 1980 to the present.
Just like in our unexpected performances article, here again we will use the open source package called ‘nba_api’ through Python. We’ll create a helper function that grabs all the available games across a stretch of seasons.
from nba_api.stats.endpoints import leaguegamefinder, boxscoretraditionalv2
import pandas as pd
import time
def get_all_games(start_year, end_year):
"""
Fetch all NBA games for seasons from start_year to end_year.
"""
gamefinder = leaguegamefinder.LeagueGameFinder(season_nullable=f"{start_year}-{str(start_year + 1)[-2:]}")
all_games = pd.DataFrame()
for year in range(start_year, end_year + 1):
print(f"Fetching games for {year}-{year + 1}...")
gamefinder = leaguegamefinder.LeagueGameFinder(season_nullable=f"{year}-{str(year + 1)[-2:]}")
games = gamefinder.get_data_frames()[0]
all_games = pd.concat([all_games, games], ignore_index=True)
time.sleep(1) # To avoid hitting API rate limits
return all_games
Then, we’ll pass in our desired date range, calling our main function, and save the resulting data.
# Define start and end years
START_YEAR = 1980
END_YEAR = 2025
# Get all games since 1980
games = get_all_games(START_YEAR, END_YEAR)
games.to_csv("NBA Games.csv", index=False)
The end result is a data frame containing ~125,000 games played between the years 1980 and today along with high-level game statistics such as the teams involved, date, points etc. The columns that we are particularly interested in are the FGA, FGM, FG3A, FG3M, which are the field goals attempted / made and the three-pointers attempted / made respectively.
Analyzing the Data
Now that we have this data ourselves, we can start to look at all kinds of metrics. Starting first with how the percentage of three-pointers taken during each season has changed over time. As we can see below, there has been an almost linear increase in the number of three-pointers taken with each new season. It is almost the case now that 1 in every 3 shots taken is a three-pointer! Compare that with the early 1990’s where only 1 in every 10 shots was a three-pointer.
I’m sure you may be thinking “aren’t three-pointers exciting though?” So why would it be a bad thing if the percentage of three-pointers taken is increasing….
Well it may depend on who you are asking, but a lot of people would agree that making a three-pointer IS exciting, however missing a three-pointer, or rather, missing a bunch of three-pointers is the opposite of exciting.
The chart below shows how good the NBA is at making three-pointers. While the 1980’s and 90’s saw an increase in the accuracy of shooters, since that time, the accuracy of three-point shooting has hovered fairly consistently around 36%.
If teams are steadily increasing the number of three-pointers taken, but still only making the same percentage, it means there are a whole lot more three’s being missed in any given game. In fact, the NBA was called out for this on Dec 14 when the Hornets and Bulls combined for the most MISSED three-pointers ever in an NBA game.
Sure, Stephen Curry making a three-pointer from 10 feet behind the arc is exciting, but for most teams without a star like Curry, it means your typical fan is now seeing close to 50 missed three-pointers every game.
Why 3 Pointers?
Assuming people don’t like seeing countless missed shots every game, it appears that Shaq may be on to something with his theory. So why then are NBA teams continuing to shoot more three-pointers every season? The answer to that is also rooted in analytics (which each NBA team now has a dedicated staff for).
To understand at a high-level why NBA teams are shooting more three-pointers, we need just two pieces of information, which we can obtain from our current dataset:
Average three-point accuracy - we found that this was around 36% and fairly consistent over the last decade for the entire NBA
Average two-point accuracy - using the same approach as above, we can see that this is typically around 52% for the entire NBA
Using these two pieces of information and some simple math, we can show that to maximize a teams possible points, they should take as many three-pointers as possible, because a three-pointer is after all worth 50% more than a two-pointer.
But this is looking at averages across the entire league. If you look at the shooting accuracy of specific teams, you can see why some teams should favor more three-pointers, while others should favor more two-pointers. The current 36% three-point accuracy in the league also happens to be about the cross over percentage required where shooting more three’s is a viable strategy.
Wrapping Up
It’s hard to say for sure whether the rise in three-pointers is the main driver behind NBA viewership declining, but the data around three-pointers does nonetheless tell an interesting story about the NBA and how the game is played now as compared with the past. Another thing that appears certain is that with most teams having several sharp shooters now, it seems imminent that the number of three-pointers taking per game is only expected to increase further as the analytics points to it as a good strategy for scoring more points. It will be up to the league to put in some kind of intervention to prevent this.