We called all three NBA upsets. ESPN, Basketball Reference, Polymarket, and Kalshi missed every one

Going into the playoffs we put three picks on the record that almost nobody agreed with.
Cavs over the top-seeded Pistons in the second round. Spurs over the defending champion Thunder in the conference finals. Then Knicks over the Spurs in the Finals, while every market and model on the board had the Spurs.
All three hit.
We benchmark every forecast against the same public sources before a series starts: ESPN's Basketball Power Index, Basketball Reference, Polymarket, and Kalshi. In all three series, every one of them favored the team that ended up losing. We were the only source on the other side, and nobody on our team built the model.
The receipts
We post picks before the series, not after, because anyone can sound smart once the trophy's been handed out. Here's where everyone stood at tip-off. The live forecasts are at nbapredictions.impulselabs.ai.
Series | Result | Impulse | ESPN BPI | Basketball Reference | Polymarket | Kalshi |
|---|---|---|---|---|---|---|
Cavs vs. Pistons (Round 2) | Cavs won 4-3 | Cavs 70% | Pistons 80.5% | Pistons 73.4% | Pistons 53% | Pistons 52% |
Spurs vs. Thunder (Conf. Finals) | Spurs won 4-3 | Spurs 52% | Thunder | Thunder 68.2% | Thunder 68% | Thunder 66% |
Knicks vs. Spurs (Finals) | Knicks won 4-1 | Knicks 55% | Spurs 54% | Spurs 64% | Spurs 64% | Spurs 64% |
A couple of these weren't close calls for anyone but us. ESPN BPI had the Pistons at 80.5% and Basketball Reference at 73.4%, and the Pistons went home in seven. The betting markets played it safer, sitting near a coin flip on the Cavs and again in the Finals, but they still leaned the wrong way every time. We were the only one who crossed the line to the other team, and we did it in all three series.
How it got built
Here's the part that should bother the people who do this for a living. No one on our team did any modeling.
We uploaded historical NBA data, told the agent what we wanted to predict, and it did the rest. Feature engineering, model selection, training, calibration. It built the features that mattered, dropped the ones that didn't, and tuned itself against how real series actually played out. The work that normally eats a few weeks of a data science team took a prompt and about an hour.
That's the entire product. You bring the data and a question. The agent builds the model.
Three is a small number
Now the part most "we crushed it" posts leave out. Three series is not a lot of series.
These were best-of-seven coin flips with heavy tails, and going three for three has plenty of variance underneath it. If we'd dropped one of them we'd be writing a different post, and we'd say so. So we're not telling you the model is psychic.
What we're telling you is narrower and, to us, more interesting. An agent built a model from raw data, with no human anywhere in the modeling loop, and it walked away from the entire public consensus in the right direction three times running. The scoreboard is the fun part. The reason it matters is that nobody coded it.
Try it on your own data
We ran the same playbook on the NHL playoffs and the World Cup. Same agent, same workflow, all from raw data. The sports apps are just the loudest proof we could build. The actual product makes models for churn, demand, fraud, lead scoring, insurance losses, anything you can put in a spreadsheet.
If you've got the data and the question, the agent handles the rest. Build your own model.