Quant Memo
Core

FX Market Making And Last Look

The controversial practice of letting an FX market maker briefly hold and reject a trade after a client hits its quote, and why it exists at all.

Prerequisites: FX Quoting Conventions, Adverse Selection

In most markets, hitting a posted quote is a done deal — the trade executes at that price. In much of the over-the-counter foreign exchange market, it isn't quite that simple: many FX market makers reserve a short window, often tens of milliseconds, after a client accepts their quote, during which the market maker can still reject the trade. This is called last look, and it exists because in a fragmented, decentralized market like FX, a quote streamed to a client can go stale before the client's acceptance even arrives.

Why the window exists

FX trades over many venues and bilateral relationships simultaneously, with no single consolidated exchange order book. A market maker streaming a price to one client doesn't instantly know whether the underlying market has moved in the split second it takes that price to reach the client and the client's acceptance to travel back. Last look gives the market maker a chance to check, upon receiving an acceptance, whether the price is still fair given where the market has moved in that round-trip — and to reject the trade if it's now clearly stale, rather than being forced to honor a price that's already wrong.

Worked example: a last look check

A market maker streams a EUR/USD quote of 1.0850 to a client. Fifteen milliseconds later, the client's acceptance arrives. In those fifteen milliseconds, the broader market has moved to 1.0847 — a small move, well within what the market maker's last look tolerance allows, so the trade is confirmed at 1.0850 as quoted. On a different occasion, the same fifteen-millisecond window coincides with a burst of volatility around a data release, and the market has moved to 1.0862 by the time the acceptance arrives — 12 pips away, outside the market maker's tolerance. The trade is rejected: the client sees the quote fail, and either gets a fresh, worse price or has to try again. The mechanism protected the market maker from honoring a now-stale quote, but from the client's side it looks exactly like a firm quote disappearing right when the market moved in the client's favor.

quote sent 1.0850 accept received last look window confirm or reject
Between the client's acceptance and final confirmation, the market maker checks whether the market has moved beyond its tolerance — and can reject the trade if it has.

What this means in practice

Last look has drawn regulatory scrutiny because it's asymmetric in a way that's easy to abuse: a market maker that only rejects trades when the market moved against it, while always honoring trades that moved in its favor, is using the window to filter out losing trades while keeping winning ones — a practice explicitly discouraged by industry codes of conduct like the FX Global Code, which call for symmetric, disclosed tolerance windows applied consistently regardless of which way the market moved.

Last look gives an FX market maker a brief window after a client accepts a quote to confirm the price is still fair given market movement during the round trip — a legitimate response to a fragmented, decentralized market, but one that becomes abusive if used asymmetrically to reject only trades that moved against the market maker.

The common confusion is assuming a streamed FX quote is a firm, executable price the moment it's shown. Under last look, acceptance starts a review, not an execution — the trade can still be rejected, which is very different from a limit order resting on an exchange's central order book.

Related concepts

Practice in interviews

Further reading

  • FX Global Code, Principle 17
ShareTwitterLinkedIn