Skip to content
Published on

TCA + Market Impact Models 2026 Deep Dive — Implementation Shortfall, Almgren-Chriss, Kissell-Glantz I-Star, Bouchaud-Farmer Propagator, Bloomberg BTCA, Virtu, big xyt, BMLL, Tradeweb

Authors

Introduction — In 2026, TCA Shifts from "After-the-Fact Reports" to "Real-Time Algo Wheels"

In 2026, Transaction Cost Analysis (TCA) is no longer a month-end PDF sent to portfolio managers. With passive management exceeding 50% of global equity AUM, every basis point of trading cost translates directly into billions of dollars of fund performance. At the same time, AI-driven Algo Wheels have become standard: every order is automatically routed to the optimal broker/algorithm in real time, based on historical TCA data.

Regulation is also in flux. The EU MiFID II RTS 27 (venue-side reporting) was suspended in 2021, but RTS 28 (firm-side best execution reporting) is under renewed scrutiny in the 2024 MiFIR review. The U.S. SEC Rule 605/606 was updated in 2024 to expand retail order-flow disclosure. Korea's Financial Investment Association (KOFIA) revised the Best Execution Guideline in 2025, effectively mandating quarterly TCA reporting. Japan's SESC (Securities and Exchange Surveillance Commission) is intensifying algo trading monitoring.

This article covers the academic foundations — the IS (Implementation Shortfall) formula, the Almgren-Chriss optimal execution trajectory, the Kissell-Glantz I-Star model, and the Bouchaud-Farmer propagator — alongside the commercial platforms — Bloomberg BTCA, Virtu Pre-Trade, J.P. Morgan SquareEdge, big xyt, BMLL, Tradeweb — and the practical setups at Korea's Mirae Asset, Korea Investment, NH IB, Japan's SBI, and Nomura, all in a single piece.

A 50-Year Brief History of TCA — From Perold (1988) to the 2026 Algo Wheel

The history of trade-cost measurement began with academic research in the late 1980s. In 1988, André Perold published "The Implementation Shortfall: Paper vs. Reality" in the Journal of Portfolio Management. Perold defined IS as the difference between the "paper portfolio" and actual execution, and his definition has anchored every TCA framework since.

In 2000, Robert Almgren and Neil Chriss published "Optimal Execution of Portfolio Transactions" in the Journal of Risk, formalising mean-variance optimal execution. In 2003, Robert Kissell and Morton Glantz published Optimal Trading Strategies and introduced the I-Star model. In 2013, Anna Obizhaeva and Jiang Wang ("Optimal trading strategy and supply/demand dynamics") modelled temporary vs. permanent impact explicitly. In 2018, Jean-Philippe Bouchaud and J. Doyne Farmer formalised the propagator model in Trades, Quotes and Prices, capturing the non-linear time-series structure of market impact.

1988: Perold "Implementation Shortfall" — IS concept introduced
1995: Plexus Group founded — first commercial TCA service
1998: ITG acquires Plexus → Universal TCA Platform
2000: Almgren-Chriss "Optimal Execution" — mean-variance execution
2003: Kissell-Glantz "I-Star Model" — market-impact pricing
2005: SEC Reg NMS → strengthened best-ex duties
2007: MiFID I → EU best-ex introduced
2013: Obizhaeva-Wang "Temporary/Permanent Impact"
2014: Bloomberg BTCA launched
2018: MiFID II RTS 27/28 in force (RTS 27 suspended 2021)
2019: ITG → Virtu acquisition (TCA market consolidation)
2020: big xyt European market-data platform expands
2022: BMLL Technologies Series B
2024: SEC Rule 605/606 revised (retail order-flow disclosure expanded)
2025: KOFIA Best Execution Guideline revised
2026: Algo Wheel becomes standard, real-time TCA ← present

Implementation Shortfall (IS) — Perold (1988) Original Formula

Implementation Shortfall is defined as the difference between the "decision-time price" and the actual average execution price. Perold's original formula:

IS = (X · P_decision − Σ x_i · P_fill_i) + (n · P_close − n · P_decision) + opportunity_cost

The first term is Execution Cost — the difference between the decision price and actual fills. The second is Delay Cost — the price movement between decision and order arrival. The third is Opportunity Cost — value lost on the unfilled portion. IS is usually expressed in basis points (bp); a positive number is a cost for buys, and the sign flips for sells.

In practice, IS is decomposed into a 4-bucket model: (1) commission, (2) spread cost = (Ask−Bid)/2, (3) market impact, and (4) timing risk. (1) and (2) are explicit; (3) and (4) are implicit.

Cost ComponentDescriptionControllabilityTypical Magnitude
CommissionBroker feePre-negotiated1-3 bps
Spread CostHalf of bid-askMarket-dependent2-10 bps
Market ImpactOwn order pushes priceControlled by algo/speed5-50 bps
Timing RiskAdverse price movementControlled by speed10-100 bps

Pre-Trade TCA vs. Post-Trade TCA — A Comparison by Time Horizon

Pre-Trade TCA simulates expected costs before execution. Inputs are order size, ratio to ADV (Average Daily Volume), volatility, spread, momentum; outputs are expected IS bp ranges and optimal execution times. Bloomberg BTCA's Pre-Trade module provides time-bucketed impact projections for orders above 5% of 30-day ADV.

Post-Trade TCA measures the actual cost after execution. It computes slippage vs. benchmarks like Arrival Price, Interval VWAP, and Closing Price, decomposing market impact from timing risk. Daily reports are typically produced T+1; monthly cumulative analyses become inputs to PM quarterly reviews.

In-Trade TCA (real-time) is a 2020s development. As a parent order is sliced into child orders and routed to the market, cumulative slippage is tracked in real time, and algorithm parameters are dynamically tuned when thresholds are breached. Virtu's Real-Time TCA delivers slippage alerts to the trader's desk with <5ms latency.

Almgren-Chriss Optimal Execution — The Mean-Variance Framework

Almgren-Chriss (2000) crystallised the trader's trade-off: faster execution causes more market impact, slower execution causes more timing risk from price volatility. The mean-variance utility:

min E[Cost] + λ · Var[Cost]

where λ is the risk-aversion parameter. With linear permanent impact g(v) = γ · v and linear temporary impact h(v) = η · v, the optimal trading trajectory X(t) takes a hyperbolic-sine form:

X(t) = X · sinh(κ·(T−t)) / sinh(κ·T)

with κ = sqrt(λ · σ² / η), where T is total execution horizon and X is total quantity. A larger λ (more risk-averse) yields a larger κ and a more front-loaded trajectory. When λ → 0, the solution converges to a uniform TWAP.

# Almgren-Chriss optimal-trajectory R sample
library(ggplot2)

almgren_chriss_trajectory <- function(X, T, sigma, eta, lambda, n_steps = 50) {
  # X: total shares to trade
  # T: total horizon in minutes
  # sigma: daily volatility (e.g., 0.02 = 2%)
  # eta: temporary-impact coefficient
  # lambda: risk-aversion parameter
  kappa <- sqrt(lambda * sigma^2 / eta)
  t_grid <- seq(0, T, length.out = n_steps + 1)
  x_remaining <- X * sinh(kappa * (T - t_grid)) / sinh(kappa * T)
  trades <- -diff(x_remaining)
  data.frame(
    time = t_grid[-1],
    cumulative_traded = X - x_remaining[-1],
    child_order = trades,
    pct_complete = (X - x_remaining[-1]) / X * 100
  )
}

# Example: 1M shares over 30 minutes, sigma 2%, lambda 1e-6
traj <- almgren_chriss_trajectory(
  X = 1e6, T = 30, sigma = 0.02, eta = 2.5e-7, lambda = 1e-6
)
print(head(traj))

# Compare against lambda close to 0 → near-TWAP
traj_twap <- almgren_chriss_trajectory(
  X = 1e6, T = 30, sigma = 0.02, eta = 2.5e-7, lambda = 1e-9
)

ggplot() +
  geom_line(data = traj, aes(x = time, y = cumulative_traded), color = "red") +
  geom_line(data = traj_twap, aes(x = time, y = cumulative_traded),
            color = "blue", linetype = "dashed") +
  labs(title = "Almgren-Chriss: Aggressive (red) vs TWAP-like (blue)",
       x = "Minutes since arrival", y = "Cumulative shares traded")

Kissell-Glantz I-Star Model — Market-Impact Pricing

The I-Star (I*) model, presented by Robert Kissell and Morton Glantz in Optimal Trading Strategies (2003), models market impact as a function of order size, volatility, and participation rate (POV, Percentage of Volume). Core formula:

I* = a1 · (X/ADV)^a2 · σ^a3

where a1, a2, a3 are parameters estimated from market data. For U.S. large caps, typical values are a1 ≈ 700-900, a2 ≈ 0.5 (square-root law), and a3 ≈ 0.75. Splitting by participation rate ρ:

MI_temp = b1 · I* · ρ^b2 (temporary impact) MI_perm = (1 − b1) · I* (permanent impact)

b1 is typically around 0.95, meaning roughly 95% of impact is temporary. After trading ends, the price recovers, leaving only the permanent component.

Obizhaeva-Wang Model — Separating Temporary from Permanent Impact

Anna Obizhaeva and Jiang Wang (2013, Journal of Financial Markets) explicitly modelled limit order book dynamics to show how impact decays. Their key finding: impact decays exponentially.

Impact(t) = κ · X · exp(−ρ · t) + λ · X

The first term is temporary impact (decaying with time t), the second is permanent impact (equilibrium price shift). ρ is the recovery rate; for U.S. large caps, the half-life is reported to be 5-15 minutes. This model became the standard for measuring large meta-order impact (a large parent order split into many child orders).

Bouchaud-Farmer Propagator Model — Non-Linear Time Series

Jean-Philippe Bouchaud and J. Doyne Farmer formalised the propagator model in Trades, Quotes and Prices (2018, Cambridge University Press). Price changes are expressed as a weighted sum of all past trades.

r(t) = Σ G(t − s) · ε(s) · v(s)^δ + noise

Here G(t) is the propagator kernel (how impact from a trade propagates over time), ε is trade direction (+1/−1), v is volume, and δ ≈ 0.5 (square-root law). G(t) typically decays as a power law G(t) ~ t^(−γ) with γ ≈ 0.5. This model captures the long-memory nature of markets.

Almgren Square-Root Impact Law — A Robust Empirical Rule

The most universally validated empirical law, in both academia and practice, is the square-root impact law. Impact scales as the square root of order size.

MI(bps) = Y · σ_daily · sqrt(X / V_daily)

Y is typically near 1.0 (range 0.5-2.0), σ_daily is daily volatility, X is order size, and V_daily is average daily volume. The law has been validated across asset classes and markets in Almgren et al. (2005, "Direct estimation of equity market impact"), Tóth et al. (2011), and Bershova-Rakhlin (2013, "The non-linear market impact of large trades").

Four Benchmarks — Arrival Price vs. VWAP vs. TWAP vs. Close

The four most common TCA benchmarks each have different purposes and game-theoretic implications.

BenchmarkDefinitionWhen AppropriateDrawback
Arrival PriceMid-quote at order arrivalStandard IS measurementNoisy
Interval VWAPVolume-weighted average during executionAlgo performanceOwn order affects VWAP itself
TWAPTime-weighted average during executionSimple comparisonsIgnores volume distribution
Close (MOC)Closing price (Market On Close)Index fund rebalancesClosing-auction volatility

The Arrival Price benchmark is the most direct measure of Perold's IS, matching PM decision price most closely. VWAP suits trader-performance evaluation but suffers from self-referential issues if your trades dominate volume. TWAP is simple but ignores volume distribution. Close is standard for index-tracking funds but inherits closing-auction volatility.

4-Bucket Cost Model — The Industry Decomposition Standard

The industry-standard 4-bucket decomposition of IS is shown below.

# Python TCA Implementation Shortfall decomposition
import pandas as pd
import numpy as np

def calculate_is_decomposition(parent_order):
    """
    parent_order keys: side, qty_total, decision_price, arrival_price,
    fills (list of dicts with timestamp, qty, price, venue),
    close_price, benchmark_vwap, spread_at_arrival, commission_bps
    """
    side_sign = 1 if parent_order['side'] == 'BUY' else -1
    X = parent_order['qty_total']
    P_decision = parent_order['decision_price']
    P_arrival = parent_order['arrival_price']

    fills = pd.DataFrame(parent_order['fills'])
    filled_qty = fills['qty'].sum()
    avg_fill_price = (fills['qty'] * fills['price']).sum() / filled_qty
    P_close = parent_order['close_price']

    # 4-bucket decomposition
    commission_cost = parent_order['commission_bps']  # bp
    spread_cost_bps = (parent_order['spread_at_arrival'] / 2 / P_arrival) * 10000
    impact_cost_bps = (avg_fill_price - P_arrival) / P_arrival * 10000 * side_sign
    timing_cost_bps = (P_arrival - P_decision) / P_decision * 10000 * side_sign

    # Opportunity cost on unfilled portion
    unfilled = X - filled_qty
    opportunity_cost_bps = 0
    if unfilled > 0:
        opportunity_cost_bps = (P_close - P_decision) / P_decision * 10000 * side_sign * (unfilled / X)

    total_is_bps = commission_cost + spread_cost_bps + impact_cost_bps + timing_cost_bps + opportunity_cost_bps

    return {
        'commission_bps': round(commission_cost, 2),
        'spread_cost_bps': round(spread_cost_bps, 2),
        'market_impact_bps': round(impact_cost_bps, 2),
        'timing_cost_bps': round(timing_cost_bps, 2),
        'opportunity_cost_bps': round(opportunity_cost_bps, 2),
        'total_is_bps': round(total_is_bps, 2),
        'fill_rate': round(filled_qty / X * 100, 2)
    }

# Example invocation
order = {
    'side': 'BUY', 'qty_total': 100000,
    'decision_price': 150.00, 'arrival_price': 150.05,
    'fills': [
        {'timestamp': '09:30:01', 'qty': 30000, 'price': 150.07, 'venue': 'NYSE'},
        {'timestamp': '09:32:14', 'qty': 40000, 'price': 150.12, 'venue': 'NASDAQ'},
        {'timestamp': '09:35:42', 'qty': 25000, 'price': 150.18, 'venue': 'IEX'}
    ],
    'close_price': 150.45, 'benchmark_vwap': 150.13,
    'spread_at_arrival': 0.02, 'commission_bps': 1.5
}
print(calculate_is_decomposition(order))

Pre-Trade Simulation — Forecasting Costs Before Sending Orders

Pre-Trade TCA takes the following inputs to project expected IS: (1) order size X, (2) 30-day ADV, (3) 21-day daily volatility σ, (4) current spread, (5) momentum (α), (6) execution horizon T. Bloomberg BTCA Pre-Trade simulates orders at 1%/5%/10%/20% of ADV, providing expected IS distributions at P25/P50/P75.

J.P. Morgan SquareEdge presents optimal execution curves using a hybrid Almgren-Chriss + I-Star model on the same inputs. Virtu Pre-Trade Analytics uses ITG ACE (Agency Cost Estimator) heritage models, supporting comparisons such as "for this size in this volatility, expected IS under VWAP is 12.4 bp, vs. 8.7 bp under IS algo."

Sequence-of-Events Normalisation — Parent/Child Tracking

A large order starts life as a parent order and is split by algorithms into many child orders. A core TCA data task is reconstructing the parent-child mapping accurately. In FIX 4.4, Tag 11 (ClOrdID) and Tag 41 (OrigClOrdID) link orders; Tag 528 (OrderCapacity), Tag 18 (ExecInst), and Tag 851 (LastLiquidityInd) provide metadata.

FIX Tag → TCA meaning
========================================================
Tag 11   ClOrdID            Child order ID
Tag 41   OrigClOrdID        Parent order ID (on cancel/replace)
Tag 17   ExecID             Execution ID
Tag 31   LastPx             Last fill price
Tag 32   LastQty            Last fill quantity
Tag 38   OrderQty           Original order quantity
Tag 40   OrdType            1=Market, 2=Limit, 3=Stop
Tag 54   Side               1=Buy, 2=Sell
Tag 60   TransactTime       Execution time (UTC)
Tag 100  ExDestination      Venue (NYSE, NASDAQ, ARCA, ...)
Tag 528  OrderCapacity      A=Agency, P=Principal
Tag 851  LastLiquidityInd   1=Added, 2=Removed, 3=Liquidity Routed
Tag 1057 AggressorIndicator Y=Aggressive, N=Passive

Tag 851 LastLiquidityInd is particularly important. It distinguishes maker (=1) from taker (=2), letting you track precisely whether you received maker rebates or paid taker fees. On U.S. maker-taker exchanges (NYSE Arca, NASDAQ), this directly determines fee economics.

Bloomberg BTCA — Global Market-Share Leader

Bloomberg BTCA (Bloomberg Transaction Cost Analysis), launched in 2014, has been the global market-share leader on the sell-side TCA market since. Key features: (1) Pre-Trade simulation integrated with Bloomberg AIM, (2) Real-Time slippage monitoring, (3) Post-Trade daily/monthly/quarterly reports, (4) Peer benchmarking — comparisons against anonymised peer-fund averages, (5) broker scorecards.

BTCA's strength is full integration with Bloomberg Terminal, letting you see the book, the executions, and TCA on the same screen. The downsides are high licensing cost (>$2,000/month per user) and the perception that coverage skews U.S./EU, with relatively weaker Asia depth.

Virtu Pre-Trade Analytics — Inherited from ITG

In 2019, Virtu Financial acquired ITG (Investment Technology Group) for about USD 1 billion, absorbing 30 years of TCA and execution-algo intellectual property. Virtu Pre-Trade Analytics today is built on the ITG ACE (Agency Cost Estimator) heritage. The famed ITG Algo Wheel was expanded into a unified automated routing engine post-Virtu.

How the Algo Wheel works: train on six months of broker/algo-pair TCA data (IS bp, fill rate, reversion), and on arrival of a new order, automatically route to the optimal broker/algo for that symbol/size/market condition. Tradeweb's AiEX (Automated Intelligent Execution) follows the same concept. As of 2026, roughly 60% of the global buy-side uses an algo wheel (Greenwich Associates 2025 report).

big xyt — European Market Data and Liquidity Heatmap

big xyt (HQ Frankfurt, founded 2014) normalises trade data across 50+ European venues (Lit, Dark, SI, Periodic Auction) and provides market data for TCA. The flagship product is the Liquidity Cockpit — a per-symbol, time-bucketed liquidity heatmap — letting PMs visually answer "for this symbol, at this size, at this time of day, where should we trade to minimise slippage?"

big xyt's strength is precise classification of MiFID II constructs in Europe: LIS (Large In Scale) waivers, Reference Price Waivers, and SI (Systematic Internaliser) trades. In 2023, a partnership with LSEG strengthened UK-venue coverage.

BMLL Technologies — Historical LOB Data

BMLL Technologies (London, founded 2014) holds Level 3 order book history across 60+ global exchanges. Level 3 means every order add/cancel/execute message, preserved at microsecond resolution — essential for historical backtests and retrospective TCA. BMLL Data Lab (a Python/Jupyter environment) lets quant researchers replay their algos against historical LOBs.

In 2022, BMLL raised about USD 26M in Series B. Customers include J.P. Morgan, FactSet, and Refinitiv. The differentiator is data depth (>5 years of full L3 history) and accuracy (exchange-native messages preserved without normalisation loss).

Tradeweb AiEX + Best Ex — Fixed-Income and FX TCA

Tradeweb is the bond/FX/ETF trading platform; in 2025, approximately 25% of global bond volume traded through Tradeweb. AiEX (Automated Intelligent Execution) is the fixed-income equivalent of an algo wheel: train on historical RFQ (Request For Quote) response data, then on a new order route the RFQ to only the 3-5 dealers most likely to deliver the best price.

Fixed-income TCA differs from equity TCA in several ways: (1) order books are absent or partial, (2) trades are RFQ-based so partial fills are rare, (3) benchmarks rely on external trade composites (TRACE last-5-minute average, ICE BAML composite price), (4) best-ex duties are looser than in equities. Tradeweb's TCA reflects these by reporting dealer-by-dealer hit rate, price-improvement bp, and response-time as headline KPIs.

MiFID II RTS 27/28 + SEC Rule 605/606

EU MiFID II enforced RTS 27 (venue price/cost/speed reporting) and RTS 28 (firm best-execution reports) since 2018. RTS 27 was suspended in 2021 and confirmed for repeal under the 2024 MiFIR review. RTS 28 requires quarterly disclosure of the top-5 venues by volume and an annual qualitative/quantitative report on best-ex policy outcomes.

In the U.S., SEC Rule 605 (in force 2001, revised 2024) requires market makers to publish monthly execution-quality statistics (effective spread, price improvement, fill rate). SEC Rule 606 (revised 2018) requires broker-dealers to publish quarterly order-routing statistics (where flow was routed and what inducements were received). The 2024 revisions strengthened disclosure for retail orders.

RegulationRegionSubjectFrequencyHeadline Items
MiFID II RTS 27EUVenuesQuarterly (repealed 2021)Trading costs, speed
MiFID II RTS 28EUInvestment firmsAnnualTop-5 venues, Best Ex
SEC Rule 605USMarket makersMonthlyEffective spread, price improvement
SEC Rule 606USBroker-dealersQuarterlyOrder routing, inducements
KOFIA Best ExKRSecurities firmsQuarterly (from 2025)Venues, TCA
JSDA Best ExJPSecurities firmsAnnualVenue disclosure

Korea — Mirae Asset / KIS / NH IB TCA + KOFIA Guideline

TCA adoption in Korean brokers accelerated in the 2020s. Mirae Asset Securities operates an in-house MAE (Mirae Asset Execution) TCA with reporting for both internal traders and external buy-side. Korea Investment & Securities (KIS) uses Bloomberg BTCA; NH Investment & Securities uses Liquidnet/ITG (Virtu) TCA.

KRX (Korea Exchange) trading is a single-venue environment, so venue analysis is simpler than in the U.S./EU. Instead, order book depth, MOC closing-auction participation rate, and after-hours close-price trading utilisation are the headline TCA metrics. In June 2025, KOFIA revised its Best Execution Guideline, effectively requiring brokers serving asset managers to submit quarterly TCA reports. Breaches trigger KOFIA self-regulatory procedures (recommendations, warnings, suspension of membership).

Korean BrokerTCA PlatformStrengthNotes
Mirae Asset SecuritiesIn-house MAE TCA + Bloomberg BTCADomestic/global integrationIn-house algo wheel
Korea InvestmentBloomberg BTCABloomberg integrationGlobal buy-side coverage
NH InvestmentLiquidnet/VirtuExternal buy-side collaborationDark-pool usage
Samsung SecuritiesBloomberg BTCA + in-houseStrengthened Best-Ex policy2025 guideline ready
KB SecuritiesRefinitiv Eikon TCAFixed-income strengthFX/bond integration
Shinhan SecuritiesBloomberg BTCAEquities-focusedAlgo wheel pilot

Japan — SBI / Nomura + JSDA / SESC Monitoring

Japanese TCA adoption is slightly ahead of Korea. Nomura operates an in-house NX (Nomura Execution) TCA, integrated with its Instinet subsidiary to serve the global buy-side. SBI Securities uses Bloomberg BTCA; Daiwa uses Virtu Pre-Trade. Mizuho and SMBC Nikko both use Bloomberg BTCA.

A peculiarity of the Japanese market is that the PTS (Proprietary Trading System) — Japan's dark pool/MTF analogue — Japannext PTS and Cboe Japan (formerly Chi-X Japan), holds a smaller share than U.S./EU equivalents (about 5-7% of total volume). Venue analysis carries less weight; instead, MOC analysis and ToSTNeT-3 (after-hours, non-closing) usage analysis matter more. SESC began intensifying algo-trading monitoring in 2024, with quarterly surveillance of major buy-side algo patterns.

Broker Scorecard — SQL Reporting Query

A broker scorecard evaluates each broker quarterly across slippage, fill rate, reversion, and other dimensions. Example SQL.

-- Broker scorecard quarterly report (PostgreSQL)
WITH parent_orders AS (
  SELECT
    p.parent_order_id,
    p.broker_id,
    p.symbol,
    p.side,
    p.qty_total,
    p.decision_price,
    p.arrival_price,
    p.close_price,
    DATE_TRUNC('quarter', p.decision_ts) AS quarter
  FROM parent_order p
  WHERE p.decision_ts >= '2026-01-01'
    AND p.decision_ts <  '2026-04-01'
),
fills_agg AS (
  SELECT
    f.parent_order_id,
    SUM(f.qty)                            AS filled_qty,
    SUM(f.qty * f.price) / NULLIF(SUM(f.qty), 0) AS avg_fill_price,
    COUNT(*)                              AS n_fills,
    MIN(f.exec_ts)                        AS first_fill_ts,
    MAX(f.exec_ts)                        AS last_fill_ts
  FROM child_fill f
  GROUP BY f.parent_order_id
),
scorecard AS (
  SELECT
    p.broker_id,
    p.quarter,
    COUNT(*)                              AS n_orders,
    SUM(p.qty_total)                      AS total_notional_qty,
    AVG(
      CASE WHEN p.side = 'BUY'
           THEN (fa.avg_fill_price - p.arrival_price) / p.arrival_price * 10000
           ELSE (p.arrival_price - fa.avg_fill_price) / p.arrival_price * 10000
      END
    )                                     AS avg_is_bps,
    AVG(fa.filled_qty / NULLIF(p.qty_total, 0)) * 100 AS avg_fill_rate_pct,
    AVG(EXTRACT(EPOCH FROM (fa.last_fill_ts - fa.first_fill_ts)))
                                          AS avg_execution_seconds,
    STDDEV(
      CASE WHEN p.side = 'BUY'
           THEN (fa.avg_fill_price - p.arrival_price) / p.arrival_price * 10000
           ELSE (p.arrival_price - fa.avg_fill_price) / p.arrival_price * 10000
      END
    )                                     AS is_volatility_bps
  FROM parent_orders p
  JOIN fills_agg fa ON p.parent_order_id = fa.parent_order_id
  GROUP BY p.broker_id, p.quarter
)
SELECT
  broker_id,
  quarter,
  n_orders,
  ROUND(avg_is_bps::numeric, 2)            AS avg_is_bps,
  ROUND(avg_fill_rate_pct::numeric, 2)     AS fill_rate_pct,
  ROUND(avg_execution_seconds::numeric, 0) AS exec_seconds,
  ROUND(is_volatility_bps::numeric, 2)     AS is_stddev_bps,
  RANK() OVER (PARTITION BY quarter ORDER BY avg_is_bps ASC) AS rank_by_is
FROM scorecard
ORDER BY quarter DESC, avg_is_bps ASC;

Execution Algo Wheel — Automated Broker Routing

The Algo Wheel is an automated routing engine integrated into the buy-side's OMS (Order Management System) or EMS (Execution Management System). Inputs: symbol, size, side, urgency. Output: optimal broker/algo pair. Training data: the firm's own 6-12 months of TCA records (IS bp, fill rate, reversion).

Operationally: (1) every day, bucket all child orders by broker-algo-symbol-size-bucket-volatility-bucket, (2) compute average IS bp per bucket, (3) on a new order, narrow to the top K candidates (typically 3-5), (4) balance exploration vs. exploitation with Thompson sampling or epsilon-greedy, (5) update the model with fresh outcomes. By 2026, around 60% of the global buy-side runs an algo wheel.

MOC vs. LOC vs. Auction TCA — Closing Mechanisms

Closing auctions (MOC = Market On Close, LOC = Limit On Close) require different TCA handling than continuous trading. NYSE Closing Cross, Nasdaq Closing Cross, LSE Closing Auction, KRX closing single-price auction, and TSE Closing Auction each gather orders for 5-10 minutes and execute at a single uniform price.

Key MOC TCA benchmarks are (1) the mid-quote right before the auction, (2) the auction's first imbalance message, and (3) the final auction print. MOC orders are dominated not by market impact but by imbalance cost — the auction imbalance pushing price in one direction. Index-fund rebalance days frequently show MOC imbalance cost dominating, sometimes exceeding 80% of full-day IS.

Closing Thoughts — Where TCA Is Headed in 2026

TCA in 2026 has two major themes. First, AI-driven algo-wheel adoption goes mainstream — over 50% of buy-side use automated routing, which means sell-side algo competition effectively converges into a TCA-record competition. Second, real-time TCA — the centre of gravity shifts from after-the-fact analysis to in-trade monitoring. <5ms latency slippage alerts are becoming the norm.

Regulation is also in motion. The EU MiFIR review is nearing a decision on strengthening vs. relaxing RTS 28; in the U.S., the SEC is advancing tighter PFOF (Payment For Order Flow) rules along with a new Reg Best Ex. Korea's KOFIA guideline is set to expand into more quantitative reporting in 2026-2027; Japan's JSDA is similarly revising its algorithmic-trading guidance.

Practitioner next steps: (1) automate your own 4-bucket cost decomposition, (2) internalise pre-trade simulations with Almgren-Chriss plus the square-root model, (3) introduce an algo wheel in stages (shadow mode first, real trading later), and (4) standardise a quarterly broker scorecard. These four are the baseline benchmark of TCA maturity in 2026.

References

  1. Perold, André F. "The Implementation Shortfall: Paper Versus Reality." Journal of Portfolio Management, Spring 1988.
  2. Almgren, Robert, and Neil Chriss. "Optimal Execution of Portfolio Transactions." Journal of Risk, Vol 3, 2000.
  3. Kissell, Robert, and Morton Glantz. Optimal Trading Strategies: Quantitative Approaches for Managing Market Impact and Trading Risk. AMACOM, 2003.
  4. Obizhaeva, Anna, and Jiang Wang. "Optimal Trading Strategy and Supply/Demand Dynamics." Journal of Financial Markets, Vol 16, 2013.
  5. Bouchaud, Jean-Philippe, J. Bonart, J. Donier, M. Gould. Trades, Quotes and Prices: Financial Markets Under the Microscope. Cambridge University Press, 2018.
  6. Almgren, Robert, Chee Thum, Emmanuel Hauptmann, and Hong Li. "Direct Estimation of Equity Market Impact." Risk Magazine, July 2005.
  7. Tóth, Bence et al. "Anomalous price impact and the critical nature of liquidity in financial markets." Physical Review X, 2011.
  8. Bershova, Nataliya, and Dimitri Rakhlin. "The non-linear market impact of large trades." Quantitative Finance, Vol 13, 2013.
  9. Bloomberg L.P. "BTCA — Bloomberg Transaction Cost Analysis." https://www.bloomberg.com/professional/product/transaction-cost-analysis/
  10. Virtu Financial. "Virtu Analytics — Pre-Trade and Post-Trade." https://www.virtu.com/products/analytics/
  11. J.P. Morgan. "SquareEdge — Execution Analytics." https://www.jpmorgan.com/markets/execution/algorithmic-trading
  12. big xyt GmbH. "Liquidity Cockpit and Trade Cost Analytics." https://www.bigxyt.com/
  13. BMLL Technologies. "Level 3 Order Book History and Analytics." https://www.bmlltech.com/
  14. Tradeweb Markets. "AiEX Automated Intelligent Execution." https://www.tradeweb.com/our-markets/data---reporting/ai-ex/
  15. European Securities and Markets Authority. "MiFID II RTS 28 — Annual Best Execution Disclosure." https://www.esma.europa.eu/
  16. U.S. Securities and Exchange Commission. "Rule 605 and Rule 606 — Disclosure of Order Execution and Routing Information." https://www.sec.gov/divisions/marketreg/rule605faq.htm
  17. Korea Financial Investment Association (KOFIA). "Best Execution Guideline (2025 Revised)." https://www.kofia.or.kr/
  18. Japan Securities Dealers Association (JSDA). "Best Execution Policy Guidelines." https://www.jsda.or.jp/
  19. Greenwich Associates / Coalition Greenwich. "2025 Equity Trading Trends — Algo Wheel Adoption Survey." 2025.
  20. Plexus Group / ITG. "Universal TCA Platform — Historical Background." (Acquired by Virtu 2019.)