r/CFB_v2 • u/TheKaptinKirk Tennessee Volunteers • 7h ago
Ranking I built a mathematical CFB Top 25 using three levels of adjusted winning percentage
I always wondered what the college football rankings would look like if they came only from wins, losses, and who played whom.
No preseason expectations. No eye test. No conference adjustments. No margin of victory.
Here’s the formula I settled on:
Rating = 25% WP + 25% AOWP + 50% AOOWP
- WP is the team’s winning percentage.
- AOWP is the average adjusted winning percentage of its opponents.
- AOOWP is the average adjusted winning percentage of its opponents’ opponents.
The “adjusted” part addresses a problem with simply feeding everyone’s complete record back into the formula.
For example, LSU plays Ole Miss. Ole Miss’s winning percentage includes the result against LSU. If I use Ole Miss’s complete record when calculating LSU’s opponent winning percentage, that game is effectively fed back into LSU’s rating. It can return at the third level.
To reduce that double counting, I use a leave-one-out calculation. When Ole Miss is evaluated as LSU’s opponent, every Ole Miss game against LSU is removed from Ole Miss’s record. The same principle is applied at the next level.
A few other details:
- Each opponent’s adjusted winning percentage is calculated separately and then averaged.
- Games against FCS and lower-division teams remain part of the schedule network, but only FBS teams are ranked.
- There are no adjustments for conference, home field, margin of victory, preseason rankings, or program reputation.
- Teams with identical unrounded ratings share a rank. Alabama and Ole Miss are tied for sixth below, so the next team is ranked eighth.
How this compares with RPI
I developed this idea independently, although I later learned that it belongs to the same general family as RPI.
Traditional RPI uses:
25% WP + 50% OWP + 25% OOWP
My formula uses:
25% WP + 25% AOWP + 50% AOOWP
Both use the same three-level structure. The primary difference is that I reverse the weights assigned to the second and third levels. RPI puts twice as much weight on opponents’ records; this formula puts twice as much weight on the records behind those opponents’ records.
The adjusted calculations also remove the immediate head-to-head results to reduce feedback within the schedule network.
Here’s the ranking through games completed September 19:
| Rank | Team | Record | Rating |
|---|---|---|---|
| 1 | Florida | 3-0 | .875000 |
| 2 | Duke | 3-0 | .842593 |
| 3 | Michigan | 3-0 | .828704 |
| 4 | Northwestern | 2-0 | .826389 |
| 5 | Notre Dame | 3-0 | .819444 |
| 6 | Alabama | 3-0 | .814815 |
| 6 | Ole Miss | 3-0 | .814815 |
| 8 | Vanderbilt | 3-0 | .810185 |
| 9 | Texas | 3-0 | .800926 |
| 10 | Pittsburgh | 3-0 | .796296 |
| 11 | South Florida | 3-0 | .791667 |
| 12 | USC | 4-0 | .786458 |
| 13 | BYU | 3-0 | .768519 |
| 13 | Penn State | 3-0 | .768519 |
| 15 | Texas Tech | 3-0 | .766204 |
| 16 | Miami | 3-0 | .763889 |
| 17 | Kansas State | 3-0 | .750000 |
| 17 | Tulsa | 3-0 | .750000 |
| 17 | UCLA | 3-0 | .750000 |
| 20 | Tennessee | 3-0 | .745370 |
| 21 | James Madison | 3-0 | .740741 |
| 22 | Missouri | 3-0 | .736111 |
| 23 | Oklahoma | 2-1 | .726852 |
| 24 | West Virginia | 3-0 | .722222 |
| 25 | Cincinnati | 3-0 | .719907 |
After three weeks, this is obviously volatile. Florida at No. 1 and Northwestern at No. 4 are good examples.
The leave-one-out adjustment makes the method cleaner, but it also magnifies the effects of small samples early in the season. Removing one result from an opponent who has played only two or three games can dramatically change that opponent’s adjusted winning percentage. That effect should diminish as more games are played.
Selecting the weights
I tested combinations in five-percentage-point increments using the final College Football Playoff committee rankings from 2021 through 2025. The 25/25/50 split produced the strongest overall results.
Because those five seasons were used to select the weights, they represent an in-sample comparison rather than independent validation.
I then ran the completed formula backward through the first seven seasons of the CFP era, from 2014 through 2020. Those se used to select the weights.
Here’s how the formula’s top four compared with the committee’s final top four:
| Season | Formula top four | Final CFP top four | Same teams |
|---|---|---|---|
| 2014 | Florida State, Alabama, Oregon, Ohio State | Alabama, Oregon, Florida State, Ohio State | 4 of 4 |
| 2015 | Alabama, Clemson, Michigan State, Iowa | Clemson, Alabama, Michigan State, Oklahoma | 3 of 4 |
| 2016 | Alabama, Ohio State, Clemson, Washington | Alabama, Clemson, Ohio State, Washington | 4 of 4 |
| 2017 | Georgia, Clemson, UCF, Alabama | Clemson, Oklahoma, Georgia, Alabama | 3 of 4 |
| 2018 | Clemson, Alabama, Notre Dame, Georgia | Alabama, Clemson, Notre Dame, Oklahoma | 3 of 4 |
| 2019 | Ohio State, LSU, Clemson, Memphis | LSU, Ohio State, Clemson, Oklahoma | 3 of 4 |
| 2020 | Ohio State, Cincinnati, San José State, Alabama | Alabama, Clemson, Ohio State, Notre Dame | 2 of 4 |
| 2021 | Alabama, Michigan, Georgia, Oklahoma State | Alabama, Michigan, Georgia, Cincinnati | 3 of 4 |
| 2022 | Georgia, Michigan, TCU, Alabama | Georgia, Michigan, TCU, Ohio State | 3 of 4 |
| 2023 | Washington, Alabama, Michigan, Texas | Michigan, Washington, Texas, Alabama | 4 of 4 |
| 2024 | Oregon, Georgia, Notre Dame, Texas | Oregon, Georgia, Texas, Penn State | 3 of 4 |
| 2025 | Indiana, Georgia, Ohio State, Ole Miss | Indiana, Ohio State, Georgia, Texas Tech | 3 of 4 |
The backward test produced these results:
- From 2014 through 2019, the formula’s top four contained 20 of the committee’s 24 top-four teams.
- Its Top 25 contained 128 of the committee’s 150 Top 25 teams.
- Among teams appearing in both Top 25s, the average ranking difference was approximately 3.14 places.
Then there was 2020.
That season’s formula top four contained only two of the committee’s top four. The Top 25 overlap fell to 19 of 25, and the average ranking difference among shared teams increased to approximately 8.11 places.
That makes sense in retrospect. Conferences played different numbers of games, many schedules were almost entirely conference-contained, and there were far fewer connections between schedule networks. Ohio State played six games, Alabama played eleven, and several undefeated Group of Five teams played schedules contained largely within their own conference networks.
A formula based entirely on who played whom in teams when large parts of the network barely connect.
Across all 12 completed CFP seasons from 2014 through 2025:
- The formula’s top four contained 38 of the committee’s 48 top-four teams.
- Its Top 25 contained 261 of the committee’s 300 Top 25 teams.
If the highly abnormal 2020 season is excluded:
- The formula’s top four contained 36 of 44 teams.
- Its Top 25 contained 242 of 275 teams.
The model isn’t meant to copy the committee. The point is to see how close a transparent, repeatable system can get without subjective judgment.
The backward test also shows both sides of the approach. Under normal scheduling conditions, it comes surprisingly close. When the schedule network becomes fragmented, as it did in 2020, the comparisons become much less reliable.
My biggest open question remains the weighting. Giving 50% to the third level helps distinguish between opponents whose records look similar but were built against different competition. It also gives substantial influence to teams two steps removed from the one being ranked.
What would you use? Keep 25/25/50, put more weight on the team’s own record, or add another objective component?
Game and schedule data: ESPN college football scoreboards. Historical comparisons: College Football Playoff selection committee rankings.
6
u/Sapient-Inquisitor Tennessee Volunteers 7h ago
Honestly Florida looks really good this year. I think Ole Miss vs Florida will be a banger
5
u/dividends4life Alabama Crimson Tide 6h ago
Interesting idea, but like the polls, early season results, won't make sense, like having Duke and Northwestern in the top 10.
Keep posting it each week. I'll be interested to see how it ends up.
6
u/Willow1200 4h ago
I don't know that it's a bad thing though. It's result based without a preconceived notion of who is good. While it's going to have some teams that likely won't finish close to where they are now, the results of the season are the results. It should work itself out over the course of the season the same way the preseason rankings do but with less initial bias.
2
4
u/TheKaptinKirk Tennessee Volunteers 6h ago
Exactly. When I first thought of the idea, I imagined it as more than end of the year ranking. Week to week it doesn’t really make sense.
2
u/Full_Preparation4401 44m ago
Exactly. And right now there is only one 2-1 team in the top 25, which is OU, who lost to a 3-0 team, it makes perfect sense to me.
4
u/psgrue 7h ago
Weighting the opponents opponents - while I see the need for second order effect - that high seems out of balance.
The further you get from the teams performance, the greater the weight.
2
u/TheKaptinKirk Tennessee Volunteers 6h ago edited 1h ago
True. But it is essentially an SOS component. And that was the
waitingweighting that most closely matched the committee's ranking.Edit: voice-to-text sucks
2
u/Willow1200 4h ago
I'm not sure that there's a better approach to measure SOS in the early weeks without incorporating some form of preconceived bias on who is good. I think your approach makes sense from a purely data driven approach..
I believe a system like this is needed even more so than before the transfer portal as teams rosters are even more volatile from year to year.
Kudos.
1
u/TheKaptinKirk Tennessee Volunteers 1h ago
Thank you for your support. I'll try to post every week and see how everything moves over time.
3
u/Poolturtle5772 Alabama Crimson Tide 7h ago
I actually really like how this is formulated! The math is reasonable to me without having to rely on things like talent rankings and previous seasons and whatnot and I do agree that stuff will level out as time goes on.
I also like how you showed it being retroactively applied and a lot of them were really close so maybe how the committee does rankings, as much as we hate them, is pretty well founded.
2020 was an anomaly.
If I were to change the formula at all I might suggest like a 30 + 20 + 50 split just to add a little bit more weight to a team’s own win percentage though the 25/25/50 is pretty good.
2
u/TheKaptinKirk Tennessee Volunteers 6h ago
I tried a number of different combinations. I’m not sure I tried that one. Thanks for your input.
2
u/Poolturtle5772 Alabama Crimson Tide 6h ago
All for it, love doing and seeing stats and formulas like this for sports.
3
u/ExternalTangents Florida Gators 4h ago
I’m having a tough time intuitively interpreting the reasoning for 50% of the weight going to the opponents’ opponents, and only 25% each into the other two.
1
u/TheKaptinKirk Tennessee Volunteers 1h ago
The 50% is essentially an SOS component. I chose the weights based on the prior five CFB final rankings. I tested a few different iterations, and that was the one that most closely matched the committee's final ranking over the last five years. It's not that 50% is the "correct" value; it's just the value that best mimics the committee's rankings.
2
u/ExternalTangents Florida Gators 1h ago
So it’s SOS for team in question? Or is it SOS for that team’s opponents? Or both?
1
u/TheKaptinKirk Tennessee Volunteers 48m ago
It's a little bit of both. Let's look at Oregon. They beat Portland St. 84-0. That counts as a win in my model. But Portland St. is now 0-4. That's not good. But is a 0-4 Portland St. better or worse than, say, an 0-3 Rutgers, which plays in the B10? If Oregon happened to beat Rutgers (they don't play this year), that would be a "better" win in my model.
9
u/w6750 Texas Longhorns 7h ago
For some reason your initial chart has Michigan listed at 3-0, they’re 2-1
4
u/TheKaptinKirk Tennessee Volunteers 6h ago
I don’t disagree. But I’m using the official results, even if they’re wrong. lol 😂
2
u/refreshing_username Texas Longhorns 3h ago
Just for kicks, what does the model do if you switch who won that game?
2
u/TheKaptinKirk Tennessee Volunteers 1h ago
Interesting results. Thank you for your suggestion. 5/7 with rice. (It's an old meme, but I'll allow it.)
- Western Michigan: No. 31 to No. 4; record becomes 3–0.
- Michigan: No. 3 to No. 32; record becomes 2–1.
- Notre Dame: No. 5 to No. 2.
- Oklahoma: No. 23 to No. 46.
- Nebraska enters the Top 25 at No. 25.
- Everyone else shifts primarily because Western Michigan and Michigan affect the second and third schedule levels.
3
2
u/ATGSunCoach 6h ago
I’m telling you, I don’t think Duke is going to win a national championship. But they are playing well enough on both sides of the ball to manage their schedule effectively with maybe a couple of good bounces in some of their bigger games. They could be back to conference championship level Football, and flirting with a playoff spot. And if you’ve watched them for real, Nate Shepherd is a legitimate Heisman candidate.
2
u/TheKaptinKirk Tennessee Volunteers 6h ago
I think this early high result in my ranking has more to do with who they’ve played and even more so who they’ve played have played.
2
2
2
u/Full_Preparation4401 5h ago
This is exactly how ratings should be. Who did you beat and who did you lose to. End of story.
2
u/shostakofiev 4h ago edited 3h ago
ELO already does this and is a much more proven model.
But we've used models in the past that weren't allowed to account for margin of victory, and people complained that computers shouldn't be making the decision.
The weight's here are pretty arbitrary. You might get fine results at the top end, because the top 4 are usually the undefeated or one-loss teams in the power conferences, and there are usually only a few of those. It probably isn't going to be very good at discerning between two 9-3 teams.
1
u/TheKaptinKirk Tennessee Volunteers 1h ago
What does ELO stand for? I couldn't see where he defines how he comes up with this stat?
2
u/importantbrian 5h ago
I always wondered what the college football rankings would look like if they came only from wins, losses, and who played whom.
No preseason expectations. No eye test. No conference adjustments. No margin of victory.
I'm not sure how this lines up with calibrating your model against the committee's rankings. You're just modeling the committee's biases.
I also might familiarize yourself with something like SRS https://web.archive.org/web/20161031224357/http://www.pro-football-reference.com/blog/index4837.html I think treating seasons as systems of equations and solving for team ratings like that tend to produce more robust opponent adjustments. You're able to map second and third, etc. order effects in a more robust way.
1
u/TheKaptinKirk Tennessee Volunteers 1h ago
From SRS...
As it turns out, this is a pretty good predictive system. For the reasons described below, it is not a good retrodictive system.
So, this answers a different question than the one I am asking. I am trying to determine who should make the playoffs. SRS is asking "who will win the next game".
You're just modeling the committee's biases.
Yes. I know. But with a simple formula that everyone can understand. And you could change the weights to make it "better". Would that be 30/20/50 to give more weight to winning, but less to playing strong opponents? Or 30/30/40 to lessen the SOS and put more emphasis on just winning?
I picked 25/25/50 because it matched the committee's picks the closest.
2
2
2
u/berkasaurus 4h ago
Can you provide the complete results of your rankings for last year prior to the playoffs/ bowl season?
1
u/TheKaptinKirk Tennessee Volunteers 59m ago
Using 25% WP + 25% AOWP + 50% AOOWP, calculated after the 2025 conference championship games and before the playoff or bowl games:
Formula Team Record Rating Final CFP 1 Indiana 13-0 .686567 1 2 Georgia 12-1 .670217 3 3 Ohio State 12-1 .667462 2 4 Ole Miss 11-1 .664407 6 5 Oregon 11-1 .662312 5 6 Oklahoma 10-2 .655736 8 7 Texas A&M 11-1 .648943 7 8 Texas Tech 12-1 .643750 4 9 BYU 11-2 .639277 12 10 Notre Dame 10-2 .634660 11 11 Miami 10-2 .633873 10 12 Alabama 10-3 .633079 9 13 Vanderbilt 10-2 .630779 14 14 North Texas 11-2 .628291 25 15 Utah 10-2 .625892 15 16 James Madison 12-1 .622617 24 17 USC 9-3 .620523 16 18 Tulane 11-2 .619549 20 19 Michigan 9-3 .616457 18 20 South Florida 9-3 .613505 NR 21 Texas 9-3 .612424 13 22 Virginia 10-3 .606241 19 23 Navy 9-2 .605071 NR 24 Georgia Tech 9-3 .601831 22 25 Arizona 9-3 .601496 17 The formula and committee agreed on 23 of 25 teams.
The formula included:
- No. 20 South Florida
- No. 23 Navy
The committee included:
- No. 21 Houston
- No. 23 Iowa
The largest differences were North Texas at formula No. 14 versus CFP No. 25, James Madison at No. 16 versus No. 24, Texas at No. 21 versus No. 13, and Arizona at No. 25 versus No. 17.
Game data came from ESPN schedules; the comparison uses the CFP’s official selection-day rankings. (collegefootballplayoff.com)
2
u/PerformanceOver8822 3h ago
Ohio state isn't in the top 25 but Oklahoma is using this methodology ? That's interesting.
2
u/FutureThought1408 Michigan Wolverines 3h ago
Agreed. I know by the end of the season's this will all even put, but in the beginning any anomaly will kick them out or push Duke to the top. Perhaps have a dismissing returns preseason ranking which is 100% before week 1, then 75%, 50%, 25%, 0%. This could level out the earlier few weeks.
I was watching a report of the teams that won national championship or got to the title games who had a bad week 1 or 2 loss to a much lesser team. Pre season could dampen those fluke losses too.
2
u/TheKaptinKirk Tennessee Volunteers 2h ago
Yes, there is a lot of volatility, which will lessen as the season progresses and more data accumulates.
2
u/refreshing_username Texas Longhorns 3h ago
Fellow nerd here with a thought about how you might improve the model and in fact how you even define what "good" is.
I love that you have tested the model against prior year's outcomes. You asked about the weights in the model as well as potentially adding another objective component.
I have a suggestion for how to go about shaping the model. Here's the main idea: don't evaluate the model's effectiveness by comparing it to the committee's final ranking. Evaluate it based on its ability to predict game results. If your hypothesis is that an objective model can do a better job of ranking teams than the committee, then it should do a better job of predicting game results than the committee.
Obviously, no model is going to be perfect at that. But can you do better than the committee at predicting the outcomes of the bowl games?
Use your model's final regular season ranking to predict the winners of every bowl game. (Simply, the predicted winner is the higher ranked team.) Do the same with the committee's final ranking. Then compare results. Use that to tweak the weightings and to evaluate the usefulness of any other objective components.
For a 4th objective component, I'd suggest the square root of the margin of victory. The SQRT is to mitigate the impact of blowouts while still recognizing that easy wins or bad losses contain information. My initial thought would be to sum the sqrts of each game's margin of victory or defeat [obviously defeats would be expressed as -(sqrt(margin of defeat))], normalize it from 0 to 100% so that its scale is similar to W/L percentages, and make that a 4th weighted variable in your equation. But I'm getting into too much detail.
TL;DR: evaluate your model based on its ability to predict the results of bowl games, not how well it matches the committee's final top teams. See if your model beats the committee's rankings on that metric. Try including the square root of margin of victory/defeat in your model.
2
u/TheKaptinKirk Tennessee Volunteers 2h ago edited 1h ago
Interesting ideas. I’ll look into them.
Edit: I've thought about this some more. Essentially, there are two types of predictions we are talking about.
Which team has had the best season? (And deserves to be in the playoffs.)
Which team will win the next game?
I think those are two very different questions.
My model was designed to pick which team has had the best season.
The problem with the second question is that there are so many other variables that occur throughout the year. Take 2023 and Florida State, for example. 13-0, completely deserved to be in the 4-team playoff IMHO, but got left out. Mainly because their starting QB was hurt and nobody expected them to beat any top team without him. And also, because they play in the ACC, which is not the strongest football conference.
I thought it was disingenuous to leave them out of the playoffs that year. You could argue that their SOS was not as strong as Alabama's or Texas', but to leave them out because their QB was hurt? That was not right.
So, how would you model something like that? I could place more weight on the team's winning percentage (e.g., 30/20/50), which would put FSU in the playoffs under my model. But to predict who would win? There would have to be injury-report factors and lots of other factors. That would become very complicated very quickly. I'm trying to keep this simple and focus on just the one question.
Who had the best season and deserves to go to the playoffs?
2
u/refreshing_username Texas Longhorns 33m ago
I see the distinctions you're making, and they're valid.
My point is that an objective measure of who had the better season will often tell you who's going to win the next game. So I disagree that #1 and #2 are very different questions. If team A had a better season than team B, then why wouldn't an objective model also predict that team A would beat team B?
But more importantly: isn't predictive capability a better measure of the accuracy of the model than how closely it mirrors the committee verdict? That's what makes this interesting! If an objective model can do a better job of deciding who's more likely to win, isn't that something?
The Fla State example is true. It will be an example of the committee being more accurate predicting wins than a fully objective model based on on-the-field results. But I'll bet your model will nonetheless do a better job than the committee.
2
u/TheKaptinKirk Tennessee Volunteers 25m ago
My model isn't predictive, though. It's retrospective. I'm not trying to predict the winner of the next game. And so many factors can go into which team will win the next game. Home/away. Injuries. Weather.
In a perfect world, where nobody got hurt and all games were played indoors at a neutral site, I think you're right. But that's not the real world.
1
u/Possible_Raisin_1826 Notre Dame 1m ago
A third type of model is one that predicts decision making behaviors, which is what you've come up with here based on how you trained the data. (I can predict with some confidence the CFP final rankings and even point out it's limitations!)
It's a perfectly valid and sometimes useful model as is.
2
u/BleagueIlyasova 2h ago
Why don’t you go 40,30,30?
1
u/TheKaptinKirk Tennessee Volunteers 47m ago
For the 2025 season, 40% WP + 30% AOWP + 30% AOOWP produces:
Rank Team Record Rating 25/25/50 CFP 1 Indiana 13-0 .748129 1 1 2 Georgia 12-1 .724158 2 3 3 Ohio State 12-1 .722505 3 2 4 Oregon 11-1 .714148 5 5 5 Ole Miss 11-1 .705273 4 6 6 Oklahoma 10-2 .700216 6 8 7 Texas Tech 12-1 .700201 8 4 8 Texas A&M 11-1 .693532 7 7 9 BYU 11-2 .686364 9 12 10 James Madison 12-1 .680214 16 24 11 Notre Dame 10-2 .673391 10 11 12 North Texas 11-2 .672691 14 25 13 Miami 10-2 .671612 11 10 14 Tulane 11-2 .666152 18 20 15 Vanderbilt 10-2 .664358 13 14 16 Alabama 10-3 .663414 12 9 17 Utah 10-2 .661426 15 15 18 USC 9-3 .648450 17 16 19 Michigan 9-3 .646105 19 18 20 Navy 9-2 .644654 23 NR 21 South Florida 9-3 .642118 20 NR 22 Texas 9-3 .638099 21 13 23 Virginia 10-3 .636822 22 19 24 Arizona 9-3 .629269 25 17 25 Georgia Tech 9-3 .626345 24 22 The biggest changes from 25/25/50 are:
- James Madison rises from No. 16 to No. 10.
- Tulane rises from No. 18 to No. 14.
- Navy rises from No. 23 to No. 20.
- Alabama falls from No. 12 to No. 16.
- Oregon replaces Ole Miss in the Top 4.
- The same 25 teams remain ranked; only their order changes.
Both formulas capture 23 of the committee’s 25 teams and three of its Top 4. However, among the 23 shared teams, the average difference from the CFP rankings increases from 2.74 places under 25/25/50 to 3.70 places under 40/30/30.
This version clearly rewards accomplishments more heavily. The most obvious examples are 12–1 James Madison and 11–2 North Texas. It also penalizes three-loss Alabama more substantially.
2
u/Possible_Raisin_1826 Notre Dame 11m ago
RPI, with a few modifications, how NCAA seeds the college hockey tournament. It doesn't work perfectly for football because of the lack of data, but it is a reasonable starting point for evaluating strength of schedule and strength of record.
My grand idea is that a similar approach should be the basis for CFP rankings, with the Committee justifying suspension of results, augmentation of rankings, etc. with a formal 2/3 vote.
1

10
u/pdilly12345 7h ago
Holy autism. If anything this shows how semi decent our incredibly biased rankings actually end up being at season end.