The Marginbeta
NBA

The model's 2026 NBA report card

The Knicks won their first title since 1973. Here is the honest scorecard on how our model did across the season, what it got right, and the one fix we are shipping before next tip-off.

The Margin·June 13, 2026·7 min read

The New York Knicks beat the San Antonio Spurs four games to one to win the 2026 title, their first since 1973, with Jalen Brunson taking Finals MVP. The season is over, which means it is time to do the thing most models avoid: grade ourselves in public, with numbers, not vibes.

We ran a full audit of every resolved NBA prediction this season. Here is what it found, wins first.

What worked

Totals were the edge. Game totals were the one bet type that made money on a flat-stake basis and held up to calibration scrutiny: a 18.7 percent return per unit across the season, profitable whether we backed the over or the under. That is not a fluke of one hot week. It is the part of the model that earned the right to keep running, and it is where we will point the most attention next season.

Cheap beats chalk. The model's value sat almost entirely in underpriced longshots. Bets priced below 50 cents were profitable in a clean, monotone line: the cheaper the ticket, the better the return. Bets priced above 70 cents, the heavy favorites, lost money. That is a useful, durable lesson about where this model has something to say and where the market already knows everything it knows.

We killed a broken table instead of defending it. Earlier in the year the moneyline calibration ran through an isotonic curve that had a flat spot in the middle: a whole band of probabilities collapsed to roughly 48 percent, washing out real signal. Rather than patch around it, we replaced the whole thing with a smooth Platt curve. Out of sample, the new approach beat both the old table and doing nothing at all. Unglamorous, correct, and the best single decision we made all year.

Discipline held. Three different ideas looked promising and did not survive testing, so we did not ship them. A Finals form dial showed no real signal once we tested it honestly, so it stayed disarmed. A per-game series-lead feature got falsified outright. Full-game spreads stayed on paper because the model was overconfident on them. Saying no to your own ideas when the data says no is the whole job. We did it four or five times this season, and the model is cleaner for it.

What did not work

Now the hard part, because a report card that only lists wins is marketing.

The model is overconfident at the edges. When it said a team had a 90-plus percent chance, those bets came in around 64 percent of the time. When it said 70-plus, reality was lower too. The probabilities were simply too far from a coin flip in both directions. It is the most common failure mode a sports model has, and ours has it.

That cost us at the very top. The clearest example is the one everybody can check: the model favored San Antonio to win the title. New York won. A model that overrates favorites and leans chalk in the playoffs is exactly the model that takes the Spurs there, and it was wrong. We are not going to bury that on a results page.

The bottom line was roughly flat. Strip out a handful of oversized outlier tickets and the season's profit and loss lands close to break-even, slightly negative on the cleanest read. Totals carried it. Favorites and full-game spreads dragged. That is an honest "we have a real edge in one place and noise in others," not "we beat the market."

The fix we are shipping

The good news about an overconfidence problem is that it has a known, boring fix: pull every probability a little toward the market, by a fixed amount, before we act on it. We have already built and validated that adjustment. It flattens exactly the curve that hurt us, and in testing it improves the model without touching anything else. It ran in shadow mode all season, watched but not acted on. Arming it is the number one item for next year.

Alongside that, three things on the list before the first game tips:

  • Refit the calibration on the full season of results now that we have them, instead of the partial sample we started with.
  • Make game totals a featured part of the live board, since that is where the edge actually is.
  • Close a data gap: only about two thirds of our live bets had a clean closing line recorded, and the closing line is how you separate a real edge from a lucky run. We want that at or near 100 percent before we scale anything.

The honest summary

We found one repeatable edge (totals), confirmed where the model has nothing to add (heavy favorites, full-game spreads), made one genuinely good structural fix (killing the calibration plateau), and showed the discipline to not ship three ideas that did not earn it. We also missed the champion and finished roughly flat. Both of those are true at the same time, and pretending otherwise would defeat the point of keeping receipts.

The live calibration ledger is on the calibration page if you want to check the math yourself. That is the deal here: we show the work, including the parts that did not go our way.

More from The Margin

All articles →