- Thin liquidityRegime
- Spread +
depthSignals - Overnight /
quietWhen - Fragile bookRisk
A prediction market is not equally liquid around the clock. In overnight and low-activity windows the book thins out, spreads widen, resting size shrinks, and a trade that barely moved the price during peak hours can shove it noticeably. These thin-liquidity regimes are a property of the book you can identify directly from spread and depth, and recognising them changes how much weight a signal deserves.
The point of finding these regimes is not to label some hours “bad.” It is to read the book’s fragility so you don’t over-trust it. A wide spread and a thin top of book mean small flow moves price a lot, which makes any reading from that book noisier. Knowing you are in a thin regime is what tells you to discount it.
What a thin regime looks like in the data
Wider spreads
The gap between best bid and best ask opens up, fewer makers competing, more compensation demanded for quoting at all.
- Bigger bid-ask gap
- Fewer competing quotes
- Higher cost to cross
Shallower depth
Less resting size sits at and behind the touch, so it takes a smaller order to walk the book several levels.
- Smaller depth totals
- Easy to move price
- Fragile levels
Jumpier mid
With thin support, the mid price hops between sparse levels rather than gliding, more apparent volatility from less real flow.
- Gappy moves
- Volatility from thinness
- Noisy signal
The fields that flag a regime
You don’t need the full ladder to detect thinness, the per-snapshot summary fields carry it. Spread is pre-computed on every row, and bid_depth_total and ask_depth_total give the resting size on each side. Watch those against each market’s own busy-hours baseline rather than an absolute threshold, because a “wide” spread on one market is a normal one on another.
- spreadWider in thin regimes, pre-computed per row
bid_depth_totalask_depth_totalResting size that thins outbest_bidbest_askThe touch that gaps when depth is sparseevent_timestampUTC clock to bin by hour-of-day
Identifying the regime, step by step
- 1Pull snapshots across many days for a market and bin them by hour-of-day on the UTC event_timestamp.
- 2Within each market, compute its own baseline spread and depth from the busy hours so comparisons are relative, not absolute.
- 3Flag windows where spread runs persistently above and depth persistently below that baseline, those are your thin regimes.
- 4Aggregate across markets and days so a regime is a recurring pattern, not one quiet night that happened to be sampled.
Why the regime changes your conclusions
- A signal computed from a thin book carries more noise, the same imbalance or move means less when little size backs it.
- For execution reasoning, a thin regime is where a given order walks the book furthest, so the price you’d see and the price you’d get diverge most.
- Apparent volatility can be a liquidity artefact, a jumpy mid in a thin window may reflect a sparse ladder, not genuine repricing.
- Comparisons across hours are only fair once you’ve normalised to each market’s baseline, because thinness is relative to the market’s norm.
Capture is event-driven, so quiet looks quiet
Snapshots are event-driven, the book is sampled when it changes, so a genuinely quiet overnight window produces fewer rows. That is real information about the regime, but it also means sparse periods carry less data per hour. Report how many snapshots back each hourly bucket so a thin sample isn’t mistaken for a confident reading, and remember resting size is intent to trade, not executed volume.
A thin book is not a quieter version of a deep one, it is a more fragile one. The same trade moves it further, so the same signal deserves less of your trust.
Map the quiet hours
Pull spread and depth across days with the historical guide, or watch a thin book hop between levels in replay.
Frequently asked questions
How do I identify a thin-liquidity regime from the data?
Bin snapshots by hour-of-day on the UTC event_timestamp, compute each market’s own busy-hours baseline for spread and depth, and flag windows where spread runs persistently above and the depth totals persistently below that baseline. Aggregate across days so a regime is a recurring pattern rather than one quiet night.
Which fields do I need, do I have to pull the full book?
No. The per-snapshot summary carries it: spread is pre-computed on every row, and bid_depth_total and ask_depth_total give resting size on each side. The full bids and asks arrays add ladder detail if you want it, but spread and depth totals are enough to flag thinness.
Why does a thin regime change how I read a signal?
Thin books move more on less flow, so anything you compute from them is noisier and a given order walks the book further. Apparent volatility in a quiet window can be a liquidity artefact rather than real repricing. Knowing you are in a thin regime tells you to discount the reading accordingly.
Does event-driven capture distort the overnight picture?
It is honest about it. Because the book is sampled when it changes, a genuinely quiet window produces fewer snapshots, which is itself information about the regime, but also means less data per hour. Report the snapshot count behind each bucket so a sparse sample isn’t read as a confident measurement.



