Mort's Report — Sports Data Analytics

Model accuracy

Does the number hold up?

Every 2025 game replayed with the rating each team carried before that game — the same calculation the site shows for Week 1, with no hindsight. Then the 2026 season, tracked game by game as results land.

Tuning

Fitted to 2025, not to a textbook

The model started with the usual Elo defaults. Each constant was swept against the 272 stored 2025 games, fit on Weeks 1-13 and validated on Weeks 14-18 — a setting only survives if it also helps on games it was not fit to. Log loss is the objective; anything worth less than 0.002 was left at its round-number default.

Straight-up

61.8% → 64.0%

held-out weeks 64.1% → 69.2%

Brier score

0.226 → 0.222

held-out weeks 0.225 → 0.216

Log loss

0.644 → 0.634

held-out weeks 0.637 → 0.618

ConstantWasNowHeld-out LL

K-factor

With the weekly decay in place a slightly faster K grades best; 24-32 are all inside a point of each other.

2628-0.0004

Home field

Home teams went 142-123 (.536) in 2025 — worth roughly 25 rating points, not the 55 the textbook default assumes.

35 pts25 pts-0.0006

In-season decay

Ratings bleed 10% back toward 1500 every week, so September results stop carrying December games.

none10% per week-0.0028

Scoring blend

Mixing season point differential into the pre-kickoff rating was the biggest single gain — Elo grades wins, this remembers how they were won.

0%25% after 4 games-0.0015

MOV dampener

Flat from 1.6 to 3.0 — the blowout dampener barely moves the grade. Left alone.

2.22.2kept

Spread divisor

22 cut margin error from 10.265 to 10.255 points per game. Noise, so the round number stays.

2525kept

Offseason regression

30-35% graded a hair better on the in-season proxy, inside the noise guard.

25%25%kept

Blend weights

Elo already prices margin of victory, so the scoring terms were double-counting it.

55 / 20 / 15 / 1080 / 5 / 15 / 0-0.0059

Honest read: the change that mattered was giving the pre-kickoff rating a memory of scoring margin, not just wins, and letting old results fade 10% a week. Trimming home field to 25 points — home teams went 142-123 (.536) in 2025 — helped at the edges. Together they lifted the 2025 backtest from 62.5% to 64.0% straight up and cut the Brier score from 0.224 to 0.222. That is real but modest; NFL Elo does not have much more room than this, and every number here is fit on the same season it is graded on.

Straight-up

64.0%

174 of 272 winners called in 2025

Brier score

0.222

Lower is better. 0.25 = always guessing 50/50

Avg spread error

10.3 pts

44% of games within a touchdown

Log loss

0.635

Penalises confident wrong calls hardest

Accuracy by confidence band

The bands on every matchup card, judged against reality. A "Strong" call should win far more often than a "Lean".

Coin flip

57%

54-40 · claimed 53%

Lean

62%

58-35 · claimed 59%

Confident

66%

37-19 · claimed 70%

Strong

86%

25-4 · claimed 79%

Calibration

When the model says 70%, does it win 70% of the time?

50–55% favorites94 games · said 53% · won 57%
55–60% favorites64 games · said 57% · won 58%
60–65% favorites29 games · said 62% · won 72%
65–70% favorites31 games · said 68% · won 58%
70–75% favorites25 games · said 73% · won 76%
75–80% favorites21 games · said 78% · won 81%
80–100% favorites8 games · said 84% · won 100%

Grey bar: what the model claimed. Coloured bar: what actually happened. A well-calibrated model has them roughly equal in every band.

2026 season tracker

66 of 107 correct · 62% · 14 still to play

Straight-up

62%

66 of 107 final games

Brier score

0.233

2025 backtest ran 0.222

Avg spread error

9.5 pts

2025 backtest ran 10.3 pts

WeekGameFinalModel pickSpreadResult
Wk 7DAL at PHI38–21PHI 53%PHI −0.9Miss
Wk 7KC at SEA3–20SEA 53%SEA −0.9Hit
Wk 7GB at DET17–20DET 55%DET −1.3Hit
Wk 7LAR at LV35–21LAR 50%LAR −0.1Hit
Wk 7DEN at ARI30–16DEN 67%DEN −4.9Hit
Wk 7CLE at TEN27–24CLE 60%CLE −2.7Hit
Wk 7NYG at HOU27–21HOU 61%HOU −3.1Miss
Wk 7MIA at NYJ28–25NYJ 56%NYJ −1.6Miss
Wk 7TB at CAR43–13CAR 66%CAR −4.7Miss
Wk 7CIN at BAL35–13BAL 51%BAL −0.4Miss
Wk 7IND at MIN10–16MIN 78%MIN −8.7Hit
Wk 7SF at ATL20–29SF 67%SF −4.9Miss
Wk 7PIT at NO16–10PIT 61%PIT −3.1Hit
Wk 7NE at CHI24–30NE 54%NE −1.1Miss
Wk 6WSH at SF17–23SF 77%SF −8.2Hit
Wk 6DAL at GB13–23GB 59%GB −2.5Hit
Wk 6LAC at KC6–22KC 75%KC −7.6Hit
Wk 6BUF at LV33–30BUF 62%BUF −3.4Hit
Wk 6ARI at LAR18–16LAR 70%LAR −6.0Miss
Wk 6TEN at IND26–20IND 66%IND −4.7Miss
Wk 6BAL at CLE10–13BAL 58%BAL −2.2Miss
Wk 6NO at NYG34–27NYG 64%NYG −3.9Miss
Wk 6CAR at PHI25–14CAR 57%CAR −1.9Hit
Wk 6PIT at TB26–19PIT 54%PIT −1.2Hit
Wk 6NYJ at NE19–26NE 71%NE −6.1Hit
Wk 6CHI at ATL31–23ATL 53%ATL −0.9Miss
Wk 6HOU at JAX34–31JAX 65%JAX −4.4Miss
Wk 6SEA at DEN14–17DEN 50%DEN −0.0Hit
Wk 5BUF at LAR37–34LAR 60%LAR −2.8Miss
Wk 5BAL at ATL30–23ATL 68%ATL −5.3Miss
Wk 5SF at SEA32–29SEA 57%SEA −1.9Miss
Wk 5DET at ARI45–21DET 55%DET −1.5Hit
Wk 5DEN at LAC23–17DEN 65%DEN −4.4Hit
Wk 5MIN at NO23–13MIN 68%MIN −5.2Hit
Wk 5CLE at NYJ12–17CLE 65%CLE −4.3Miss
Wk 5NYG at WSH27–27NYG 61%NYG −3.0Miss
Wk 5CIN at MIA31–24CIN 64%CIN −4.1Hit
Wk 5IND at PIT22–34PIT 55%PIT −1.5Hit
Wk 5HOU at TEN26–3HOU 54%HOU −1.2Hit
Wk 5LV at NE17–45NE 53%NE −1.0Hit
Wk 5CHI at GB7–31GB 55%GB −1.3Hit
Wk 5PHI at JAX17–19JAX 75%JAX −7.6Hit
Wk 5TB at DAL24–16DAL 77%DAL −8.4Miss
Wk 4ATL at NO45–24ATL 53%ATL −0.9Hit
Wk 4DET at CAR26–32DET 52%DET −0.5Miss
Wk 4DEN at SF14–24SF 60%SF −2.9Hit
Wk 4KC at LV30–27LV 53%LV −0.7Miss
Wk 4LAC at SEA23–30SEA 81%SEA −10.3Hit
Wk 4MIA at MIN10–15MIN 75%MIN −7.6Hit
Wk 4GB at TB17–14GB 64%GB −4.0Hit
Wk 4DAL at HOU34–30HOU 58%HOU −2.3Miss
Wk 4NE at BUF29–26BUF 58%BUF −2.1Miss
Wk 4TEN at BAL18–24BAL 64%BAL −4.1Hit
Wk 4LAR at PHI24–20LAR 57%LAR −2.1Hit
Wk 4NYJ at CHI12–23CHI 57%CHI −2.0Hit
Wk 4JAX at CIN22–17JAX 60%JAX −2.8Hit
Wk 4ARI at NYG24–36NYG 61%NYG −3.3Hit
Wk 4IND at WSH30–13IND 69%IND −5.7Hit
Wk 4PIT at CLE24–27CLE 51%CLE −0.4Hit
Wk 3PHI at CHI7–27PHI 61%PHI −3.2Miss
Wk 3LAR at DEN26–30DEN 62%DEN −3.4Hit
Wk 3BAL at DAL34–31BAL 59%BAL −2.7Hit
Wk 3LV at NO35–27NO 58%NO −2.4Miss
Wk 3MIN at TB23–16MIN 65%MIN −4.3Hit
Wk 3ARI at SF30–36SF 65%SF −4.3Hit
Wk 3NE at JAX6–35JAX 58%JAX −2.2Hit
Wk 3CAR at CLE18–21CLE 54%CLE −1.0Hit
Wk 3CIN at PIT27–30CIN 55%CIN −1.3Miss
Wk 3KC at MIA24–10KC 65%KC −4.2Hit
Wk 3SEA at WSH31–33SEA 85%SEA −12.1Miss
Wk 3LAC at BUF16–24BUF 79%BUF −9.1Hit
Wk 3NYJ at DET24–31DET 65%DET −4.2Hit
Wk 3TEN at NYG7–12NYG 60%NYG −2.9Hit
Wk 3HOU at IND17–19HOU 55%HOU −1.3Miss
Wk 3ATL at GB35–14GB 62%GB −3.4Miss
Wk 2NYG at LAR6–28LAR 51%LAR −0.2Hit
Wk 2IND at KC30–33KC 69%KC −5.5Hit
Wk 2SEA at ARI31–7SEA 55%SEA −1.3Hit
Wk 2WSH at DAL20–37DAL 66%DAL −4.6Hit
Wk 2MIA at SF13–35SF 76%SF −8.1Hit
Wk 2JAX at DEN13–20JAX 61%JAX −3.2Miss
Wk 2LV at LAC26–14LAC 55%LAC −1.3Miss
Wk 2PHI at TEN24–20PHI 63%PHI −3.8Hit
Wk 2NO at BAL24–17BAL 53%BAL −0.9Miss
Wk 2CIN at HOU20–6HOU 52%HOU −0.5Miss
Wk 2CLE at TB23–19TB 52%TB −0.5Miss
Wk 2PIT at NE3–20NE 58%NE −2.2Hit
Wk 2GB at NYJ20–17NYJ 55%NYJ −1.5Miss
Wk 2MIN at CHI9–3CHI 67%CHI −4.8Miss
Wk 2CAR at ATL34–3CAR 55%CAR −1.4Hit
Wk 2DET at BUF31–41BUF 66%BUF −4.5Hit
Wk 1DEN at KC10–31DEN 66%DEN −4.5Miss
Wk 1DAL at NYG20–28NYG 60%NYG −2.8Hit
Wk 1WSH at PHI22–24PHI 58%PHI −2.3Hit
Wk 1GB at MIN22–39MIN 65%MIN −4.3Hit
Wk 1ARI at LAC26–14LAC 69%LAC −5.6Miss
Wk 1MIA at LV13–27MIA 55%MIA −1.4Miss
Wk 1BAL at IND41–23BAL 56%BAL −1.6Hit
Wk 1NO at DET30–31DET 53%DET −0.8Hit
Wk 1CHI at CAR59–37CHI 54%CHI −1.2Hit
Wk 1BUF at HOU36–31HOU 57%HOU −1.8Miss
Wk 1NYJ at TEN23–10TEN 58%TEN −2.3Miss
Wk 1TB at CIN27–33CIN 59%CIN −2.5Hit
Wk 1CLE at JAX10–34JAX 72%JAX −6.5Hit
Wk 1ATL at PIT13–20PIT 54%PIT −1.2Hit
Wk 1SF at LAR27–7SF 51%SF −0.1Hit
Wk 1NE at SEA10–13SEA 59%SEA −2.5Hit

Worst calls of 2025

The games the model was most sure about and still got wrong.

WeekGameFinalModel pickResult
Wk 5TEN at ARI22–21ARI 79%Miss
Wk 13CIN at BAL32–14BAL 78%Miss
Wk 18WSH at PHI24–17PHI 76%Miss
Wk 13LAR at CAR28–31LAR 76%Miss
Wk 10BUF at MIA13–30BUF 74%Miss

Sharpest calls of 2025

Right winner, and the model spread landed nearly on the final margin.

WeekGameFinalModel pickResult
Wk 1BAL at BUF40–41BUF 54%Hit
Wk 3ARI at SF15–16SF 53%Hit
Wk 6LAC at MIA29–27LAC 57%Hit
Wk 16LAR at SEA37–38SEA 54%Hit
Wk 9LAC at TEN27–20LAC 74%Hit

Week by week, 2025

Wk 1
9/16
Wk 2
11/16
Wk 3
9/16
Wk 4
7/16
Wk 5
7/14
Wk 6
9/15
Wk 7
10/15
Wk 8
9/13
Wk 9
8/14
Wk 10
10/14
Wk 11
11/15
Wk 12
11/14
Wk 13
9/16
Wk 14
11/14
Wk 15
9/16
Wk 16
12/16
Wk 17
12/16
Wk 18
10/16

Loading diagnostics…

Honest caveat: the 2025 backtest is in-sample in one sense — ratings were built from the same season — but each prediction only uses ratings as they stood before that kickoff, so no game informs its own forecast. Early-season weeks are the weakest, because every team starts the year near the league average.