The prediction-markets work. Pup
A price is a forecast wearing a dollar sign. A market that says 62¢ is making exactly the kind of dated, checkable claim this site already grades models on — so the plan is to treat venues as forecasters, log what they said before the event, and score them on the same board as the models. That board already exists for NFL models on Receipts; nothing on the market side of it has been built.
Open markets, by money
The largest open binary markets on Polymarket right now. Price is the Yes side, read as a probability. Volume is lifetime, in dollars. Sort any column.
| Market | Yes price | Volume | Resolves |
|---|
Source: gamma-api.polymarket.com, fetched client-side. 🤖 For machines
Did the price mean anything?
Take resolved markets. Look at what the price said some days before it resolved. Group those prices into buckets, and check how often the thing actually happened. A market that is telling the truth lands on the diagonal.
| Price bucket | Markets | Mean price | Actually happened | Gap |
|---|
Is it politics, or is it everything?
The same markets as the calibration pass, split by what they are about. There is a live disagreement in the literature about which way prediction-market bias runs, and it may be that both sides are right about different subjects.
The claim being checked
One camp (Le, arXiv:2602.19520, Aug 2026 — 64.7M Kalshi trades, cross-checked on 288.7M Polymarket trades) finds politics badly miscalibrated and everything else nearly clean, with prices compressed toward 50% — meaning long shots are underpriced.
The other camp is the older, larger literature — and ElectionBettingOdds’ own 807-prediction record, where the 0–20% bucket predicted 5.4% and delivered 1.7%. That is the textbook favourite–longshot bias, and it points the opposite way: long shots overpriced.
Both cannot be right about the same markets. Different venues, eras and subjects are the obvious suspects. This panel is the cheapest honest test we can run.
| Subject | Markets | Calibration error | Slope | What the slope says |
|---|
Method, and what is missing
Written before the tools were interesting enough to be worth defending.
What is live. Two things, both computed in your browser from Polymarket’s public API at the moment you load the page: the open-market board, and the calibration pass. Neither has a cached copy on this site, so neither can go stale — but neither is reproducible either, because you and I will get slightly different numbers. That is the trade we made to ship something true on day one instead of something frozen.
What is not here yet, and why.
- Kalshi. Their API sends no CORS header, so a browser cannot read it directly. It needs a proxy through our Worker. Until that exists, every number on this page is Polymarket only, and this page should not be read as a statement about prediction markets in general.
- The domain split — politics vs. sports vs. crypto vs. weather. This is the interesting version of the calibration chart and it is the next thing built. There is a live disagreement in the literature about which direction the bias runs, and it looks resolvable with exactly the data this page already fetches.
- Cross-venue basis, parlay markup, volume-vs-accuracy. Specced, not built.
The calculators already on this site — devig, expected value, hedging, odds conversion — are prediction-market tools that never had a live feed behind them. They are here. Connecting them to this page is a build, not a research question.
Tier: Pup. Live and useful, not yet validated. Nothing on this page has been checked against an independent implementation, and the calibration pass in particular has never been run against a known-answer test set. Treat every number as a first draft.
This section, for machines
One card per row in
/data/surfaces.json carrying
domain: "markets". The count is the file’s count, not a number typed
into this page. Every tool here computes in your browser from a third party’s
public API, so none publishes a machine surface of its own — each card says exactly that,
and the panels above name the upstream every number comes from.