About

what this is and what it is not
player seasons
46,027
team seasons
4,691
player games
736,492
names
26,884
cross-division
665

What it does

Every NCAA men's soccer player across D1, D2 and D3 in one place, with production adjusted for the strength of opponent faced. A goal against the ACC and a goal against the bottom of a weak conference are not the same goal, and this fits that difference out. Built entirely from free public NCAA data, with no licensed source anywhere in it.

The pyramid

Where a college player can go, in order. Order is not distance. Only the three college rungs carry a measured gap, and the width of a rung is the shape of a pyramid rather than a count.

level
players
vs D1
European big 5 England, Spain, Germany, Italy, France
0
·
Other professional abroad the other 34 leagues the crawl covers
47
·
MLS first tier
153
·
USL Championship second tier
107
·
USL League One and MLS Next Pro third tier
203
·
Pre-professional USL League Two, NISA, NPSL
not counted
·
NCAA Division I
6,724
+0.000
NCAA Division II
7,068
+0.329
NCAA Division III
13,787
+0.591

The two rungs abroad are floors, not rates. They are counted over the 39 competitions the crawl covers, which is the big five and 34 others, so a player in a league outside that set is not on this page at all. Nobody is counted twice. A player who reached both MLS and a league abroad appears once, on whichever of the two rungs sits higher here. 8 more are left off the two rungs abroad on purpose. They were professional abroad before they arrived at a United States college, so those careers are real but are not somewhere a college pathway took them. They keep the badge on their own pages, where the dates are visible.

Pre-professional is withheld on purpose. 186 confirmed players have a USL2 or NISA spell during college, but that figure exists only for players who later turned professional, so printing it would condition the bottom rung on the outcome the rungs above it measure.

The one gap that is measured

Team ratings never cross a division and never will on this data. Cross-division games are under 1% of contests, nowhere near enough to put three divisions on one scale. Players are a different problem and it is solved. Somebody who plays D3 and then D2 is observed in both, so the gap is read off the same player rather than inferred from fixtures. Fitted on 665 such careers, a D2 goal is worth about 0.72 of a D1 goal and a D3 goal about 0.55.

388 of them moved up and 277 moved down. The ladder is a mean shift measured on movers, and most movers are mid-table, so applying it to a player at the very top assumes the gap holds out there and this sample cannot check that. There is no canonical player id yet either, so these are matched on name. Every mover.

Moveplayersdirection
D2 to D1 226 up
D1 to D2 144 down
D3 to D2 108 up
D2 to D3 74 down
D1 to D3 59 down
D3 to D1 54 up

How much to trust a rank

A season is about twenty matches, so a rate rests on about twenty involvements. The top player in D1 2025 is distinguishable at 95% from rank 94 of 2,610 and from nobody above that, and no adjacent pair anywhere separates. So the order is an estimate and the neighbourhood is the finding. Compare prices any specific pair and refuses to call the ones it cannot separate.

The outside check agrees, from a completely different direction. The top tenth of college producers turns professional at 3.3 times the rate of the population, and it holds inside a single leaving cohort (3.6x for 2022 leavers and 3.7x for 2023), so it is not older players having had more time. Deciles two through ten are flat. This metric finds a top group and does not usefully order anybody below it.

What it cannot do

It cannot see progression, defending or off-ball work. Box scores carry goals, assists, shots and minutes. Tested against Wyscout on 193 players, there is real signal for creation volume and essentially none for progression or defending. That is most of football and it is missing.

Goalkeepers are not ranked, on purpose. The metric is goal involvements and the most productive keeper in four seasons still lands below the median, so the percentile is withheld while every goal, assist and minute stays on the page.

Turning professional is not the same as being good. It carries whoever a club happened to see, who had an agent and who could get a visa, and a player can be correctly rated here and never sign.

Only players with 6+ nineties appear, so this is not yet every player.

How the professional outcomes are matched

26,665 names were checked against FotMob, and anyone with a professional of that name at a US club was confirmed against Transfermarkt. The match is anchored on the college, not the name, so a professional who merely shares a name is recorded as unconfirmed and never reaches a page. A placebo run that hands each player a stranger's colleges fires 1.4% of the time against 74.1% on the real pairing. 511 careers are confirmed.

Data coverage

Divisions d1,d2,d3 · seasons 2022,2023,2024,2025 · built 2026-08-09 18:44. Coverage is recorded per division-season at build time rather than assumed, because a backfill still running produces a dataset that looks complete and is not.

sport division season contests on disk player lines
soccer-mend120212002111294
soccer-mend120221917114033
soccer-mend120231888114121
soccer-mend120241939108303
soccer-mend12025177861547
soccer-mend220221858120382
soccer-mend220231829124418
soccer-mend220241908111326
soccer-mend22025171662129
soccer-mend320223891241568
soccer-mend320233859241919
soccer-mend320243966219162
soccer-mend320253548135090