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 84.2, ranked #10, 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).
Tier and grade are a stock and a flow. Tier is the standing balance a program brings into the season — slow to move, set in August. Grade is what the season adds to or subtracts from that balance — one year's residual against projection. A Contender A can outfinish an Elite C in a single year; the Elite C is the program with more standing balance heading into the next one.
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 / Floor grades are computed against the underlying full-precision numbers, not the one-decimal display values. In rare edge cases the displayed Δ or headroom 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 / Floor grade corrects for this by scaling Δ against the room each team actually had to move — Ceiling for teams that beat their projection (upside room used), Floor for teams that fell short (downside room used). Same math, same A–F bands, labeled by the direction the season went:
if Δ ≥ 0: headroom = max(100 − projection, 5) → Ceiling gradeif Δ < 0: headroom = max(projection, 5) → Floor gradepct = Δ / 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 — and the direction label prevents the common misread of “Ceiling F” meaning “their ceiling collapsed” when what actually happened is they used most of their downside room.
Bands on pct (same scale, both directions):
pct ≥ +0.55 (Ceiling only) — used most of the upside room+0.20 ≤ pct < +0.55 (Ceiling only) — cleared a healthy share−0.15 ≤ pct < +0.20 — inside the expected band−0.40 < pct < −0.15 (Floor only) — a real share of the room given backpct ≤ −0.40 (Floor only) — a collapse relative to headroomCeiling worked 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. 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.
Floor worked example. Georgia State 2025: projected 29.7, realized 15.0, Δ = −14.7. Raw Δ grade = D (Δ is in the −18 to −6 band). Headroom = 29.7. pct = −14.7 / 29.7 = −0.49. Floor grade = F. They used nearly half of their downside room — the same nominal Δ that a projection-79 team (LSU) can absorb inside a D reads as an F at projection 30, because a low-projection team has less room to fall before hitting the ground.
Both letters are published — the raw Δ letter reads as a solid chip, the Ceiling or Floor letter (whichever applies to the direction of Δ) reads as an outlined ring next to it. Two lenses on one season. Neither replaces the other.
The second lens 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 Floor letter can soften: Florida 2025 (projected 73.1, Δ = −18.1) grades F raw but D on Floor, 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 Floor letter can harden: Charlotte (projected 21.3, Δ = −9.4) grades D raw but F on Floor, 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 the 2026 live grade tests — and a documented change. An earlier version of this page said 2026 would grade raw preseason SP+ against final SP+, exactly as 2025 was graded. That plan was revised on September 8, 2026 — before any 2026 grade was published — and the change is recorded here rather than made silently. The 2026 live grade measures realized in-season SP+ against the full published August projection — the same composite number that set each team's tier. The reasoning: this site printed one number for every team in August, and the report card should test that number. Grading a second, internal SP+-only target would put two different "projections" on the same page and grade the one we never ranked teams by.
The cost, stated plainly: a 2025 letter tests raw preseason SP+; a 2026 letter tests the composite. Cross-season letters are no longer strictly apples-to-apples. The composite is anchored to SP+ (its base is scaled preseason SP+; the residual layers add offsets of a few points at most), so the two targets rarely diverge much — but the difference is real and worth knowing.
Mechanics: realized = current in-season SP+ (Bill Connelly, via CFBD), mapped by the same score = 50 + SP+ × (50/35) rescale. Δ = realized − frozen projection. Same A–F Δ bands (§4) and the same Ceiling/Floor secondary lens (§4b). Projection and tier never move in-season. One caveat for early weeks: Connelly's in-season SP+ starts anchored to its preseason priors and only gradually hands weight to actual results — so September Δs cluster near zero and most live grades open at C. The spread widens as the season accumulates; by December the live grade converges on what the final retrospective grade will be.
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).