Everyone says prediction markets are efficient. I spent 30 days collecting data to test that claim.
The result: 8.9 million data points across 9,550 markets — and the data tells a story most traders miss completely.
The Setup
I built an automated collector that snapshots every active Polymarket market every 15 minutes. Not just BTC or the US election — every market. Politics, sports, crypto, geopolitics, economics, entertainment, weather, science. All of it.
After 30 days of continuous collection:
| Metric | Value |
|---|---|
| Markets tracked | 9,550 |
| Price snapshots | 8,158,672 |
| Orderbook depth snapshots | 792,527 |
| Categories | 10 |
| Total data points | 8,951,199 |
Most Polymarket datasets you'll find cover a single market or a single event. This covers the entire platform simultaneously — which lets you see patterns that single-market analysis can't.
Finding #1: Markets Are Not Efficient After Crashes
Everyone assumes prediction markets instantly price in new information. The data says otherwise.
I measured what happens after a price drops more than 20% between consecutive snapshots. Here's what the 5,629 crash events show:
| Time After Crash | Average Return | Events Measured |
|---|---|---|
| +15 min | +6.6% | 5,629 |
| +30 min | +8.8% | 5,629 |
| +45 min | +10.3% | 5,629 |
| +1 hour | +11.0% | 5,629 |
After a >20% crash, prices bounce back an average of 6.6% within 15 minutes.
This is classic mean reversion — and it's massive. For comparison, the S&P 500's average annual return is about 10%. These markets deliver that in an hour after a crash.
The reverse is also true. After a >10% pump:
| Time After Pump | Average Return |
|---|---|
| +15 min | -2.9% |
| +30 min | -3.7% |
Prices that spike tend to give it back. Markets overreact in both directions.
Finding #2: Hold Time Matters More Than Entry Price
I simulated the obvious strategy — buy the crash, sell the recovery — across all 30 days of data. 6,225 trades. Here's how hold time affects the result:
| Max Hold | Trades | Win Rate | Total P&L |
|---|---|---|---|
| 2 hours | 10,204 | 54% | $87 |
| 6 hours | 8,324 | 64% | $108 |
| 12 hours | 7,295 | 70% | $121 |
| 24 hours | 6,225 | 75% | $135 |
| 48 hours | 5,352 | 81% | $142 |
The sweet spot is 12 hours. Going from 12h to 48h only adds $21 to total P&L but locks your capital 4x longer. Most of the money is made in the first few hours.
This surprised me. I expected entry price to be the key variable. It's not:
| Entry Price Range | Win Rate | Avg P&L Per Trade |
|---|---|---|
| Under $0.10 | 74% | $0.014 |
| $0.10 — $0.30 | 74% | $0.018 |
| $0.30 — $0.50 | 79% | $0.032 |
| Above $0.50 | 86% | $0.022 |
Higher-priced markets actually have better win rates. The cheap ones look tempting but they include more dust trades that go nowhere.
Finding #3: Category Is Your Edge Selector
Not all Polymarket categories behave the same:
| Category | Trades | Win Rate | P&L Per Trade | Verdict |
|---|---|---|---|---|
| Crypto | 646 | 78% | $0.030 | Best per-trade |
| Sports | 1,050 | 79% | $0.027 | Most consistent |
| Other | 1,872 | 75% | $0.024 | Most volume |
| Politics | 1,362 | 76% | $0.018 | Decent |
| Geopolitics | 890 | 71% | $0.016 | Below average |
| Economics | 101 | 69% | $0.008 | Avoid |
| Weather | 21 | 57% | Negative | Avoid |
Crypto and sports markets have the strongest mean reversion. Economics and weather markets are traps — they crash and stay crashed.
Why? Sports and crypto have event-driven resolution (the game happens, the price discovers). Economics markets depend on slow-moving indicators — when they crash, it's often because the fundamentals actually changed.
Finding #4: The "Always Bet No" Strategy Is Overhyped
You may have seen the "Nothing Ever Happens" bot that bets NO on everything. The claim: 73% of Polymarket resolves NO.
I checked with 4,763 resolved binary markets from the API:
- All markets: 52.3% resolve NO (not 73%)
- Non-sports: 57%
- "Will X happen?" framing: 59.3%
The 73% figure comes from a heavily filtered subset. Across all markets, the NO edge is barely there — and at typical NO prices ($0.65-0.85), the math doesn't work.
The Dataset Is Free to Explore
I'm releasing the full dataset across multiple platforms:
Free (sample):
- Kaggle — markets.csv + 100K price preview + full SQLite DB
- HuggingFace — same files, HF ecosystem integration
- GitHub — browse the data, star if useful
Full dataset ($9):
- Gumroad — 8.9M data points, orderbook depth, SQLite DB
The data updates weekly from an automated pipeline. If you want to reproduce any of these findings, everything is there.
What I'd Build Next
If I were starting a Polymarket quant project today, I'd focus on:
- Real-time crash detection — the 6.6% bounce after crashes is the clearest edge
- Category rotation — crypto and sports, skip economics and weather
- 12-hour max hold — the data is unambiguous on this
- Cross-market signals — does a crash in one political market predict crashes in related ones?
The prediction market space is where crypto was in 2017 — growing fast, most participants losing money, and the edge goes to people with data infrastructure.
The data was collected from Polymarket's Gamma API and CLOB API using an automated pipeline. All code and methodology are open source. I also maintain protodex.io, an index of 2,013 MCP servers with security scores.
Questions or want custom data cuts? LuciferForge@proton.me
Top comments (0)