Joshua Della Vedova

Market Calibration Curve

Realized win rate by price bin across all non-bot Polymarket trades. One-parameter Prelec fit overlaid.

Pooled across all resolved non-bot trades (465,593 trades), the Prelec weighting function fits with alpha = 0.664 and R-squared = 0.987.

Dots: realized win rate by price bin, sized by trade count. Vertical bars: 95% binomial CIs. Dashed diagonal: identity (a calibrated market). Solid blue: fitted Prelec curve.

Bin-level data

Price binRealized win raten tradesCalibration gap
2.5% 1.20% 62,921 -1.30%
7.5% 4.86% 21,222 -2.64%
12.5% 6.99% 18,819 -5.51%
17.5% 9.41% 17,039 -8.09%
22.5% 12.55% 16,879 -9.95%
27.5% 17.59% 18,834 -9.91%
32.5% 23.26% 19,551 -9.24%
37.5% 29.54% 19,984 -7.96%
42.5% 37.25% 24,274 -5.25%
47.5% 45.87% 33,825 -1.63%
52.5% 59.11% 45,827 +6.61%
57.5% 69.58% 20,401 +12.08%
62.5% 75.73% 16,421 +13.23%
67.5% 81.68% 16,178 +14.18%
72.5% 86.45% 14,093 +13.95%
77.5% 89.79% 14,160 +12.29%
82.5% 93.33% 13,190 +10.83%
87.5% 95.44% 14,485 +7.94%
92.5% 97.76% 15,651 +5.26%
97.5% 99.40% 41,839 +1.90%

Methodology

Non-bot trades (casual, one-shot, active retail, and sophisticated classes) are pooled into 20 price bins of width 5%. For each bin, the realized win rate is the share of trades in that bin whose market resolved in favor of the position taken. A one-parameter Prelec weighting function w(p) = exp(-(-log p)^alpha) is fit by weighted nonlinear least squares, with weights proportional to trade counts. Alpha less than 1 implies the classical inverse-S weighting (overweight tails); alpha greater than 1 implies the opposite.

Data

calibration_snapshot.csv · calibration_latest.json (includes the fitted curve)

Cite

@misc{dellavedova2026calibration, title = {Market Calibration Curve}, author = {Della Vedova, Joshua}, year = {2026}, version = {0.1.0}, url = {https://jdellavedova.com/calibration} }