CFT Model Accuracy
Out-of-sample backtests of the CFT Model's calibrated engine — projections vs. what actually happened, and vs. market closing lines
Player projections
Beat the naive baseline by 11% on per-game accuracy · p10–p90 coverage 44% (2025 backtest, 7,762 preds)
Team margins vs market
Model MAE 13.35 vs market 12.2 · beats the line 49.6% (5,297 games)
Player Accuracy
per-game rate vs naive · 7,762 predsskill 11%p10–p90 cov 44%
| Stat | N | Model /g | Base /g | Skill | Cov |
|---|---|---|---|---|---|
| Passing | |||||
| Pass Yards | 294 | 65.43 | 85.56 | +24% | 0% |
| Pass TDs | 294 | 0.66 | 0.7 | +6% | 0% |
| Pass INTs | 294 | 0.26 | 0.38 | +31% | 0% |
| Completions | 294 | 5.25 | 7.06 | +26% | 0% |
| Rushing | |||||
| Rush Yards | 937 | 19.75 | 21.5 | +8% | 21% |
| Rush TDs | 937 | 0.28 | 0.27 | -5% | 16% |
| Receiving | |||||
| Receptions | 1785 | 0.88 | 1.02 | +13% | 62% |
| Rec Yards | 1785 | 11.57 | 12.94 | +11% | 64% |
| Rec TDs | 1142 | 0.17 | 0.19 | +12% | 72% |
Team Margins vs Market Closing Lines
backtest
| Season | Games | Model MAE | Market MAE | Beat% | Corr·M | Corr·Mkt |
|---|---|---|---|---|---|---|
| 2025 | 809 | 13.08 | 11.82 | 51.5% | 0.57 | 0.67 |
| 2024 | 803 | 13.13 | 12.06 | 48.7% | 0.56 | 0.64 |
| 2023 | 797 | 12.98 | 12.11 | 50.8% | 0.59 | 0.66 |
| 2022 | 784 | 13.28 | 12.05 | 48.1% | 0.57 | 0.64 |
| 2021 | 781 | 14.01 | 12.58 | 46.6% | 0.56 | 0.66 |
| 2020 | 538 | 13.79 | 12.87 | 53% | 0.58 | 0.64 |
| 2019 | 785 | 13.37 | 12.17 | 49.3% | 0.63 | 0.71 |
| Overall | 5297 | 13.35 | 12.2 | 49.6% | 0.58 | 0.66 |
Lower MAE = closer to the real margin. Matching the market's MAE means we're at market level; a Beat% above 50 implies positive expectation against the closing line. The model never sees the line — it's stored only to benchmark honestly.