Analyzing the NBA Offensive Revolution with Machine Learning

Categorizing 8 years of NBA offenses

Much ink has been spilled over the NBA’s analytics revolution, most of which has been focused on the consequences of teams fully realizing that 3 pointers are worth 150% as much as 2 pointers. I’ve previously looked at categorizing offenses from the 22-23 season with machine learning. The same approach can be used on data over several years to identify trends in the league. has some excellent data on how often teams run different kinds of plays (pick and rolls, isos, spot ups, etc.) and how often each play type resulted in different outcomes (made shots, free throws, turnovers, etc.) stretching back to the 15-16 season. I gathered 179 different categories of data, ranging from assist to turnover ratio to how often teams earned free throws on pick and rolls where they passed to the screener. This kind of data is perfect for getting a broader picture of categories of offence over the last 8 seasons. While I would have loved to have this data for past eras as well, this time period is particularly interesting since it spans much of the NBA’s analytics revolution and transition into a more analytically-driven approach toward offense.

Since I’m now looking at a broader dataset, the categories from this analysis won’t be the same as those I got from looking at just the 22-23 seasons, but the basic mechanisms will remain the same. I use k-means clustering to group offenses from the past 8 seasons into different categories based on how similar they are across all the data categories. Teams that are in the same category generally had offenses that were broadly similar to each other, or at least were more statistically similar to each other than to teams in other categories. This lets us get categories of offenses from the data alone and see how these statistically-defined categories have gotten more or less popular over time.

Six kinds of NBA offense

The algorithm found six different categories of offenses over the past eight years. Note that there is a lot of variety within these categories, and not all teams in a category will perfectly fit all the characteristics of their category. The order of these doesn’t matter — don’t think that category 1 must be more similar to category 2 than it is to category 5. The numbers are just labels, but, to help make these categories easier to grasp, I’ve given each of them names that (hopefully) captures what makes them unique.

0. Heliocentric teams

Examples: 16-17 Cavaliers, 17-18 Rockets, 20-21 Hawks, 21-22 Bulls, 22-23 Mavericks


  • Iso-heavy (& good at them!)
  • Few turnovers
  • Lots of pick and roll, the ball usually stays with the ballhandler
  • Few handoffs, cuts, off screen possessions, and “miscellaneous” possessions
  • Get the lowest percentage of their points off of turnovers of any category
  • Three pointers are more likely to be unassisted than in any other category

Most teams that are heliocentric stay heliocentric — 2/3 of heliocentric teams in one season stayed in this category the next season. This shouldn’t be a surprise, since these teams typically revolve around a star or two, and, even in an era of player movement, stars don’t change teams that often.

1. Spray ‘n Pray

Examples: 15-16 Sixers, 17-18 Jazz, 18-19 Knicks, 21-22 Thunder, 22-23 Rockets


  • Rarely Post up
  • Take lots of Spot ups, and these are more often to result in a turnovers or fouls
  • Similarly, run lots of handoffs, which are more likely to result in a miss, turnover, or foul
  • Get the smallest percentage of their points from the midrange of any category.
  • Relatively bad at off screen plays and in transition
  • Bad at isolations – lowest FGM and highest TOV%
  • Bad at pick and roll – lowest FG% & highest TOV% when the ball handler keeps the ball in a pick and roll.

This category does some things that we associate with analytically smart offense (not relying on the midrange and post ups, taking lots of spot up shots, earning fouls where they can), but they do the basics poorly and love giving the other team the ball. More than half of teams that fell into this category one season were in a different category the next, which shouldn’t be surprising — teams don’t typically stay terrible for long, and this category largely consists of teams that are still figuring themselves out.

Interestingly, this category plummeted in popularity to only 3 members in the 22-23 season. I’ll be interested to see if this signals the beginning of the end for this category (perhaps as a sign that the base level of talent in the NBA has risen and talent is spread more evenly around the league) or if this was a one-off and this category will continue to have a place in the league for teams who are still trying to figure themselves out offensively.

2. Analytics Darlings

Examples: 16-17 Celtics, 19-20 Lakers, 21-22 Heat, 22-23 Nuggets

  • Get the highest percentage of their points in the paint of any category
  • Highest percentage of assisted 3s (and lowest percentage of unassisted 3s) of any category
  • Don’t get many of their points from isolations
  • Are very efficient in post ups
  • Lots of And-ones
  • Efficient on putbacks

These teams do what the analytics revolution loves most — layups, catch-and-shoot threes, and free throws whenever possible. Teams have gravitated towards this style over the last eight years, and most (64%) of teams that fit this category stay in it the next season.

3 Grinders

Examples: 15-16 Magic, 16-17 Spurs, 18-19 Blazers, 19-20 Pacers

These teams play at glacial pace, opting not to push in transition (and performing poorly on the rare cases that they do). With a heavy reliance on scoring in the midrange, this category is an obvious target to be killed off by the analytics revolution.

  • Slow-paced. Don’t run in transition & aren’t effective when they do
  • Love to pass to the roll man in pick and roll
  • Get the highest percentage of their points from midrange of any category
  • Get the lowest percentage of their points from fast breaks of any category.

This category went extinct after the 19-20 season, after which the last two holdouts (Indiana and Orlando) shifted into other categories.

4. Old School Hoopers

Examples: 15-16 Rockets, 16-17 Thunder, 19-20 Knicks, 21 -22 Raptors, 22-23 Raptors

In many ways, this category is the opposite of the Analytics Darlings. This category looked to be on the same trajectory as the Grinders but has been brough back from the dead by the Raptors, who are apparently quite fond of extinct things.

  • Love posting up
  • Take few spot up jumpers and have the lowest percentage of assisted field goals of any category
  • Bad effective field goal percentage
  • The hustle is real: Lots of putbacks, lots of points from free throws, and a heavy reliance on 2s rather than 3s
  • Get the highest percentage of their points off turnovers of any category

Most teams (62%) that were in this category one season weren’t in it the following year, largely because of the general trend away from this style of play.

5 Warriors

Every Warriors season except for 19-20 and literally no one else

The Golden State Warriors have been so unique that they are their own category. No other team has been in this category for even a single season, and every Warriors team except for the ill-fated 2019-2020 iteration fit into this category.

  • Few Isolations and Pick and Rolls
  • Many Turnovers, but any, many assists
  • Lots of cuts, off screen possessions, and “miscellaneous” possessions
  • Get relatively few putbacks
  • Take lots of 3s and few 2s
  • Get relatively points from free throws
  • Get a higher percentage of their points from fast breaks than any other category

Despite the Warriors being this decade’s model of success, all other teams have failed to replicate the Warriors’ unique offensive style, a testament to how well they have utilized their unique skillsets. Not a single one of the 232 non-Warriors offenses in the dataset fit into this category.

The uniqueness of the Warriors’ offense really makes me wish I could do similar analysis for past eras. Is there precedence for the most dominant team in an era being so unreplicable?

The Analytics Shift

A look into how many teams fell into each category each season shows a strong trend away from slower, midrange and post-up focused offenses like the Grinders and Old School Hoopers and towards more spread out and three-point reliant offenses like the Heliocentric teams and the Analytics Darlings.

Teams are color coded as:

0. Heliocentric
1. Spray ‘n Pray
2. Analytics Darlings
3. Grinders
4. Old School Hoopers
5. Warriors

In the last eight seasons, the league has transitioned away from the plodding style of the Grinders (3) and the inefficient, brute force style of the Old School Hoopers (4) and toward the star-dominated style of the Heliocentric teams (0) and the optimized style of the Analytics Darlings (2). And through all the changes, the Warriors (5) have been so unique that they’ve been a category of their own throughout the eight years.

The concentration of teams into a couple of these categories shouldn’t be taken as evidence that NBA offenses have gotten less diverse. If anything, we have evidence that we’ve transitioned between two roughly equally diverse offensive eras. If the kind of data I used had existed for earlier years, we would likely get the same story for any transitory period in NBA history, as the changes in style and efficiency over the era would eventually overwhelm differences among teams in any given season. For instance, offenses in the 22-23 season may have had a wide variety of approaches, but an offense from the 15-16 season would really stand out among them, thanks to changes in tactics, talent, and officiating. Even as we appear to be settling into a new mindset towards NBA offense, diversity continues to flourish — the two categories that dominated the 22-23 season (Heliocentric and Analytic Darlings) are radically different in many ways: how much they isolate, whether they take more assisted or unassisted threes, et cetera. And as the league has gotten better at utilizing players with unique skillsets, I expect the game will continue to evolve in unexpected ways.

Leave a Reply