← All postsProduct

Smart order routing: VWAP, TWAP, and beyond

When a fintech mints $5M of AAPL through Flo, the broker 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.

Manibabu Pippalla
CTO
5 min read
Smart order routing: VWAP, TWAP, and beyond

A retail trade goes one place. The broker's best venue at the moment of fill. A $5M institutional mint cannot. Send a $5M market order to a single venue and you eat your own slippage. Smart order routing is what stands between the integrator's mint call and the broker. It's the part of our infrastructure that decides whether the integrator looks good to their customer.

The naive approach. Send the entire order to the broker'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 integrator pays 30+ bps of impact on a trade that should have cost 5.

We don't do this.

What we do instead. Every mint above a $250K threshold goes through a routing layer that:

  1. Sizes child orders against current liquidity at each accessible venue. NYSE, Nasdaq, BATS, ARCA, IEX, Edgex, plus dark pools.
  2. Slices time-weighted across a target horizon. Usually 60 to 300 seconds, depending on the order's relative size to ADV.
  3. Selects between VWAP (volume-weighted) and TWAP (time-weighted) based on the volatility regime.
  4. Routes opportunistically into dark pools when the lit book signals adverse selection.
  5. Reconciles every fill back to a single weighted-average price the integrator sees.

Why VWAP isn't always right. 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. We 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.

The benchmark we report against is arrival price. The mid quote at the moment the integrator called mint. We commit to landing within 5 basis points of arrival on 95% of trades and within 10 bps on 99%.

We benchmark against arrival, not VWAP. The integrator doesn't care about VWAP. They care about the price their user saw at the moment of click.

The 47-child-orders example. Our most recent $5M AAPL mint. 47 child orders across 11 venues over 4 minutes 12 seconds. Average size per child: $106K. Realized fill: 2.3 bps below arrival, on a day with 40% above-average volatility. The integrator's user saw a single token landed in their wallet. The broker saw 47 line items hitting the tape.

What we don't do. We don't internalize. Every fill goes to a real venue. We don't take principal risk against the integrator's flow. The price we report is the price we paid, plus the published fee schedule. Intentional. If we ever start internalizing, we become a counterparty, and the trust model changes.

Smart order routing is the boring part of execution. Done well, the integrator never has to think about it. That's the goal.

Written by Manibabu Pippalla, CTO
More posts →