- Smooth or noisy?Question
Spot crypto_priceReference- Resolved marketsOutcomes
- None, full archiveBias
Price discovery is the process of a market finding the right number. On a prediction market the right number is a probability, and the appealing thing is that it eventually gets graded: every market resolves, the winner settles at one and the loser at zero. That gives you ground truth to test efficiency against, provided you study the converging path and the realized outcome together, and provided your sample isn’t quietly missing the markets that resolved badly.
Efficiency has two faces here. There is the path, how the implied probability moves over a market’s life, smoothly toward the outcome or noisily around it. And there is the calibration, whether things the market priced at seventy percent actually happen about seventy percent of the time. The order book gives you the path at high frequency; the resolution gives you the outcome. Putting them together is the study.
Two ways a market can be inefficient
Overshoot
The implied probability races past the level the outcome justifies, then walks back, discovery that overcorrects before settling.
- Past fair value
- Then reverts
- Excess volatility
Lag
The probability trails reality, updating late relative to a reference that has already moved, sluggish rather than jumpy.
- Trails the reference
- Late updates
- Slow convergence
Miscalibration
Across many markets, stated probabilities don’t match realized frequencies, seventy-percent calls that don’t land seven in ten.
- Stated vs realized
- Across many markets
- Tested at resolution
Cross-referencing against a spot anchor
For crypto up/down markets, every snapshot carries crypto_price, a spot reference, BTC from Binance for instance, alongside the implied probability, plus crypto_price_age_ms so you know how fresh that reference is. Because both ride the same row on one UTC clock, you can line the market’s probability up against where spot actually is and ask whether the book is leading the reference, trailing it, or moving in lockstep. That comparison is what turns “the market looks slow” into a measured statement.
mid_priceImplied probability, 0-1crypto_priceSpot reference on the same rowcrypto_price_age_msFreshness of that referenceevent_timestampCommon clock for both feeds
The part most studies get wrong: survivorship
A calibration study lives or dies on its sample. If you only analyse markets that are still open, or only the ones that resolved the way you expected, your conclusions are bent before you start. Closed markets stay fully queryable here, the historical endpoints return resolved markets exactly as they return live ones, so you can assemble the complete population of outcomes, the boring ones and the surprising ones alike. That is the difference between a calibration curve you can trust and a flattering subset.
Losers stay in the record
Markets that resolved against the favorite don’t disappear from the archive. Because every closed market remains queryable with its full snapshot history, your sample of outcomes is the real one, which is the only kind that makes a calibration claim honest.
Running the efficiency study
- 1Assemble a population of resolved markets from the historical endpoints, closed markets included, so the sample isn’t cherry-picked.
- 2For each, pull the snapshot path and read the implied probability over the market’s life against the spot reference on the same rows.
- 3Bin the stated probabilities and compare each bin to the realized frequency of the outcome, that is your calibration curve.
- 4Separately characterise the path: measure overshoot and lag relative to the reference, then aggregate so one wild market doesn’t set the verdict.
What the spot anchor is and isn’t
The spot reference tells you where the underlying sat, not what the “correct” probability was, there is no oracle for the true odds before resolution. Use the reference to study the relationship and resolution for ground truth on outcomes, and keep those two distinct. The result is a measurement of efficiency, not a claim to know fair value tick by tick.
A prediction market is one of the few places where the number gets graded. The question is whether it found the answer cleanly, and the archive of resolved markets is the answer key.
Study discovery end to end
Pull resolved markets and their full paths with the historical guide, or work through the storage and gap-detection workflow.
Frequently asked questions
How do I measure price-discovery efficiency on Polymarket?
Study two things together: the path of the implied probability over a market’s life, and the realized outcome at resolution. Pull high-frequency snapshots to characterise overshoot and lag against the spot reference, then bin stated probabilities across many resolved markets and compare each bin to how often the outcome actually occurred.
What is the spot reference good for here?
For crypto markets, every snapshot carries crypto_price, spot from Binance, and crypto_price_age_ms on the same row as the implied probability. That lets you check whether the book leads, trails, or tracks the underlying. It tells you about the relationship to spot, not the “true” probability, which no reference can give you before resolution.
How do I avoid survivorship bias?
Include closed markets, which stay fully queryable through the historical endpoints. If you sample only open markets or only the ones that resolved as expected, your calibration is bent before you begin. The complete population of resolved outcomes, winners and losers alike, is what makes the study honest.
Does resolution tell me the market was “right”?
It tells you the outcome, which is ground truth for calibration across many markets, but a single resolution doesn’t grade a single probability, a seventy-percent call that loses wasn’t necessarily wrong. Efficiency shows up in aggregate: across enough resolved markets, stated probabilities should match realized frequencies.



