Our methodology.
Most rankings ask you to just trust the black box. We'd rather show our work. Here's how we turn thirty seasons of real basketball into a number you can act on — the gist up top, the details below.

Forecast, value, then a view.
Underneath everything, the system does three things. If you just want the gist, this is it:
- Project the stat line. We forecast every player's full per-game line for the season — points, rebounds, assists, steals, blocks, threes, the shooting percentages, and turnovers — anchored to how much they'll actually play.
- Value it across nine categories. A stat line isn't a ranking until you weigh the categories against each other. We distill each line into one comparable number, so a defense-first center and a scoring guard can be ranked fairly.
- Add our view. The model hands us a board; then we pressure-test it against what we expect — a breakout brewing, a role about to change, a veteran due to slow down — and surface the players the market has mispriced. That judgment is the part you're really here for.
Why we lead with G-score.
A real fork in the road: almost every ranking tool values players on z-score alone. We think that leaves wins on the table for head-to-head.
How far above an average player you are in each category — what most industry analysis is built on. Solid, but it treats a boom-or-bust category exactly like a rock-steady one.
The same idea, adjusted for week-to-week volatility — it gently discounts streaky categories, because head-to-head is won week by week.
So we lead with G-score and keep z-score right beside it as a cross-check. (Roto or points league? We switch to the metric that fits how you score.)
From data to decisions.
Real data flows in, gets stress-tested against history, becomes a projection and a value, then keeps updating all season as the news rolls in. Here's the whole engine on one page.
Analysis & backtesting
We learn the patterns from thirty seasons of history — and pressure-test every idea against them before trusting it.
Projection
Forecast each player's full stat line — a multi-year blend, a career arc, a growth model for young players, minutes first.
Valuation
Weigh nine very different categories into one comparable value, against your league's real pool. G-score by default.
In-season
Fold in live signals and adjust to stay current — a trade re-projects movers, a star sitting bumps his backups.
The gate: every step has to clear a leakage-free backtest before it ships — we forecast past seasons using only what we'd have known at the time, and bank the ideas that don't beat the test.
The parts that actually decide a ranking.
The pipeline above is the shape; these are the decisions inside it that make our board different. We'll show you the mechanism for each — what we model and why — because that's what earns trust. The exact weights and features stay ours.
Minutes before anything.
A projection is minutes multiplied by what a player does with them — get the minutes wrong and nothing downstream can save you. So we treat playing time as two separate questions, modeled separately: how many games a player will actually suit up for (availability and durability have their own patterns), and how big his role is when he plays.
Role isn't last season's box score on autopilot. It's grounded in the team's actual situation — current rosters, depth at his position, and how rotations behave when the picture changes (a starter traded away, a star sitting, a rookie forcing his way in).
A blend with a memory — and an age.
Each per-category rate comes from a multi-season blend that weights recent play more, then bends along a career arc — a 22-year-old and a 33-year-old with identical lines should not project the same, so one gets a growth curve and the other an aging discount.
Young players get their own treatment: age, draft pedigree, and college production inform how much of a leap is realistic — which is why breakout sophomores don't blindside the board. And we forecast the categories themselves, not one blob of "production": shooting percentages carry their volume, counting stats ride the minutes model above.
Value against the real pool.
A stat line becomes a rank by scoring each category against the pool of players who actually get drafted — a 14-team league's worth by default, adjustable to yours — not against all 500 NBA names, most of whom your league never rosters.
- Percentages are volume-weighted — a 52% shooter on twenty attempts moves your team FG% far more than one on eight.
- Turnovers count once, as the negative they are — but high turnovers usually signal high usage, so stars aren't double-punished for having the ball.
- Replacement level matters — the final lens is value above the best freely-available player, because that's what a roster spot really costs you.
Then a human argues with it.
The model hands us a board; it doesn't get the last word. Every ranking is sanity-checked against what we actually expect — rotations we've watched, a coach who buries rookies, a contract year, a role that changed after the data closed. We write that view down, player by player, in the one-line takes on the board — and when we disagree with our own model, we say so and why.
The market is the other input: draft prices and roster rates across platforms are the consensus we scan for mispriced players — the gap between our number and the market's price is where the edge lives.
If it doesn't beat the test, it doesn't ship.
Here's the discipline behind every step above: an idea has to beat an honest backtest before it earns a spot. Honest means we replay past seasons — eleven of them, 2015-16 onward — forecasting each using only what we'd have known at the time, no peeking at the answer, and check whether the idea actually made the ranking better.
Plenty of clever-sounding ideas didn't, so we cut them. (Back-to-back fatigue? Players actually produce a hair better on no rest. Combine athleticism? Doesn't predict fantasy value.) Being ruthless about what doesn't work is exactly why we trust what's left.
We check ourselves against the outside world, too — our forecasts line up with respected public models and analysts. And the whole engine is reproducible and guarded by hundreds of automated tests, so what ships is what we can stand behind. We'll publish deeper write-ups of specific pieces in Insights.
And we're honest about the limits: projections carry uncertainty, injuries don't announce themselves, and some calls will miss. When they do, we'll say so plainly — trust is the whole product.
Get in touch.
Questions, feedback, partnership ideas, or think we've got a player wrong? We want to hear it. Email [email protected], or join us to get our weekly takes and early access to the tools.

