01 · The players
Each dot is one of 36 running backs from 2025: points per game across, volatility up.
The 36 highest-scoring running backs of the 2025 regular season in PPR scoring, each with at least 8 games. Across: points per game, from 8.06 for Jordan Mason to 24.51 for Christian McCaffrey. Up: volatility, the standard deviation of a player's weekly points, from 5.50 to 13.53 for Jahmyr Gibbs. Two players with the same average can be very different starts: one delivers every week, the other swings.
02 · Scale first
Scale first: points per game spread 4.11, volatility 1.90, so both become z-scores.
K-means measures straight-line distance, so a feature with a wider spread pulls harder. Across these players points per game have a standard deviation of 4.11 and volatility only 1.90, a factor of 2.16. Standardizing removes that: subtract the mean, divide by the standard deviation. McCaffrey's 24.51 points per game become a z-score of 2.58, Gibbs' volatility of 13.53 becomes 3.03, and both axes now have a spread of exactly 1.00.
03 · Starting points
Drop 4 starting centroids with k-means++: each new one favours players far from the rest.
The algorithm needs starting centres. K-means++ picks the first one uniformly at random, here Bucky Irving, whose chance was 2.8% like every other player's. Each further pick is drawn with probability proportional to the squared distance to the nearest centre so far: Jahmyr Gibbs had a 17.6% chance, then Tony Pollard 0.7% and Derrick Henry 8.0%. The fixed seed 20260928 makes the draw repeatable.
04 · Assign
Every player joins the nearest centroid: the first groups hold 2, 10, 11 and 13 players.
With four centres in place, each player is assigned to whichever one is closest on the scaled axes. The first pass gives groups of 2, 10, 11 and 13 players. Inertia, the sum of squared distances from every player to the centre of its group, measures how tight the groups are. With the centres still sitting on four players, it is 27.71.
05 · Update
Each centroid moves to the average of its players; inertia drops from 27.71 to 18.18.
Next, every centre moves to the average position of the players assigned to it. In z-score units the four centres travel 0.29, 0.62, 0.38 and 0.55. For a fixed group, the average is the point with the smallest sum of squared distances, so this move can only lower inertia: it falls from 27.71 to 18.18. The magenta trail marks each move.
06 · Repeat
Repeat until nobody switches: after 4 rounds inertia settles at 14.89.
Assign, move, repeat. In round 2 Bijan Robinson switches groups and inertia falls to 17.11; in round 3 Christian McCaffrey follows and it falls to 14.89. In round 4 nobody switches, the centres stay where they are, and the algorithm stops. Across 20 seeded starts, 14.89 is also the lowest inertia found for four groups, so this seed did not leave the run in a worse solution.
07 · The tiers
The result: 4 elite backs, then 10 steady and 9 volatile backs at similar scoring.
Back in real units, tier 1 averages 22.30 points per game with a volatility of 11.11: McCaffrey, Robinson, Gibbs and Taylor. Tiers 2 and 3 score almost the same, 15.16 and 14.46, but tier 2 has a volatility of 6.62 and tier 3 of 9.31, so the split separates steady starters from boom-or-bust ones. Tier 4, 13 players, averages 9.95. Every player and tier is listed below.
08 · How many tiers · the check
Silhouette for k = 2 to 6: two tiers separate best at 0.434; four score 0.428.
The silhouette compares, for each player, the distance to its own group with the distance to the next group, on a scale from −1 to 1. For each k from 2 to 6 this page keeps the lowest-inertia run of 20 seeded k-means++ starts: 0.434, 0.415, 0.428, 0.429, 0.410. The site's silhouette chart keeps the best silhouette of 20 random starts instead; rerun here, it gives 0.470, 0.415, 0.428, 0.427, 0.410. Both put two tiers first.
09 · Without scaling · what breaks without it
Skip scaling: points per game carry 82% of the spread, and 14 of 36 players regroup.
Run the same seeded k-means on the raw numbers. Points per game now carry 82% of the total spread instead of 50%, and the tiers follow them: measured on the scaled axes, 71% of the separation between the unscaled tiers runs along points per game, against 52% for the scaled tiers. The two middle tiers end with the same average volatility, 7.75, and 14 of 36 players land in a different group.
The data · 36 players
Every running back and the tier k-means gave it
Sorted by tier, then by points per game. PPG is PPR points per game; SD, the volatility, is the standard deviation of a player's weekly PPR points. Tiers come from the scaled run with 4 centres shown above.
| Player | PPG | SD | Tier |
|---|---|---|---|
| Christian McCaffreySF | 24.51 | 8.22 | Tier 1 |
| Bijan RobinsonATL | 21.81 | 10.26 | Tier 1 |
| Jahmyr GibbsDET | 21.58 | 13.53 | Tier 1 |
| Jonathan TaylorIND | 21.31 | 12.44 | Tier 1 |
| De'Von AchaneMIA | 20.18 | 7.02 | Tier 2 |
| Chase BrownCIN | 16.62 | 7.35 | Tier 2 |
| Kyren WilliamsLA | 15.49 | 6.11 | Tier 2 |
| Javonte WilliamsDAL | 15.18 | 6.02 | Tier 2 |
| Travis EtienneJAX | 14.94 | 6.94 | Tier 2 |
| Saquon BarkleyPHI | 14.52 | 7.19 | Tier 2 |
| D'Andre SwiftCHI | 14.29 | 6.67 | Tier 2 |
| Bucky IrvingTB | 13.85 | 5.61 | Tier 2 |
| Jaylen WarrenPIT | 13.57 | 5.62 | Tier 2 |
| Breece HallNYJ | 12.98 | 7.62 | Tier 2 |
| James CookBUF | 17.78 | 9.20 | Tier 3 |
| Derrick HenryBAL | 16.44 | 10.00 | Tier 3 |
| Josh JacobsGB | 15.81 | 9.02 | Tier 3 |
| Omarion HamptonLAC | 15.08 | 8.08 | Tier 3 |
| Ashton JeantyLV | 14.42 | 8.69 | Tier 3 |
| Kenny GainwellPIT | 13.02 | 9.38 | Tier 3 |
| Rhamondre StevensonNE | 12.77 | 10.05 | Tier 3 |
| Rico DowdleCAR | 12.72 | 9.80 | Tier 3 |
| TreVeyon HendersonNE | 12.13 | 9.60 | Tier 3 |
| RJ HarveyDEN | 12.15 | 7.66 | Tier 4 |
| Quinshon JudkinsCLE | 12.13 | 6.73 | Tier 4 |
| Zach CharbonnetSEA | 11.34 | 6.70 | Tier 4 |
| Kenneth Walker IIISEA | 11.29 | 6.53 | Tier 4 |
| Tony PollardTEN | 10.93 | 5.62 | Tier 4 |
| Tyrone Tracy Jr.NYG | 10.72 | 7.66 | Tier 4 |
| David MontgomeryDET | 9.82 | 6.72 | Tier 4 |
| Woody MarksHOU | 9.07 | 6.93 | Tier 4 |
| Kyle MonangaiCHI | 8.63 | 6.28 | Tier 4 |
| Kareem HuntKC | 8.55 | 6.05 | Tier 4 |
| Rachaad WhiteTB | 8.41 | 5.50 | Tier 4 |
| Jacory Croskey-MerrittWAS | 8.25 | 7.47 | Tier 4 |
| Jordan MasonMIN | 8.06 | 5.50 | Tier 4 |
Frequently asked questions
What does k-means clustering do with running back statistics?
K-means sorts players into a fixed number of groups so that each player sits as close as possible to the centre of its own group. Here each of the 36 running backs from the 2025 regular season is described by two numbers: PPR points per game and volatility, the standard deviation of weekly points. With four groups the run ends with tiers of 4, 10, 9 and 13 players.
Why do the statistics need to be scaled before clustering?
K-means measures straight-line distance, so the feature with the wider spread dominates. Across these players points per game have a standard deviation of 4.11 and volatility only 1.90, a factor of 2.16. Converting both to z-scores gives each axis a spread of exactly 1.00. Without scaling, points per game carry 82% of the total spread instead of 50%, and 14 of the 36 players land in a different group.
What is k-means++ and why is the seed fixed?
K-means++ is a way to choose starting centres. The first is picked uniformly at random; each further centre is drawn with probability proportional to the squared distance to the nearest centre already chosen, so the starting points spread out across the data. In this run the first pick, Bucky Irving, had a 2.8% chance like every other player. The fixed seed 20260928 makes the draw, and the whole result, repeatable.
How does the algorithm know when to stop?
It alternates two moves: assign every player to the nearest centre, then move each centre to the average of its players. Neither move can raise inertia, the sum of squared distances from players to their centres. Here inertia falls from 27.71 to 18.18 after the first move, then to 17.11 and 14.89. In round 4 nobody switches groups, so the algorithm stops; 14.89 was also the lowest inertia across 20 seeded starts.
How many tiers fit these running backs best?
The silhouette compares each player's distance to its own group with the distance to the next group, on a scale from −1 to 1. For k from 2 to 6, keeping the lowest-inertia run of 20 seeded starts, the scores are 0.434, 0.415, 0.428, 0.429 and 0.410. Two tiers separate best, but four score almost as high and split the middle into steady and volatile backs averaging 15.16 and 14.46 points per game.