A Polymarket five-minute contract settles at a fixed moment. In the seconds before it does, the price behaves exactly as you would expect: it converges on the outcome, and by the last few seconds it reads 0.99. A price series shows a market that has made up its mind and is perfectly liquid.

The order book shows something else. Across 80 resolved BTC contracts, 94% of snapshots in the final ten seconds have nothing resting on one side. The price says 0.99. There is no 0.99 to trade against.

One contract, second by second

This is the Up token of a single BTC five-minute market through its last twenty seconds. Bid, ask, and the size resting at the best ask:

time      bid    ask   ask size   state
09:19:40  0.970  0.980    113.8    two-sided
09:19:41  0.980  0.990   1685.0    two-sided
09:19:42  0.970  0.980    118.7    two-sided
09:19:43  0.970  0.980    118.5    two-sided
09:19:44  0.950  0.960    109.0    two-sided
09:19:45  0.960  0.970     96.9    two-sided
09:19:46  0.980  0.990    674.0    two-sided
09:19:47  0.990      —        —    bids only — nothing to buy
09:19:48  0.990      —        —    bids only — nothing to buy
09:19:49  0.980  0.990     80.0    two-sided
09:19:50  0.990      —        —    bids only — nothing to buy
09:19:51  0.990      —        —    bids only — nothing to buy
09:19:52  0.990      —        —    bids only — nothing to buy
09:19:53  0.990      —        —    bids only — nothing to buy
09:19:54  0.990      —        —    bids only — nothing to buy
09:19:55  0.990      —        —    bids only — nothing to buy
09:19:56  0.990      —        —    bids only — nothing to buy
09:19:57  0.990      —        —    bids only — nothing to buy
09:19:58  0.990      —        —    bids only — nothing to buy
09:19:59  0.990      —        —    bids only — nothing to buy

For the first seven seconds it is an ordinary market: a one-cent spread, a hundred or more shares at the top of book, twice briefly six hundred and sixteen hundred. Then at 09:19:47 the ask side empties. It returns once, for one second, with 80 shares — not even enough to fill a 100-share order. From 09:19:50 it is gone for good.

The bid holds at 0.990 throughout. Somebody is still willing to buy. Nobody is willing to sell, because selling a contract at 0.99 that is about to pay 1.00 is simply a loss. The market has not become volatile or disorderly. It has become certain, and certainty is the end of trading.

How common is it

We took 80 resolved BTC five-minute contracts and read every one-second order book snapshot in their final minute — 9,600 snapshots — counting how many had an empty bid or ask side:

seconds to close   snapshots   one-sided
0–9s                    1440       94.0%
10–19s                  1600       79.1%
20–29s                  1600       73.8%
30–39s                  1600       64.6%
40–49s                  1600       53.4%
50–59s                  1600       39.7%
final 60s               9600       66.4%

The gradient is the point. A minute out, two markets in five are already one-sided. Ten seconds out, nineteen in twenty are. Liquidity does not collapse at the bell; it drains steadily across the last minute, and the closer to settlement the less there is to trade against.

Why the price series cannot tell you this

A price is a single number. It says where the market is, not whether you could act on it. Two things are invisible in a price series and both matter here:

  • Whether anything is resting at all. A last-trade or midpoint value exists whether or not there is an order behind it. In the table above the price reads 0.990 for thirteen consecutive seconds during which no purchase was possible.
  • How much size is there. At 09:19:49 the ask reappeared at 0.990 with 80 shares. A 100-share order would have filled 80 and left the rest unfilled at any price.

Polymarket serves its own price history down to one-minute buckets, free, and it is good data — we say so on the Polymarket API pricing page. But a one-minute bucket contains this entire episode as a single value. The ten seconds where the market stopped functioning are not merely averaged away; at that resolution they never existed.

What this changes about a backtest

Any strategy that trades into settlement is affected, and the direction of the error is always the same: the backtest is optimistic.

  • Entries that could not have happened. A rule that buys at 0.99 in the final ten seconds will fill in a price-based simulation and would not have filled in reality, 94% of the time.
  • Exits that could not have happened. The mirror case is worse, because it is a position you cannot close. The bid persisted in our example, so selling was possible — but that is not guaranteed, and which side empties first depends on which way the contract is resolving.
  • Returns computed at a price nobody offered. Marking a position at the last price is reasonable in a liquid market and meaningless in a market with an empty side.

The practical guard is dull but effective: before treating a fill as possible, check that the relevant side of the book is populated and holds the size you need. What an L2 snapshot contains goes through the fields.

Check it yourself

The dataset behind this is published openly, so the figure above is not something you need to take on trust. 897,192 snapshots across 805 resolved markets, CC BY 4.0, with a DOI:

import pandas as pd

df = pd.read_parquet("updown_5m.parquet")

# A snapshot is untradeable in one direction if either side is empty.
df["one_sided"] = (df.bid_prices.str.len() == 0) | (df.ask_prices.str.len() == 0)

final = df[df.seconds_to_close <= 60]
print(final.groupby(final.seconds_to_close // 10 * 10).one_sided.mean())

It is on Zenodo with no signup, and mirrored on Hugging Face and Kaggle — all of them are listed here. The numbers in this post come from a sample of 80 contracts rather than the full dataset, so expect small differences; the gradient holds.

The shorter version

A five-minute prediction market spends its last few seconds with a price and no market. That is not a data defect and it is not disorder — it is what certainty looks like in an order book. It is also invisible at one-minute resolution, which is where most historical prediction market data lives, and it makes any backtest that trades into settlement read better than it should.