Methodology

The Flight Score

One number for a prospect's combine, built so it means something: a Flight Score IS a percentile. A 90 reads "tested better than 90 percent of players at the position since 2000." Here is the whole formula.

Step one

Percentiles, per position

Every measurable (height, weight, 40-yard dash, bench, vertical, broad jump, 3-cone, short shuttle) is scored against the historical distribution for the prospect's position group across combine seasons 2000-2026. A 4.45 forty means something different for a corner than for a tight end, so the pools are separate. Times invert: faster is a higher percentile.

Step two

Position-specific weights

Metrics group into five categories: size (height, weight), speed (40), strength (bench), explosion (vertical, broad), and agility (3-cone, shuttle). Unlike an equal average, each position weights the categories by what actually tracks outcomes there: explosion for edge rushers, speed for corners and receivers, mass and strength inside. The weights are our judgment calls, and they are all here:

GroupSizeSpeedStrengthExplosionAgility
QB15%25%5%30%25%
RB10%30%10%30%20%
WR10%35%5%30%20%
TE20%25%10%25%20%
OL25%10%25%20%20%
EDGE15%20%10%35%20%
IDL25%15%25%25%10%
LB10%25%10%30%25%
CB10%35%5%30%20%
S10%30%10%30%20%

Step three

Honest missing data

Prospects increasingly skip drills, so a hard cutoff would erase half a modern class. Instead, missing categories drop out and the remaining weights renormalize, with a confidence tier on every score: full workout, high confidence, or partial workout. Below 60% of category weight covered, or with no timed or jump drill at all, we publish no score rather than a fake one. Skipping a drill is never penalized as a zero.

The data

Source and attribution

Combine data courtesy of nflverse (CC-BY-4.0), sourced from Pro-Football-Reference. The 2021 season is excluded from every baseline: that combine was cancelled and its numbers are pro-day results, which are not comparable. Pools thinner than 50 samples are not used. The artifact regenerates after each combine, and the consensus data it joins against is the same free dataset on our open data page.