Market Impact Risk vs. Timing Risk

Institutions that trade a large volume of financial instruments run into a peculiar problem. For example, when buying a stock you can take an entire position all at once. However, since there might not be enough liquidity on the ask-side of the order book at the desired price, you’ll have to buy shares at increasingly higher prices to execute the entire order. Another effect the large buy order can have is it gives a signal to other traders looking at the stock. The immediate increased pressure on the buy-side of the book may push traders on the ask-side to re-price their limit orders higher to your detriment. The combination of both these negative effects is called Market Impact.

You can instead opt to execute your large parent order in smaller chunks, only revealing small orders to buy throughout a period of time and waiting for the ask-side demand to refill. This introduces another problem: if you take too long in completing your parent order, the price of the stock you are trying to buy can move due to other conditions in the market.

Timing risk occurs when you take too long to complete an order and the price of the stock could end up at a completely different point than what you were initially willing to pay for it at trade decision time. This issue is particularly prominent in volatile industries.

Institutional investors must come up with strategies to assess how to trade. Questions you must address are: to what extent should you break up your parent order, in what time intervals should you place your child orders, and what market indications should be used as triggers to place your child orders? Different strategies trading similar parent orders must be compared to optimize how to simultaneously mitigate both market impact and timing costs, since their effects run counter to one another.

The Nitty Gritty

First things first, we must ensure we have the right data and data quality to group trading strategies for assessment. Afterwards, we’ll describe several common transaction cost analytics and how data should be organized to produce them!

We need:

  1. Your institution’s private data
  2. Links between parent orders to child orders within private data
  3. Public data that trading venues publish (preferably more granular market by order data)
  4. A methodology to link together private data to public data

We can group each batch of parent orders per trading strategy and have links between all child orders to public data to easily calculate TCA metrics like implementation shortfall and processing TCA-related calculations like fill rates per venue, price reversion for specified timeframes, and so on.

Implementation Shortfall

To calculate and compare implementation shortfall metrics we need all 4 data requirements outlined above: access to private data, links between parent orders to child orders, level 1 or more granular public market data, and a way to link our private data to events in the public data feed (this can even take the form of synchronized timestamps).

There are variations on how implementation shortfall can be calculated based on availability of data. We shall assume we have complete level 1 trades and quotes public data. We can place the benchmark price of the parent order at the spread midpoint of the first trade decision time, this requires private data to public data matching. Then we can compare the benchmark to the actual weighted average execution price of all linked child orders.

The formula looks like this:

In comparing implementation shortfall metrics between different trading strategies on similar parent orders, we can begin to see which trading strategy is more effective!

Using a VWAP Benchmark

Many traders also use a volume weighted average price benchmark, or VWAP,  for transaction cost analysis. Having a VWAP benchmark compares the price you achieved trading versus the volume-weighted adjusted price over the period of your order. This requires a precise definition of the “trade horizon” and there is no standard for how long the trade horizon should span. Depending on data availability, the trade horizon could span a day, a portion of a day, multiple days, or precisely from the first trade decision time of a parent order until the last execution associated with the parent order.

This metric can help optimize trading strategies over time in a similar way to implementation shortfall but by using a different benchmark price.

Hit Rates, Fill Rates, and Price Reversion

Other TCA-related metrics that we can calculate to better achieve our “optimal trade” involves organizing and processing data for hit rates, fill rates, and price reversion metrics.

Hit rate analytics tells us the percentage of orders that were actually executed on a trading venue versus how many total orders were sent to that venue. Fill rate analytics tells us the percentage of shares that were actually executed on a trading venue versus how many total shares were sent to that venue. Calculating the hit rate and fill rate per venue is pretty straightforward, all you need is your private add order and execution logs. These analytics are used for ranking venues, seeing where your orders end up, and testing your smart order router.

Price reversion analytics tells us where the stock price moves to shortly after our execution. Calculating price reversion is a bit more complex on the data management side. We require matching private execution logs to the public feed and looking ahead on the public feed by indicated timeframes. This analytic helps us determine which direction prices go after we execute an order and if we may be trading too late or too early.


That’s it for today! Our goal here at TickSmith is to help trading groups maximize their potential. Data preparation, organization, and formatting has been shown to eat up a significant amount of time for quantitative researchers and data scientists. With your data already organized and made usable by our GOLD Platform, your firm will be able to derive much deeper insights on the quality of your trades. You can do it, and we can help!