Prediction Market Mispricing Scanner — Polymarket
Pricing
Pay per usage
Prediction Market Mispricing Scanner — Polymarket
Finds contradictions in Polymarket pricing: implied probability distributions from strike ladders, monotonicity violations, and complete-set costs priced at live asks net of fees.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Hodookim
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Share
Finds contradictions in Polymarket pricing. Not forecasts — contradictions.
Nobody knows whether a price will rise. But if a higher strike is priced above a lower one, or if buying every outcome of an event costs less than the $1 it pays, that is wrong under any view. Those signals need no argument.
What it returns
Implied probability distributions. Polymarket runs strike ladders — "Bitcoin above $62,000 on August 14?" at many strikes for one expiry. Read together they form a cumulative distribution, which yields an implied median, an 80% range, and a term structure that widens with time. This is the information an options surface carries, extracted from a prediction market.
0.89 days left median $63,263 80% range $62,151 – $65,1821.89 days left median $63,411 80% range $61,896 – $65,4942.89 days left median $63,420 80% range $61,316 – $65,700
Monotonicity violations. In that same ladder the curve must fall as strikes rise. Where it does not, the two strikes contradict each other:
$70,000 → 0.0015 vs $72,000 → 0.0020 (excess 0.0005)
Complete-set costs. Binary markets where YES + NO costs under $1, and multi-outcome (negRisk) events where every mutually exclusive outcome together costs under $1 — both priced at live asks, net of fees, with the size actually executable at that level.
Three mistakes it avoids
Midpoints cannot show a gap. outcomePrices from the Gamma API are midpoints
and sum to 1 by construction. Scanners built on them report edges that vanish the
moment you try to buy. Every price here comes from the CLOB order book.
Fees are not a constant. Polymarket's taker fee is shares × rate × p × (1-p)
— a parabola, largest at even odds and vanishing in the tails. Subtracting a flat
buffer is simultaneously too small near $0.50 and too large at the extremes.
Markets whose fee rate cannot be determined are excluded rather than assumed free.
Partial outcome sets are not arbitrage. Buying 13 of an event's 45 outcomes for $0.28 looks like a 72% edge, but the winner may be among the other 32. Worse, the fewer outcomes counted the better it scores, so a naive ranking fills its top slots with the most broken candidates. Events missing any outcome are disqualified and reported with the reason.
negRisk sets are ranked by annualised return, not absolute profit. Their legs belong to different markets, form no market's complete set, and cannot be merged — capital is locked until resolution, so a two-year lock-up with a real gap is worth less than a two-week one.
Input
| Field | Default | Meaning |
|---|---|---|
assets | ["bitcoin","ethereum"] | Assets whose strike ladders to read |
includeDistributions | true | Implied distributions and violations |
includeBinary | true | YES + NO complete sets |
includeNegRisk | true | Multi-outcome complete sets |
onlyProfitable | false | Keep only rows with an edge or a violation |
limit | 20 | Rows per section |
minLiquidity | 1000 | Skip thin books |
maxOutcomes | 60 | Skip events too wide to quote fully |
Output
One dataset, one row per finding, each tagged with type:
implied_distribution, binary_complete_set, negrisk_complete_set.
Honest limits
- Prices move. A gap visible when the actor runs may be gone seconds later.
- Legs are quoted at the best ask only; filling more than
executable_shareswalks the book and costs more. - Gas and any platform fees beyond the taker fee are not included.
- Most of the time nothing is profitable, and the run says so. A scanner that always finds opportunities is measuring midpoints.
Data comes from Polymarket's public Gamma and CLOB APIs. No key required.