Same BTC up/down market, two venues: measured spreads, book depth, trade volume and settlement behavior from one shared day of tick data — 97 windows each.
Kalshi and Polymarket list the same flagship crypto product: will BTC close this 15-minute window up or down? That makes the pair a rare clean experiment — one underlying, one contract design, two market structures. We replayed every contract book of both venues for one shared UTC day (2026-08-21, 97 fifteen-minute windows per venue, recorded co-located in the same schema) and measured what a trader or a bot actually faces: spread, size at the touch, trade flow and how the books behave into settlement.
Method matters here more than usual. A Polymarket up/down book starts streaming hours before its window opens and keeps streaming after it closes — the median Polymarket BTC 15m file in our sample spans ~12.7 hours, versus ~15 minutes for its Kalshi twin. Naively averaging over the whole file would mostly measure Polymarket’s resting pre-open quotes. Every statistic below is therefore computed strictly inside each contract’s 15-minute trading window (derived from the contract identifier and verified against the last trade of each book), time-weighted over the L2 replay.
Polymarket’s books sit almost exactly at a one-cent spread all day — the inter-quartile range spans just 1.01–1.03¢. Kalshi is the surprise: although ~97% of its book levels land on the one-cent grid, the venue quotes sub-cent price levels at the top of book often enough that the median time-weighted spread drops to 0.82¢. Both books were two-sided most of the window: 94.7% quoted-time share on Kalshi, 89.6% on Polymarket (median per contract).
| 2026-08-21, BTC Up/Down 15m | Kalshi | Polymarket |
|---|---|---|
| Windows measured | 97 | 97 |
| Median size at best bid / ask (contracts) | 3,244 / 3,400 | 277 / 255 |
| Trades (day total) | 2,949,332 | 125,403 |
| Volume (contracts) | 239.2M | 3.5M |
| USD turnover | $125.7M | $1.8M |
| L2 book events | 50.5M | 25.6M |
| Median quoted-time share | 94.7% | 89.6% |
Window-anchored day totals from the tick archive. 2026-08-21 was a heavy BTC day — the 30-day averages are ~1.07M trades/$39M (Kalshi) and ~88k/$1.2M (Polymarket) per day, an activity ratio of roughly 12–30× depending on the day.
The headline asymmetry is not the spread — it is everything behind it. Kalshi’s touch carries roughly twelve times the contracts, and its tape prints about twenty-four times as many trades. For a taker strategy this is the difference between clipping a few hundred dollars and a few thousand dollars of expected value per fill without moving the book; for a maker it is the difference between queueing behind 3,000 contracts and being 30% of the visible size yourself.
Despite the liquidity gap, the two venues agree on the odds: mid-prices converge along nearly identical paths (next chart). Cross-venue signals between the two books are therefore about who updates first — a latency and flow question, not a mispricing free lunch.
Fourteen minutes before settlement the leading side trades near 58¢ — the market knows almost nothing. It crosses 80¢ around five minutes out and 90¢ with roughly ninety seconds left. In the final 60 seconds the leading side stood at 95¢ or higher essentially the whole time, in every window, on both venues (median pinned share 100%). If your strategy needs time to act on a resolved outcome, the profit window is the two–five-minute band, not the last seconds.
For training data, Polymarket’s longer archive (319 vs 179 days on this series) buys you nearly twice the settled windows — the binding constraint for supervised models (how much data do you need?). For execution, Kalshi’s depth means realistic fills at meaningful size, and its busier tape gives microstructure features more to work with. The strongest setups we see use both: train and cross-validate on the venue with history, and let the other venue’s book act as a real-time feature — the endgame chart says they price the same event, so a divergence between them is information.
Everything above comes from two series-day bundles — Kalshi BTC Up/Down 15m and Polymarket BTC Up/Down 15m, €1 per series-day each in the shop. Free full-day samples of both venues are on the downloads page, together with the dependency-free Python reader used for the replay.
| Series | Venue | Days | Coverage | Size | |
|---|---|---|---|---|---|
| BTC Up/Down 15m | Kalshi | 180 | February 2026 – August 2026 | 43.1 GB | Browse days |
| BTC Up/Down 15m | Polymarket | 320 | October 2025 – August 2026 | 95.8 GB | Browse days |
Live archive coverage of the two series compared in this guide.
On the measured day, Kalshi: ~3,200–3,400 contracts at the touch vs ~250–280 on Polymarket (~12×), with ~24× the trade count on the same product. Polymarket’s spread was pinned at ~1¢; Kalshi’s median was 0.82¢ thanks to sub-cent quoting.
Yes, remarkably closely: averaged over 97 matched 15-minute windows, the price path of the leading side tracked within about one cent between the venues at every minute before settlement.
In the recorded books, ~97% of price levels on both venues land on a one-cent grid, but both carry finer levels — Kalshi noticeably so at the top of book, which pushes its effective spread below one cent. Parsers must not round prices to whole cents.
Slowly, then all at once: the leading side averages ~58¢ fourteen minutes out, crosses ~80¢ around five minutes and ~90¢ with about ninety seconds left; in the final minute it sat at 95¢+ in essentially every measured window on both venues.
Yes — both series are sold as series-day bundles (every contract of the series for one UTC day, €1) with full L2 order-book depth and every trade, in the Data Shop; free samples are on the downloads page.