Back to Research
Liquidity & Execution August 31, 2026 • 12 min read

How Good Was Your Fill? Quoted Spread, Price Improvement, and the Effective-to-Quoted Ratio

“We got a great price.” Compared to what, exactly? A fill's headline price tells you nothing on its own — it only becomes information once you measure it against the quote it actually faced. Do that and execution quality resolves into three numbers every desk should be logging on every trade: the width of the market, how far inside it you filled, and the ratio that ties the two together.

1. A price is not a benchmark

Fills come with a price attached, and it is tempting to treat that number as the answer. But “bought at 100.01” is meaningless without context: was the market 100.00–100.02, or 99.50–100.50? Did you pay up, or did you capture liquidity inside the spread? The same headline price can be excellent or terrible depending entirely on the quote it printed against. Execution quality is never about the price in isolation — it is about the price relative to the quote you faced at the moment you traded.

This is exactly the logic regulators codified in SEC Rule 605 (the order-execution-quality disclosure rule, modernized in 2024): venues report effective spreads, price improvement, and realized spreads precisely because the raw fill price says nothing without the quote as a yardstick. The same three measures belong in every serious desk's own post-trade stack.

2. The quoted spread — the width of the market

Start with the benchmark itself: the quoted spread, the gap between the best ask and the best bid at the time of the trade.

quoted spread = ask − bid   ·   half-spread = (ask − bid) / 2

The half-spread is what a marketable order “should” pay if it simply crosses to the touch — the reference cost against which everything else is measured. On its own the quoted spread is a snapshot of how expensive the market looks; its real value is as the denominator for the two measures that follow.

3. Price improvement — how far inside the quote you filled

A buyer expects to pay the ask; a seller expects to receive the bid. Price improvement is how much better than that expectation the fill actually landed:

buy: ask − price   ·   sell: price − bid

Positive means the fill beat the quote — it executed inside the spread, which is a win. Zero means it filled exactly at the quote. Negative means it filled worse than the quote — the classic signature of a large order walking the book, consuming the touch and then reaching for worse-priced levels behind it. Aggregated across a venue or a strategy, average price improvement is one of the cleanest read-outs of execution skill there is: it is the money you saved (or gave away) versus simply crossing the spread.

4. The effective-to-quoted ratio — the workhorse

The single most useful execution-quality statistic combines the two. The effective spread is what you actually paid, round-trip: twice the distance from the mid to your fill price, 2 · |price − mid|. Divide it by the quoted spread and you get the effective-to-quoted ratio (E/Q):

E/Q = effective spread / quoted spread

The scale reads itself. Below 1, you traded inside the quoted spread — price improvement, good execution. At 1, you paid exactly the quoted spread — you crossed to the touch and no more. Above 1, you filled outside the quote — you paid for liquidity that wasn't at the touch, the fingerprint of size sweeping the book. One dimensionless number, comparable across names, tick sizes, and price levels, tells you where on that scale every fill landed. It is the workhorse of SEC Rule 605 disclosures and of every honest transaction-cost report for exactly that reason.

5. Read it as a stream, not a snapshot

A single fill's E/Q is a data point; the distribution across many fills is the signal. Log it on every execution and the aggregate becomes an early-warning system. A slowly rising E/Q ratio means your fills are drifting from inside the spread toward the touch and beyond — liquidity is thinning, your orders are getting larger relative to what's resting, or your timing is deteriorating. That shows up in the execution-quality numbers well before it shows up in P&L, which is precisely why it's worth measuring in real time rather than reconstructing after a bad month. Slice the same numbers by venue, by order size, or by time of day and you have a map of exactly where your execution is leaking.

6. Where it fits in the cost stack

These three measures are the per-fill quality lens, and they sit between two neighbours. Before the trade, order-book liquidity — depth, slope, and the cost of a round trip — tells you what a fill of a given size should cost. After the trade, full transaction-cost analysis reconciles arrival slippage, market impact, and adverse selection over the whole order. Quoted spread, price improvement and E/Q are the tight middle link: the immediate, quote-relative verdict on each individual fill, computed the instant it prints.

7. Computing it

Our open-source orderflow-metrics library ships all three, dependency-free, in TypeScript and Python — plain numbers in, execution quality out:

import {
  quotedSpread,
  priceImprovement,
  effectiveSpread,
  effectiveToQuotedRatio,
} from "orderflow-metrics";

// market: bid 99.98 / ask 100.02  (mid 100.00, quoted spread 0.04)
const bid = 99.98, ask = 100.02, mid = 100.0;

quotedSpread(bid, ask);                       // 0.04 — the width of the market

// a buy that fills at 100.01 — a cent inside the ask
priceImprovement(100.01, bid, ask, "buy");    // 0.01 — beat the quote
effectiveToQuotedRatio(
  effectiveSpread(100.01, mid, "buy"),         // 0.02
  quotedSpread(bid, ask),                       // 0.04
);                                             // 0.5  — traded at half the quoted spread

// a buy that walks above the ask
priceImprovement(100.05, bid, ask, "buy");    // -0.03 — filled worse than the quote

The Python distribution exposes the same functions (quoted_spread, price_improvement, effective_to_quoted_ratio). They sit beside the effective/realized spread, price-impact and market-microstructure tooling we build in the open — install it from our open-source page (npm and PyPI, MIT-licensed) and start scoring your fills against the quote instead of guessing.

8. Conclusion

A fill's price is not its quality. The quality is the price measured against the quote it faced: the quoted spread as the yardstick, price improvement as the money saved inside it, and the effective-to-quoted ratio as the one number that places every fill on a scale from “beat the spread” to “walked the book.” Log all three on every trade and you replace “we got a great price” with a measurement — and you see execution decay coming before it costs you. Explore the rest of the toolkit in our quantitative research library, or read the implementation in our open-source metrics.

For more on execution analytics and open-source tooling, visit our official resources:

🧩 Open Source 💻 orderflow-metrics on GitHub 📚 More Research