Plus-minus stats have become part of the everyday vernacular in the NBA. From simple plus-minus to NBA WOWY and the development of more sophisticated metrics like RAPM, RPM, and PIPM, itās become a part of how many of us process the game.
Stats with a plus-minus component are not necessarily perfect. Itās been demonstrated that plus-minus and its more sophisticated derivatives are volatile over the course of single NBA seasons ā let alone a college season thatās less than half as long ā and should not be trusted on their own, with no context or additional investigation. But these stats are an incredibly valuable tool, an intriguing way to go beyond simple box score stats and get at the simple question behind almost all basketball analysis ā whoās contributing to winning games, and how are they helping their teams do it?
As someone whose interests are largely in the college game, the ready availability of these stats in the NBA ā and the high quality play-by-plays that let you build them ā has been frustrating. The quality of play-by-plays in the college game are at best inconsistentm rarely include substitutions, and the sheer number of teams (about 350 in a given year) can make it more difficult to analyze. There are paid services that provide college lineup and WOWY (with-or-without-you, in case you made it this far in this article without already knowing) analysis, but this type of analysis is largely out of the mainstream in the college hoops discussion.
With this post, Iām aiming to start contributing to making this type of data and analysis at the college level more accessible to any basketball fan with an interest in these sorts of things. This has taken way more time than Iād like to admit, but Iām happy to finally debut on-off offensive ratings, defensive ratings, and net ratings for every player in college basketball back to the 2009-10 season.
What Iām sharing here is largely restricted to links to google sheets containing data from each of these years. The documents contain number of possessions logged for each player on offense and defense, as well as offensive and defensive ratings (simply, points scored while the player was in or out divided by possessions in or out).
As an example of what youāll see ā hereās the top-30 leaderboard for on-off net ratings for single players I have in my sample (minimum of 400 possessions played):

Drexelās Frantz Massenat (2011-12) and Syracuseās Michael Gbinije (2015-16) take top honors on this board. The sheets are generally presented alphabetically, but you should be able to download into Excel and do your own filtering pretty easily. The year I listed in the sheets is the āfirstā year in any college season (i.e. 2016 is 2016-17).
Having just finished this analysis, I wanted to put it in the public sphere so anyone who wants to can poke and prod through. Iām working on a web application that will use the raw data behind these sheets to build a freely accessible platform for WOWY stats, both on the individual and team level, back to 2009-10 in college basketball ā and Iām sure thereās still some cleanup work to do in there. Once finished, it will likely be posted on The Stepien, a free draft website with an excellent collection of truly talented writers & analysts.
The Data Dump
But, hereās what youāre really here for. These are the links to the Google Sheets:
2009-10 to 2016-17 Net Rating Sheet (all games)
2009-10 to 2016-17 Net Rating Sheet (KenPom top 100 opposition)
2009-10 to 2016-17 Net Rating Sheet (Conference)
2009-10 to 2016-17 5-Player Lineup Leaderboard (min. 150 possessions)
2009-10 to 2016-17 4-Player Lineup Leaderboard (min. 250 possessions)
2009-10 to 2016-17 3-Player Lineup Leaderboard (min. 400 possessions)
If youāre looking to compare to a service that already does this ā such as Hooplens ā youāre going to find that the data rarely match up perfectly. I donāt know what their methodology is (for fixing bad subs, calculating possessions, etc.), so I canāt speak for what explains the differences. Read on if youāre interested in the general methodology, and some info on what I put into each sheet.
If all youāre here for is the data, thereās plenty above to pick through. Enjoy!
Methodology
I believe in general transparency (though donāt ask me for the code ā this was entirely done in Excel with VBA), and I know these stats are not built on something perfect. Hereās how I got there:
The work starts from play-by-plays available from stats.ncaa.com, the only publicly available source Iām aware of that includes any substitution data. Theyāre also quite excellent at getting most of the games for each season, something that canāt be said for most other publicly available sources.
Something Iām acutely aware of is that these play-by-plays are not perfect. There are misspelled names, varying team names in the same season, games with only one half, games that use numbers instead of names (and the numbers ā of course ā are often associated with no one on the team), and a few (maybe 40-50 total) that are flat-out missing or completely flawed/unusable in the full historical sample. And thatās without getting to the substitutions themselves, which are quite often imperfect ā taken by themselves, there would often be 10 players (or 2) in the games.
Approximately 40-45 percent of the games in the sample did not have errors in the substitution data. Five players were in the game for all D-I sides (I didnāt bother with non D-I teams), and listed play-by-play actions were not being completed by a player not currently in the game.
The rest were āfixedā using the play-by-plays. At any point where a team had more or less than 5 players on the floor for more than a line, I used automated tools to search down the play-by-play for players who, in the same half or overtime, did something in the game besides enter it. This process was repeated at each point where a bust occurred, to try and minimize errors.
This method of fixing certainly isnāt perfect. There are points at the ends of halves and overtimes that necessarily end up with less than 5 players, because the routine doesnāt have the space to find five unique players that (based on the play-by-plays) are certainly in the game. And I know the names used arenāt always correct ā Iāve found womenās CBB players in these play-by-plays, and something around 40,000 unique misspellings for D-I players alone ā and I donāt doubt there are some errors in the sequencing of the play-by-play lists.
This is a long way of saying: know that what youāre getting here isnāt perfect, because the source the analysis is based on certainly isnāt. But Iāve put a lot of work into ensuring what youāre getting is as close as I can make it to correct.
Next: Nylon Calculus -- Trey Burke is finally making jumpers
Whatās in There
Have the usual suspects for the basics of this analysis ā offensive and defensive possessions logged, plus-minus, and calculated offensive and defensive ratings for the teams during those spans. The possessions are calculated from play-by-play logs, rather than estimated.
Iāve also added columns that show the average offensive and defensive KenPom rankings each player (and five-man lineup) logged their respective possessions against, to give you an idea of the quality of opposition each player faced. Non D-I teams defaulted to 351.
I apologize for any bugs ā and Iām quite sure there are some ā and would certainly appreciate you pointing them out. Itās a ton of data for one person to spot-check, and I always appreciate the extra eyes.