- Per snapshotSpread
- ~20 Hz (BTC)Resolution
- Pre /
post eventWindow best_bidbest_askField
The spread is the cheapest sentiment indicator you have: it is the market makers telling you how unsure they were at each moment. Replay it across an event window from the snapshot archive, a Fed decision, a game, a 5-minute crypto bell, and a clear pattern emerges that you can trade around.
Every snapshot carries the best bid, best ask, and the spread between them. Line those up across an event in the historical record and you can read liquidity provision exactly as it happened, no proprietary indicator required, just the book.
The shape of an event
Before
As uncertainty rises into a scheduled event, makers widen quotes to protect themselves, the spread blows out.
- Widening pre-event
- Thinner top of book
- Higher cost to cross
At the event
Information lands, the market reprices, and the spread can gap as quotes are pulled and replaced.
- Rapid repricing
- Quotes pulled
- Brief liquidity gaps
After
Once the outcome is clearer, makers return and the spread compresses back toward its calm baseline.
- Compression
- Depth returns
- Cheaper to trade
Measuring it against the baseline
The only honest way to say a spread "widened" is to say widened relative to what. Each market lives at its own resting spread, a tight 5-minute BTC book sits pennies apart, a thin weather market lives several ticks wide on a calm day. So the unit of measurement is the spread response, measured against each market’s own pre-event baseline: take the median spread over a quiet pre-event window, then express every later snapshot as a multiple of that.
best_bidbest_askTouch fields on every snapshot- spreadPre-computed, no reconstruction
event_timestampPolymarket’s own emit timecapture_timestampWhen we processed it, latency read
Turning the pattern into timing
- Avoid crossing the spread at the peak of the blow-out, you pay the widest cost exactly when liquidity is thinnest.
- Use the compression after an event as a cheaper window to enter or exit, when makers have returned.
- Compare a market’s live spread to its own recent baseline, not an absolute number, baselines differ by market and timeframe.
- Pair spread with depth: a tight spread on a thin book is not the same opportunity as a tight spread on a deep one.
Measure it, don’t eyeball it
Rather than say "spreads widen around events," pull the snapshots for a specific event window and quantify it, how many ticks wider, how long it stayed elevated, how fast it compressed. The high-frequency record is what turns a vague claim into a measured one.
Where the read is honest, and where it isn’t
The spread is a clean read on what makers are charging, but it is a read on the touch, not the whole book. A two-tick spread sitting on a paper-thin top level is a different risk from the same two ticks backed by deep size, and the spread alone won’t tell you which you’re looking at. Treat it as one of two coordinates, never the whole map.
Use event_timestamp
Align your window on Polymarket’s emit time, not your own clock, so the same event lines up across markets and replays.
- Emit-time alignment
- Comparable windows
- No clock drift
Normalise before you compare
Express each spread as a multiple of the market’s quiet baseline so a thin market and a deep one sit on one axis.
- Per-market baseline
- Cross-market comparable
- Median, not mean
Carry depth alongside
Pull bid and ask depth totals with the spread so a tight quote on a thin book never reads as cheap liquidity.
- Spread plus depth
- Avoid false "tight"
- Two coordinates
The spread is the market makers telling you, at each instant, how unsure they were. Your job is just to read back what they said, against their own baseline, at the right timestamp.
Study an event window
Pull the snapshots across an event with the historical guide, or replay it second by second in the dashboard.
Frequently asked questions
What does a widening spread tell me on a prediction market?
A widening bid-ask spread usually signals rising uncertainty, market makers protect themselves by quoting further apart when they expect new information, such as before a scheduled event. A compressing spread signals returning confidence and liquidity.
How do I measure spread around an event?
Pull the historical snapshots for the market across a window that brackets the event. Each snapshot includes best_bid, best_ask, and spread, so you can chart how the spread evolved before, during, and after, and compare it to the market’s own baseline.
Why compare to a baseline instead of an absolute spread?
Because typical spreads differ by market and timeframe, a tight 5-minute BTC book and a thin weather market live at different baselines. Comparing a live spread to that market’s own recent history is more meaningful than a one-size-fits-all threshold.
Should I align my event window on capture_timestamp or event_timestamp?
Use event_timestamp, the time Polymarket emitted the book update, so the same event lines up consistently across markets and across replays. capture_timestamp tells you when we processed it, which is useful for measuring latency, but it should not be the axis you bracket the event on.



