Wins Produced, developed by economist David Berri, turns a player's box score into the number of team wins it accounts for. Each stat gets a value from how much it moves a team's point differential: made shots, rebounds, steals and blocks add wins; missed shots, turnovers and fouls that lead to free throws cost them.
A player's line is then adjusted for what the team does together (shared defense, rebounds and assists that come from teammates) and compared with the average player at the positions they play, since centers naturally rebound more and guards assist more. The result is Wins Above Average; adding what an average player produces in the same minutes gives Wins Produced.
WP48 is Wins Produced per 48 minutes (WP40 in the WNBA, whose games are 40 minutes). An average player is 0.100; stars sit well above 0.200. Across a season, a league's Wins Produced adds up to the games played.
Box scores. Box scores are from a variety of sources. Basketball-Reference has the most comprehensive and longest history; we also use stats.nba.com and ESPN, and check each game against the others and the play-by-play. Where the league's game logs exist (NBA 1996-97 on, WNBA 1997 on) they settle each player's line, stat corrections made after the game included, so a season's games add up to its official totals. Each team's minutes are made to add up to the game's length.
Three ways, by era. Before box scores (1973-74 to 1982-83, when steals, blocks and offensive rebounds were first tracked) a season is worked out from its season totals. From 1983-84 it's worked out game by game and summed for the span you pick. Where the league's play-by-play gives complete lineups for at least 95% of a season's games (NBA 1996-97 on, WNBA 1997 on), it's worked out from the lineups: each player is measured against the positions they actually played in each five on the floor, and the team's defense is credited to whoever was out there while it happened, so a team's defense still adds up to its box score. Games inside those seasons whose lineups didn't rebuild are worked out game by game.
Older box scores. Box scores before 1996-97 are reconstructions, and a season's games add up to a little less than the league's season totals. Season lines there include what the games are missing (marked †): it counts toward Wins Produced, not games or starts. Player turnovers weren't recorded until 1977-78; before then a team's turnovers are spread across its players by minutes, and those seasons are marked as estimated.
What we use, and what we leave out. We use a box score only when it can be checked or derived from something better: the league's box scores and game logs, its play-by-play, or the season totals it has to add up to. Where a mistake can be worked out (a missed two filed as a three, minutes rounded to the minute, a player left off the page), we fix it and keep a record of the fix. Where it can't, we don't guess: the game stays as it is and goes on our list of broken data. The playoff box scores from seasons worked out from season totals (1973-74 to 1982-83) often lack players' rebounds and steals, so nothing here is computed from them; those seasons' numbers come from the league's official totals.
Positions. The Pos column is a player's roster listing with the position they played on average, PG 1.0 to C 5.0; tap or hover it for their minutes at each. NBA positions come from basketball-reference's play-by-play estimates where it has them. WNBA rosters only ever say G, F or C, so WNBA positions come from our own lineups: each five is ordered smallest to biggest, and of two guards on the floor, the one who sets the other up (clearly more assists together) plays the point. WNBA numbers use win values fitted to the WNBA.
1973-74 to 1982-83: season totals
1983-84 to 1995-96: game by game
1996-97 to 2025-26: lineups (play-by-play)
1997: game by game (lineups 74.1% complete)
1998: game by game (lineups 80.7% complete)
1999 to 2006: lineups (play-by-play)
2007: game by game (lineups 94.1% complete)
2008: lineups (play-by-play)
2009: game by game (lineups 92.3% complete)
2010: game by game (lineups 94.6% complete)
2011: game by game (lineups 93.6% complete)
2012: game by game (lineups 90.2% complete)
2013: game by game (lineups 92.6% complete)
2014 to 2017: lineups (play-by-play)
2018: game by game (lineups 90.7% complete)
2019: game by game (lineups 91.2% complete)
2020 to 2026: lineups (play-by-play)