best_ask − best_bidQuoted- Size-aware costEffective
- Full bid /
ask ladderInput - 0-1 probabilityUnits
A tight quoted spread looks cheap until you try to trade real size through it. The quoted number measures the gap between the two best prices; the effective spread measures what you would actually pay once an order walks down the ladder. The full-depth snapshots carry everything you need to compute the second, honest number.
best_ask minus best_bid is the spread everyone quotes because it is one subtraction on two fields that ride on every snapshot. It is a fair headline for the smallest possible trade. It is also the most optimistic cost you will ever see, because it assumes you trade a single unit at the touch and nothing moves.
The moment your order is larger than the size resting at the best price, you start eating the next level, and the next. The price you average across those levels is worse than the touch. The gap between that average and the mid is the effective spread, the cost you actually pay, and it is what a serious cost model is built on.
Three spreads, three honesty levels
Quoted spread
best_ask − best_bid. The headline gap between the two best prices, pre-computed on every snapshot as the spread field.
- Cheapest case
- One unit at the touch
- Ignores your size
Effective spread
Twice the distance from the mid to your size-weighted average fill price as the order walks the ladder.
- Size-aware
- Walks the book
- What you actually pay
Realized spread
How much of that cost sticks after the book reprices, the part the mid moves back versus the part that was permanent.
- Post-trade drift
- Temporary vs permanent
- Needs a later snapshot
Filling at the mid is the assumption that quietly inflates most naive backtests. Half the quoted spread is the floor on your cost, never the expectation. If your model assumes mid fills, it is booking a discount the book never offered, and the error compounds every trade.
Computing the effective spread from a snapshot
- 1Pull the snapshot with the book included so the row carries its full bids and asks arrays, not just best_bid and best_ask.
- 2Take the mid_price field as your reference point, it is the midpoint of the touch and the natural zero for measuring cost.
- 3Walk the ask ladder for a buy (or the bid ladder for a sell), consuming resting size level by level until your target size is filled.
- 4Compute the size-weighted average fill price across the levels you consumed, then take its distance from the mid; double it for the round-trip effective spread.
- 5Repeat across many snapshots and order sizes to see how cost scales, it is rarely linear, because depth thins as you go deeper.
The fields the calculation reads
best_bidbest_askThe touch, quoted spread and the first levelmid_priceThe reference the cost is measured from- bids[] ·
asks[]The ladder you walk for size-aware cost bid_depth_totalask_depth_totalFast check on whether your size even fits
The depth totals are a quick gate, if your intended size is a large fraction of the resting total on that side, you already know the effective spread will blow out well past the quoted one. The arrays are where you do the actual walk when you want the precise number.
Where the spread widens
- Into scheduled events, makers defend by quoting further apart and shrinking size, so both the quoted and effective spread climb together, and the effective one climbs faster because the ladder behind the touch thins out.
- Near resolution, as a market collapses toward 1 or 0, the book often goes lopsided and one side empties, so trading against the thin side gets expensive even when the quoted spread looks calm.
- In quieter categories that sample slower, sports near ~2 Hz versus crypto near ~20 Hz, a single snapshot is a coarser picture of a moving book, so treat any one effective-spread reading as an estimate, not a fill receipt.
- For large size relative to the book, the effective spread can be several multiples of the quoted one; the only way to know is to walk the ladder, not to scale the touch.
A snapshot is a quote, not a fill
Walking the resting ladder tells you what the book was offering at capture time, not what you would have been filled at. Resting size can be pulled, and a real order can move the book as it lands. The effective spread from a snapshot is a rigorous estimate of cost built from the visible book, it is not a settled execution receipt, and we do not place trades to find out.
The quoted spread is the price of the smallest trade you will ever make. The effective spread is the price of the trade you actually want to make, and only the ladder knows the difference.
Measure your real cost
Pull snapshots with the full book to walk the ladder yourself; the API docs show how to request include_book and page through a window.
Frequently asked questions
What is the difference between quoted and effective spread?
The quoted spread is best_ask minus best_bid, the gap between the two best prices, which is the cost only for a trade small enough to fill at the touch. The effective spread is size-aware: it walks your order down the resting ladder, computes the size-weighted average fill price, and measures its distance from the mid. For anything larger than the size at the best price, the effective spread is wider, and it is the cost you actually pay.
Why is filling at the mid price misleading?
Filling at the mid assumes you capture half the spread for free, which the book never offers. Half the quoted spread is the floor on your cost for an infinitesimal trade, not the expectation for a real one. Models that assume mid fills book a discount that does not exist, and the error compounds across every trade in a backtest.
What data do I need to compute the effective spread?
You need the full bid and ask ladder, not just top-of-book. Request the snapshot with the book included so each row carries its bids and asks arrays, then walk the relevant side level by level until your target size is filled and average the prices. The mid_price field gives you the reference point to measure that average against.
Does the effective spread from a snapshot equal what I would be filled at?
No, it is an estimate from the visible resting book at capture time, not a fill receipt. Resting size can be pulled before you reach it, and a real order can move the book as it executes. Resolved Markets is a read-only data platform that captures the book; it does not place orders, so the effective spread is a rigorous cost estimate rather than a settled execution.



