Methodology
One model, two outputs. A Tier (where a program sits) and a Grade (how the season went). Both live on the same 0–100 scale so they can be compared, subtracted, and argued about.
In 60 seconds
Bill Connelly's preseason SP+ rating for each FBS team is rescaled linearly to a 0–100 projection. Small adjustments for returning production, recruiting, coaching changes, and transfer-portal net flow are added on top. That number is the Tier: where a program sits going into the season.
After the season, each team's final SP+ is mapped to the same 0–100 scale. The projection is subtracted from it. That residual is Δ (delta). Δ banded A through F is the Grade. A team can be Elite tier and receive a D. The tier records status; the grade records the season.
Worked example — LSU 2025: projected 78.7, finished 64.7, Δ = −14.0 → grade D. And separately: 2026 projection 83.9, ranked #9, still Elite. Both are true. Read on for the full formulas.
Every number on this site is a rescaling of Bill Connelly's SP+ rating:
The formula is a straight linear rescale: score = 50 + sp_plus × (50/35). Realized scores clamp to [1, 99]; projections clamp to [5, 99] (the additional floor keeps low-scale rebuilds from receiving nonsensical projection numbers). Every team, past or present, lives on the same axis.
The 2026 preseason projection is built as base + residual layers. The base does the work. The residuals are small, explicitly secondary offsets applied on top.
Base signal:
Residual layers (small, additive, explicitly secondary):
portal_coef = 0.2028 in calibration.json). Portal-transaction data is only broadly reliable from 2022 onward, so the fit is on three seasons rather than a longer window; that is the residual layer's tightest constraint, not the fit protocol. Range in 2026: −0.84 pts (Oregon) to +1.18 pts (LSU). Treat the sign and rank order as reliable; treat the exact standardized value as a scale marker rather than a probability statement.The sum, clamped to [5, 99], is the projection.
Backtest. All four residual coefficients — rp, recruiting, coach, portal — are fit together by a single closed-form OLS on 2022–2024 (394 team-season observations). 2025 is held out entirely; no coefficient sees 2025 outcomes during fitting. In-sample RMSE on 2022–2024 improves 2.4% over the prior-year-final baseline; applied to the 2025 hold-out, the same composite performs 1.2% worse than the baseline. The fitted residual layers do not generalize forward on their own. Numbers come from data/model_out/calibration.json (OLS, no intercept, features centered).
| Model | Framing | Improvement vs. baseline |
|---|---|---|
| Preseason SP+ alone | on 2025 (unseen year) | +6.9% |
| Composite (SP+ + residuals) | in-sample fit on 2022–2024 | +2.4% |
| Composite (SP+ + residuals) | 2025 hold-out (unseen by fit) | −1.2% |
How much of the projection is base vs. residual. Across all 138 FBS teams for 2026, the mean absolute residual is 2.03 pts on the 0–100 scale (max 7.69, LSU). The mapped preseason SP+ base accounts for 88.3% of team-to-team dispersion by sum-of-absolute-deviations; the four residuals account for 11.7%. Residual is 0.82 correlated with base, so on a variance basis it adds only 1.3% of independent variation. The residuals are retained as small, explicitly secondary offsets.
Why they are retained despite negative out-of-sample RMSE. Two reasons, both narrower than a general narrative argument.
Coefficient origin. The fitted OLS coefficients in calibration.json are rp = 0.092 pt per percentage-point above 55%, recruiting = 0.026 pt per composite-point above 40, coach = 0.955 × tier value, portal = 0.203 pt per standardized unit. What ships is: rp = 0.15, recruiting = 0.08, coach = tier value × 1.0 (four discrete tier values: elite hire −1, lateral hire −3, first-time HC −4, long-tenured continuity +1), portal = 0.20. The hand-tuned rp and recruiting are larger than the OLS fit because OLS shrinks toward zero when features correlate with the base; that shrinkage read as too aggressive for a projection intended to be reactive to visible offseason movement. Portal and coach are shipped essentially at their fitted values (0.20 ≈ 0.203, and 1.0 is 0.955 rounded to the nearest tenth). This is a modeling choice, labelled as such.
Projections are grouped into five absolute tiers. Not a curve — a team moves between tiers on absolute changes in projection, not relative shifts against peers.
score ≥ 80.0 · SP+ ≥ +21.0 · realistic playoff contenders (~top 10)68.0 ≤ score < 80.0 · SP+ +12.6 to +21.0 · beat most schedules; playoff-adjacent55.0 ≤ score < 68.0 · SP+ +3.5 to +12.6 · bowl-eligible baseline42.0 ≤ score < 55.0 · SP+ −5.6 to +3.5 · below-average FBSscore < 42.0 · SP+ < −5.6 · multi-year climbsBand edges. Bands are half-open: a team at exactly 80.0 grades Elite, at exactly 68.0 grades Contender. SP+ endpoints come straight from the formula (score = 50 + sp × (50/35)), so 68.0 corresponds to SP+ +12.6 (not +12) and 42.0 to −5.6 (not −5).
At the end of a season, each team's realized SP+ rating is mapped to the 0–100 scale the same way as the projection. The residual is:
Δ = realized − projection
Grade bands on Δ:
Δ ≥ +20 — the August number was too small.+8 ≤ Δ < +20 — ahead of the projection, and on purpose.−6 ≤ Δ < +8 — the season the projection described.−18 < Δ < −6 — short of the number, and not narrowly.Δ ≤ −18 — the projection has been informed.Band edges. Boundary values are absorbed into the neighboring band: Δ = +20 grades A (not B), Δ = +8 grades B (not C), Δ = −6 grades C (not D), Δ = −18 grades F (not D). D is the one open-open interval — strictly between −18 and −6.
Bands apply to unrounded values. Both raw Δ grades and Ceiling grades are computed against the underlying full-precision numbers, not the one-decimal display values. In rare edge cases the displayed Δ or ceiling percentage can round to a boundary while the letter reflects an unrounded value that fell on the other side of it. When that happens, trust the letter.
The raw Δ grade above has a built-in asymmetry: a team projected at 90 only has 10 points of upside room, while a team projected at 50 has 50. That means a +8 overshoot means very different things depending on where a team started.
The Ceiling grade corrects for this by scaling Δ against the room each team actually had to move:
if Δ ≥ 0: headroom = max(100 − projection, 5)if Δ < 0: headroom = max(projection, 5)ceiling_pct = Δ / headroom
Directional headroom matters: upside is scored against remaining ceiling, downside against the drop each team could actually take. This keeps the grade fair in both directions.
Ceiling grade bands on ceiling_pct:
pct ≥ +0.55 — used most of the room+0.20 ≤ pct < +0.55 — cleared a healthy share−0.15 ≤ pct < +0.20 — inside their expected band−0.40 < pct < −0.15 — a real share of the floor given backpct ≤ −0.40 — a collapse relative to headroomWorked example. Ohio State 2025: projected 87.3, realized 93.0, Δ = +5.7. Raw Δ grade = C (Δ is in the −6 to +8 band). Headroom = 100 − 87.3 = 12.7. Ceiling pct = 5.7 / 12.7 = +0.45. Ceiling grade = B. They used nearly half their available upside, which the raw Δ grade can't capture at that ceiling.
Both grades are published — the raw Δ letter reads as a solid chip, the Ceiling letter reads as an outlined ring next to it. Two lenses on one season. Neither replaces the other.
Ceiling can upgrade and downgrade the raw Δ letter. When headroom is generous — a team projected in the middle of the scale — the same raw Δ scales to a smaller pct, so the Ceiling letter can soften: Florida 2025 (projected 73.1, Δ = −18.1) grades F raw but D on Ceiling, because −18.1 is only about a quarter of the 73.1 points they had to lose. When a team is already near the floor, the same raw Δ is a larger share of what little downside room they had — so the Ceiling letter can harden: Charlotte (projected 21.3, Δ = −9.4) grades D raw but F on Ceiling, because −9.4 is 44% of the 21.3 points they had to fall. That asymmetry is the point of the second lens, not a bug in it.
The core principle of the site:
Tier records program status. Grade records season narrative. A team can be Elite and receive a C.
LSU 2025 is that case. Preseason SP+ had them at #11 nationally (+20.1) — Elite tier by the model. They finished 2025 at #32 (+10.3), Δ = −14.0, grade D. Elite program status, a season that fell short of the projection. Both are true.
Indiana ran the opposite: from Solid to Elite in one year with a +28.4 Δ, grade A. Δ is what the grade board measures — not the raw ranking.
Projection 2025 = each team's actual August 13, 2025 preseason SP+ rating — Bill Connelly's final preseason SP+ release before Week 1 (published on ESPN), mapped to the 0–100 scale. Two programs (Southern Miss, Florida International) were absent from the Aug 13 preseason release; for those two the projection fell back to 2024 final SP+ regressed 25% toward mean. If a team also had no 2024 SP+, a conference default (SP+ +3.0 for P4, −8.0 for G5) would be used — that branch was not triggered in 2025.
Realized 2025 = each team's final 2025 SP+ rating on the same 0–100 scale. Δ = realized − projection.
2025 grades use raw preseason SP+, not the residual composite. The grade tests Connelly's preseason number against reality — no residual layers, no hindsight adjustment. LSU 2025 grades D because SP+ said 78.7 in August and the team finished at 64.7. The residual signals (returning production, portal, coach) appear on 2025 team pages as narrative context: they help explain why the season went the way it did, but they are not part of the grade calculation. The portal panel and returning-production line on retro cards are backwards-looking storytelling.
What 2026 will grade against. The 2026 grade will test the same object — preseason SP+, published in mid-August 2026 — against realized 2026 SP+. The composite projection printed on the tier board is not what the 2026 grade tests. Keeping the grading target identical across seasons is the reason 2025 and 2026 letters can be compared directly; 2026 will not silently switch to grading the composite.
All raw data via CollegeFootballData: SP+ ratings, recruiting composites, returning production, roster, coaches. Preseason 2026 SP+ cross-checked with Bill Connelly's public preseason release (SB Nation / ESPN).