Course-adjusted ratings for every high school cross country runner in Maine, built from head-to-head results. Each race absorbs its own course, conditions and field strength, so a 5K at one venue means the same as a 5K at another. Click any runner to see the races behind their number.
The rating is not a time anyone ran. It is what the model thinks a runner is worth over a flat, honest 5K, worked out from how far ahead or behind they finished relative to everyone else in each of their races. Course, weather and field strength are removed.
The horizontal rules are the honest part. A line is drawn only where there is a real gap. Runners between two lines are level with each other — their uncertainties overlap, so the order among them is noise, and reading anything into "7th versus 9th" inside a block is reading noise. Where a rule appears, the runner below genuinely is slower.
The confidence bar fills as a rating firms up. A runner with one race sits near empty; six races fills it. The ± column is the same thing as a number of seconds.
Click any runner to see every race behind their number and how their season has moved. The chart plots each race converted to the same 5K scale, so a line that falls is real improvement rather than an easier course.
Matchup compares any two runners, including two who have never met: it finds the runners they have both raced and chains through them. Build a meet takes any number of schools — two for a dual, ten for an invitational — and scores it the way a real meet is scored: only the first seven from a team count for anything, a team without five finishers is struck out of the scoring altogether (which moves everyone else up the order), the low score wins, and a tie goes to whoever's sixth runner is further up.
"What has to happen" races the meet four thousand times. Each runner is drawn from their own measured spread, not their rating alone, and the meet is scored from scratch every time. The needs column is what a runner averaged across the runs that went their team's way — a target, not a prophecy — and swing is the gap between their good-day and bad-day average, which is the honest answer to "where is this meet won". A star who is winning anyway has almost no swing; the meet usually turns on a fourth or fifth runner. Those draws are deliberately heavy-tailed, because runners measurably are: 87% of races land within two standard deviations where a normal curve says 95%, and upsets live entirely in that difference.
Provisional runners are marked. A single race, anchored to last season, is enough to place someone roughly. It is not enough to argue about.
Accuracy, measured rather than claimed. Trained on September 2025 and asked to predict the Festival of Champions, this model called 85.1% of 73,902 head-to-head matchups, named the winner, and had 9 of its predicted top 10 finish in the top 10. Error is much tighter at the front of the field than at the back — a sub-17 runner was predicted to within 4 seconds, a 24-minute runner to within 70.