Recently at his web site, Basketball Geek, Ryan Parker used play-by-play data to calculate Dean Oliver’s offensive and defensive ratings. I’ve decided to use Ryan’s approach (and data!) to calculate some of the other advanced statistics out there, many of which were developed by John Hollinger.
Many of these statistics are usually calculated using estimates based on the data available in box scores. However, with the play-by-play data in hand, we can turn these estimates into actual numbers. To calculate the stats, I used the formulas available in the Basketball-Reference glossary. For today, the following numbers will be presented:
- Rebound Rate: The number of available rebounds a player collected while he was in the game.
- Offensive Rebound Rate: The number of available offensive rebounds a player collected while he was in the game.
- Defensive Rebound Rate: The number of available defensive rebounds a player collected while he was in the game.
- Assist Rate: There are a few ways to calculate this. I defined it as the percentage of field goals a player’s teammates made that he assisted on while he was in the game.
- Block Percentage: The percentage of opponent field goal attempts blocked by a player while he was in the game.
- Steal Percentage: The number of opponent possessions that ended with the player stealing the ball while he was in the game.
- Usage Rate: The percentage of team plays used by a player while he was in the game.
There are a number of different ways to calculate Assist Rate. I calculated my version based on the method used by people such as Ken Pomeroy and Ed Kupfer. Ryan defines his Assist Rate as the “percentage of possessions used that were assists.” There are subtle differences, I believe.
So what’s the difference between my calculations and the usual ones? The following changes:
- For rebound rates, the number of available rebounds for a player is usually estimated based on the team’s rebounding rates and the player’s minutes. With my method, the actual number of rebound opportunities is determined.
- For assist rate, the number of field goals made by teammates when a player is on the court is normally estimated based on the player’s minutes and the team’s total field goals. With my method, the actual number of teammate field goals is determined.
- For block percentage, the number of opposing field goal attempts when a player is on the court is estimated. I use the play-by-play data to get an actual count.
- For steal percentage and usage rate, player and team possessions are normally estimated, but we can use the play-by-play to count the actual number of possessions.
The numbers for every player are available in the Google Docs spreadsheet below:
http://spreadsheets.google.com/ccc?key=0AvNKNGJ_AHijdEgwV3FrQ25rVTZVbVR4ZEtYcHp5bkE&hl=en
My next step is to calculate PER using these numbers, and I plan to get to that shortly. Much credit again must go to Ryan Parker for inspiring me to do this.


Rate this post!




Very impressive work Jon. Out of curiosity, how much of a difference was there, pct-wise, between your PBP individual numbers and the estimated individual numbers. Were some players characteristically affected more than others?
I didn’t run any tests myself, but others took a look at the differences. You can see them here:
http://sonicscentral.com/apbrmetrics/viewtopic.php?t=2401
Jon,
This is a sound step you’ve taken in an attempt to better understand the game.
Now …
What you need to do next is:
1. Start using the correct definition for what a “real” possession entails, in the game of basketball, rather than what the stat heads have settled on, to this point, which is commonly refered to as “the number of ‘plays’” a team has in a game; and, then,
2. Stop trying to bring all numeric values to a similar baseline measure for each game and player.
Understanding basketball correctly is about analyzing each and every possession, based on the available play-by-play data which is keep by the assistant coaches in the NBA when they break down film/tape, based upon the individual match-ups in- play at a given point in a game.
It is not about the average number of points scored per 100 possessions … as currently defined by stat heads … for a team … and one example … and how that “number” compares, in terms of a supposed “efficiency rating” [etc.] … over the course of a season [or seasons] against the other 29 teams [and their respective players] in the NBA.
Jon this is great stuff. I like that you’re watching the games because I think it could improve advanced stats to link it to the game. I think they could be further improved (uber-advanced stats) with watching it and taking into account the possibilities.
For example, the block rate for a dominant center could be suppressed if they’ve earned the reputation as a brutal shot blocker*. When Mutumbo was in his prime, you were very wary about driving into the lane. As a result, he has fewer block opportunities out of the total number of shots (Dikembe’s presence keeps them at the perimeter). So perhaps, one day block rate could include only shots that the player is within 5 feet of. This is extraordinarily labor intensive and could probably only be done with the resources of a pro team, but something to consider in the future.
* Like the Deion Sanders/Nnamdi Asomugha effect.
If you want to be able to calculate Tempo Free stats (i.e., stats per possession) as well as Dean Oliver’s ratings, download CREZ:
http://www.crezbasketball.com
CREZ offers a free scoring system that lets you score games or just enter box scores.
You can then calculate ratings per player and per team, by single game or by multiple games.
Enjoy!
David
[...] of you may recall an article I wrote back in November, when I re-calculated a few common advanced stats using play-by-play data. That was for last season, and today I will provide the numbers for this [...]