Smart order routing: VWAP, TWAP, and beyond
When a fintech buys $5M of AAPL through Flo Finance, the custodian doesn't see one $5M order. It sees 47 child orders sliced across 11 venues, optimized to keep your fill price inside 5 bps of arrival.
When a fintech buys $5M of AAPL through Flo Finance, the custodian doesn't see one $5M order. It sees 47 child orders sliced across 11 venues, optimized to keep your fill price inside 5 bps of arrival.

A few weeks ago I watched a $5M AAPL buy from a customer clear in 4 minutes 12 seconds. 47 child orders across 11 venues. Realized fill came in 2.3 bps below arrival on a day where realized volatility was 40% above average. The partner's user saw a single token land in a wallet. The custodian saw 47 line items hitting the tape. That gap, between what the user sees and what the market sees, is the part of our infrastructure I think about most.
A retail trade goes one place. The custodian's best venue at the moment of fill. A $5M institutional buy cannot. Send a $5M market order to a single venue and you eat your own slippage. Smart order routing is what stands between the partner's buy call and the custodian. It's the part of the stack that decides whether the partner looks good to their customer.
Send the entire order to the custodian's primary venue. Take the fill. Tell the user. Works at $50,000. Doesn't work at $5M. The market reacts, the fill price drifts, and the partner pays 30+ bps of impact on a trade that should have cost 5.
We don't do this.
Every buy above a $250K threshold goes through a routing layer that does the following.
VWAP is the textbook answer for institutional execution. It works when the day's volume distribution is reasonably predictable. It fails on volatile open and close prints, and it fails when the order is large relative to the residual day's volume. I default to TWAP-with-adaptive-pacing for the first thirty minutes after open and the last fifteen before close, and switch to VWAP in the middle of the session. I might be tuning the cutover wrong; this is the sort of thing I expect to revisit after a few hundred more institutional fills.
I benchmark against arrival price. The mid quote at the moment the partner called buy. We target landing within 5 basis points of arrival on 95% of trades and within 10 bps on 99%.
I benchmark against arrival, not VWAP. The partner doesn't care about VWAP. They care about the price their user saw at the moment of click.
I don't internalize. Every fill goes to a real venue. I don't take principal risk against the partner's flow. The price I report is the price I paid, plus the published fee schedule. That's intentional. If we ever start internalizing, we become a counterparty, and the trust model changes in a way I don't think the category can afford.
Smart order routing is the boring part of execution. Done well, the partner never has to think about it. That's the goal.