Polymarket mispricing, explained: why share prices drift from the underlying (and how to spot it)
Polymarket markets resolve on real-world numbers — the Chainlink BTC price, the daily-high in NYC, the close in Tokyo. The share price between now and resolution doesn't track those numbers tick-for-tick. The gap is the trade. Here's where it comes from, when it appears, and how to measure it.
Polymarket prediction markets resolve on real-world numbers. The Chainlink BTC/USD aggregator at 4 p.m. ET. The daily-high temperature at LaGuardia on April 30. The closing S&P. The market is a contract — its price between now and resolution moves on supply, demand, and updated information about that final number.
The catch: the share price doesn't track the underlying truth tick-for-tick. There are five reasons it can't, and each one is a different kind of mispricing.
1. Oracle latency
Crypto markets resolve on Chainlink price feeds. Those feeds update on a deviation + heartbeat schedule, not in real time. Between updates, the on-chain reading is stale — sometimes by 30 seconds, sometimes by minutes when the price is quiet. If BTC moves up 1.2% on Binance and Chainlink hasn't triggered an update, every Polymarket BTC market is pricing the old number. The YES at the threshold is mathematically underpriced.
We expose this gap directly via /assets/btc — the live Binance/Coinbase/Bybit price next to the live Chainlink reading, with the lag in seconds.
2. Forecast vs reality
Weather markets resolve on the daily-high at a specific weather station. By 11 a.m. on a hot day, the running max-so-far is already public information from the station feed. The market hasn't closed — but if the threshold is "≥ 28°C" and the reading is already 26.4°C with five hours of sun left, the YES probability is much higher than the share price suggests. The market lags the reading.
This is the simplest mispricing to model. Real-time station read + bias-corrected forecast → posterior probability. We do that for every Polymarket weather market across 44 cities and refresh it every minute.
3. Casual flow vs sharp flow
Polymarket is a thin market. Volumes on individual weather contracts can be a few thousand dollars per day. Most of that volume is casual — "feels like a hot day, I'll buy YES". Casual flow doesn't check the station feed. It moves on narrative.
Sharp flow is what closes the gap. When the market mispriced and the casual side keeps adding YES at 65¢ while the real probability is 82%, sharps lift the offer until 82¢ — making 17¢ in expected value per share, minus risk and fees. The sharp's edge is the gap. Without good data, you can't tell whether you're the casual or the sharp.
4. Liquidity vs information arrival
New information often arrives faster than market makers can update their books. A weather update at 14:35 might say the daily-high will exceed the threshold; the order book might not reprice until 14:38. Three minutes is an eternity in a thin market. The mispricing is short-lived and the gain is bounded — but it compounds across many markets.
5. Resolution-tail edge cases
Markets often trade at 5¢ or 95¢ in the final hour even when the outcome is essentially determined. The share price drifts toward 100% on the winning side, but slowly. If the underlying is already past the resolution threshold by 90% of the day, the YES at 91¢ is still a positive-EV trade — the market is still paying a premium for the small chance of reversal that, statistically, is now sub-1%.
What "mispricing" means in practice
We use two metrics across the API:
- edge_bps for crypto: the gap between live spot and the lagged Chainlink reading, in basis points. Positive means YES at the threshold is underpriced (favorable for buying YES).
- edge_ppfor weather: our model probability minus Polymarket's implied probability, in percentage points. Positive means buy YES, negative means buy NO.
Neither is a guarantee — markets resolve on the actual outcome, not on our forecast. But a measured probability gap, repeated over hundreds of markets, has substantially better signal-to-noise than buying on a hunch.
How to find them
Three ways, in order of effort:
- From a notebook: hit
/v1/crypto/oracle-lag/BTCand/v1/weather/resolution-probability/{condition_id}on any condition_id from Polymarket. The response includes the gap. - From a bot: subscribe to the WebSocket stream (Pro tier) and react to
edge_bps/edge_ppcrossing your threshold. - From Claude Code: install the MCP server and ask: "list Polymarket weather markets where YES is underpriced by 10pp+ right now". The agent calls the API for you and returns a sorted list.
Caveats — the polite kind
Mispricings exist. They are not riskless. Resolution risk, slippage on thin order books, and weather variance all eat into expected value. We do not promise edges — we expose the gap, you size the trade. If you see a 30pp edge on a market with $200 of liquidity, the real edge is much smaller after slippage. If a forecast says +5pp probability of crossing the threshold but the spot temperature is still 4°C below it, the edge has plenty of variance left to fade.
That said: the structural reasons mispricings exist (oracle latency, casual flow, forecast-to-reality lag) aren't going away. The data layer is what separates traders who eat the edge from traders who provide it.
What to do next
Start with the city closest to you on our markets index, hit one endpoint, and look at the actual gap on a real Polymarket market. Or jump straight to a free 3-day trial — card required, $0 today, full Trader access.
Get the API. 3 days free, no card surprises.
Card required. $0 today. Auto-converts to $49.99/mo or $74.99/mo (Combo). Cancel any time before day 3 — no charge.
Start 3-day trial