Methodology
How Hardwood grades trades
Every trade you build in the Machine gets a grade per team. That grade is a weighted sum of seven measurable components. This page explains what each one is, why we chose it, and where the numbers come from. If you disagree with a grade, you should be able to point at the exact component that's off — that's the whole point of publishing this.
The seven components
1. On-court value (VORP)
We start with Value Over Replacement Player, a rate stat that estimates how many points per 100 possessions a player produces above a fringe roster player, scaled up by minutes. VORP is imperfect — it undersells elite defense and low-usage playmaking — but it's the least manipulable single number we have for "how much did this player actually help win games." VORP is age-adjusted (see below) before being weighted.
2. Age curve / potential
A 23-year-old with 2.0 VORP is more valuable than a 33-year-old with 2.0 VORP, and every GM in the league knows it. We apply an age multiplier — steep bonus through 24, flat 25–28, declining after — and layer a potential premium for players 21 and under whose BPM has a real ceiling tag ("all-star", "starter", "rotation"). This is the single component most likely to make Hardwood grade a deal differently from a naive VORP-only tool.
3. Team fit
We look at the top-eight minutes rotation on the destination team and check the incoming player's position against the gaps. A backup center joining a team with no backup center is worth more than the same player joining a team that already has three. This is a small component by weight — real fit is about shot profile and defensive matchups, which are beyond a heuristic — but it catches the obvious mismatches.
4. Accolades and star power
All-NBA teams, All-Star selections, MVP shares, championships, All-Defense teams, DPOY, Sixth Man, MIP, and Rookie of the Year are all weighted separately. Star power (jersey sales, media gravity) is a much smaller factor but it's real — a Bradley Beal trade moves ticket revenue in a way a comparable-VORP journeyman doesn't.
5. Contract surplus
We estimate a fair-market salary for each player from age-adjusted VORP, compare it to their actual cap hit, and count the delta. A player on a minimum contract with real production is worth much more than the same player on a max — this is why "expiring contracts" trade at a different value than the same salary rostered long-term.
6. Box-score trend
The current season is weighted, but a player trending sharply up or down over the last 30 days moves the number. This is the component most likely to shift week-to-week.
7. Draft picks
Picks are converted to units on a Kevin Pelton-style curve: a top-3 pick is worth roughly 8–10 units, late lottery ~4, late first ~1.5, mid-second ~0.4. Protections reduce the value by an expected-hit-rate estimate; swaps are valued as the difference between the two teams' projected finish. Read the draft-pick valuation guide for the full curve.
CBA legality is a hard gate, not a component
Before a trade is graded, it has to be legal under the 2023 CBA. We check salary matching (with the correct 100%/110%/125%/200% tier for the sender), first- and second-apron hard caps, Base Year Compensation on recently re-signed players, the poison-pill provision on extended rookies, the Stepien Rule (no two-consecutive-first-round-picks-traded), and the seven-pick rule. An illegal trade shows the exact rule that broke it and doesn't get a grade until you fix it.
Full breakdown in the CBA guide.
Cross-check: real ESPN grades
When a trade you build matches a real deal ESPN has graded (same teams, same headline players), we show ESPN's letter grade next to ours as a sanity check. It doesn't feed into our grade — the two are computed independently — but it's a useful reality check when the engine says B+ and Bobby Marks said C-.
What the grader is bad at
- Locker room chemistry. If you traded away a captain, the grader has no idea.
- Playoff-only skills. A shot-creator's real value spikes in a seven-game series against a set defense; a regular-season heuristic can't see that.
- Coaching fit. Some players work in a five-out offense and don't work in a two-big system. We don't model scheme.
- Injury history. Currently only the current-season stats reflect it. A player with a history of significant absences is graded like anyone else.
These are known gaps. When we close one, we'll say so on this page and in the release notes.