BAYESIAN MASSEY

Every rank has a probability.

Explore the rankings—and how certain they really are.

How to read this ↗

Loading ranking snapshots…

Understanding the method and these probabilities

The Bayesian Massey model estimates team strength from game margins, with hierarchical shrinkage and strength that can change over time. Each NBA snapshot is fit to that season’s completed games through the selected week, using scores from the NBA Stats API (hoopR). Regular-season, play-in and playoff games count, plus the NBA Cup championship game; preseason and All-Star games do not. Weeks are seven-day blocks counted from the first game of the regular season, and playoff weeks are counted the same way from the first play-in or playoff game.

Each source matrix has ranks in rows (rank 1 is best) and teams in columns. A team’s column sums to 100%. Mean rank is the probability-weighted average of all its possible ranks. P(top 10) sums the probabilities of ranks 1 through 10; it is not a power-poll rank, a standings position, or a probability of making the playoffs.

The R export uses draws retained inside a 90% elliptical credible set of team strengths. The dashboard summarizes those exported probabilities, not the full unfiltered posterior. Its 90% rank intervals are equal-tailed marginal intervals calculated from each exported column; they are not simultaneous guarantees across teams. Discrete intervals can contain more than 90% probability.

Rankings are relative to the teams present in each snapshot. Every season starts from scratch with no preseason information, so early-week distributions are wide, and a week with games still to be played uses only the completed games. The matrices alone do not provide sampling diagnostics or establish model calibration.

Read the model specification (background document; the retained R and Stan files describe the implemented export).