Microprice-Based Fill Models
Instead of assuming a limit order fills whenever the mid-price touches it, a microprice-based fill model uses a volume-weighted estimate of fair value to decide fill probability, which better matches how real order books actually trade.
Prerequisites: Order Fill Modeling in a Backtest, Order Book Mechanics
The crudest way to decide whether a resting limit order "fills" in a backtest is to check whether the mid-price — the average of best bid and best ask — ever crosses the order's price. That's a poor proxy for what actually happens on an exchange: two order books can have the identical mid-price while one is heavily stacked with buyers and about to move up, and the other is stacked with sellers and about to move down. A fill model built only on mid-price treats these as identical, when a real market maker sitting at the same price in each book would see very different odds of getting filled.
What the microprice adds
The microprice refines the mid-price by weighting the best bid and ask by the size sitting opposite them — more resting size on the bid side pulls the microprice toward the ask, because that imbalance signals the price is more likely to move up (more buying pressure waiting to be absorbed) and a resting sell order is proportionally more likely to get hit first. In symbols, with best bid price , best ask price , bid size , and ask size :
In plain English: the microprice leans toward whichever side has less resting size, because thin size on one side means that side's price level is about to be consumed first. A fill model built on the microprice — rather than raw mid — triggers fills at moments that better match the imbalance-driven dynamics a real order book exhibits, instead of only reacting to when the naive midpoint happens to cross a price level.
Worked example: two identical mid-prices, different fill odds
Both books have best bid $100.00, best ask $100.02, so mid = $100.01 in both cases.
- Book 1: bid size 500, ask size 5,000. Microprice . Heavy resting size on the ask suggests the price is more likely to drift down toward the bid — a resting sell limit at $100.02 is less likely to get filled soon than the raw mid would suggest.
- Book 2: bid size 5,000, ask size 500. Microprice . Heavy bid size suggests upward pressure — a resting sell limit at $100.02 here is more likely to get filled soon.
A naive mid-price fill model treats both books identically since the mid is $100.01 in each. A microprice-based model correctly assigns a higher fill probability to the resting sell order in Book 2 than in Book 1, matching the intuition that imbalance predicts near-term direction.
What this means in practice
Simulators used for market-making or passive execution strategies benefit most from microprice-based fill models, because those strategies live or die by exactly the fill-probability nuances that mid-price fill logic erases. A backtest that uses raw mid-price crossing as its only fill trigger will misjudge both how often passive orders fill and, worse, tend to systematically overstate fills at the "wrong" moments — right before an adverse move, since that's precisely when imbalance was already signaling danger that a mid-price model can't see.
The microprice weights the best bid and ask by the size resting opposite them, leaning toward the thinner side because thin resting size signals that price level is closer to being consumed — a fill model built on it captures order-book imbalance that a plain mid-price crossing rule misses entirely.
Related concepts
Practice in interviews
Further reading
- Stoikov, The Micro-Price: A High-Frequency Estimator of Future Prices