← All posts
·Predictium

Seven Weeks of the NFL Model: What We Took, What It Paid, and Where the Line Went

Since Week 5 every NFL pick has been an exchange contract, settled at the strike we traded and booked to win one unit at the price paid. Props are 223-192 for +31.4 units. Game spreads and totals are 29-28 for -1.9. Here is the full record, the early line value behind it, and the teams our ratings disagree with.

nflmodeltrack-recordearly-line-value

Our NFL model has been publishing every week since September: a projected score, spread, total and win probability for every game, a probability curve for several hundred player props, and a short list of the contracts it would actually take. This is the first long look at how that has gone. The numbers below are the ones on the NFL backtest page, read from the same file the page reads, as of the morning of October 28.

Two conventions first, because they decide what the numbers mean.

Every pick is a contract on an exchange, and it settles at the strike we traded. Since Week 5, a pick means a specific Kalshi (exchange) contract at a specific strike, bought at the ask plus the venue's fee, rather than "Cowboys -4.5" in the abstract. If we buy the Over 49.5 and the game lands on 49, we lost, whether or not some book had it at 48.5. Each contract is booked to win one unit at the price paid, so a contract costing 52 cents with the fee included risks about 1.08 units to win one, and breakeven is the price itself. There is no sportsbook vig anywhere in these figures. Earlier picks, from Weeks 1 through 4, were settled at the book line and live in their own closed ledger on the same page. The two are never added together.

The headline metric is early line value, not wins. We publish before the market has finished moving, and the question we grade ourselves on is whether the contract we bought traded closer to our number by kickoff than it did when we bought it, measured in probability points on the same contract. Positive means the market moved our way after we posted. Negative means it moved against us. Wins and losses are on the page too, exactly as prominent, but a model can win a week on variance and lose a week on variance. Early line value is harder to fake and it accumulates faster.

The record since Week 5

LedgerContractsRecordUnitsROIEarly line value
Player props423223-192+31.4+7.1%+0.48 pp
Game spreads and totals5729-28-1.9-3.1%-0.12 pp

Units are booked to win one at the price paid. Early line value is the average move, in probability points, of our side of the contract between purchase and kickoff. The props ledger covers 171 players across 43 games. The games ledger covers 36 games.

Read the second row as carefully as the first. On game spreads and totals the model has not made money and the market has, on balance, not moved toward it. That is the honest state of the game-market product three weeks into the contract record, and it sits on the page at the same size as the props number.

Props: where the model has earned its keep

MarketContractsRecordUnitsROIEarly line value
Receiving yards14581-62+20.7+14.3%+0.61 pp
Receptions194101-89+14.6+7.3%+0.24 pp
Rushing yards3417-16-0.8-2.2%+0.56 pp
Rush attempts2713-13-1.1-3.5%+1.78 pp
Passing yards2311-12-2.0-8.0%-0.09 pp

Receiving yards and receptions are the bulk of the volume and all of the profit. Receiving yards in particular has done both things we want at once: it has paid, and the market has drifted toward our side of the contract after we took it. The three smaller markets are roughly flat on results and too small to say much yet. Rush attempts is the odd one: the market has moved toward us more than in any other market (+1.78 points on average) while the results sit at 13-13. That is what a short sample looks like when the model's read is being validated by the price but not yet by the box score. We will know more at a hundred contracts.

A few settled examples from Week 7, winners and losers both, because a record that only shows its winners is an advert:

  • CeeDee Lamb under 7.5 receptions, bought at 62 cents with the model at 72%. The contract moved 3.5 points our way before kickoff. Lamb caught 5. Win.
  • Dak Prescott under 274.5 passing yards, bought at 56 cents with the model at 61%. Moved 3 points our way. Prescott threw for 212. Win.
  • Kyler Murray under 24.5 rushing yards, bought at 50 cents with the model at 56%. Moved 4 points our way, then Murray ran for 39, including a 35-yard scramble that set up Minnesota's winning touchdown. Loss.
  • Adonai Mitchell over 1.5 receptions, bought at 65 cents with the model at 79%. Mitchell had zero catches. Loss.

The Murray contract is the one worth sitting with. The market agreed with us more and more as kickoff approached, and the player then did the one thing the model gave him a 44% chance of doing. That is a good pick that lost, and the ledger does not distinguish. Only the early line value column does.

Games: three weeks, three different stories

WeekContractsRecordUnitsEarly line valueMoved our way
51810-8+1.4+1.39 pp10 of 18
6188-10-3.5-1.72 pp5 of 18
72111-10+0.2-0.05 pp8 of 21

Split by market, totals have gone 14-14 with the line moving toward us by 0.73 points on average. Spreads have gone 15-14 with the line moving away from us by 0.95 points on average. That spread number is the one figure in this article we would most like to see turn, and the one we will be watching hardest over the next month. A model that keeps buying spreads the market then moves away from is a model the market disagrees with for a reason, and three weeks is not long enough to know whether the reason is ours or theirs.

Two Week 7 contracts show how little the result and the early line value have to do with each other. We bought Cincinnati +2.5 at Baltimore at 50 cents. By kickoff the same contract was trading 17 points higher in our favour, a move that had far more to do with Baltimore's quarterback being ruled out than with anything in our number, and the Bengals won 35-13. Same weekend, we bought San Francisco -3.5 at Atlanta at 51 cents. The contract moved 7 points against us before kickoff and Atlanta won outright. One pick looks brilliant and one looks foolish, and both are mostly the market and the football doing what they do. The average over hundreds of contracts is what counts, which is why the page shows the average.

What the backtest said, and the year it was wrong

Before any of this went live, the model was run walk-forward over seven seasons, 2019 through 2025: for each season it trains only on the seasons before it, then simulates every game of that season more than two thousand times. That is 1,960 games it had never seen. Where the model's spread disagreed with the market's by at least two points, it went 51.7% against the spread across 1,201 games, for a 3.4% return booked the same way as everything above.

Season by season, the two-point-disagreement return was positive six years out of seven: between +1.8% and +9.1% from 2019 through 2024. Then 2025 came in at 43.0% against the spread and -13.9%. That season is on the backtest page with the rest, and it is the reason we treat a negative stretch in the live record as information rather than noise to wait out. We also show the model's margin error next to the consensus closing line's as a calibration reference (10.3 points to 9.8 over the backtest). We do not grade ourselves on that comparison and we are not trying to win it. It tells us the model is in the right neighbourhood, nothing more.

The teams our ratings disagree with

The model carries a team rating that updates after every game, built from the same drive-level engine that prices the slates. It does not look at the standings. Through Week 7 it disagrees with the standings in a few places that are worth putting on the record now, so they can be checked later.

Seattle: top-rated at 4-3

The Seahawks have lost three games by a combined eight points, to Washington, San Francisco and Denver, and the last two of those are the model's fifth and fourth-rated teams. Sunday night's 20-3 win over Kansas City is the kind of game that moves a rating a lot, because the model watches drives rather than scores. Jaxon Smith-Njigba leads the league in receiving yards by more than 200, and the Seattle defense rates second in the league behind Minnesota.

Minnesota: 6-0 on defense alone

The Vikings have the best defensive rating in the league by a wide margin and an offense the model rates almost exactly average. They are allowing 12.3 points a game. Sunday's 16-10 win over Indianapolis, with 265 yards of offense, is what that profile looks like in practice. The model has them third overall, behind Seattle and Buffalo, which is high for a team with that offense and low for a team that has not lost.

Buffalo: the best offense and one of the eight worst defenses

The Bills' offensive rating is the highest in football and well clear of second place. Their defensive rating sits among the bottom eight. The combination nets out to second overall at 5-1, and three of Buffalo's last five games have gone past 60 points.

Kansas City: 5-1 and rated eleventh

The Chiefs have won five games with an offense and a defense the model both rates as roughly average. Sunday in Seattle was the first result that looked like the rating rather than the record. If the Chiefs keep winning, this is the team the model is most likely to be wrong about, and we will say so when it is.

Cleveland: 5-2 and rated twentieth

Four of the Browns' five wins have come by exactly three points. Their defense rates a little above average and their offense does not, and the rating does not believe the record. Philadelphia is the mirror image: 2-5, five straight losses, and a rating that has them twenty-third, which is bad but not as bad as five straight losses looks.

Dallas: the second-best offense and the worst defense

The offense trails only Buffalo. The defense rates a hundredth of a point below Arizona's at the bottom of the league. Monday night's 38-21 win in Philadelphia, 59 points in all, was the profile in one game.

Every one of these ratings is on the NFL teams page and will update after Week 8. If Cleveland keeps winning and Seattle keeps losing, the rating will move, and the record of what it said in late October will still be here.

What happens next

Nothing changes in how the record is kept. Every contract the model takes goes on the page before kickoff, settles at the strike traded, and stays there won or lost. The props ledger is large enough now that we take its direction seriously. The games ledger is not, and the spread early line value number in particular has our attention. Within a few weeks there will be enough contracts to say whether that is a problem with the model or a run of weeks.

We publish before the market settles because that is where the information is, and we grade on whether the market then moves toward us because that is the only grade the market itself hands out. The wins and losses are on the page because you would not believe the rest without them.

The next NFL post looks further ahead. We are running the rest of the regular season and the playoffs through our model many thousands of times over, to put a playoff, division and title probability on every team. We will set those next to the futures prices on Kalshi (exchange) and show where our numbers and the market's disagree, and we will publish whatever that comparison turns up.

Nothing here is betting advice. If you bet, do it where it is legal, at 21 or older, and with money you can afford to lose.

NFL games · Player props · The record · How the model works