1) What SOR means in OTC FX
Smart order routing (SOR) is the decision engine between an order and a set of possible execution paths. In exchange markets, SOR is often about venue selection and displayed depth. In OTC FX, the constraints are different: you are dealing with bilateral streams, last look, varying reject behavior, and different execution policies per LP.
A good SOR does not chase the tightest quote. It routes based on expected outcome: probability of fill, expected slippage, expected latency, and the risk posture of the broker (inventory, exposure, and credit).
Core objectives brokers typically optimize
- Execution probability: maximize fill ratio under time constraints
- Execution quality: minimize negative slippage and reject loops
- Stability under volatility: avoid cascading failures during news spikes
- Partner outcomes: maintain acceptable flow quality for LP relationships
- Broker risk posture: enforce exposure and credit limits deterministically
2) Typical broker topology
Most broker stacks look like this:
- Client UI: web/mobile/desktop (quotes, charts, tickets)
- OMS/Risk: account checks, margin checks, throttles
- Bridge/Aggregator: symbol mapping, quote normalization, routing rules, markups
- LP/PoP/PB connections: execution streams and sometimes market data and drop copy
If you want the broader integration view, the companion guides are: Liquidity provider integration and FIX API for brokers
3) Quote normalization and symbol mapping
Multi-LP routing starts with normalization. LPs do not agree on symbol naming, precision, contract sizing, trading sessions, or even what constitutes "the same instrument". If your mapping is wrong, everything downstream becomes unreliable.
What needs to be normalized
- Symbol mapping: e.g., EURUSD vs EUR/USD vs EURUSD.
- Digits/precision: 4/5 digits, pip/pipette conventions
- Contract and lot sizing: not all venues have identical lot definitions
- Trade sessions: per symbol, per day, and holiday calendars
- Min/max sizes and step sizes: venue restrictions must be enforced before routing
Quote model: top-of-book vs depth
Some LPs provide only top-of-book, others provide depth. Your aggregator should represent quotes as a structured book so the routing engine can reason about size. A "tight spread" that is only available for a tiny size is a trap if you are routing larger tickets.
4) Routing rules: spreads vs probability vs toxicity
Routing by best spread alone is fragile. In OTC FX, the best quote is often the quote most likely to reject you. A production SOR ranks venues using a score.
A practical scoring approach
For each venue and symbol, maintain rolling metrics and compute an "expected execution score". Typical inputs:
- Quoted spread: tighter is better, but not dominant
- Reject rate: penalize venues that reject frequently for this symbol/time bucket
- Last look latency: penalize venues with longer hold windows
- Fill ratio: prefer venues that actually fill in your ticket sizes
- Slippage distribution: penalize venues with heavy negative tails
- Flow quality policies: some venues penalize "toxic" flow patterns
Client-group-aware routing
Brokers typically segment clients: retail, professional, affiliates/IB flow, VIP, and house accounts. Routing can differ by group based on risk posture, expected behavior, and commercial rules. The critical part is making this deterministic and auditable.
5) Last look, rejects, re-quotes and fallbacks
Last look is not a moral issue; it is a system constraint. You need a design that treats last look as a probability and time budget. The worst-case pattern is "reject ping-pong": sending the same order to multiple venues and receiving multiple rejects, while the client experiences a frozen ticket.
Design principles that reduce damage
- Timeouts: enforce a maximum time-to-decision for each venue
- Fallback policy: define what happens on reject, no response, or partial execution
- Do not retry blindly: retries should be conditional on market movement and risk limits
- Capture evidence: store venue response codes and timestamps for disputes
Volatility mode
During news spikes, your SOR should shift behavior: stricter throttles, shorter timeouts, and potentially routing only to venues with historically stable behavior. Volatility mode should be explicit, measurable, and reversible.
6) Markups, A/B book logic and client group pricing
An aggregator is often responsible for price construction. This includes markups and spread rules that differ by account group. If you also run B-Book or hybrid execution, keep the conceptual model clear. Many operational mistakes happen when pricing logic and execution logic get mixed.
If you operate hybrid execution, this guide is relevant: A-Book, B-Book and hybrid execution
Pricing design rules that reduce disputes
- Maintain a record of the quote shown to the client and the quote used for execution decision
- Separate markup configuration from routing configuration
- Make account-group rules auditable and versioned
7) Execution quality metrics that matter
You cannot improve what you cannot measure. Multi-LP routing without metrics turns into superstition: dealers "feel" that one LP is bad, but cannot prove it or isolate the symbol/time/client group.
Metrics to calculate per LP, per symbol, per time bucket
- Fill ratio: filled orders / attempted orders
- Reject rate: rejected orders / attempted orders
- Time-to-fill: distribution, especially p95 and p99
- Slippage distribution: not just average; look at tails
- Requote behavior: frequency and magnitude when applicable
- Cancel/replace rate: can indicate flow patterns and strategy behavior
Measure by client segment
Execution quality is not uniform. One LP may be excellent for small retail tickets and poor for larger sizes. Segmenting metrics by ticket size and client group is a practical way to route better.
8) Risk and exposure controls
Your SOR is a control plane. It should enforce risk checks before routing, not after you are already exposed. This is where brokers protect themselves from runaway systems and edge-case behavior.
Common controls
- Per-account throttles: max orders per second and max open orders
- Exposure limits: per symbol, per group, and total exposure caps
- Credit checks: ensure credit is available before routing
- Kill switch: immediate stop on a symbol or venue when anomalies are detected
Inventory-aware behavior (for hybrid books)
If you manage internalization/inventory, routing can depend on inventory and hedging policy. The key is to avoid "hidden routing rules" that are not measurable. A broker should be able to explain, with clear evidence, why an order was routed to a venue.
9) Observability and runbooks
Execution systems fail in patterns. If you can detect the early signals, you avoid the outage. Observability for SOR means combining business and technical signals.
What to monitor
- Reject spikes per venue and symbol
- Latency spikes (network vs processing)
- Fill ratio degradation per client group
- Quote quality anomalies (stale quotes, crossed markets, gaps)
- Session churn if your execution is via FIX
Runbooks should be explicit
A dealer or on-call engineer should have a deterministic playbook: which venue to disable, what routing weights to change, and how to validate that the system recovered. If decisions live only in people's memory, you will repeat incidents.
10) Go-live checklist for multi-LP routing
- Validate symbol mapping and precision across all venues
- Implement deterministic timeouts and fallbacks for last look/rejects
- Define routing rules per client group and make them auditable
- Calculate execution quality metrics per LP and per symbol
- Implement volatility mode and test it under simulated spikes
- Build dashboards and alerts before you go live
- Store evidence logs for disputes (timestamps, responses, venue identifiers)
Where Brokeret fits
Brokeret helps brokers design and operate institutional routing: multi-LP aggregation, execution quality monitoring, and scalable back office workflows that support dealing and risk. If you want routing that is stable under volatility and measurable by outcome, we can help.