Vols Data Lab
Opponent-adjusted ratings for every FBS team, and the math that produces them. Built for the people who want the number and the formula. 🍊
Tennessee · 2025 season
#29 of 136 FBS
Rating
+7.8
pts vs avg FBS
Record
8-5
13 games
Sched. strength
+0.4
#53 toughest
Raw margin
+10.9
unadjusted
The gap between the raw margin and the rating is the competition adjustment — what Tennessee's schedule was actually worth.
Team ratings
136 FBS teams · 933 games · solver converged in 21 iterations
| Team | |||||||
|---|---|---|---|---|---|---|---|
| 1 | 16-0 | +24.3 | +18.7 | +15.8 | +5.3 | +29.9 | |
| 2 | 12-2 | +21.0 | +9.9 | +17.8 | +4.2 | +24.1 | |
| 3 | 10-2 | +20.6 | +14.9 | +9.9 | +3.9 | +24.4 | |
| 4 | 12-2 | +19.2 | +12.7 | +14.1 | +0.3 | +27.6 | |
| 5 | 13-3 | +18.3 | +7.8 | +15.4 | +6.2 | +16.1 | |
| 6 | 13-2 | +18.3 | +14.2 | +10.9 | +5.3 | +19.1 | |
| 7 | 11-2 | +16.0 | +14.5 | +7.0 | -0.1 | +22.4 | |
| 8 | 12-2 | +13.8 | +6.6 | +11.0 | +2.4 | +14.5 | |
| 9 | 13-2 | +13.7 | +13.3 | +5.0 | +2.7 | +15.9 | |
| 10 | 11-2 | +13.3 | +9.9 | +7.7 | +3.8 | +12.8 | |
| 11 | 9-4 | +13.2 | +10.1 | +4.5 | +4.5 | +12.8 | |
| 12 | 10-3 | +12.6 | +13.3 | +4.0 | +1.2 | +15.6 | |
| 13 | 12-2 | +12.3 | +7.3 | +8.9 | +3.4 | +12.3 | |
| 14 | 9-4 | +12.0 | +4.5 | +12.0 | +2.5 | +13.2 | |
| 15 | 9-4 | +11.6 | +9.2 | +6.8 | +1.3 | +15.4 | |
| 16 | 11-4 | +11.6 | +8.1 | +9.0 | +5.3 | +10.3 | |
| 17 | 10-3 | +10.8 | +4.8 | +6.7 | +3.3 | +10.2 | |
| 18 | 10-3 | +10.3 | +2.2 | +12.5 | +3.1 | +10.8 | |
| 19 | 7-6 | +10.1 | +7.0 | +7.0 | +2.8 | +10.5 | |
| 20 | 9-4 | +10.1 | +11.2 | +2.2 | -2.4 | +17.1 | |
| 21 | 12-2 | +9.7 | +6.6 | +5.0 | -4.2 | +18.7 | |
| 22 | 12-2 | +9.3 | +15.4 | -3.4 | -4.2 | +18.6 | |
| 23 | 9-4 | +9.3 | +4.3 | +5.5 | +4.6 | +7.2 | |
| 24 | 9-4 | +9.3 | +5.5 | +5.1 | -0.4 | +11.7 | |
| 25 | 9-4 | +8.7 | +4.8 | +6.8 | -0.2 | +12.2 |
How the rating works (the math)
Raw margin lies. Beating an FCS team by 40 is not the same as beating Georgia by 3. To weight competition you need to know how good each opponent is — but that depends on how good their opponents were. The schedule graph is circular.
rating(i) = average over games of [ adjusted margin + rating(opponent) ]
We start every team at zero and iterate until nothing moves. That fixed point is the only set of ratings consistent with every result in the league — which is why this needs all 933 FBS games, not just Tennessee's.
- Home field: the home team's margin is reduced by 2.5 points before it counts.
- Blowout cap: margins pass through a smooth cap at 35 points, so a 50-point win counts meaningfully more than a 20-point win but nowhere near twice as much. Running up the score earns very little.
- Non-FBS opponents: pinned at -28, so scheduling three FCS teams never looks like playing three average FBS teams.
- Small samples: ratings regress toward zero by n/(n+1), so nobody is crowned off one September blowout.
Units are points per game against an average FBS team on a neutral field. A +14 team should beat a +3 team by about 11 on neutral turf.
Season résumé
Every game against an FBS opponent. Further right means a tougher opponent; above the line means Tennessee played better than its own rating expected.
FBS record
7-5
+1 vs FCS, not charted
Expected wins
7.4
from the ratings
Luck
-0.4
won what they earned
Volatility
±10.5
swing vs expectation
Best win · strongest team beaten
vs Arkansas Razorbacks
Rated +2.7 · #55 nationally · won by 3
Weakest team they lost to
vs Illinois Fighting Illini
Rated +8.5 · #26 nationally · lost by 2 — no bad losses all season
How to read this
The dashed line is what the rating expected: against an opponent rated -11.8 the margin should be about +19.6. Dots above it are games Tennessee played better than its own rating; dots below are worse.
Expected wins sums each game's win probability. Comparing it with the actual record separates “good” from “fortunate” — a team can win close games it had no business winning, and the gap shows up here.
Volatility is the spread of those gaps. A low number is a team that performs the same every week; a high number is one nobody can predict.
Games against FCS opponents are excluded — an unrated opponent has no expectation to measure against — so the record here can differ from the headline record. Both are shown rather than quietly reconciled.
Rating movement by week
Each point is the rating re-solved using only games played through that week — what the model would have said at the time, not the final rating drawn backwards.
Tennessee in orange; other teams shown as context and labelled at the line end. Arrows are rank change from week 7 to week 16.
Does it actually predict anything?
Ratings are fit on the early weeks, then used to predict games they have never seen. These are the results on those held-out games — including where we lose.
Winner called
69.9%
naive: 55.2%
Margin error
12.6pts
naive: 17.2
RMSE
15.7pts
big misses weighted
Games tested
869
3 train/test splits
| Trained through | Games | Our MAE | Raw MAE | Our win% | Raw win% |
|---|---|---|---|---|---|
| Week 8 | 396 | 12.53 | 12.93 | 68.2% | 68.9% |
| Week 10 | 291 | 12.53 | 13.04 | 71.8% | 68.4% |
| Week 12 | 182 | 12.79 | 12.94 | 69.8% | 66.5% |
What these numbers honestly say
Against the naive baseline — always take the home team — the rating is a clear improvement: 69.9% of winners called versus 55.2%, and 4.6 points less error per game.
Against a raw, unadjusted margin rating the picture is more mixed, and we are not going to dress that up. Opponent adjustment calls winners better (69.9% vs 67.9%) and produces lower margin error (12.62 vs 12.97).
A ~13-point average error is normal for college football margin models; the sport is high variance. Treat these ratings as a way to compare résumés, not as a betting tool.
Who did they do it against?
A season total tells you how much. It doesn't tell you against whom. These numbers do.
- DeSean BishopRB983 RUSH YDS
Schedule D
+24.3
Weighted D
+19.1
Gap
-5.2
vs above-avg D
52%
Weaker gamesBest: 146 vs Arkansas Razorbacks (D -19.0) - Daune MorrisRB133 RUSH YDS
Schedule D
-8.4
Weighted D
+5.9
Gap
+14.2
vs above-avg D
53%
Tougher gamesBest: 48 vs East Tennessee State Buccaneers - Justin BakerRB43 RUSH YDS
Schedule D
-35.9
Weighted D
-52.0
Gap
-16.1
vs above-avg D
0%
Small sampleBest: 37 vs East Tennessee State Buccaneers - Mike MatthewsWR32 RUSH YDS
Schedule D
+24.3
Weighted D
+11.3
Gap
-13.0
vs above-avg D
63%
Small sampleBest: 20 vs Florida Gators (D +29.5) - Hunter BarnesRB2 RUSH YDS
Schedule D
-52.0
Weighted D
-52.0
Gap
0.0
vs above-avg D
0%
Small sampleBest: 2 vs New Mexico State Aggies (D -52.0)
Reading these numbers
Schedule D is the average defensive rating of the opponents faced — how hard the slate was. Higher is a better defense.
Weighted D is the same average, but weighted by production. It answers a different question: of the defenses this player actually gained yards against, how good were they?
weighted D = Σ(production × opponent D) / Σ(production)
The gap between them is the story. A positive gap means production skewed toward the tougher defenses. Negative means it was padded against the weaker ones.
We deliberately do not publish a synthetic “adjusted yards” figure. Converting a points-based team rating into an individual yardage projection would require a yards-per-point constant nobody can justify. Every number above is exact arithmetic on real per-game results — no modelling assumptions, nothing to take on faith.
Using yards-based opponent ratings. Opponent quality here is measured in yards gained and allowed, which is the right input for adjusting a yardage total.
Ratings computed from 933 completed FBS games via ESPN's public scoreboard, refreshed every 6 hours. Showing the 2025 season — this rolls forward automatically once 2026 games are played.