Predictions deadline: Wednesday, October 14 Make yours →

How the Massive Rating Is Built

Under the hood of the model

Iker Moreda

The model

Iker Moreda

Behind every number on this site is a spreadsheet Iker has been fine-tuning for years. It's not an opinion ranking: it's a model with fixed rules applied the same way to all 450 players in the league, every night, no exceptions.

Here it is how it works under the hood — what goes in, how much it weighs and why we decided it that way. The formulas stay in-house.

The life of a number

  1. 01

    Collapse

    Every night we pull in the box scores from every game: minutes, shots, rebounds, assists, steals, blocks and turnovers, player by player. Plus each team's totals, which the advanced metrics need.

    Regular season only. Preseason games, the All-Star Game and the NBA Cup final don't count.

  2. 02

    Measure

    Those totals are used to calculate the metrics that don't come ready-made: PER, Win Shares and the Massive Value, our in-house metric. This is where the model stops being a sum of stats and starts weighing context: team pace, possessions, actual minutes.

    PER and Win Shares were checked against the public values: the average error came in under a tenth of a point.

  3. 03

    Match

    Each stat is converted to a common scale from 0 to 100 comparing each player against the whole league. Without this step you can't add up things that aren't measured the same way: 30 points and 8 assists aren't comparable until both are turned into “how much does this stand out from everyone else.”

    Rankings are recalculated with every update across all players with 20 or more games.

  4. 04

    Weigh

    The four blocks are combined using the weight the model gives each one, and the result is checked against the team record. An MVP doesn't come from a losing team: that's why individual performance leads the way, but it doesn't decide on its own.

    Performance 80%, team record 20%.

How much each thing counts

Performance is split into four blocks. Here's the weight of each one and the stats that feed it, ordered by how much they matter within the block.

Basic stats

60%

What a player does every night.

  • 1Points
  • 2Assists
  • 3Rebounds
  • 4Steals
  • 5Blocks
  • 6Turnovers

Turnovers count against you. It's the only category that can lower your score for what you do wrong.

Games played

20%

Availability is part of the value.

  • 1Games played
  • 2Team games

It's measured against the games his team has played, not against 82: that way the schedule doesn't penalize him.

Efficiency

10%

What his production costs.

  • 1True shooting (TS%)
  • 2Effective FG% (eFG%)

True shooting counts more than effective shooting: it also factors in free throws.

Advanced

10%

The impact that doesn't show up in the box score.

  • 1Massive Value
  • 2PER
  • 3Win Shares

Massive Value is our own metric: it measures production above a replacement-level player.

Those four make up the performance, which is worth 80% of the final score. The 20% remaining comes from the team's record.

The decisions that matter

A model doesn't stand out for its formulas, but for what it decides when the data isn't clear. These are the four calls that change the result the most.

The rating is calculated across the whole league

Only after that do we filter what gets shown. If we trimmed first, the highs and lows would come from the short list and everything would get skewed: whoever plays every night would climb above the real candidates.

65-point games get flagged, not hidden

The NBA doesn't let players who fall short be eligible for the award. But a player who'd be third deserves to show up where he belongs, with a note attached.

Minimum sample of 20 games

A player with two games can post absurd averages and break the range for the whole league. Below that sample size, he isn't included even for reference.

No eyeballed adjustments

No bonus for narrative, market size or what they say on TV. If a player moves up, it's because his numbers went up.