Effective Spread Calculator: How to Use It
What this calculator measures
The Effective Spread calculator estimates your real execution cost relative to the market midpoint at the time you traded. This is a fill-based metric, so it is usually more truthful than looking at the displayed spread alone.
Core formula
Effective Spread (ES) = 2 × |Pexec - M|
• Pexec is your execution price (use VWAP if you had multiple fills).
• M is the midquote at the time of the trade: M = (best bid + best ask) / 2.
Inputs you need
Minimum inputs
• Best bid at the moment you submitted the trade.
• Best ask at the moment you submitted the trade.
• Your execution price (or your fills so the calculator can compute VWAP).
Important: keep units consistent
Prediction markets often quote prices in cents (0 to 100) or as 0 to 1. The calculator works in either format, but all inputs must be on the same scale.
• If you use cents, bid, ask, and execution are in cents.
• If you use 0 to 1, all values are decimals (0.52 instead of 52c).
Step by step: how to use it correctly
Step 1: capture bid and ask from the same snapshot
Record best bid and best ask at the moment you submit the trade (or at the closest possible timestamp). They must come from the same snapshot, otherwise you introduce noise.
Step 2: compute the midquote
M = (bid + ask) / 2
Step 3: compute execution price
If you have one fill, Pexec is the fill price.
If you have multiple fills, compute VWAP:
VWAP = sum(pricei × qtyi) / sum(qtyi)
Step 4: compute effective spread
ES = 2 × |Pexec - M|
Step 5: compare against quoted spread
Quoted spread (QS) = ask - bid
If ES is much larger than QS, you likely had slippage or price impact.
Worked examples
Example A: buy at the ask (no improvement)
• bid = 48c, ask = 52c
• midquote M = (48 + 52) / 2 = 50c
• execution Pexec = 52c
• ES = 2 × |52 - 50| = 4c
• QS = 52 - 48 = 4c
Result: ES equals QS, which is typical when you buy exactly at the ask or sell exactly at the bid.
Example B: price improvement (filled inside the spread)
• bid = 48c, ask = 52c
• midquote M = 50c
• execution Pexec = 51c
• ES = 2 × |51 - 50| = 2c
Result: ES is smaller than the quoted spread because you improved your fill. See price improvement.
Example C: multiple fills (VWAP required)
• bid = 48c, ask = 52c
• midquote M = 50c
• fills: 30 contracts at 52c and 20 contracts at 53c
• VWAP = (30×52 + 20×53) / (30+20) = (1560 + 1060) / 50 = 52.4c
• ES = 2 × |52.4 - 50| = 4.8c
Result: ES is larger than QS (4c), which signals slippage and/or limited market depth.
How to interpret the result
• ES is a realized execution cost around the midpoint. It is not a fee and not a prediction of future costs.
• One-way distance to the midquote is approximately ES / 2.
• Use ES to compare execution quality across markets and across time, especially when markets are thin.
Common mistakes (this breaks the metric)
Using last traded price instead of midquote: last price can be stale. Use midquote, not last traded price.
Bid and ask from different timestamps: you get a fake midquote that inflates or deflates ES.
Not using VWAP for multiple fills: a simple average of prices is wrong.
Mixing units: cents vs 0 to 1 must not be mixed.
Adding fees into ES: keep fees separate. Add them later as all in cost.
What to log for clean analysis
• Timestamp (trade submission time).
• Best bid, best ask at that timestamp.
• Fills: price and quantity per fill.
• Order type (market vs limit) and whether you got price improvement.
• Fees separately (for all in cost and round trip cost).
Related glossary terms
• Midquote
• VWAP
• Slippage