Running Net Points · Season 2025-26

v0.1 illustrative scores

GOAT validation dashboard

Transparent checks on whether the formula behaves sensibly: redundancy across dimensions, how rankings move when weights change, and whether historical reference groups still look elite.

Data version v0.3

This view is computed on the fly from the same curated roster as the leaderboard. When the database has a `goat_validation_runs` row for this data version, those ETL results replace the fallback automatically.

← Methodology · Leaderboard · Compare

Correlation matrix (G / O / A / T)
We measure whether Generational, Output, Availability, and Titles are telling different stories. If two columns always move together, we might be double-counting the same idea.

Pairwise Pearson correlations are computed across players in this data version. PRD §6.1 flags pairs with |r| ≥ 0.80 so we can revisit definitions or weights before claiming four independent dimensions.

Sample: 21 players · Flag threshold |r| ≥ 0.8 (PRD §6.1)

No off-diagonal pairs meet the redundancy flag at this threshold.

GenerationalOutputAvailabilityTitles
Generational1.000.480.350.57
Output0.481.000.310.14
Availability0.350.311.00-0.03
Titles0.570.14-0.031.00
PCA summary
Think of PCA as looking for the few hidden ‘themes’ inside the numbers. If everything collapses into one theme, the model might be one-dimensional no matter how many bars we draw.

We eigendecompose the covariance of the published G/O/A/T scores (v0.1 stand-in until raw sub-metrics arrive). Eigenvalues show how much variance each component explains; loadings show how the original dimensions participate. The goal is to see separation consistent with dominance, volume, durability, and winning—not to force a particular outcome.

Principal components are computed on the four published G/O/A/T scores for this data version. When the compute pipeline exports raw sub-metrics, this block will switch to those inputs while keeping the same interpretation: do the metrics separate into dominance, volume, durability, and winning?

PCEigenvalueVariance %
1934.50374.9%
2259.36120.8%
329.7782.4%
423.9461.9%
DimensionPC1 loadingPC2 loadingPC3 loadingPC4 loading
Generational0.6160.753-0.227-0.038
Output0.0630.1650.5870.790
Availability0.0290.1770.771-0.611
Titles0.785-0.6120.102-0.011
Sensitivity across preset modes
Some players stay near the top no matter which preset you pick. Others jump or slide when you emphasize rings, longevity, or peak. That is expected—we surface it so the debate stays honest.

For each player we rank the full roster under all six presets (balanced, peak, longevity, rings, analytics, playoff). Stable players have a small spread between their best and worst rank; high-swing players move by at least twelve spots between modes. Thresholds follow the PRD’s stress-test intent and can be tightened when the computed sample grows beyond the illustrative roster.

Stable band: rank spread ≤ 5 · High swing: spread ≥ 12 (full roster, six presets).

Stable across modes

PlayerSpreadbalpealonrinanapla
Michael Jordan2223131
Kareem Abdul-Jabbar2111312
LeBron James2332423
Bill Russell3455254
Wilt Chamberlain5544946
Magic Johnson3668565
Tim Duncan2776687
Kobe Bryant2887798
Julius Erving599912711
Larry Bird4121014111012
Stephen Curry2101112101210
Hakeem Olajuwon2131311131313
Kevin Durant2141515141614
Nikola Jokic3161618151516
Kevin Garnett4181816201719
Dirk Nowitzki2191917181918
Giannis Antetokounmpo3171720171817
Jerry West2202021192020
Elvin Hayes2212119212121

High rank swing

PlayerSpreadBest modeWorst modebalpealonrinanapla
Historical consensus backtest
Basketball history already picked rough ‘inner circles’—MVP winners, anniversary teams, Hall résumés. We do not copy those lists into the math, but we check that the model does not embarrass them without a clear reason.

Reference sets are sanity checks, not ground truth. We report median balanced ranks/scores and per-mode medians for members present in this data version. Surprises become discussion prompts: maybe a mode is doing exactly what it promised, or maybe we uncovered a real tension worth refining.

NBA 75 (roster subset)

These players also appear on the league’s 75th Anniversary team. We check that the model still respects that historical consensus without hard-coding the list into the formula.

The anniversary team is a reference set, not ground truth. We report median ranks and scores across preset modes to see whether the engine clusters elites together and where it disagrees for transparent debate.

Members in roster: 20 · Median balanced rank: 10.5 · Median balanced score: 60.0

ModeMedian rankMedian score
Balanced GOAT10.560.0
Peak GOAT10.556.7
Longevity GOAT10.570.3
Ring GOAT10.552.5
Analytics GOAT10.563.1
Playoff GOAT10.555.7

MVP winners (curated metadata)

Players with at least one MVP in the v0.1 metadata should not collapse to the middle of the pack unless the chosen mode explicitly de-prioritizes what MVPs measure.

MVP winners skew toward peak generational dominance and long-run output. Ring-heavy modes may still shuffle them versus playoff risers—those deltas are features for discussion, not silent bugs.

Members in roster: 19 · Median balanced rank: 10 · Median balanced score: 60.2

ModeMedian rankMedian score
Balanced GOAT1060.2
Peak GOAT1056.7
Longevity GOAT1070.4
Ring GOAT1054.0
Analytics GOAT1063.4
Playoff GOAT1056.3

Inner-circle legends (PRD sanity list)

A short list of names the PRD calls out as obvious legends—Jordan, LeBron, Kareem, Russell, and peers. If the model humiliates this group in Balanced mode, we investigate before shipping.

This is a blunt instrument: it does not mean those players must finish 1–10. It means their scores and ranks should look like the historically elite tier when weights are reasonable.

Members in roster: 10 · Median balanced rank: 5.5 · Median balanced score: 70.3

ModeMedian rankMedian score
Balanced GOAT5.570.3
Peak GOAT5.569.0
Longevity GOAT5.577.6
Ring GOAT5.564.2
Analytics GOAT5.569.7
Playoff GOAT5.565.6

20+ All-Star selections (reference cohort)

Kareem, LeBron, and Kobe anchor this longevity-of-recognition check. Members are pinned by historical consensus rather than a live stat query in the curated roster.

Median ranks should stay elite in Balanced mode; large negative shifts after #134 deserve a narrative in the PR or a follow-up calibration issue—not silent acceptance.

Members in roster: 3 · Median balanced rank: 3 · Median balanced score: 85.4

ModeMedian rankMedian score
Balanced GOAT385.4
Peak GOAT386.8
Longevity GOAT292.6
Ring GOAT475.0
Analytics GOAT293.4
Playoff GOAT381.1

≥3 scoring titles (reference cohort)

Jordan, Wilt, and Durant typify repeated league scoring crowns—useful when expanded awards touch Generational.

If this cohort’s median rank collapses, double-check scoring-title counts ingested from BBR rather than tweaking dimension weights.

Members in roster: 3 · Median balanced rank: 5 · Median balanced score: 72.5

ModeMedian rankMedian score
Balanced GOAT572.5
Peak GOAT474.1
Longevity GOAT484.8
Ring GOAT955.7
Analytics GOAT485.0
Playoff GOAT665.3

Triple-double kings (≥150 career, metadata)

Rare per-game feats now surface in Generational. This slice uses the curated triple-double counts embedded in metadata (warehouse-backed counts land via `player_game_stats`).

An empty cohort in the curated JSON is expected until per-game aggregates backfill; the validation row simply omits the block.

Members in roster: 1 · Median balanced rank: 15 · Median balanced score: 53.6

ModeMedian rankMedian score
Balanced GOAT1553.6
Peak GOAT1450.8
Longevity GOAT1070.4
Ring GOAT1638.0
Analytics GOAT1162.9
Playoff GOAT1545.6

Career top-3 in a major counting category

Players with a published top-3 `careerRanks` entry in pts/reb/ast/stl/blk/threes/games/minutes. Surprises here often mean either a real tension or a coverage gap in career ladders.

Cross-check against public leader boards when career ranks are DB-backed; gate bonuses off if ladders disagree.

Members in roster: 6 · Median balanced rank: 4 · Median balanced score: 79.0

ModeMedian rankMedian score
Balanced GOAT479.0
Peak GOAT3.580.4
Longevity GOAT3.587.5
Ring GOAT6.565.3
Analytics GOAT3.588.0
Playoff GOAT4.573.2