An Adjustment to the Position Adjustment on Boxscore Geeks

We're making a slight change to our recipe of the Wins Produced / Points over Par metrics that we use on this site. Namely, we're adjusting how we adjust for positions. Quick recap time. (You can read the full Wins Produced Algorithm here.)

The Wins Produced stat uses a regression on boxscore statistics against point differential (how many points per possession each team scores). This is because point differential lines up very well with wins. As such box score statistics do a very good job of explaining both the outcome of a game or season (that is their job, after all) as well as describing the magnitude each stat has on wins (for a season, hence Wins Produced) or point margin (Points over Par)

The one aspect that Wins Produced does slightly different than a lot of other linear boxscore models is it adjusts for position. We compare point guards to point guards, centers to centers, etc. This is because we accept in basketball different players have different responsibilities. Assists are valuable for winning, but bigs aren't expected to handle the ball or pass as much. Rebounds are useful for winning, but bigs get more of them as they tend to be closer to the hoop. So, it makes sense to recognize different positions for this. Note the Wins Above Replacement metric that has been popular for years in baseball does the same thing (sort of.)

The one important aspect of how Wins Produced uses the average position is that each position must have an even number of minutes. A player,  can, of course, have minutes in multiple positions. Hence our issue. We find ourselves arguing if a player is really a small forward or a forward. Or which guard should qualify as a small forward. And so on. So our fix, for now, is simple. We're breaking it down into three less granular positions:

  • Point Guard - the primary ball handler.
  • Wing - the players that typically handle the perimeter.
  • Big - the players that play close to the hoop.

In terms of standard position assignments, Point Guard encapsulates all players at the 1, Wing encapsulates all players with time at the 2 and 3, and Big encapsulates all players with time at the 4 or 5.

Our algorithm for handling these player minutes is as follows. We use Yahoo depth charts for player assignments (PG, G, SG, GF, SF, F, F, FC, C). We put these minutes into the three buckets above. Then to normalize our minutes in each of the three buckets we use the following methods:

If a position has too many minutes, find the "biggest" player and assign as many of their minutes needed to the next highest bucket. For example, if we have too many minutes at the point guard, we'd search for the "biggest" point guard and promote some of their minutes to Wing. The way we search is first by position, so any player listed as a G is promoted first. Next we look at players in terms of a combination of height and body mass index (BMI).

If a position has too few minutes, we find the "small" player from the next largest position and assign them as many needed minutes to the smaller position. If we had too few minutes at the Wing, we'd take our smallest Big, first by determining if they were a F, and then by using our height/BMI combination.

After this is done, we find the average at each of these positions and compare that to each player. As a reminder, the non-position adjusted value is ADJP48, the position adjusted value is WP48. If a player overlaps positions, we average out the averages. It's not 100% perfect, and we may modify it in the future, but we feel this handles some slight issues with granularities while still giving us daily updates to our stats.

We were starting to get "win inflation" on this year's numbers. That's mainly because we've usually handled adjusting positions in a semi-manual fashion. These changes will both ensure the numbers stay correct and have less issue with arguing things like a PF versus a FC.


I implemented a few more changes with this update. First, when you go to the player comparison engine, I now compare players vs. PG/Wing/Big. What's more, before we used to show the average for the entire "modern stats era" (1978 on.) Now I show the average player over the span of the player's career. And if you compare to players from different eras (for instance, Magic Johnson versus Chris Paul) you can see how the same position is different era would look!

The same is now true for any given player's page. We show career averages for our players, and we now also show the average for their primary position over their career.

Please, note this will impact some players' values. Small forwards will look a bit better; power forwards will look a bit worse than compared to the more granular values. That said, if the argument is more towards "positionless basketball" (which we don't accept, but do concede G/SG/GF/SF/F gets weird, hence this change) then player's raw production becomes relevant.

These are not new issues, but a few more notes as they tend to come up any time we discuss Wins Produced calculation. First, the "Dirk Nowitzki" problem invariably comes up. Namely, Dirk Nowitzki's skill set is more like a small forward. Yet, we routinely count him as a power forward. The reality in looking at minutes is that he's played at the power forward spot. This is more of a coaching issue, of course. That said, we can only grade a player based on what they've done. That means even if a player was played out of position, we grade their performance based on the position they were played at. Back to baseball. If a good hitter routinely bats 7th or 8th, likely they get fewer RBIs or different pitching situations given runners not on base. We can't credit them for a batting situation that could have theoretically happened; we can only grade them on what happened. I'll revisit this point, maybe, but please remember that Wins Produced and Points over Par are descriptive statistics!

Regarding production, invariably we may get asked how a certain player can get rated above another. The basic point is we credit each player's boxscore stats to them. It's possible that other players are responsible for part of the stats. For instance, assists lead to more open shots. We currently credit the passer with the assist and the shooter with the shot. However, it's possible the open player deserves some credit for the assist by being able to get open. Or the passer deserves some credit of the shot for absurd passes. And that's a fair point. And good methods of redistributing credit are welcome. Please note this means systematic examination of stats, not hypothetical values applied using the author's "eye test." But please remember that in regards to year to year statistics, NBA players are among the most consistent season to season. And as an approximation of players, we notice the Wins Produced model does a good job encapsulating that. Just remember a model, is by definition, an approximation of reality, not a substitution!

Whew, long post on position. Please let me know if you find any bugs on pages you're used to. Also, in regards to position if you think we're "off" on any players, let us know. If there's a good case for them being moved, we're happy to look into it.