Methodology

The Program Trajectory Rating.

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.

1. The 0–100 scale

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.

2. Projection (2026 baseline)

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):

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).

ModelFramingImprovement vs. baseline
Preseason SP+ aloneon 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.

  1. Portal arrives on a different clock. The 2026 winter/spring portal window closes after Connelly's August preseason SP+ publishes. Preseason SP+ cannot include the 2026 portal cycle. Portal is the one residual in the stack that carries information the base cannot. Its 0.203 coefficient is a three-season OLS fit on 2022–2024; the site retains it because the timing argument justifies inclusion — the 2025 hold-out result applies to the composite, and portal's independent 2025 contribution cannot be isolated from that number.
  2. Coach and recruiting are judgment-based, applied as small offsets. The coach signal is a four-tier assignment (rules above). The recruiting layer uses a 2024+2025 blend of the 247/On3 composite. Both are retained as small offsets on top of SP+ rather than dropped, because SP+ regresses toward prior years and a change of head coach or a top recruiting class is a visible signal the base under-weights. That judgment is the reason the layers survive the negative RMSE test.

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.

3. Tier

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.

Band 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).

4. Grade (Δ)

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 Δ:

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.

4b. Ceiling grade (headroom-normalized)

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:

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. 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.

5. Tier vs. Grade

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.

6. Retrospective grading (2025)

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.

7. What updates when

8. Known limitations

  1. Ceiling asymmetry. A team already at projection 90 cannot post a +20 Δ (that would exceed 100). Floor-projected teams have more room to overperform. A second, headroom-normalized Ceiling grade is published alongside the raw Δ grade for exactly this reason — see section 4b.
  2. Scale clamps at [1, 99]. The rescale from SP+ to 0–100 is clamped at both ends. In 2025 that clamp bites at the floor: Massachusetts finished with SP+ −36.6, which maps below 1.0 and is clipped to a realized value of exactly 1.0. Their displayed Δ (−14.7) is therefore softer than reality — the true residual is closer to −18. No team hit the top clamp in 2025 (Indiana came closest at 96.3), but the same distortion would apply symmetrically. Read displayed Δs near either clamp as understating the true distance from projection — lower bounds on the magnitude in both directions.
  3. Signal correlation with SP+. The returning-production, recruiting, and (partly) coach-signal layers are not independent of preseason SP+ — Connelly's model already reads them. The modifiers double-count at the margin, biasing the projection slightly toward the direction SP+ already leaned. Fitting all coefficients on 2022–2024 gives a 2.4% RMSE improvement over a prior-year baseline; the same composite performs 1.2% worse than the baseline out-of-sample on 2025. Portal is the exception — it arrives after SP+ publication and is the one residual not already in the base. The correlated layers are retained as small offsets on top of SP+; see Section 2 for the base-vs-residual variance decomposition and the coefficient-origin note.
  4. Preseason SP+ is one input. If Bill Connelly is wrong about a team in August, the projection inherits that error. The returning-production and recruiting layers dampen that risk somewhat but also, per above, correlate with it.
  5. New-FBS teams. Kennesaw State, Delaware, Missouri State — thinner priors, more volatile Δs.
  6. Not a betting tool. No spreads, no totals, no moneylines here.

9. Data source

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).