We Built an NBA Playoff Model. Here's How It Compares to the Markets and ESPN

Image

Our NBA playoff prediction app is now live at nbapredictions.impulselabs.ai. It uses three ML models to predict who wins each playoff series (not single games), updates probabilities after every game, and lets you compare the models side by side.

For the launch, we're putting our predictions on the record against the best public sources we could find: Kalshi, Polymarket, Basketball Reference, and ESPN's Basketball Power Index.

Here's where we landed, with one series everyone agrees on and one that's about to be either embarrassing or interesting.


Lakers vs Thunder: everybody agrees

Source

Probability

Impulse Ensemble

95% Thunder

Kalshi

92% Thunder

Polymarket

93% Thunder

Basketball Reference

92.8% Thunder

ESPN BPI

90.9% Thunder


The Thunder are heavy favorites and every source agrees. Our model is slightly more confident than the consensus, but well within the same range. There's nothing to fight about here. When public sources cluster this tightly, picking the favorite isn't a real test of the model. The other series is.


Cavaliers vs Pistons: a 30 to 50 point swing

Source

Probability

Kalshi

52% Pistons

Polymarket

53% Pistons

Basketball Reference

73.4% Pistons

ESPN BPI

80.5% Pistons

Impulse Ensemble

70% Cavaliers


Yes, you read that right. Every public source has Detroit favored. Some of them heavily. Our ensemble has Cleveland favored at 70%.

That's a swing of 30 points off the prediction markets and 50 points off ESPN BPI. Either we're catastrophically wrong, or we're seeing something the consensus is missing.

What's also worth noting: our two underlying models disagreed strongly with each other before the ensemble combined them. LightGBM had Cleveland at 88%. The MLP had Detroit at 53%. The ensemble lands at 70% Cleveland. That kind of internal disagreement is part of why we're publishing three models instead of one. We don't think any single model has it figured out, and the ensemble is meant to capture that uncertainty rather than hide it.


Why we're publishing this

The honest reason: a model is only as good as how it performs against real outcomes, and the only way to find that out is publicly.

We could have launched the app, kept our predictions private, and waited until the playoffs ended to claim we'd called things correctly. That's how most prediction services operate. We don't think it's useful. Anyone can look smart in retrospect.

Instead, we're publishing where we agree with the consensus, where we disagree, and by how much, before the games are played. As the playoffs progress, you'll be able to see exactly how each of our models is doing against every benchmark we listed above. If our Cavs call is wrong, that'll be obvious. If it's right, that'll be obvious too. This is the version of public model benchmarking we wish more prediction tools did.


What's coming next

We'll be publishing throughout the rest of the playoffs:

  • Probability shifts after every game — how each series probability changed and why

  • Model-versus-market disagreement updates — when our model and the public sources diverge meaningfully

  • A Round 2 postmortem — once Round 2 ends, we'll walk through what each of our three models got right, got wrong, and what we'd change

  • Conference Finals predictions — full benchmark comparison, same format as this one

  • A Finals calibration retrospective — when the playoffs are over, the full scorecard for each of our models against every public source

If you want to follow along, the live app updates after every game.


The bigger story

The NBA app is fun, but it's not really the point. It's a public demo of something else: every model behind this app was built by the new MLE agent inside Impulse. We gave it raw NBA data, told it what we wanted to predict, and it handled feature engineering, model selection, training, and evaluation. Hours, not weeks. No code.

That same workflow applies to anything you can predict from tabular data. Churn. Demand. Fraud. Lead conversion. Insurance losses. Energy prices. NBA today, NHL tomorrow, hurricane risk and energy prices after that.

A technical write-up on how the agent actually built these models is coming next. Subscribe or follow along to catch it.

In the meantime:

Track the live probabilitiesnbapredictions.impulselabs.ai

Try the agent on your own dataimpulselabs.ai