Broker Execution Quality: How to Actually Measure Slippage, Latency and Spread
Updated 13-07-2026 · 8 min read · by the TradeStats team
Broker review sites run on affiliate stars. Execution quality — the thing that actually costs or saves you money on every trade — is measurable, from data your broker already gives you. Here's the methodology we use for the TradeStats execution scoreboard, in enough detail to reproduce it yourself.
The three measurable dimensions
1. Price accuracy (slippage)
For every filled market order, MT5 records the price you requested (on the order) and the price you got(on the deal). The signed difference, divided by the symbol's point size, is slippage in points — positive when you did worse. Aggregate the median (typical fill) and the 95th percentile (your bad days: news, rollover, thin books). A fair broker's median sits at 0.0; the p95 tells you the tail risk the median hides.
2. Speed (fill latency)
MT5 order history carries two millisecond timestamps stamped by the broker's server: time_setup_msc (order received) and time_done_msc (order filled). The difference is broker-side processing latency — independent of your internet connection. Across brokers we measure, healthy medians run 100–200ms; multi-second values or huge variance point to dealing-desk intervention or overloaded bridges.
3. Spread at fill time
Average advertised spreads are marketing; what matters is the spread at the moments you trade. The broker's own tick history at each fill timestamp gives spread-at-fill — which is why an account that trades news releases sees a very different effective spread than the "from 0.0 pips" banner.
The honesty rules that make numbers comparable
- Compare within a symbol only. A XAUUSD point ≠ a EURUSD point. Our scoreboard normalizes brokers per symbol, then rolls up weighted by fill count — never mixing instruments.
- Medians over means.One news spike shouldn't repaint a month.
- Sample size and account count visible. 50 fills from one account prove little; thousands across several accounts are hard to fake. Low-sample brokers are labeled indicative, never ranked above verified ones.
- Near-ties are ties. 300ms vs 304ms is not a ranking difference, and pretending otherwise is how star-rating sites manufacture winners.
Do it yourself, or read it off the scoreboard
You can reproduce all of this with your own account history export and a spreadsheet — the formulas above are complete. Or connect a read-only investor passwordto TradeStats and get it continuously: every fill measured, per-symbol and per-session breakdowns, monthly trend charts per broker, and your broker's place on the public scoreboard— built from real fills across all connected accounts, never from reviews. If your broker looks slow there, that's not an opinion to argue with; it's their own timestamps.
FAQ
What is a good median slippage?
Zero. On symmetric execution, requested and executed prices should match on most fills, with the rest split roughly evenly between price improvement (negative) and worse fills (positive). A consistently positive median is the warning sign.
How is fill latency measured without a co-located server?
MT5 order history carries millisecond timestamps set by the broker's own server: time_setup (order received) and time_done (filled). The difference is pure broker-side processing time — network distance to your screen doesn't pollute it.
Why can't I compare slippage points between EURUSD and XAUUSD?
A 'point' is the instrument's minimum price increment, and its dollar value differs per symbol. Cross-broker comparisons are only valid within the same symbol.