Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: How NBA teams perform vs. prediction market expectations
4 points by helloiamvu 12 days ago | hide | past | favorite | 4 comments
Hi HN, we built this.

The NBA Edge Index uses pre-game win probabilities from Polymarket (real-money prediction markets). After each game finalizes, we compare the outcome to the pre-game odds. Beating expectations moves a team's rating up; underperforming moves it down. Each team starts at 2000, and ratings accumulate game-by-game throughout the season. Updates happen automatically after games finalize.

A few data points we found interesting:

Polymarket odds are pretty accurate on average: teams priced at 80%+ won 82% of the time (119 games), and teams priced 60–69% won 63%.

Biggest overperformer: Phoenix Suns, +14.7% vs expectations (market gave them 45.8% avg odds; they won 60.5%).

Most overrated by market: Cleveland Cavaliers — 55.8% win rate but market gave them 67.4% implied. They've lost 12 games as heavy favorites.

Biggest called upset: Utah Jazz beat Cleveland on Jan 13 with 18.5% market odds; our edge model gave Utah 70.9%.

Stability: After ~40 games per team, rankings start to diverge meaningfully and early noise smooths out.

We're working on more indices like this. The core idea: prediction market data is fragmented across hundreds of contracts that expire and disappear. We turn it into persistent, trackable indices.

Two patterns we use:

Composite — Blend related markets into one number. Our Global Conflict Risk Index combines ~15 Polymarket contracts (Ukraine, Taiwan, Iran) into a single number.

Rolling — Auto-replace expiring contracts. For example our weather indices track 6-city temperature deviations by rolling forward daily.

Curious to hear feedback or suggestions of ideas for other indices.

The live NBA Edge index is here: https://attena.xyz/nba





This is nice. As you point out the underlying data is transient but you add value by persisting it. Good luck!

Thanks a lot!

I really appreciate this product but i would like to hear more about the rolling that how it works

Thanks for the question. Rolling is how we keep an index continuous even though the underlying markets expire. For the NBA index, each game market resolves, but the rating just updates after the final result using the pre-game odds and carries forward through the season. Weather is a clearer “rolling” case: the index is a blend of the active near-term contracts (today/tomorrow), and when those resolve we drop them and swap in the next equivalent markets, so the index stays continuous while the inputs change.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: