How progressive is your NBA team’s offense?

By Stephen Shea, Ph.D. (@SteveShea33)

July 17, 2017

NBA offenses are evolving. The increased reliance on 3-point shooting gets the most fanfare, but there is more to it than that. Teams are restructuring lineups and redesigning plays in hopes of improving all facets of shot selection, counterattacking with speed, and moving the ball faster.

When analytics assess offenses, it’s always a question of efficiency. Efficiency is the ultimate goal, but it relies on both good strategy and proper execution. And execution requires talent.

How does one evaluate scheme independent of efficiency? Doing so would be a means to better understand if recent Brooklyn or Philadelphia squads were adapting to the modern game even when their efficiencies were below average. In other words, it would be a way to see if these teams that were thin on talent were “playing the right way.”

At the other end, there are almost certainly talented teams that aren’t keeping pace with recent trends among NBA offenses. It’s the best teams that have the least incentive to change. Said another way, desperation tends to precede innovation.

But talent can override a suboptimal offensive design, and so, efficiency metrics blur systems’ flaws.

We look back at the last three NBA seasons, and with a heavy reliance on spatial-tracking data, offer ways to assess shot selection, ball movement and counterattacking. In the end, we aggregate these markers to see which offenses have been the most progressive.

Shot Selection

Shots at the hoop, from behind the arc and at the free-throw line are the game’s most efficient.  The analytics are clear that teams should be building rosters and offenses with the intent of shifting a greater percentage of their shots to these attempts (where shots include trips to the free-throw line). To measure shot selection, we can look at just that—the percentage of a team’s shots that come from at the hoop, behind the arc or at the free throw line. (Again, a trip the free-throw line for two or three is considered a “shot.”)

Note that we’re looking at FGA and not FGM. This is a measure of shot choice and not efficiency.

Not surprisingly, Daryl Morey’s Rockets have had the three highest seasons in the last three years in regards to this metric.  (All seasons are listed in the table below.) The highest such percentage was the 2017 Rockets at 84%.

Teams are trending towards better shot selection. After the Rockets, the next five highest seasons in this metric came from 2017. Six of the bottom seven came from 2015.

The league average has risen from 63% in 2015 to 65% in 2016 to 67% in 2017.

12017Houston Rockets0.84
22015Houston Rockets0.77
32016Houston Rockets0.77
42017Brooklyn Nets0.75
52017Boston Celtics0.74
62017Cleveland Cavaliers0.73
72017Denver Nuggets0.73
82017Philadelphia 76ers0.72
92015Philadelphia 76ers0.72
102016Golden State Warriors0.72
112017Golden State Warriors0.72
122016Atlanta Hawks0.72
132016Philadelphia 76ers0.71
142017Oklahoma City Thunder0.71
152017Milwaukee Bucks0.71
162017Atlanta Hawks0.70
172016Denver Nuggets0.70
182017Utah Jazz0.70
192015Cleveland Cavaliers0.69
202017Portland Trail Blazers0.69
212016Cleveland Cavaliers0.69
222017LA Clippers0.68
232016Portland Trail Blazers0.68
242015Detroit Pistons0.68
252016Charlotte Hornets0.68
262015Atlanta Hawks0.68
272017Memphis Grizzlies0.68
282017Charlotte Hornets0.67
292016Oklahoma City Thunder0.67
302016Boston Celtics0.67
312016Phoenix Suns0.67
322017Miami Heat0.67
332017Los Angeles Lakers0.67
342015Denver Nuggets0.66
352016Detroit Pistons0.66
362015New Orleans Pelicans0.66
372016Utah Jazz0.66
382015Chicago Bulls0.66
392015Golden State Warriors0.66
402016Toronto Raptors0.66
412017New Orleans Pelicans0.66
422015Utah Jazz0.66
432016Sacramento Kings0.66
442015Dallas Mavericks0.65
452016Dallas Mavericks0.65
462016LA Clippers0.65
472015Phoenix Suns0.65
482017Sacramento Kings0.65
492017Washington Wizards0.65
502016New Orleans Pelicans0.65
512015Toronto Raptors0.64
522015Oklahoma City Thunder0.64
532015Los Angeles Clippers0.64
542017Phoenix Suns0.64
552016Washington Wizards0.64
562016Milwaukee Bucks0.63
572017Toronto Raptors0.63
582017New York Knicks0.63
592015Miami Heat0.63
602017Orlando Magic0.63
612015Milwaukee Bucks0.63
622017Dallas Mavericks0.63
632017Minnesota Timberwolves0.63
642015Boston Celtics0.63
652015Portland Trail Blazers0.63
662016Los Angeles Lakers0.63
672015Sacramento Kings0.62
682015San Antonio Spurs0.62
692016Memphis Grizzlies0.62
702015Orlando Magic0.62
712016Indiana Pacers0.62
722016Orlando Magic0.61
732017Chicago Bulls0.61
742016Chicago Bulls0.61
752017San Antonio Spurs0.60
762017Indiana Pacers0.60
772016Miami Heat0.60
782016Minnesota Timberwolves0.59
792015Brooklyn Nets0.59
802015Indiana Pacers0.58
812016Brooklyn Nets0.58
822016New York Knicks0.58
832017Detroit Pistons0.57
842015Los Angeles Lakers0.57
852015Memphis Grizzlies0.57
862015Washington Wizards0.56
872015Charlotte Hornets0.56
882016San Antonio Spurs0.56
892015New York Knicks0.56
902015Minnesota Timberwolves0.56

Ball Movement

The NBA’s abolishment of the illegal defense rule allowed NBA teams to help off the ball. Help defense limited the efficiency of isolation-driven offenses. The three-point line together with stricter whistles on physical play on and off the ball have provided an offensive counter-strategy. Teams that space with 3-point threats and quickly swing the ball force defenses into rotations that will free up a cutter to the hoop or a catch-and-shoot opportunity on the perimeter.

Shot selection metrics helps in the understanding of offensive spacing, but don’t directly get at ball movement. Two modern metrics constructed on spatial-tracking data do.

Seconds per touch is the average amount of time a player holds the ball before passing, shooting, drawing a foul, or turning the ball over. Quick ball movement leads to a lower average seconds per touch for the team.

In this metric Golden State is king. They’ve had three of the four best scores over the last three seasons.

The worst team in 2017 was Toronto. DeMar DeRozan doesn’t do much for the Raptors’ shot selection or ball movement.

Ball movement is good, but it’s often the specific action of stringing two swift passes together that generates great opportunities.

Secondary assists occur when a team makes two quick passes to a made shot. They are the so-called “hockey assists,” and an indicator of smart and rapid ball movement on offense.

Secondary assists per game are presented with seconds per touch in the table below. Golden State had the three best seasons.  Beyond Golden State, this is an area where San Antonio, Atlanta and Boston scored well.

(Secondary assists are linked to efficiency. It would be better to use secondary assist opportunities—two quick passes to a FGA—but this is not publicly available.)

YearTeamSec/Touch RankSec/Touch2ndAst/Gm Rank2ndAst/Gm
2016Golden State Warriors12.3919.68
2017Golden State Warriors42.4329.65
2015Golden State Warriors22.4137.91
2015San Antonio Spurs92.5247.51
2016Atlanta Hawks82.4957.29
2016San Antonio Spurs252.6467.12
2015Atlanta Hawks112.5477.07
2017Boston Celtics142.5686.84
2015Milwaukee Bucks362.7296.73
2015Los Angeles Clippers322.70106.57
2017San Antonio Spurs302.69116.31
2017Atlanta Hawks222.61126.29
2016Chicago Bulls282.66136.29
2016Cleveland Cavaliers632.85146.20
2015Memphis Grizzlies462.77156.17
2015Chicago Bulls552.79166.09
2016Boston Celtics62.46176.06
2015Houston Rockets272.66186.00
2017Denver Nuggets422.74196.00
2017Charlotte Hornets482.78205.99
2015Indiana Pacers532.79215.99
2017Cleveland Cavaliers722.90225.95
2015Boston Celtics162.58235.79
2017Milwaukee Bucks472.78245.78
2015Cleveland Cavaliers662.87255.72
2016Houston Rockets292.68265.71
2016Denver Nuggets582.83275.71
2015Washington Wizards382.73285.65
2017Memphis Grizzlies672.87295.65
2017Sacramento Kings352.71305.62
2017New York Knicks192.60315.59
2016Washington Wizards212.60325.57
2017Orlando Magic372.73335.54
2016New York Knicks122.54345.50
2016Milwaukee Bucks542.79355.50
2016Phoenix Suns152.57365.49
2017Philadelphia 76ers32.42375.46
2017Indiana Pacers642.86385.44
2016Charlotte Hornets442.76395.44
2016Dallas Mavericks242.63405.40
2016Minnesota Timberwolves702.89415.39
2017Minnesota Timberwolves762.92425.39
2015Charlotte Hornets412.74435.37
2016Indiana Pacers312.70445.34
2015Brooklyn Nets853.00455.34
2016Orlando Magic342.71465.32
2015Utah Jazz52.46475.26
2017Chicago Bulls332.71485.26
2016Sacramento Kings452.77495.25
2017Utah Jazz502.78505.21
2015Portland Trail Blazers712.90515.20
2015New York Knicks72.48525.19
2015Minnesota Timberwolves682.89535.19
2016Portland Trail Blazers802.95545.07
2016Brooklyn Nets602.84555.06
2017Houston Rockets492.78565.02
2016Memphis Grizzlies562.80575.00
2015Toronto Raptors863.00584.99
2015Dallas Mavericks182.59594.98
2017Brooklyn Nets132.55604.95
2016LA Clippers622.85614.94
2017Portland Trail Blazers873.00624.91
2017New Orleans Pelicans262.66634.90
2015Detroit Pistons772.93644.84
2017Phoenix Suns202.60654.84
2017LA Clippers512.78664.80
2017Washington Wizards792.93674.78
2016Oklahoma City Thunder832.96684.77
2015Orlando Magic612.85694.68
2017Los Angeles Lakers432.75704.67
2015Denver Nuggets752.92714.67
2015Sacramento Kings692.89724.65
2015Philadelphia 76ers102.53734.55
2017Detroit Pistons522.79744.51
2016Miami Heat652.87754.50
2016Detroit Pistons812.95764.49
2016Toronto Raptors732.91774.48
2016New Orleans Pelicans402.73784.48
2017Toronto Raptors883.02794.44
2017Miami Heat742.92804.33
2016Utah Jazz232.61814.27
2015Phoenix Suns392.73824.18
2015Miami Heat572.82834.14
2015New Orleans Pelicans903.13844.10
2016Philadelphia 76ers172.59854.09
2015Oklahoma City Thunder592.84864.06
2017Oklahoma City Thunder782.93874.06
2017Dallas Mavericks822.95884.05
2015Los Angeles Lakers893.09893.89
2016Los Angeles Lakers842.98903.34


It’s easier to score when the defense isn’t ready. Teams that can get out in transition will be rewarded with better opportunities.

Leicester City shocked the English Premier League with a counterattacking style in 2016. While not quite as shocking, Golden State has been the NBA’s equivalent in terms of scheme.

When Golden State gets possession, they counter fast. In 2014-15, 36% of their offense came between 2 and 9 seconds on the shot clock. That led the league, where the average was 26%. In total, the Warriors outscored their opponents by 1062 points (or 13 points per game) in that stretch of the shot clock. In the rest of the time, they were outscored by 229 points.

When teams attack fast, it also means that they usually get a shot up before all their players get down the floor on offense. This has the added benefit of providing good position for preventing opponents’ transition.  The offensive and defensive strategies complement each other, and the teams that execute it well will get out and score quickly while forcing long and difficult halfcourt possessions on their opponents.

A good measure of the extent to which a team attempts to counterattack is how fast they move on offense relative to defense. The table below displays the average speed of a player for the given team divided by the average speed of a player on defense only for each team.

12016Golden State Warriors1.13
22015Golden State Warriors1.13
32017Philadelphia 76ers1.12
42017Golden State Warriors1.12
52016New Orleans Pelicans1.12
62017Denver Nuggets1.11
72015San Antonio Spurs1.11
82017Portland Trail Blazers1.11
92016Charlotte Hornets1.11
102017Charlotte Hornets1.11
112016Oklahoma City Thunder1.11
122016Denver Nuggets1.10
132016Portland Trail Blazers1.10
142017Los Angeles Lakers1.10
152015Charlotte Hornets1.10
162017Brooklyn Nets1.10
172016Washington Wizards1.10
182017New Orleans Pelicans1.10
192017San Antonio Spurs1.10
202015New Orleans Pelicans1.10
212017Detroit Pistons1.10
222016Boston Celtics1.10
232015Portland Trail Blazers1.10
242016Orlando Magic1.10
252015Boston Celtics1.10
262017Atlanta Hawks1.09
272017Phoenix Suns1.09
282017Oklahoma City Thunder1.09
292015Oklahoma City Thunder1.09
302015Orlando Magic1.09
312016San Antonio Spurs1.09
322015New York Knicks1.09
332015Detroit Pistons1.09
342016Atlanta Hawks1.09
352016Chicago Bulls1.09
362017Miami Heat1.09
372016Detroit Pistons1.09
382016Dallas Mavericks1.09
392015Chicago Bulls1.09
402015Philadelphia 76ers1.09
412015Utah Jazz1.09
422017Houston Rockets1.09
432015Washington Wizards1.09
442016New York Knicks1.09
452015Atlanta Hawks1.09
462017Orlando Magic1.09
472016Sacramento Kings1.09
482016Utah Jazz1.08
492015Denver Nuggets1.08
502016Miami Heat1.08
512015Milwaukee Bucks1.08
522017Utah Jazz1.08
532015Miami Heat1.08
542017New York Knicks1.08
552015Dallas Mavericks1.08
562016Indiana Pacers1.08
572015Sacramento Kings1.08
582015Minnesota Timberwolves1.08
592017Boston Celtics1.08
602016Philadelphia 76ers1.08
612017Chicago Bulls1.08
622015Memphis Grizzlies1.08
632016Los Angeles Lakers1.08
642017Toronto Raptors1.08
652015Los Angeles Clippers1.08
662015Phoenix Suns1.08
672016Brooklyn Nets1.08
682017Indiana Pacers1.08
692015Houston Rockets1.08
702016Houston Rockets1.08
712017Washington Wizards1.08
722015Brooklyn Nets1.08
732016Toronto Raptors1.08
742017Dallas Mavericks1.08
752016Phoenix Suns1.07
762017Milwaukee Bucks1.07
772017Sacramento Kings1.07
782016Milwaukee Bucks1.07
792016LA Clippers1.07
802015Cleveland Cavaliers1.07
812016Memphis Grizzlies1.07
822015Los Angeles Lakers1.07
832016Minnesota Timberwolves1.07
842017LA Clippers1.07
852015Indiana Pacers1.07
862017Memphis Grizzlies1.06
872015Toronto Raptors1.06
882016Cleveland Cavaliers1.06
892017Cleveland Cavaliers1.06
902017Minnesota Timberwolves1.06

Modern Offensive Strategy Score

The four statistics detailed in the previous three sections are not independent. Rather, the ideal modern offense will get out in transition with quick passing, and in doing so, create open looks from favorable locations.

We standardized the four statistics and then summed them. The result, which we call Modern Offensive Strategy Score (MOSS), is displayed below.

12016Golden State Warriors0.722.399.681.1310.27
22017Golden State Warriors0.722.439.651.129.19
32015Golden State Warriors0.662.417.911.137.32
42017Philadelphia 76ers0.722.425.461.125.60
52016Atlanta Hawks0.722.497.291.094.65
62015San Antonio Spurs0.622.527.511.114.18
72017Boston Celtics0.742.566.841.083.76
82017Denver Nuggets0.732.746.001.113.65
92017Brooklyn Nets0.752.554.951.103.60
102016Boston Celtics0.672.466.061.103.40
112015Atlanta Hawks0.682.547.071.093.25
122017Houston Rockets0.842.785.021.092.99
132017Atlanta Hawks0.702.616.291.092.99
142015Houston Rockets0.772.666.001.082.56
152016Houston Rockets0.772.685.711.082.13
162017Charlotte Hornets0.672.785.991.112.10
172015Philadelphia 76ers0.722.534.551.091.89
182016Charlotte Hornets0.682.765.441.111.88
192016Denver Nuggets0.702.835.711.101.71
202015Utah Jazz0.662.465.261.091.70
212016Washington Wizards0.642.605.571.101.64
222015Boston Celtics0.632.585.791.101.40
232017San Antonio Spurs0.602.696.311.101.06
242017New Orleans Pelicans0.662.664.901.100.98
252016New Orleans Pelicans0.652.734.481.120.93
262016Dallas Mavericks0.652.635.401.090.84
272016San Antonio Spurs0.562.647.121.090.81
282016Phoenix Suns0.672.575.491.070.70
292016Chicago Bulls0.612.666.291.090.70
302015Milwaukee Bucks0.632.726.731.080.69
312015Chicago Bulls0.662.796.091.090.63
322017Los Angeles Lakers0.672.754.671.100.60
332017Phoenix Suns0.642.604.841.090.48
342015Los Angeles Clippers0.642.706.571.080.46
352017New York Knicks0.632.605.591.080.34
362016Philadelphia 76ers0.712.594.091.080.30
372017Milwaukee Bucks0.712.785.781.070.26
382015Dallas Mavericks0.652.594.981.080.16
392017Utah Jazz0.702.785.211.080.15
402017Portland Trail Blazers0.693.004.911.110.12
412016Portland Trail Blazers0.682.955.071.100.09
422015New York Knicks0.562.485.191.09-0.08
432016Orlando Magic0.612.715.321.10-0.13
442016New York Knicks0.582.545.501.09-0.17
452016Utah Jazz0.662.614.271.08-0.26
462017Orlando Magic0.632.735.541.09-0.31
472016Sacramento Kings0.662.775.251.09-0.32
482016Oklahoma City Thunder0.672.964.771.11-0.38
492017Cleveland Cavaliers0.732.905.951.06-0.67
502015Charlotte Hornets0.562.745.371.10-0.68
512017Sacramento Kings0.652.715.621.07-0.78
522016Cleveland Cavaliers0.692.856.201.06-0.82
532015Detroit Pistons0.682.934.841.09-0.83
542017Oklahoma City Thunder0.712.934.061.09-0.85
552016Indiana Pacers0.622.705.341.08-0.87
562015Cleveland Cavaliers0.692.875.721.07-0.88
572015Portland Trail Blazers0.632.905.201.10-0.94
582017Chicago Bulls0.612.715.261.08-1.18
592015Washington Wizards0.562.735.651.09-1.33
602015Memphis Grizzlies0.572.776.171.08-1.46
612017Miami Heat0.672.924.331.09-1.53
622017LA Clippers0.682.784.801.07-1.57
632015Orlando Magic0.622.854.681.09-1.59
642016Milwaukee Bucks0.632.795.501.07-1.66
652017Memphis Grizzlies0.682.875.651.06-1.66
662015Oklahoma City Thunder0.642.844.061.09-1.67
672015Denver Nuggets0.662.924.671.08-1.72
682016Detroit Pistons0.662.954.491.09-1.74
692015Phoenix Suns0.652.734.181.08-1.75
702017Detroit Pistons0.572.794.511.10-1.83
712016LA Clippers0.652.854.941.07-2.25
722017Indiana Pacers0.602.865.441.08-2.29
732015Miami Heat0.632.824.141.08-2.33
742015Indiana Pacers0.582.795.991.07-2.44
752017Washington Wizards0.652.934.781.08-2.46
762016Toronto Raptors0.662.914.481.08-2.50
772016Memphis Grizzlies0.622.805.001.07-2.52
782015Sacramento Kings0.622.894.651.08-2.52
792015New Orleans Pelicans0.663.134.101.10-2.58
802016Miami Heat0.602.874.501.08-2.71
812016Brooklyn Nets0.582.845.061.08-2.95
822015Minnesota Timberwolves0.562.895.191.08-3.29
832016Minnesota Timberwolves0.592.895.391.07-3.32
842017Minnesota Timberwolves0.632.925.391.06-3.36
852015Brooklyn Nets0.593.005.341.08-3.45
862017Toronto Raptors0.633.024.441.08-3.51
872015Toronto Raptors0.643.004.991.06-3.66
882017Dallas Mavericks0.632.954.051.08-3.72
892016Los Angeles Lakers0.632.983.341.08-4.42
902015Los Angeles Lakers0.573.093.891.07-6.16

With all of the talent in Golden State, the intelligence in their offensive design is often overlooked. They have been playing a progressive style of basketball for several seasons, and they’ve blown out the field in MOSS.

The Lakers under head coach Byron Scott appeared oblivious to how the game was evolving, but new coach Luke Walton, hired from Golden State’s staff, has caught the team up in a hurry.

Tom Thibodeau hasn’t had the same impact in Minnesota.

MOSS is constructed with a focus on scheme over execution, and so, it should not correlate with offensive efficiency. In fact, as discussed above, it’s often the least talented teams that are the most innovative.

To understand if this modern playing style is effective (to teams other than Golden State), we have to compare teams to themselves.

NBA offensive rating is trending up in recent years. Across the league, it has risen from 105.6 to 106.4 to 108.8 in the last three seasons. MOSS has been trending with it. Average MOSS has gone from -0.50 to 0.10 to 0.40.

Among the 30 NBA teams, 25 saw an improvement in ORtg from 2016 and 2017. There were 17 teams that saw an improvement in MOSS, and all of those saw an improvement in ORtg. This means that among the 13 teams that saw their MOSS decline, 5 saw their ORtg follow.

Among the 17 teams that saw an improvement in MOSS, the average change in ORtg was +3.1 points per 100 possessions. Among the 13 that regressed in MOSS, the average change in ORtg was +1.3.

Final Thoughts

As the game evolves, it can be helpful to have means to assess the extent to which organizations are keeping pace.

MOSS indicates that Golden State, Philadelphia, Boston, Denver, Brooklyn, and Houston employ progressive offenses, even if some of those teams don’t yet have the talent to capitalize.

Leave a comment


  1. SnarkyDolt

     /  July 17, 2017

    DAE think threes are worth more than twos?

  2. chris

     /  July 26, 2017

    it will be interesting to see what Philly can do this year. They had good stretches of team play last year before injuries sent them into tank mode.

  3. It would be interesting as the minnesota timbelwolves team will come, with additions of Jimmy Buttler, Taj Gibson and jeff Teague to the team.

    Coach Tom Thibodeau will have a great challenge this season that the team has a good chemistry on the court.

    Hope so…

    They have a great team that can fight any team both offensive and defensive.

    Great post …..

  4. Anonymous

     /  October 23, 2017

    Interesting that the Spurs do not show up in final list

  5. HoopV

     /  October 23, 2017

    interesting spurs do not show up in final list

  6. Ioannis michailidis

     /  November 1, 2017

    Thank you for another great article. Always looking forward to you work.

  1. C.J. Miles acquisition the start of Raptors’ attempts to modernize – Sportblogg
  2. Weekly Sports Analytics News Roundup - July 18th, 2017 - StatSheetStuffer
  3. How progressive is your NBA team’s offense? — Basketball Analytics | Advance Pro Basketball
  4. How Progressive is Your Team’s Offense? -
  5. Your Team's Shot Selection -

Leave a Reply

Your email address will not be published.