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.
Rank | Year | Team | GoodShot% |
---|---|---|---|
1 | 2017 | Houston Rockets | 0.84 |
2 | 2015 | Houston Rockets | 0.77 |
3 | 2016 | Houston Rockets | 0.77 |
4 | 2017 | Brooklyn Nets | 0.75 |
5 | 2017 | Boston Celtics | 0.74 |
6 | 2017 | Cleveland Cavaliers | 0.73 |
7 | 2017 | Denver Nuggets | 0.73 |
8 | 2017 | Philadelphia 76ers | 0.72 |
9 | 2015 | Philadelphia 76ers | 0.72 |
10 | 2016 | Golden State Warriors | 0.72 |
11 | 2017 | Golden State Warriors | 0.72 |
12 | 2016 | Atlanta Hawks | 0.72 |
13 | 2016 | Philadelphia 76ers | 0.71 |
14 | 2017 | Oklahoma City Thunder | 0.71 |
15 | 2017 | Milwaukee Bucks | 0.71 |
16 | 2017 | Atlanta Hawks | 0.70 |
17 | 2016 | Denver Nuggets | 0.70 |
18 | 2017 | Utah Jazz | 0.70 |
19 | 2015 | Cleveland Cavaliers | 0.69 |
20 | 2017 | Portland Trail Blazers | 0.69 |
21 | 2016 | Cleveland Cavaliers | 0.69 |
22 | 2017 | LA Clippers | 0.68 |
23 | 2016 | Portland Trail Blazers | 0.68 |
24 | 2015 | Detroit Pistons | 0.68 |
25 | 2016 | Charlotte Hornets | 0.68 |
26 | 2015 | Atlanta Hawks | 0.68 |
27 | 2017 | Memphis Grizzlies | 0.68 |
28 | 2017 | Charlotte Hornets | 0.67 |
29 | 2016 | Oklahoma City Thunder | 0.67 |
30 | 2016 | Boston Celtics | 0.67 |
31 | 2016 | Phoenix Suns | 0.67 |
32 | 2017 | Miami Heat | 0.67 |
33 | 2017 | Los Angeles Lakers | 0.67 |
34 | 2015 | Denver Nuggets | 0.66 |
35 | 2016 | Detroit Pistons | 0.66 |
36 | 2015 | New Orleans Pelicans | 0.66 |
37 | 2016 | Utah Jazz | 0.66 |
38 | 2015 | Chicago Bulls | 0.66 |
39 | 2015 | Golden State Warriors | 0.66 |
40 | 2016 | Toronto Raptors | 0.66 |
41 | 2017 | New Orleans Pelicans | 0.66 |
42 | 2015 | Utah Jazz | 0.66 |
43 | 2016 | Sacramento Kings | 0.66 |
44 | 2015 | Dallas Mavericks | 0.65 |
45 | 2016 | Dallas Mavericks | 0.65 |
46 | 2016 | LA Clippers | 0.65 |
47 | 2015 | Phoenix Suns | 0.65 |
48 | 2017 | Sacramento Kings | 0.65 |
49 | 2017 | Washington Wizards | 0.65 |
50 | 2016 | New Orleans Pelicans | 0.65 |
51 | 2015 | Toronto Raptors | 0.64 |
52 | 2015 | Oklahoma City Thunder | 0.64 |
53 | 2015 | Los Angeles Clippers | 0.64 |
54 | 2017 | Phoenix Suns | 0.64 |
55 | 2016 | Washington Wizards | 0.64 |
56 | 2016 | Milwaukee Bucks | 0.63 |
57 | 2017 | Toronto Raptors | 0.63 |
58 | 2017 | New York Knicks | 0.63 |
59 | 2015 | Miami Heat | 0.63 |
60 | 2017 | Orlando Magic | 0.63 |
61 | 2015 | Milwaukee Bucks | 0.63 |
62 | 2017 | Dallas Mavericks | 0.63 |
63 | 2017 | Minnesota Timberwolves | 0.63 |
64 | 2015 | Boston Celtics | 0.63 |
65 | 2015 | Portland Trail Blazers | 0.63 |
66 | 2016 | Los Angeles Lakers | 0.63 |
67 | 2015 | Sacramento Kings | 0.62 |
68 | 2015 | San Antonio Spurs | 0.62 |
69 | 2016 | Memphis Grizzlies | 0.62 |
70 | 2015 | Orlando Magic | 0.62 |
71 | 2016 | Indiana Pacers | 0.62 |
72 | 2016 | Orlando Magic | 0.61 |
73 | 2017 | Chicago Bulls | 0.61 |
74 | 2016 | Chicago Bulls | 0.61 |
75 | 2017 | San Antonio Spurs | 0.60 |
76 | 2017 | Indiana Pacers | 0.60 |
77 | 2016 | Miami Heat | 0.60 |
78 | 2016 | Minnesota Timberwolves | 0.59 |
79 | 2015 | Brooklyn Nets | 0.59 |
80 | 2015 | Indiana Pacers | 0.58 |
81 | 2016 | Brooklyn Nets | 0.58 |
82 | 2016 | New York Knicks | 0.58 |
83 | 2017 | Detroit Pistons | 0.57 |
84 | 2015 | Los Angeles Lakers | 0.57 |
85 | 2015 | Memphis Grizzlies | 0.57 |
86 | 2015 | Washington Wizards | 0.56 |
87 | 2015 | Charlotte Hornets | 0.56 |
88 | 2016 | San Antonio Spurs | 0.56 |
89 | 2015 | New York Knicks | 0.56 |
90 | 2015 | Minnesota Timberwolves | 0.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.)
Year | Team | Sec/Touch Rank | Sec/Touch | 2ndAst/Gm Rank | 2ndAst/Gm |
---|---|---|---|---|---|
2016 | Golden State Warriors | 1 | 2.39 | 1 | 9.68 |
2017 | Golden State Warriors | 4 | 2.43 | 2 | 9.65 |
2015 | Golden State Warriors | 2 | 2.41 | 3 | 7.91 |
2015 | San Antonio Spurs | 9 | 2.52 | 4 | 7.51 |
2016 | Atlanta Hawks | 8 | 2.49 | 5 | 7.29 |
2016 | San Antonio Spurs | 25 | 2.64 | 6 | 7.12 |
2015 | Atlanta Hawks | 11 | 2.54 | 7 | 7.07 |
2017 | Boston Celtics | 14 | 2.56 | 8 | 6.84 |
2015 | Milwaukee Bucks | 36 | 2.72 | 9 | 6.73 |
2015 | Los Angeles Clippers | 32 | 2.70 | 10 | 6.57 |
2017 | San Antonio Spurs | 30 | 2.69 | 11 | 6.31 |
2017 | Atlanta Hawks | 22 | 2.61 | 12 | 6.29 |
2016 | Chicago Bulls | 28 | 2.66 | 13 | 6.29 |
2016 | Cleveland Cavaliers | 63 | 2.85 | 14 | 6.20 |
2015 | Memphis Grizzlies | 46 | 2.77 | 15 | 6.17 |
2015 | Chicago Bulls | 55 | 2.79 | 16 | 6.09 |
2016 | Boston Celtics | 6 | 2.46 | 17 | 6.06 |
2015 | Houston Rockets | 27 | 2.66 | 18 | 6.00 |
2017 | Denver Nuggets | 42 | 2.74 | 19 | 6.00 |
2017 | Charlotte Hornets | 48 | 2.78 | 20 | 5.99 |
2015 | Indiana Pacers | 53 | 2.79 | 21 | 5.99 |
2017 | Cleveland Cavaliers | 72 | 2.90 | 22 | 5.95 |
2015 | Boston Celtics | 16 | 2.58 | 23 | 5.79 |
2017 | Milwaukee Bucks | 47 | 2.78 | 24 | 5.78 |
2015 | Cleveland Cavaliers | 66 | 2.87 | 25 | 5.72 |
2016 | Houston Rockets | 29 | 2.68 | 26 | 5.71 |
2016 | Denver Nuggets | 58 | 2.83 | 27 | 5.71 |
2015 | Washington Wizards | 38 | 2.73 | 28 | 5.65 |
2017 | Memphis Grizzlies | 67 | 2.87 | 29 | 5.65 |
2017 | Sacramento Kings | 35 | 2.71 | 30 | 5.62 |
2017 | New York Knicks | 19 | 2.60 | 31 | 5.59 |
2016 | Washington Wizards | 21 | 2.60 | 32 | 5.57 |
2017 | Orlando Magic | 37 | 2.73 | 33 | 5.54 |
2016 | New York Knicks | 12 | 2.54 | 34 | 5.50 |
2016 | Milwaukee Bucks | 54 | 2.79 | 35 | 5.50 |
2016 | Phoenix Suns | 15 | 2.57 | 36 | 5.49 |
2017 | Philadelphia 76ers | 3 | 2.42 | 37 | 5.46 |
2017 | Indiana Pacers | 64 | 2.86 | 38 | 5.44 |
2016 | Charlotte Hornets | 44 | 2.76 | 39 | 5.44 |
2016 | Dallas Mavericks | 24 | 2.63 | 40 | 5.40 |
2016 | Minnesota Timberwolves | 70 | 2.89 | 41 | 5.39 |
2017 | Minnesota Timberwolves | 76 | 2.92 | 42 | 5.39 |
2015 | Charlotte Hornets | 41 | 2.74 | 43 | 5.37 |
2016 | Indiana Pacers | 31 | 2.70 | 44 | 5.34 |
2015 | Brooklyn Nets | 85 | 3.00 | 45 | 5.34 |
2016 | Orlando Magic | 34 | 2.71 | 46 | 5.32 |
2015 | Utah Jazz | 5 | 2.46 | 47 | 5.26 |
2017 | Chicago Bulls | 33 | 2.71 | 48 | 5.26 |
2016 | Sacramento Kings | 45 | 2.77 | 49 | 5.25 |
2017 | Utah Jazz | 50 | 2.78 | 50 | 5.21 |
2015 | Portland Trail Blazers | 71 | 2.90 | 51 | 5.20 |
2015 | New York Knicks | 7 | 2.48 | 52 | 5.19 |
2015 | Minnesota Timberwolves | 68 | 2.89 | 53 | 5.19 |
2016 | Portland Trail Blazers | 80 | 2.95 | 54 | 5.07 |
2016 | Brooklyn Nets | 60 | 2.84 | 55 | 5.06 |
2017 | Houston Rockets | 49 | 2.78 | 56 | 5.02 |
2016 | Memphis Grizzlies | 56 | 2.80 | 57 | 5.00 |
2015 | Toronto Raptors | 86 | 3.00 | 58 | 4.99 |
2015 | Dallas Mavericks | 18 | 2.59 | 59 | 4.98 |
2017 | Brooklyn Nets | 13 | 2.55 | 60 | 4.95 |
2016 | LA Clippers | 62 | 2.85 | 61 | 4.94 |
2017 | Portland Trail Blazers | 87 | 3.00 | 62 | 4.91 |
2017 | New Orleans Pelicans | 26 | 2.66 | 63 | 4.90 |
2015 | Detroit Pistons | 77 | 2.93 | 64 | 4.84 |
2017 | Phoenix Suns | 20 | 2.60 | 65 | 4.84 |
2017 | LA Clippers | 51 | 2.78 | 66 | 4.80 |
2017 | Washington Wizards | 79 | 2.93 | 67 | 4.78 |
2016 | Oklahoma City Thunder | 83 | 2.96 | 68 | 4.77 |
2015 | Orlando Magic | 61 | 2.85 | 69 | 4.68 |
2017 | Los Angeles Lakers | 43 | 2.75 | 70 | 4.67 |
2015 | Denver Nuggets | 75 | 2.92 | 71 | 4.67 |
2015 | Sacramento Kings | 69 | 2.89 | 72 | 4.65 |
2015 | Philadelphia 76ers | 10 | 2.53 | 73 | 4.55 |
2017 | Detroit Pistons | 52 | 2.79 | 74 | 4.51 |
2016 | Miami Heat | 65 | 2.87 | 75 | 4.50 |
2016 | Detroit Pistons | 81 | 2.95 | 76 | 4.49 |
2016 | Toronto Raptors | 73 | 2.91 | 77 | 4.48 |
2016 | New Orleans Pelicans | 40 | 2.73 | 78 | 4.48 |
2017 | Toronto Raptors | 88 | 3.02 | 79 | 4.44 |
2017 | Miami Heat | 74 | 2.92 | 80 | 4.33 |
2016 | Utah Jazz | 23 | 2.61 | 81 | 4.27 |
2015 | Phoenix Suns | 39 | 2.73 | 82 | 4.18 |
2015 | Miami Heat | 57 | 2.82 | 83 | 4.14 |
2015 | New Orleans Pelicans | 90 | 3.13 | 84 | 4.10 |
2016 | Philadelphia 76ers | 17 | 2.59 | 85 | 4.09 |
2015 | Oklahoma City Thunder | 59 | 2.84 | 86 | 4.06 |
2017 | Oklahoma City Thunder | 78 | 2.93 | 87 | 4.06 |
2017 | Dallas Mavericks | 82 | 2.95 | 88 | 4.05 |
2015 | Los Angeles Lakers | 89 | 3.09 | 89 | 3.89 |
2016 | Los Angeles Lakers | 84 | 2.98 | 90 | 3.34 |
Counterattack
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.
Rank | Year | Team | RelOSpeed |
---|---|---|---|
1 | 2016 | Golden State Warriors | 1.13 |
2 | 2015 | Golden State Warriors | 1.13 |
3 | 2017 | Philadelphia 76ers | 1.12 |
4 | 2017 | Golden State Warriors | 1.12 |
5 | 2016 | New Orleans Pelicans | 1.12 |
6 | 2017 | Denver Nuggets | 1.11 |
7 | 2015 | San Antonio Spurs | 1.11 |
8 | 2017 | Portland Trail Blazers | 1.11 |
9 | 2016 | Charlotte Hornets | 1.11 |
10 | 2017 | Charlotte Hornets | 1.11 |
11 | 2016 | Oklahoma City Thunder | 1.11 |
12 | 2016 | Denver Nuggets | 1.10 |
13 | 2016 | Portland Trail Blazers | 1.10 |
14 | 2017 | Los Angeles Lakers | 1.10 |
15 | 2015 | Charlotte Hornets | 1.10 |
16 | 2017 | Brooklyn Nets | 1.10 |
17 | 2016 | Washington Wizards | 1.10 |
18 | 2017 | New Orleans Pelicans | 1.10 |
19 | 2017 | San Antonio Spurs | 1.10 |
20 | 2015 | New Orleans Pelicans | 1.10 |
21 | 2017 | Detroit Pistons | 1.10 |
22 | 2016 | Boston Celtics | 1.10 |
23 | 2015 | Portland Trail Blazers | 1.10 |
24 | 2016 | Orlando Magic | 1.10 |
25 | 2015 | Boston Celtics | 1.10 |
26 | 2017 | Atlanta Hawks | 1.09 |
27 | 2017 | Phoenix Suns | 1.09 |
28 | 2017 | Oklahoma City Thunder | 1.09 |
29 | 2015 | Oklahoma City Thunder | 1.09 |
30 | 2015 | Orlando Magic | 1.09 |
31 | 2016 | San Antonio Spurs | 1.09 |
32 | 2015 | New York Knicks | 1.09 |
33 | 2015 | Detroit Pistons | 1.09 |
34 | 2016 | Atlanta Hawks | 1.09 |
35 | 2016 | Chicago Bulls | 1.09 |
36 | 2017 | Miami Heat | 1.09 |
37 | 2016 | Detroit Pistons | 1.09 |
38 | 2016 | Dallas Mavericks | 1.09 |
39 | 2015 | Chicago Bulls | 1.09 |
40 | 2015 | Philadelphia 76ers | 1.09 |
41 | 2015 | Utah Jazz | 1.09 |
42 | 2017 | Houston Rockets | 1.09 |
43 | 2015 | Washington Wizards | 1.09 |
44 | 2016 | New York Knicks | 1.09 |
45 | 2015 | Atlanta Hawks | 1.09 |
46 | 2017 | Orlando Magic | 1.09 |
47 | 2016 | Sacramento Kings | 1.09 |
48 | 2016 | Utah Jazz | 1.08 |
49 | 2015 | Denver Nuggets | 1.08 |
50 | 2016 | Miami Heat | 1.08 |
51 | 2015 | Milwaukee Bucks | 1.08 |
52 | 2017 | Utah Jazz | 1.08 |
53 | 2015 | Miami Heat | 1.08 |
54 | 2017 | New York Knicks | 1.08 |
55 | 2015 | Dallas Mavericks | 1.08 |
56 | 2016 | Indiana Pacers | 1.08 |
57 | 2015 | Sacramento Kings | 1.08 |
58 | 2015 | Minnesota Timberwolves | 1.08 |
59 | 2017 | Boston Celtics | 1.08 |
60 | 2016 | Philadelphia 76ers | 1.08 |
61 | 2017 | Chicago Bulls | 1.08 |
62 | 2015 | Memphis Grizzlies | 1.08 |
63 | 2016 | Los Angeles Lakers | 1.08 |
64 | 2017 | Toronto Raptors | 1.08 |
65 | 2015 | Los Angeles Clippers | 1.08 |
66 | 2015 | Phoenix Suns | 1.08 |
67 | 2016 | Brooklyn Nets | 1.08 |
68 | 2017 | Indiana Pacers | 1.08 |
69 | 2015 | Houston Rockets | 1.08 |
70 | 2016 | Houston Rockets | 1.08 |
71 | 2017 | Washington Wizards | 1.08 |
72 | 2015 | Brooklyn Nets | 1.08 |
73 | 2016 | Toronto Raptors | 1.08 |
74 | 2017 | Dallas Mavericks | 1.08 |
75 | 2016 | Phoenix Suns | 1.07 |
76 | 2017 | Milwaukee Bucks | 1.07 |
77 | 2017 | Sacramento Kings | 1.07 |
78 | 2016 | Milwaukee Bucks | 1.07 |
79 | 2016 | LA Clippers | 1.07 |
80 | 2015 | Cleveland Cavaliers | 1.07 |
81 | 2016 | Memphis Grizzlies | 1.07 |
82 | 2015 | Los Angeles Lakers | 1.07 |
83 | 2016 | Minnesota Timberwolves | 1.07 |
84 | 2017 | LA Clippers | 1.07 |
85 | 2015 | Indiana Pacers | 1.07 |
86 | 2017 | Memphis Grizzlies | 1.06 |
87 | 2015 | Toronto Raptors | 1.06 |
88 | 2016 | Cleveland Cavaliers | 1.06 |
89 | 2017 | Cleveland Cavaliers | 1.06 |
90 | 2017 | Minnesota Timberwolves | 1.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.
Rank | Year | Team | GoodShot% | Sec/Touch | 2ndAst/Gm | RelOSpeed | MOSS |
---|---|---|---|---|---|---|---|
1 | 2016 | Golden State Warriors | 0.72 | 2.39 | 9.68 | 1.13 | 10.27 |
2 | 2017 | Golden State Warriors | 0.72 | 2.43 | 9.65 | 1.12 | 9.19 |
3 | 2015 | Golden State Warriors | 0.66 | 2.41 | 7.91 | 1.13 | 7.32 |
4 | 2017 | Philadelphia 76ers | 0.72 | 2.42 | 5.46 | 1.12 | 5.60 |
5 | 2016 | Atlanta Hawks | 0.72 | 2.49 | 7.29 | 1.09 | 4.65 |
6 | 2015 | San Antonio Spurs | 0.62 | 2.52 | 7.51 | 1.11 | 4.18 |
7 | 2017 | Boston Celtics | 0.74 | 2.56 | 6.84 | 1.08 | 3.76 |
8 | 2017 | Denver Nuggets | 0.73 | 2.74 | 6.00 | 1.11 | 3.65 |
9 | 2017 | Brooklyn Nets | 0.75 | 2.55 | 4.95 | 1.10 | 3.60 |
10 | 2016 | Boston Celtics | 0.67 | 2.46 | 6.06 | 1.10 | 3.40 |
11 | 2015 | Atlanta Hawks | 0.68 | 2.54 | 7.07 | 1.09 | 3.25 |
12 | 2017 | Houston Rockets | 0.84 | 2.78 | 5.02 | 1.09 | 2.99 |
13 | 2017 | Atlanta Hawks | 0.70 | 2.61 | 6.29 | 1.09 | 2.99 |
14 | 2015 | Houston Rockets | 0.77 | 2.66 | 6.00 | 1.08 | 2.56 |
15 | 2016 | Houston Rockets | 0.77 | 2.68 | 5.71 | 1.08 | 2.13 |
16 | 2017 | Charlotte Hornets | 0.67 | 2.78 | 5.99 | 1.11 | 2.10 |
17 | 2015 | Philadelphia 76ers | 0.72 | 2.53 | 4.55 | 1.09 | 1.89 |
18 | 2016 | Charlotte Hornets | 0.68 | 2.76 | 5.44 | 1.11 | 1.88 |
19 | 2016 | Denver Nuggets | 0.70 | 2.83 | 5.71 | 1.10 | 1.71 |
20 | 2015 | Utah Jazz | 0.66 | 2.46 | 5.26 | 1.09 | 1.70 |
21 | 2016 | Washington Wizards | 0.64 | 2.60 | 5.57 | 1.10 | 1.64 |
22 | 2015 | Boston Celtics | 0.63 | 2.58 | 5.79 | 1.10 | 1.40 |
23 | 2017 | San Antonio Spurs | 0.60 | 2.69 | 6.31 | 1.10 | 1.06 |
24 | 2017 | New Orleans Pelicans | 0.66 | 2.66 | 4.90 | 1.10 | 0.98 |
25 | 2016 | New Orleans Pelicans | 0.65 | 2.73 | 4.48 | 1.12 | 0.93 |
26 | 2016 | Dallas Mavericks | 0.65 | 2.63 | 5.40 | 1.09 | 0.84 |
27 | 2016 | San Antonio Spurs | 0.56 | 2.64 | 7.12 | 1.09 | 0.81 |
28 | 2016 | Phoenix Suns | 0.67 | 2.57 | 5.49 | 1.07 | 0.70 |
29 | 2016 | Chicago Bulls | 0.61 | 2.66 | 6.29 | 1.09 | 0.70 |
30 | 2015 | Milwaukee Bucks | 0.63 | 2.72 | 6.73 | 1.08 | 0.69 |
31 | 2015 | Chicago Bulls | 0.66 | 2.79 | 6.09 | 1.09 | 0.63 |
32 | 2017 | Los Angeles Lakers | 0.67 | 2.75 | 4.67 | 1.10 | 0.60 |
33 | 2017 | Phoenix Suns | 0.64 | 2.60 | 4.84 | 1.09 | 0.48 |
34 | 2015 | Los Angeles Clippers | 0.64 | 2.70 | 6.57 | 1.08 | 0.46 |
35 | 2017 | New York Knicks | 0.63 | 2.60 | 5.59 | 1.08 | 0.34 |
36 | 2016 | Philadelphia 76ers | 0.71 | 2.59 | 4.09 | 1.08 | 0.30 |
37 | 2017 | Milwaukee Bucks | 0.71 | 2.78 | 5.78 | 1.07 | 0.26 |
38 | 2015 | Dallas Mavericks | 0.65 | 2.59 | 4.98 | 1.08 | 0.16 |
39 | 2017 | Utah Jazz | 0.70 | 2.78 | 5.21 | 1.08 | 0.15 |
40 | 2017 | Portland Trail Blazers | 0.69 | 3.00 | 4.91 | 1.11 | 0.12 |
41 | 2016 | Portland Trail Blazers | 0.68 | 2.95 | 5.07 | 1.10 | 0.09 |
42 | 2015 | New York Knicks | 0.56 | 2.48 | 5.19 | 1.09 | -0.08 |
43 | 2016 | Orlando Magic | 0.61 | 2.71 | 5.32 | 1.10 | -0.13 |
44 | 2016 | New York Knicks | 0.58 | 2.54 | 5.50 | 1.09 | -0.17 |
45 | 2016 | Utah Jazz | 0.66 | 2.61 | 4.27 | 1.08 | -0.26 |
46 | 2017 | Orlando Magic | 0.63 | 2.73 | 5.54 | 1.09 | -0.31 |
47 | 2016 | Sacramento Kings | 0.66 | 2.77 | 5.25 | 1.09 | -0.32 |
48 | 2016 | Oklahoma City Thunder | 0.67 | 2.96 | 4.77 | 1.11 | -0.38 |
49 | 2017 | Cleveland Cavaliers | 0.73 | 2.90 | 5.95 | 1.06 | -0.67 |
50 | 2015 | Charlotte Hornets | 0.56 | 2.74 | 5.37 | 1.10 | -0.68 |
51 | 2017 | Sacramento Kings | 0.65 | 2.71 | 5.62 | 1.07 | -0.78 |
52 | 2016 | Cleveland Cavaliers | 0.69 | 2.85 | 6.20 | 1.06 | -0.82 |
53 | 2015 | Detroit Pistons | 0.68 | 2.93 | 4.84 | 1.09 | -0.83 |
54 | 2017 | Oklahoma City Thunder | 0.71 | 2.93 | 4.06 | 1.09 | -0.85 |
55 | 2016 | Indiana Pacers | 0.62 | 2.70 | 5.34 | 1.08 | -0.87 |
56 | 2015 | Cleveland Cavaliers | 0.69 | 2.87 | 5.72 | 1.07 | -0.88 |
57 | 2015 | Portland Trail Blazers | 0.63 | 2.90 | 5.20 | 1.10 | -0.94 |
58 | 2017 | Chicago Bulls | 0.61 | 2.71 | 5.26 | 1.08 | -1.18 |
59 | 2015 | Washington Wizards | 0.56 | 2.73 | 5.65 | 1.09 | -1.33 |
60 | 2015 | Memphis Grizzlies | 0.57 | 2.77 | 6.17 | 1.08 | -1.46 |
61 | 2017 | Miami Heat | 0.67 | 2.92 | 4.33 | 1.09 | -1.53 |
62 | 2017 | LA Clippers | 0.68 | 2.78 | 4.80 | 1.07 | -1.57 |
63 | 2015 | Orlando Magic | 0.62 | 2.85 | 4.68 | 1.09 | -1.59 |
64 | 2016 | Milwaukee Bucks | 0.63 | 2.79 | 5.50 | 1.07 | -1.66 |
65 | 2017 | Memphis Grizzlies | 0.68 | 2.87 | 5.65 | 1.06 | -1.66 |
66 | 2015 | Oklahoma City Thunder | 0.64 | 2.84 | 4.06 | 1.09 | -1.67 |
67 | 2015 | Denver Nuggets | 0.66 | 2.92 | 4.67 | 1.08 | -1.72 |
68 | 2016 | Detroit Pistons | 0.66 | 2.95 | 4.49 | 1.09 | -1.74 |
69 | 2015 | Phoenix Suns | 0.65 | 2.73 | 4.18 | 1.08 | -1.75 |
70 | 2017 | Detroit Pistons | 0.57 | 2.79 | 4.51 | 1.10 | -1.83 |
71 | 2016 | LA Clippers | 0.65 | 2.85 | 4.94 | 1.07 | -2.25 |
72 | 2017 | Indiana Pacers | 0.60 | 2.86 | 5.44 | 1.08 | -2.29 |
73 | 2015 | Miami Heat | 0.63 | 2.82 | 4.14 | 1.08 | -2.33 |
74 | 2015 | Indiana Pacers | 0.58 | 2.79 | 5.99 | 1.07 | -2.44 |
75 | 2017 | Washington Wizards | 0.65 | 2.93 | 4.78 | 1.08 | -2.46 |
76 | 2016 | Toronto Raptors | 0.66 | 2.91 | 4.48 | 1.08 | -2.50 |
77 | 2016 | Memphis Grizzlies | 0.62 | 2.80 | 5.00 | 1.07 | -2.52 |
78 | 2015 | Sacramento Kings | 0.62 | 2.89 | 4.65 | 1.08 | -2.52 |
79 | 2015 | New Orleans Pelicans | 0.66 | 3.13 | 4.10 | 1.10 | -2.58 |
80 | 2016 | Miami Heat | 0.60 | 2.87 | 4.50 | 1.08 | -2.71 |
81 | 2016 | Brooklyn Nets | 0.58 | 2.84 | 5.06 | 1.08 | -2.95 |
82 | 2015 | Minnesota Timberwolves | 0.56 | 2.89 | 5.19 | 1.08 | -3.29 |
83 | 2016 | Minnesota Timberwolves | 0.59 | 2.89 | 5.39 | 1.07 | -3.32 |
84 | 2017 | Minnesota Timberwolves | 0.63 | 2.92 | 5.39 | 1.06 | -3.36 |
85 | 2015 | Brooklyn Nets | 0.59 | 3.00 | 5.34 | 1.08 | -3.45 |
86 | 2017 | Toronto Raptors | 0.63 | 3.02 | 4.44 | 1.08 | -3.51 |
87 | 2015 | Toronto Raptors | 0.64 | 3.00 | 4.99 | 1.06 | -3.66 |
88 | 2017 | Dallas Mavericks | 0.63 | 2.95 | 4.05 | 1.08 | -3.72 |
89 | 2016 | Los Angeles Lakers | 0.63 | 2.98 | 3.34 | 1.08 | -4.42 |
90 | 2015 | Los Angeles Lakers | 0.57 | 3.09 | 3.89 | 1.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.