The DMX Methodology Whitepaper
DynastyFootballFan · June 2026 · v1.0
This is the whole story of how I build DMX (Dynasty MetriX), my pre-draft prospect score, and DPX (Dynasty Performance Index), the in-career score that takes over once a guy starts playing. I'll walk you through the 25-year dataset I train them on, how the score is put together, how I decide what counts as a good career, and the full validation math — all 12 regressions across 4 positions and 3 target metrics, plus decile hit rates on 2,026 completed careers. I'll also be straight with you about where the model comes up short. Three things I keep to myself as trade secrets. Everything else is right here and on the live site, including every number you'd need to check my predictive claims yourself.
1. Pricing rookies before the league does
Dynasty leagues get won and lost at the moment you know the least — rookie drafts and the trades that swirl around them. That's when the market runs hottest on hype. A mock drops, a highlight goes viral, some analyst falls in love, and a guy's price jumps for reasons that have nothing to do with what he'll actually do in the NFL. DMX asks a smaller, harder question than “who's good?” Given only what we knew on draft night, what did prospects who looked just like this one go on to do once they hit the league?
Asking it that way forces two rules on me. One: I score every prospect in every class the exact same way, or the historical hit rates are worthless. Two: I grade the model against how careers actually turned out, and that takes years of waiting. So a model that launched last season can't have a track record yet, no matter how slick its features are. The formula gets all the attention, but the dataset is what the whole thing stands on.
2. The dataset
What I train and test on is 3,150+ offensive prospects across 27 NFL draft classes (2000–2026) and 2,950+ defenders (IDP) going back to 2004. For every one of those guys, I stitch together four kinds of records that public football data does not line up for you on its own:
- College production — what he did per season, and how old he was when he did it.
- Athletic testing — his Combine and pro-day numbers.
- Draft records — the pick, round, and team for every drafted guy, undrafted free agents kept in too.
- NFL career outcomes — how he actually scored, season by season, across his career window, pulled from sources like nflverse.
Most of the real work is in that stitching. Public football data is a mess — duplicate names, guys who share a name, transfers, IDs that don't match from one provider to the next. So I keep a canonical identity spine with alias resolution running underneath everything, which is a fancy way of saying I make sure the same player is the same row in every single table. Build your model on a bad join and it won't blow up in your face. It'll just quietly score the wrong guy's career, and you'll never know. That's worse than a crash.
Where I've got a hole in the data, I leave it showing instead of papering over it. There's just no clean public source for defensive college stats before 2004, so those early IDP classes get lower-confidence scores with the production piece left explicitly blank — I'm not going to zero it out and pretend I know something I don't (see §7).
3. How DMX is built
DMX is one z-score built out of three things we know before a guy is drafted, each measured against other prospects at his position. The three don't overlap much, and that's the point — they each tell you something different:
3.1 Athleticism (ATH)
This is the workout stuff — 40-yard dash, vertical, broad jump, 3-cone, shuttle, bench, and a height-adjusted weight. I z-score each one against his position, roll them into four buckets I publish — Speed (ATH-SPD), Agility (ATH-AGIL), Lower-body Power (ATH-LP), and Strength (ATH-STR) — and then boil those down to a single ATH number.
3.2 Draft Position (DPOS)
Where the NFL drafted him, turned into a z-score for his position, with undrafted guys parked at pick 300. Think of DPOS as all 32 front offices' scouting boiled down to one number, and it's the single strongest thing I've got at every position. Ignore draft capital in a prospect model and you're throwing out your best tool. But lean on it alone and you're leaving real accuracy on the table too, because the full DMX blend beats draft-capital-only at every position (see §5).
3.3 Age-Weighted Production (AWP)
His final college season, per game, adjusted for how young he was when he did it. Underneath that I'm looking at his share of his team's yards, his age against the rest of his class, an early-declare “phenom” flag, and dominator-style shares of the offense. I don't adjust for strength of schedule inside AWP — draft capital already handles that, since the NFL is pricing in where a guy really belongs when it decides where to draft him. For IDP prospects, AWP becomes havoc share: his cut of everything disruptive his defense did (sacks + TFL + forced fumbles + INT + passes defensed). That number carries from one scheme to the next a lot better than raw counting stats do.
3.4 Composite assembly and deciles
Then I weight the three pieces by position and blend them into the DMX score. Those weights aren't a guess — I fit them by maximum likelihood against 25 years of actual career outcomes, and refit them every three years or so as more careers finish. I keep the exact values to myself (§8). Once every prospect has a score, I sort each class into the D1–D10 buckets you see — NTILE(10) OVER (PARTITION BY position, draft_year ORDER BY dmx DESC) — so a decile always means “relative to this year's class.” When you're comparing across years, use the raw score, not the decile.
A few things I leave out of DMX on purpose. Landing spot, because I lock the score at the draft before any team context exists. Injury history as its own input, because NFL scouts can already see it, so it's baked into where a guy gets drafted (DPOS). And the character and interview stuff, because in my experience it's a lot of noise for very little signal.
4. Defining career outcomes
You can't test a prospect model unless you decide what “success” means before you go looking at what it predicted. So I nail that down three different ways:
- 5-year career VBD — his points above a replacement-level guy at his position, added up over years 1–5, and that window is hard-capped. This one rewards piling up value.
- Peak 3-year VBD average — his best 3-season stretch instead. This rewards a big peak even if the career was short.
- Career tier — Star / Starter / Contributor / Bust, drawn from where a guy lands in the VBD percentiles for his position, and I treat it as a ranked outcome.
Labeling a career means waiting on it. A guy drafted in 2021 didn't have his 5-year window close until after the 2025 season. That's why the validation cohorts below stop at 2020–2023 even though I'm scoring all the way through the 2026 class — the recent guys simply haven't finished cooking yet.
5. Validation
5.1 The complete regression table
Here's the whole thing — all 12 regressions of DMX against career outcomes, 4 positions × 3 targets, run on every prospect whose career window has closed. I'm not cherry-picking the pretty ones. Every active regression in the database is right here, and you can pull the same numbers yourself, live, on the Model Transparency page.
| Position | Target | Intercept | Slope | R² | N | Cohort |
|---|---|---|---|---|---|---|
| QB | 5-yr VBD | 18.4 | 39.5 | 0.188 | 314 | 2000–2020 |
| RB | 5-yr VBD | 49.3 | 85.7 | 0.207 | 692 | 2000–2020 |
| TE | 5-yr VBD | 25.0 | 53.0 | 0.160 | 509 | 2000–2020 |
| WR | 5-yr VBD | 37.6 | 70.3 | 0.164 | 1076 | 2001–2020 |
| QB | Peak 3-yr VBD avg | 8.9 | 16.2 | 0.126 | 162 | 2000–2020 |
| RB | Peak 3-yr VBD avg | 18.9 | 26.0 | 0.160 | 374 | 2001–2020 |
| TE | Peak 3-yr VBD avg | 9.0 | 20.9 | 0.184 | 269 | 2001–2020 |
| WR | Peak 3-yr VBD avg | 18.5 | 21.1 | 0.101 | 535 | 2001–2020 |
| QB | Career tier (ordinal) | 1.6 | 0.9 | 0.346 | 231 | 2000–2020 |
| RB | Career tier (ordinal) | 2.0 | 0.8 | 0.306 | 554 | 2001–2020 |
| TE | Career tier (ordinal) | 1.8 | 1.0 | 0.417 | 409 | 2001–2020 |
| WR | Career tier (ordinal) | 1.8 | 0.8 | 0.278 | 832 | 2001–2020 |
predicted_outcome = intercept + slope × DMX. Active regressions from dmx_model_coefficients, refit August 2026.
Two things to take from this, and I'll be straight about both. First, an R² in the 10–42% range is exactly what honest pre-draft prediction looks like. The coach a guy lands with, whether the scheme fits, injuries, who's already ahead of him on the depth chart — none of that exists on draft night, and it puts a hard ceiling on what any model can know. The part DMX doesn't explain isn't the model coming up empty. It's a measurement of how much draft day just can't tell you. Second, the tier regressions come in at roughly 2× the R² of the straight VBD ones. Careers fall into archetypes a lot more cleanly than they line up along exact point totals, and honestly, “what kind of player is this going to be” is both the easier question to learn and the more useful one when you're setting a roster.
5.2 Decile hit rates
Most folks read DMX as deciles, so let's look at it that way. Here's what every offensive prospect from the 2001–2020 classes with a finished career window actually turned into:
| Decile | Prospects | Star % | Star or Starter % | Bust % |
|---|---|---|---|---|
| D1 | 232 | 52.2% | 80.2% | 4.7% |
| D2 | 238 | 32.8% | 59.7% | 16.0% |
| D3 | 221 | 22.6% | 47.5% | 26.2% |
| D4 | 219 | 15.1% | 35.2% | 36.5% |
| D5 | 199 | 5.5% | 22.6% | 49.7% |
| D6 | 183 | 6.6% | 14.2% | 66.7% |
| D7 | 183 | 6.6% | 12.6% | 74.3% |
| D8 | 192 | 2.6% | 14.1% | 68.2% |
| D9 | 174 | 4.0% | 12.1% | 69.0% |
| D10 | 185 | 3.2% | 7.6% | 77.3% |
n = 2,026 offensive prospects, draft classes 2001–2020, career tier labeled.
Read the slope, and it goes the right way the whole way down — the top decile turns into a Star or long-term Starter at roughly 7× the rate of the bottom three. Here's the same story cut by position, top two deciles against the bottom two:
| Position | D1–D2 hit rate | n | D9–D10 hit rate | n |
|---|---|---|---|---|
| QB | 67.8% | 59 | 0.0% | 26 |
| RB | 77.6% | 134 | 14.5% | 110 |
| TE | 73.9% | 92 | 4.8% | 83 |
| WR | 62.7% | 185 | 10.7% | 140 |
Hit = career tier of Star or Starter. Same 2001–2020 labeled cohort.
5.3 Calibration and residuals
Ranking guys correctly is one thing. I also check whether the model is calibrated — that is, whether the outcomes it predicts actually match what happened, on average, inside each bucket. The per-position calibration plots (every finished-career prospect, predicted vs. actual) live on the Model Transparency page, and the ranked over- and under-performer residual boards are on the Analytics page. I don't hide the misses. The guys the model got wrong, and which way it got them wrong, are exactly what the next refit learns from.
6. DPX, the in-career model
DMX freezes at the draft on purpose. The second a guy plays his first NFL snap, I hand him over to DPX — a separate model that tracks his dynasty value on three things I can actually watch happen, each a z-score updated from real game data. Volume is his touches, targets, and snap share. Scoring is his fantasy points per game (half-PPR and PPR both), and I weight it the heaviest, because in the end dynasty value compounds off of scoring. Efficiency is what he does per opportunity. On top of all that sits a dynasty modifier for contract status and draft-capital decay, which is what pulls dynasty value apart from plain redraft value.
For every player-season, DPX puts out two deciles: DPX-Next, my read on next season, and DPX-Long, my read three years out. I keep thirteen NFL seasons of these scores going, with roughly 350 active players graded each year. If you want the plain-English version with a worked example and how to read it, that's over at What is DPX?.
7. Known limitations
- Era drift. The game has changed a lot since the late 1990s — how guys test, how much college teams throw, how front offices draft. I z-score the components within each draft year to soak up some of that, but the weights are fit over long stretches of history, so an elite 1998 profile and an elite 2024 profile don't line up perfectly.
- IDP college data gaps. There's no clean public source for defensive college stats before 2004, so those guys get an ATH+DPOS-only score with the production piece left blank on purpose. I flag them on the Draft Board so you know.
- Small-school prospects. I credit their production without docking them for weak competition — that's handled through draft capital, not inside AWP — and FCS or Division II guys who barely test carry a noisier ATH. Do some extra homework on these guys with your own eyes.
- Hard outcome windows. A 5-year VBD total treats a short, huge peak differently than a long, steady mid-tier career. I publish the peak-3-year version to balance that out, but I'll be honest, no window is perfectly fair to everybody.
- Tier boundaries. The Star/Starter/Contributor/Bust cutoffs are fixed, but where I drew them is a little arbitrary — a guy sitting 2% under a line gets stamped on the low side of it. Read the raw numbers next to the labels, not just the labels.
8. What I don't publish, and why
There are three things I keep to myself: (1) the DMX position weights, (2) the IDP DMX position weights, and (3) the DPX layer weights and dynasty-modifier coefficients. Those are 25 years of grinding on a dataset I built by hand, and they're the one thing that actually sets this apart. Anybody can average three z-scores. Figuring out which blend actually predicts NFL production is the hard part, and it's the part I don't give away.
My rule on this is simple. The outputs are all yours; the internals stay locked. Every score, decile, sub-component, regression coefficient, and hit rate in this paper you can read straight off the live database. Every weight that produces them sits behind row-level security with anonymous access shut off.
9. Reproducibility
You don't have to take my word for anything in §5. The DMX scores for finished-career cohorts are public. You can work out career VBD and tiers yourself from public play-by-play data like nflverse, run OLS on those pairs, and you should land within rounding of the coefficients up above. If you don't, that's a bug I want to hear about — just reply to the newsletter and tell me.
Want the plain-English intros to both scores? Start with What is DMX? and What is DPX?. Want the live, clickable version of every table in this paper? That's Model Transparency.