Competition Factor · forecasting track record

Our track record

We publish player-production projections before every marquee slate and we keep the receipts. This is the whole record, graded against the actual box scores — 1573 projections and counting. The bar we set for ourselves is simple: beat the naive baseline (each player’s prior-season per-game average). Green cells below are where the opponent-adjusted projection earns its keep.

College football
892
Projections graded
29 voided · 0 pending
54%
Beat naive baseline
on 850 comparable rows
6–2
Components vs naive
MAE win/loss by stat
28–14
Unit-edge record
biggest-mismatch calls
ComponentnOur MAENaive MAEVerdict
Pass yds8970.0381.53beats naive
Pass TD890.910.98beats naive
INT580.690.65trails naive
Rush yds12133.6335.64beats naive
Rush TD920.590.63beats naive
Rec1181.861.94beats naive
Rec yds20719.0619.38beats naive
Rec TD1180.450.43trails naive
WeekGradedBeat naiveUnit edgeVoided
Week 113957%4–33
Week 212554%4–35
Week 312453%—0
Week 412661%4–30
Week 512649%6–118
Week 612650%5–23
Week 712654%5–20
NFL
681
Projections graded
85 voided · 39 pending
53%
Beat naive baseline
on 660 comparable rows
6–2
Components vs naive
MAE win/loss by stat
—
Unit-edge record
biggest-mismatch calls
ComponentnOur MAENaive MAEVerdict
Pass yds7662.0167.53beats naive
Pass TD760.750.81beats naive
INT590.630.63trails naive
Rush yds8127.3327.81beats naive
Rush TD640.640.65beats naive
Rec871.951.89trails naive
Rec yds15122.4023.39beats naive
Rec TD870.510.53beats naive
WeekGradedBeat naiveUnit edgeVoided
Week 114452%—1
Week 213251%—39
Week 313247%—12
Week 413558%—24
Week 513854%—9

Methodology. Every projection is published before kickoff and never edited after. We grade by joining each projection to the player’s actual game (by player id and kickoff-date window) in the same box-score data that feeds the ratings. MAE is the mean absolute error against those actuals, in each stat’s own units; the naive baseline is the player’s prior-season per-game average — the number you’d guess with no opponent adjustment at all. Rows adjusted for availability before kickoff (a projected starter ruled out) are voided, not re-graded — they never count for or against us. The unit-edge record grades each game’s single biggest pre-game unit mismatch exactly as published before kickoff (never recomputed from later ratings): did the favored side land on the right side of the league-average line for that phase. Games whose published unit grid was not archived are excluded from that record and marked on their week’s page. The projections never change; the grades follow the best data we have — when a data or identity error is found after grading (a late box score, one player split across two ids), we fix the data, regrade, and say so on that week’s page.