Quant Memo
Advanced

The Microprice

The mid-price sits halfway between the bid and the ask no matter how lopsided the book is. The microprice weights it by queue sizes, giving a fair value that leans toward the thin side, which is the side about to be eaten.

Prerequisites: Order Book Mechanics, Order-Flow Imbalance

Here is a book, and a question that looks trivial:

SidePriceSize
Ask100.01100
Bid100.00900

Where is fair value? The mid-price says $100.005 — exactly halfway, because that is all the mid ever says. But look at the book. Nine hundred shares of buying interest are stacked against a hundred shares of selling. The ask is one small market order away from being wiped out, after which the market is quoting 100.01 bid / 100.02 offer. Fair value is not in the middle. It is nearly at the ask.

The microprice (or weighted mid) is the fix. Define queue imbalance as the bid's share of the total size at the touch,

I=QbQb+Qa[0,1]I = \frac{Q^b}{Q^b + Q^a} \in [0, 1]

which is simply "what fraction of the resting size at the touch is on the buy side". Then

pmicro=Ia+(1I)bp_{\text{micro}} = I \cdot a + (1 - I) \cdot b

In words: a weighted average of the two quoted prices, where the bid's size is the weight on the ask price. Rearranged, it is easier to remember:

pmicro=m+(I12)sp_{\text{micro}} = m + \left(I - \tfrac{1}{2}\right) s

— take the mid mm and push it toward the thin side by a fraction of the spread ss. A perfectly balanced book (I=0.5I = 0.5) leaves the mid untouched; an all-bid book (I=1I = 1) puts fair value right on the ask.

For our book: I=900/1000=0.9I = 900/1000 = 0.9, m=100.005m = 100.005, s=0.01s = 0.01, so pmicro=100.005+0.4×0.01=100.009p_{\text{micro}} = 100.005 + 0.4 \times 0.01 = \mathbf{100.009} — eight-tenths of the way to the ask.

lopsided book 100.01 100.00 100 900 mid micro fair value vs imbalance weighted mid microprice ask mid bid 0 0.5 1 queue imbalance I
Left: with 900 bid against 100 offered, fair value sits near the ask, not at the mid. Right: the weighted mid is linear in imbalance; the microprice estimated from data is S-shaped, adjusting less at the extremes because lopsided queues get replenished.

Why this matters more than it looks

Suppose you post a sell at 100.01, joining the back of that 100-share queue, and you get filled. Measured against the mid you just earned half a spread: 100.01 − 100.005 = +0.005. Measured against the microprice you earned 100.01 − 100.009 = +0.001. Almost nothing — and that second number is the one that predicts your markout, because the ask really was about to disappear.

Now the other side. You post a buy at 100.00, behind 900 shares. Against the mid that also looks like +0.005 of edge. Against the microprice it is 100.009 − 100.00 = 0.009 of deficit: you are joining a queue you will almost certainly not clear, and if you do clear it, it is because the whole 900 got run over and the price is heading down. Both sides looked symmetric under the mid. Under the microprice they are not remotely symmetric, and the microprice is right.

pmicro=m+(I12)sp_{\text{micro}} = m + (I - \tfrac{1}{2})\,s: nudge the mid toward the thin side by a fraction of the spread. The heavy side is where liquidity is; the thin side is where the price is going.

From weighted mid to the real microprice

The linear formula is a first-order approximation and it over-reacts. Imbalance mean-reverts: a 9-to-1 book attracts sellers and repels buyers, so some of that lopsidedness resolves by the queues rebalancing rather than by the price moving. Stoikov (2018) defines the microprice properly as the expected mid-price once the current book state has fully resolved — the limit of E[mt+τ]\mathbb{E}[m_{t+\tau}] over successive price changes — and estimates it from data as a function of both imbalance and spread.

The result is the S-curve on the right of the figure: steep near balance, flattening at the extremes, and much flatter for wide-spread names where the imbalance signal is weaker. Practitioners either fit that curve or accept the linear version as a cheap, close-enough default.

Sanity-check the direction every time: big bid size pushes fair value UP. It feels backwards — surely lots of buyers means support at the bid? — but the size that matters is the size that is missing. The thin side gets consumed first.

Where it gets used

  • Quoting. Market makers centre quotes on the microprice, not the mid. Skewing around a stale mid is a standard way to accumulate exactly the inventory you did not want.
  • Labelling. In machine-learning pipelines the target is usually a future microprice change, because mid changes are contaminated by discreteness and bounce.
  • TCA. Comparing fills to the mid systematically flatters passive fills on the heavy side and punishes them on the thin side.

The microprice is only as good as the depth numbers feeding it. Iceberg and hidden orders mean displayed size understates true size, so a book that looks 9-to-1 may be 2-to-1 — and spoofers post size precisely to move this signal. In large-tick names where the spread is pinned at one tick and queues run to thousands of lots, the adjustment is also capped at half a tick, so treat it as a tilt, not a truth.

In interviews

Give the lopsided book and ask yourself the question out loud: the mid says 100.005, does anyone believe that? Then write pmicro=Ia+(1I)bp_{\text{micro}} = I a + (1-I) b and immediately justify why bid size multiplies the ask price. The follow-up is usually "so is a fill at the bid good news?" — the answer is that measured against the microprice much of the apparent spread capture on the heavy side was never there, which is the same Adverse Selection story told with better arithmetic. See Order-Flow Imbalance for the signal in its raw form.

Related concepts

Practice in interviews

Further reading

  • Stoikov (2018), The Micro-Price: A High-Frequency Estimator of Future Prices
  • Gatheral & Oomen (2010), Zero-Intelligence Realized Variance Estimation
  • Bouchaud, Bonart, Donier & Gould, Trades, Quotes and Prices
ShareTwitterLinkedIn