Tweaking the Computer Rating System for the College Football Playoff Predictions
Does the rating system consistently underestimate the possibility of upsets?
I’ve written previously that I want to consider a few modifications to my computer rating system because of some things I’ve noticed throughout the college football season. Although I’ll include some updated predictions for the remaining bowl games in this article, my focus is how the rating system might be improved, and I’ll discuss this across a few articles. Does Indiana really have a roughly 90% chance of winning against Alabama, or is my system not giving the Crimson Tide enough of a chance?
There tends to be a fairly large spread between the top and bottom teams in my ratings. For example, ESPN’s FPI tends to have a little more than a 50 point spread between the highest and lowest ranked FBS teams. That’s a bit larger in Bill Connelly’s SP+ rating system, with around or a bit over a 60 point spread across the FBS. My ratings have a considerably larger spread, generally around 75 points between the top and bottom FBS teams.
The obvious way to narrow the spread between the highest and lowest ranked teams is to impose a limit on the margin of victory in games. For example, I might cap it at 50 points, meaning that any margin larger than 50 points is treated as a 50 point win. Intuitively, this makes sense, and that at some point tacking on an extra touchdown or two in a blowout really isn’t meaningful. The problem is that in testing this change, I’ve found that I’d have to cap the margin of victory at a level that seems unreasonably low to bring the spread between the highest and lowest ranked teams down to 55 or 60 points. A 50 point cap wouldn’t be nearly low enough to bring the spread between the top and bottom teams in my ratings down to SP+ or FPI levels.
To explain this better, if there’s an eleven touchdown difference between the highest and lowest ranked teams, I don’t believe that’s being inflated because Team A wins by 77 points over Team D. My testing suggests that it’s influenced a lot more by scenarios like Team A winning by 28 points over Team B, which wins by 28 points over Team C, which wins by 21 points over Team D. Blowouts with scores like 77-0 just don’t occur often enough to influence the ratings all that much.
Earlier this season, Indiana (89.06 predictive rating) had a 56-9 home win over Kennesaw State (41.71 predictive rating). That’s a predicted margin of victory of 47.35 points, if the game was at a neutral site. Indiana would be projected to win by 38.37 points over UCLA (50.69 predictive rating) if they played at a neutral site. In fact, Indiana won 56-6 in Bloomington. Earlier this season, Ohio State (86.16 predictive rating) won 70-0 in a home game against Grambling (3.78 predictive rating), not quite reaching the spread predicted by the ratings. But Indiana won 73-0 at home against Indiana State (16.68 predictive rating), which means the ratings are pretty much spot on. My point is that if hypothetically Indiana played UMass (11.90 predictive rating), I wouldn’t be surprised if Indiana won in a massive blowout like 77-0. I’m not entirely convinced that the relatively large spread between the highest and lowest ranked FBS teams in my ratings is actually a problem.
But there’s another issue, which is that once a team is projected to win by three touchdowns or so, the underdog is given a probability of winning that’s well below 10%. For example, Utah was predicted to win by 17.31 points over Nebraska, and they actually won 44-22, so the spread didn’t seem unreasonable However, it seems unrealistically low to estimate that Nebraska had just an 8.32% chance of winning that game. If there’s a real issue with the ratings and predictions, it’s likely that the probability of upsets is often much too low. A margin of victory around 17 points might have been the most likely outcome in that game, but a normal distribution might not be the best way to estimate the range of possible outcomes. As an experiment, I’ve run the new ratings and predictions both with a normal distribution and a logistic distribution. The shape of the logistic distribution is somewhat similar to the normal distribution, but there’s a higher probability of extreme events like major upsets.
Here are the predictive ratings using the normal distribution. This includes games played through December 30, 2025. But the change and move columns aren’t the difference between these ratings and the last update from December 13 like I’ve done in other weeks. Instead, the change and move columns show the difference between ratings generated with the normal and logistic distributions. There really isn’t a big difference in the actual ratings between the normal and logistic distributions, though a small portion of the teams do move up or down in the ratings by a few spots.
Predictive Ratings
Home advantage: 1.88 points
Mean score: 26.82 points
Rank Move Rating Change Team Offense Defense
1 89.06 +0.15 Indiana 45.43 43.67
2 86.16 +0.73 Ohio State 38.15 48.01
3 83.52 +0.60 Oregon 44.45 38.98
4 81.73 +0.22 Texas Tech 40.76 41.11
5 81.27 +1.28 Notre Dame 43.18 37.97
6 77.51 +0.73 Utah 42.18 35.18
7 75.75 +1.12 Miami 32.27 43.27
8 73.43 +0.44 Washington 37.84 35.59
9 +1 73.30 +0.46 Alabama 36.69 36.55
10 -1 73.20 +0.29 Georgia 32.57 40.63
11 72.23 +0.92 USC 38.96 33.22
12 71.68 +0.72 Iowa 30.40 41.17
13 +1 71.49 +0.84 Ole Miss 39.72 31.74
14 -1 71.40 +0.69 Vanderbilt 40.82 30.76
15 70.94 +0.63 BYU 34.30 36.53
16 70.86 +0.89 Texas A&M 36.38 34.40
17 70.21 +0.75 Penn State 35.01 35.01
18 70.12 +0.74 Oklahoma 29.12 40.91
19 68.59 +0.62 Michigan 32.89 35.70
20 67.43 +1.46 Texas 31.66 35.67
Rank Move Rating Change Team Offense Defense
21 66.08 +0.82 Arizona 31.76 34.44
22 65.42 +0.45 Tennessee 40.22 25.45
23 +1 65.38 +0.93 Illinois 32.25 33.00
24 +1 65.09 +0.87 South Florida 36.42 28.61
25 -2 65.00 +0.49 Missouri 30.07 35.01
26 64.23 +0.19 Florida State 33.74 30.72
27 +1 63.73 +1.14 North Texas 42.11 21.52
28 -1 63.00 +0.15 Auburn 28.24 34.76
29 62.84 +0.84 Iowa State 29.36 33.27
30 62.66 +0.86 LSU 26.61 36.15
31 +5 62.19 +1.61 Louisville 31.56 30.63
32 61.97 +1.08 James Madison 31.27 30.70
33 61.85 +0.97 Virginia 29.66 32.20
34 -3 61.79 +0.55 Pittsburgh 33.46 28.45
35 -1 61.52 +0.65 TCU 31.93 29.60
36 -1 60.96 +0.30 SMU 30.17 30.75
37 +1 60.34 +0.56 Florida 26.75 33.64
38 -1 60.20 +0.38 Nebraska 30.96 29.24
39 59.92 +1.08 Kansas State 32.25 27.52
40 59.59 +1.11 Georgia Tech 31.15 28.46
Rank Move Rating Change Team Offense Defense
41 +1 58.83 +0.98 NC State 31.57 27.38
42 +5 58.55 +1.25 Arizona State 24.44 34.00
43 -2 58.54 +0.44 Cincinnati 31.10 27.60
44 58.49 +0.85 East Carolina 27.96 30.36
45 58.34 +0.76 South Carolina 24.89 33.45
46 58.22 +0.76 Houston 29.65 28.57
47 -4 58.13 +0.47 Clemson 26.57 31.56
48 57.31 +0.54 Toledo 26.44 30.87
49 57.18 +0.78 Northwestern 23.65 33.51
50 +3 56.73 +1.21 Wisconsin 20.19 36.66
51 56.72 +0.95 Duke 34.01 22.74
52 -2 56.49 +0.62 Old Dominion 26.10 30.39
53 -1 56.30 +0.66 Mississippi State 31.84 24.53
54 56.13 +0.70 Arkansas 34.08 22.04
55 +1 56.06 +0.89 Kentucky 25.91 30.17
56 -1 55.78 +0.47 Kansas 29.76 26.04
57 +1 55.03 +0.77 Boise State 26.96 27.77
58 -1 54.92 +0.36 Tulane 24.97 29.98
59 54.51 +0.35 San Diego State 22.94 31.62
60 +1 54.45 +0.58 Washington State 21.71 32.77
Rank Move Rating Change Team Offense Defense
61 +1 54.30 +0.67 Michigan State 27.80 26.28
62 -2 54.29 +0.26 Wake Forest 23.04 31.29
63 54.27 +0.68 Rutgers 31.90 22.37
64 54.18 +0.89 Minnesota 24.65 29.28
65 54.11 +1.19 UTSA 31.76 22.14
66 52.92 +0.95 Memphis 26.14 26.85
67 52.70 +1.02 Baylor 32.37 20.30
68 51.53 +0.76 Maryland 24.56 27.21
69 51.49 +0.82 New Mexico 23.83 27.67
70 +1 51.14 +1.18 UCF 22.31 28.74
71 +1 51.07 +1.18 Purdue 23.88 27.03
72 +3 50.71 +1.61 Army 19.29 31.39
73 -3 50.69 +0.45 UCLA 24.37 26.51
74 -1 50.11 +0.81 UNLV 29.90 20.20
75 -1 49.61 +0.35 Western Michigan 19.56 30.13
76 +1 49.57 +1.35 Utah State 28.13 21.36
77 -1 49.04 +0.52 Navy 24.73 24.42
78 48.60 +1.24 Virginia Tech 24.53 23.73
79 48.34 +1.09 Colorado 23.61 24.65
80 47.88 +1.00 West Virginia 23.97 23.71
Rank Move Rating Change Team Offense Defense
81 47.39 +0.66 Fresno State 20.25 27.25
82 +1 46.77 +0.80 Hawai'i 23.47 23.32
83 -1 46.69 +0.40 Stanford 20.79 26.18
84 +1 46.34 +0.72 UConn 26.88 19.43
85 -1 46.18 +0.30 Ohio 22.30 24.10
86 46.15 +0.61 California 23.25 22.90
87 45.82 +1.02 Texas State 29.09 16.39
88 +1 45.13 +0.59 Western Kentucky 22.40 22.73
89 -1 44.93 +0.34 Louisiana Tech 19.91 25.10
90 +1 43.91 +0.65 Boston College 24.48 19.42
91 -1 43.65 +0.21 Miami (OH) 19.40 24.42
92 43.36 +0.62 Temple 24.30 18.95
93 43.03 +1.31 North Carolina 17.73 25.26
94 42.61 +0.93 Air Force 24.38 18.11
95 41.93 +0.46 Marshall 24.88 17.14
96 +1 41.75 +0.93 Syracuse 20.60 21.21
97 -1 41.71 +0.70 Kennesaw State 21.34 20.35
98 40.15 +1.08 Troy 17.12 22.78
99 40.04 +1.14 Wyoming 12.10 27.94
100 38.56 +0.09 Jacksonville State 18.72 19.86
Rank Move Rating Change Team Offense Defense
101 38.55 +0.33 Southern Miss 20.29 18.34
102 +1 38.53 +1.00 Central Michigan 16.93 21.60
103 -1 38.44 +0.79 Oregon State 16.99 21.46
104 +1 38.38 +0.90 Tulsa 18.69 19.76
105 -1 38.38 +0.86 Liberty 19.37 19.03
106 38.02 +1.12 Missouri State 19.69 18.23
107 37.55 +0.85 Oklahoma State 15.56 21.99
108 +1 37.35 +1.03 Georgia Southern 22.26 14.98
109 -1 36.99 +0.53 Florida International 19.14 17.61
110 36.57 +0.66 Nevada 14.35 22.21
111 +2 36.50 +0.76 Colorado State 17.31 19.36
112 36.36 +0.60 Florida Atlantic 24.07 12.29
113 -2 36.31 +0.54 Arkansas State 16.86 19.28
114 35.78 +0.86 Louisiana 18.15 17.58
115 35.21 +0.70 Delaware 20.45 14.76
116 35.15 +0.83 Bowling Green 12.58 22.34
117 34.88 +0.57 San José State 19.51 15.35
118 34.68 +0.84 South Alabama 18.40 15.99
119 34.63 +1.02 UAB 20.86 13.68
120 33.65 +1.07 Buffalo 15.15 18.46
Rank Move Rating Change Team Offense Defense
121 33.28 +0.82 App State 16.32 16.96
122 33.00 +1.04 Rice 13.41 19.50
123 32.67 +0.90 Northern Illinois 11.21 21.36
124 +1 32.05 +0.92 Eastern Michigan 18.92 13.02
125 -1 32.03 +0.58 New Mexico State 13.08 18.96
126 +1 31.28 +0.67 Akron 14.59 16.25
127 -1 31.23 +0.28 Coastal Carolina 17.07 14.16
128 31.02 +0.70 UTEP 16.38 14.63
129 29.75 +0.38 Middle Tennessee 14.67 14.83
130 +1 28.69 +0.72 Ball State 12.02 16.64
131 -1 28.54 +0.40 Kent State 17.47 11.07
132 27.50 +0.72 Georgia State 14.48 12.92
133 27.41 +0.89 Charlotte 11.38 16.03
134 24.55 +0.90 UL Monroe 10.04 14.32
135 22.68 +0.84 Sam Houston 12.51 10.17
136 11.90 +0.70 Massachusetts 5.39 6.50 Here are the game predictions using the normal distribution to estimate the range of possible outcomes.
#1: Oregon (1.79, 55.69%) vs. Texas Tech (-1.79, 44.31%)
Estimated score: 30.16 - 28.60, Total: 58.76
Quality: 99.07%, Team quality: 98.88%, Competitiveness: 99.47%
Blowout probability (margin >= 29.0 pts): 2.18%
Close game probability (margin <= 7.0 pts): 42.03%
High scoring probability (total >= 69.0 pts): 39.82%
Low scoring probability (total <= 39.0 pts): 30.92%
#2: Iowa (0.28, 50.89%) vs. Vanderbilt (-0.28, 49.11%)
Estimated score: 26.47 - 26.47, Total: 52.93
Quality: 98.39%, Team quality: 97.60%, Competitiveness: 99.99%
Blowout probability (margin >= 29.0 pts): 2.05%
Close game probability (margin <= 7.0 pts): 42.40%
High scoring probability (total >= 69.0 pts): 34.27%
Low scoring probability (total <= 39.0 pts): 36.27%
#3: Ole Miss (-1.71, 44.57%) vs. Georgia (1.71, 55.43%)
Estimated score: 25.92 - 27.65, Total: 53.56
Quality: 98.31%, Team quality: 97.72%, Competitiveness: 99.52%
Blowout probability (margin >= 29.0 pts): 2.16%
Close game probability (margin <= 7.0 pts): 42.06%
High scoring probability (total >= 69.0 pts): 34.86%
Low scoring probability (total <= 39.0 pts): 35.68%
#4: Michigan (1.16, 53.69%) vs. Texas (-1.16, 46.31%)
Estimated score: 24.04 - 22.78, Total: 46.83
Quality: 97.91%, Team quality: 96.99%, Competitiveness: 99.78%
Blowout probability (margin >= 29.0 pts): 2.10%
Close game probability (margin <= 7.0 pts): 42.25%
High scoring probability (total >= 69.0 pts): 28.81%
Low scoring probability (total <= 39.0 pts): 42.18%
#5: Arizona State (1.83, 55.83%) vs. Duke (-1.83, 44.17%)
Estimated score: 28.52 - 26.83, Total: 55.35
Quality: 96.07%, Team quality: 94.43%, Competitiveness: 99.44%
Blowout probability (margin >= 29.0 pts): 2.18%
Close game probability (margin <= 7.0 pts): 42.01%
High scoring probability (total >= 69.0 pts): 36.54%
Low scoring probability (total <= 39.0 pts): 34.01%
#6: Arizona (5.12, 65.88%) vs. SMU (-5.12, 34.12%)
Estimated score: 27.84 - 22.55, Total: 50.39
Quality: 95.90%, Team quality: 96.00%, Competitiveness: 95.70%
Blowout probability (margin >= 29.0 pts): 3.14%
Close game probability (margin <= 7.0 pts): 39.33%
High scoring probability (total >= 69.0 pts): 31.95%
Low scoring probability (total <= 39.0 pts): 38.70%
#7: Wake Forest (-2.00, 43.64%) vs. Mississippi State (2.00, 56.36%)
Estimated score: 25.33 - 27.36, Total: 52.69
Quality: 95.52%, Team quality: 93.66%, Competitiveness: 99.33%
Blowout probability (margin >= 29.0 pts): 2.21%
Close game probability (margin <= 7.0 pts): 41.93%
High scoring probability (total >= 69.0 pts): 34.05%
Low scoring probability (total <= 39.0 pts): 36.50%
#8: Miami (-10.41, 20.27%) vs. Ohio State (10.41, 79.73%)
Estimated score: 11.07 - 21.70, Total: 32.77
Quality: 93.19%, Team quality: 98.66%, Competitiveness: 83.15%
Blowout probability (margin >= 29.0 pts): 6.95%
Close game probability (margin <= 7.0 pts): 31.06%
High scoring probability (total >= 69.0 pts): 18.05%
Low scoring probability (total <= 39.0 pts): 56.24%
#9: Navy (-9.49, 22.40%) vs. Cincinnati (9.49, 77.60%)
Estimated score: 23.95 - 33.50, Total: 57.45
Quality: 90.51%, Team quality: 92.95%, Competitiveness: 85.81%
Blowout probability (margin >= 29.0 pts): 6.06%
Close game probability (margin <= 7.0 pts): 32.73%
High scoring probability (total >= 69.0 pts): 38.55%
Low scoring probability (total <= 39.0 pts): 32.09%
#10: Alabama (-15.76, 10.39%) vs. Indiana (15.76, 89.61%)
Estimated score: 19.83 - 35.70, Total: 55.53
Quality: 85.72%, Team quality: 98.58%, Competitiveness: 64.80%
Blowout probability (margin >= 29.0 pts): 14.51%
Close game probability (margin <= 7.0 pts): 20.75%
High scoring probability (total >= 69.0 pts): 36.71%
Low scoring probability (total <= 39.0 pts): 33.84%
#11: Rice (-12.82, 15.27%) vs. Texas State (12.82, 84.73%)
Estimated score: 23.84 - 36.41, Total: 60.25
Quality: 82.11%, Team quality: 85.72%, Competitiveness: 75.34%
Blowout probability (margin >= 29.0 pts): 9.85%
Close game probability (margin <= 7.0 pts): 26.42%
High scoring probability (total >= 69.0 pts): 41.27%
Low scoring probability (total <= 39.0 pts): 29.61%
#12: Nebraska (-17.31, 8.32%) vs. Utah (17.31, 91.68%)
Estimated score: 22.60 - 39.77, Total: 62.37
Quality: 82.05%, Team quality: 96.78%, Competitiveness: 58.98%
Blowout probability (margin >= 29.0 pts): 17.52%
Close game probability (margin <= 7.0 pts): 17.89%
High scoring probability (total >= 69.0 pts): 43.36%
Low scoring probability (total <= 39.0 pts): 27.79%And here are the predictions for the same games, but with a logistic distribution.
#1: Oregon (1.41, 52.81%) vs. Texas Tech (-1.41, 47.19%)
Estimated score: 29.78 - 28.49, Total: 58.27
Quality: 99.22%, Team quality: 98.94%, Competitiveness: 99.79%
Blowout probability (margin >= 29.0 pts): 18.04%
Close game probability (margin <= 7.0 pts): 27.17%
High scoring probability (total >= 69.0 pts): 43.20%
Low scoring probability (total <= 39.0 pts): 37.95%
#2: Iowa (0.24, 50.49%) vs. Vanderbilt (-0.24, 49.51%)
Estimated score: 26.54 - 26.71, Total: 53.24
Quality: 98.42%, Team quality: 97.65%, Competitiveness: 99.99%
Blowout probability (margin >= 29.0 pts): 17.95%
Close game probability (margin <= 7.0 pts): 27.25%
High scoring probability (total >= 69.0 pts): 40.08%
Low scoring probability (total <= 39.0 pts): 41.01%
#3: Ole Miss (-2.26, 45.50%) vs. Georgia (2.26, 54.50%)
Estimated score: 25.54 - 27.60, Total: 53.14
Quality: 98.34%, Team quality: 97.79%, Competitiveness: 99.47%
Blowout probability (margin >= 29.0 pts): 18.17%
Close game probability (margin <= 7.0 pts): 27.05%
High scoring probability (total >= 69.0 pts): 40.02%
Low scoring probability (total <= 39.0 pts): 41.07%
#4: Michigan (2.01, 54.00%) vs. Texas (-2.01, 46.00%)
Estimated score: 24.25 - 22.69, Total: 46.94
Quality: 97.84%, Team quality: 96.97%, Competitiveness: 99.58%
Blowout probability (margin >= 29.0 pts): 18.12%
Close game probability (margin <= 7.0 pts): 27.09%
High scoring probability (total >= 69.0 pts): 36.28%
Low scoring probability (total <= 39.0 pts): 44.95%
#5: Arizona (4.60, 59.09%) vs. SMU (-4.60, 40.91%)
Estimated score: 27.45 - 22.78, Total: 50.23
Quality: 96.67%, Team quality: 96.09%, Competitiveness: 97.83%
Blowout probability (margin >= 29.0 pts): 18.86%
Close game probability (margin <= 7.0 pts): 26.42%
High scoring probability (total >= 69.0 pts): 38.25%
Low scoring probability (total <= 39.0 pts): 42.88%
#6: Arizona State (1.54, 53.08%) vs. Duke (-1.54, 46.92%)
Estimated score: 28.55 - 26.86, Total: 55.41
Quality: 96.12%, Team quality: 94.35%, Competitiveness: 99.75%
Blowout probability (margin >= 29.0 pts): 18.05%
Close game probability (margin <= 7.0 pts): 27.16%
High scoring probability (total >= 69.0 pts): 41.41%
Low scoring probability (total <= 39.0 pts): 39.68%
#7: Wake Forest (-1.60, 46.81%) vs. Mississippi State (1.60, 53.19%)
Estimated score: 25.24 - 27.11, Total: 52.35
Quality: 95.73%, Team quality: 93.79%, Competitiveness: 99.73%
Blowout probability (margin >= 29.0 pts): 18.06%
Close game probability (margin <= 7.0 pts): 27.15%
High scoring probability (total >= 69.0 pts): 39.53%
Low scoring probability (total <= 39.0 pts): 41.57%
#8: Miami (-10.80, 29.68%) vs. Ohio State (10.80, 70.32%)
Estimated score: 11.13 - 21.82, Total: 32.94
Quality: 95.19%, Team quality: 98.67%, Competitiveness: 88.60%
Blowout probability (margin >= 29.0 pts): 22.93%
Close game probability (margin <= 7.0 pts): 23.04%
High scoring probability (total >= 69.0 pts): 28.49%
Low scoring probability (total <= 39.0 pts): 53.86%
#9: Navy (-9.57, 31.77%) vs. Cincinnati (9.57, 68.23%)
Estimated score: 23.78 - 33.08, Total: 56.86
Quality: 92.34%, Team quality: 93.06%, Competitiveness: 90.92%
Blowout probability (margin >= 29.0 pts): 21.87%
Close game probability (margin <= 7.0 pts): 23.86%
High scoring probability (total >= 69.0 pts): 42.31%
Low scoring probability (total <= 39.0 pts): 38.80%
#10: Alabama (-16.06, 21.70%) vs. Indiana (16.06, 78.30%)
Estimated score: 19.85 - 36.14, Total: 55.99
Quality: 90.64%, Team quality: 98.65%, Competitiveness: 76.52%
Blowout probability (margin >= 29.0 pts): 28.90%
Close game probability (margin <= 7.0 pts): 18.97%
High scoring probability (total >= 69.0 pts): 41.77%
Low scoring probability (total <= 39.0 pts): 39.32%
#11: Nebraska (-16.97, 20.50%) vs. Utah (16.97, 79.50%)
Estimated score: 22.59 - 39.65, Total: 62.23
Quality: 88.64%, Team quality: 96.87%, Competitiveness: 74.21%
Blowout probability (margin >= 29.0 pts): 30.14%
Close game probability (margin <= 7.0 pts): 18.24%
High scoring probability (total >= 69.0 pts): 45.69%
Low scoring probability (total <= 39.0 pts): 35.59%
#12: Rice (-12.85, 26.38%) vs. Texas State (12.85, 73.62%)
Estimated score: 23.92 - 36.77, Total: 60.69
Quality: 85.04%, Team quality: 85.43%, Competitiveness: 84.25%
Blowout probability (margin >= 29.0 pts): 24.99%
Close game probability (margin <= 7.0 pts): 21.53%
High scoring probability (total >= 69.0 pts): 44.72%
Low scoring probability (total <= 39.0 pts): 36.50%I’d like to test this out more before I implement this change for future seasons and in other sports, but my intuition is that the logistic distribution is a better way to estimate the range of possible outcomes and the win probabilities. I’d like to go into these topics in more depth with a couple of additional articles, but this seems like one of the easiest and best ways to improve the performance of my prediction system. I agree with the computer ratings that Indiana should be favored over Alabama, but giving the Tide a 21.70% chance of winning seems a lot more reasonable than the 10.39% if I estimate the range of possible outcomes with a normal distribution.
Thanks for reading, and happy new year!
This article uses ratings that are based on data from collegefootballdata.com.


