Tidemark: Fees by Reach

This is a follow-up to Tidemark. It builds upon some of the ideas about how to set fees and shares for Between orders.

To recap, Tidemark is a batch auction design that sets each order’s role by its price against the prior best, the closing best bid and best ask of the last auction window. An order at or behind its own side of the prior best is a Maker, one at or through the other side is a Taker, and one priced inside the spread is a Between order. Each of these roles can have its own distinct fees and/or fee shares.

Smoothing the Between to Taker Order Transition

In the original Tidemark piece, Between orders were designed to have both flat fees and flat fee shares. This was done for simplicity. The downside of this simplicity is that it left some jagged edges in fees and shares when an order moves from being a Between order to being a Taker.

As an example, let’s look at the following order book:

  • Prior Best Ask: 100.05
  • Prior Best Bid: 99.95

We will set fees as follows: a 2bps Taker fee rate, a 5% Between rate, and a 25% between order share for when a Between order matches against a Taker order.

With this book and settings, a Between order at 100.04 would pay 0.1bps in fees if matched against another Between order at the same price level. If it matched against a Taker order, it would earn 0.5bps in fees. Now if it had instead been placed at 100.05, it would pay 2bps in fees. The difference between these scenarios is quite large: either a 1.9 or 2.5bps difference in fees.

The difference in fees paid and earned between a Taker and a Between order scales as the take rate and between share increase. In higher fee markets with higher shares, the jump from Between to Taker order can become much more drastic.

This opens up several questions:

  • What effect does having such a large change in fees between two price levels have on trader behavior? Might it shape it in ways that are not beneficial for a market?
  • Should there be a more gradual smoothing out of fees and shares for a Between order as it heads closer towards becoming a Taker order?

While we don’t have the direct answers to these questions, we will explore a potential fee and fee share design that factors in the reach of an order across the book.

Reaching Past the Midpoint

We are going to introduce a concept called reach. Reach happens when a Between order crosses the midpoint of the prior best into its opposite side. In a book of 100.05 ask, 99.95 bid, the midpoint would be 100.00. Any bid from 100.01 - 100.04 would be reaching and any ask from 99.99 - 99.96 would be reaching as well.

We will refer to this reach as rr.

rr scales from 0 to 1. At or behind the midpoint, mm, it is 0. At the far side of the prior best, when a Between order would transform into becoming a Taker, it is 1. Between those two limits it rises in a straight line. For an order at price PP, with the prior best on its own side, the near side NN, and on the opposite side, the far side FF:

r=max⁡(0, P−mF−m),m=N+F2r = \max\left(0,\ \frac{P - m}{F - m}\right), \qquad m = \frac{N + F}{2}

The formula works like this. The top of the fraction is how far the order is priced past the midpoint, and the bottom is the full distance from the midpoint to the far side. At the midpoint the top is zero, so reach is 0. At the far side the two are equal, so reach is 1. Behind the midpoint the top changes sign, and the max⁡\max holds reach at 0. The same formula serves bids and asks: for a sell both distances are measured downward, so their signs cancel. Since any order placed on the far side of the prior best is a Taker, a Between order can’t ever fully achieve a reach value of 1.

In our example book with prior bests of 99.95 and 100.05, the best ask is 5 ticks past the midpoint, so each tick past 100.00 adds 0.2 to the reach. A bid at 100.02 has a reach of 0.4, and a bid at 100.04 has 0.8, the most any Between bid on this book can have. A bid at 99.96 sits behind the midpoint and therefore has 0 for its reach.

Reach can be factored into both Between vs. Taker and Between vs. Between matchups. In the former, the fee share a Between order receives for filling vs. a Taker could scale down as that Between’s reach increases. For the Between vs. Between matchup, the base fee a Between order pays could increase as it reaches more.

We’ll start by looking at how reach could be incorporated into the Between vs. Taker matchup.

Reach in Between vs. Taker Matchup

In the Between vs. Taker matchup, we set the between share to fall with reach. Up to the midpoint, the between share will stay at its normal rate, since the order is not reaching. Beyond that, the share will fall in a straight line toward a second amount, the anchor, aa. The anchor is the share the line arrives at on the far side, where reach is 1:

s(r)=sb+(a−sb) rs(r) = s_b + (a - s_b)\,r

Since no Between order has a reach of 1, no order receives the anchor itself. What the anchor sets is how steeply the share falls: the lower it is, the more each tick past the midpoint takes away. A negative share means the order pays rather than receives. The following list shows some potential anchors to consider:

  • The maker share. This would make it so the Between order trends towards the maker share if it is past the midpoint, a modest difference.
  • Zero. This would have the between share trending towards zero past the midpoint. It would still always provide some form of reward since rr never fully reaches 1.
  • Half the take rate, negative. This would have the Between order shift into paying for its fill past the midpoint, up to half of what a Taker pays.
  • The take rate, negative. This would have the Between share shift into actually paying for its fill past the midpoint. Again, since rr never fully reaches 1, the Between order would still pay less than a Taker order.

Other anchors could be selected, but these four are sufficient to understand the potential implications for our design.

The following lab places these different options, along with the fixed between share option, against an example order book.

Between Share Curves

Hover or click a price to see what a bid placed there earns or pays when a Taker sell fills it. Each curve is one of the anchors above. Change the rates or the spread to see the curves move.

EarnsPaysMakerBetweenTaker−2−1.5−1−0.50+0.5+1Taker sellMidpoint99.9599.97100.00100.04

Bid at 100.04Between: reach 0.8

Always earn

  • Flat+0.50bps
  • To maker share+0.42bps
  • To zero+0.10bps

Can pay near the ask

  • To −½ take rate−0.70bps
  • To −take rate−1.50bps

Compared to the jagged edge of 2.5bps from before, the difference of being a Taker vs. being the most aggressive Between drops to 2.1bps when the anchor is set to zero. Setting the anchor instead to minus a quarter of the take rate (not shown) would have the Between order paying 0.3bps, further collapsing the difference to 1.7bps.

Reaching When Between Orders Meet

Reach can also be applied to the situation where Between orders meet.

While there are various ways fto incorporate reach into the fee, one option is to simply raise the between rate with reach. Up to the midpoint the rate stays at bb. Past it, the rate rises in a straight line toward a ceiling, cc, set as a fraction of the take rate:

b(r)=b+(c−b) rb(r) = b + (c - b)\,r

The improvement charge stays as it is, and the total stays capped at the take rate:

min⁡(b(r)⋅t+i/2, t)\min\big(b(r) \cdot t + i/2,\ t\big)

The ceiling sets how strong the effect is. With cc at 1, an order near the far side pays close to the full take rate, as if it had crossed.

Between Rate by Reach

Use the arrows and Random button to move both Between orders around the book, and choose a ceiling to see how reach changes their fees. Flat leaves out reach. The take rate is set to 2bps, with a 5% between rate. Each tick is 1bps.

Bid @ 100.04

Fills at 100.03, 1 tick better.

Reach, r
0.80
Between rate, b(r)·t
0.42bps
Improvement, i
1.00bps
Half of it, i/2
0.50bps

min(0.42 + 0.50, 2.00)

Pays 0.92bps

Effective price 100.039

the clearing price plus its charge

Ask @ 100.03

Fills at 100.03, its own price.

Reach, r
0.00
Between rate, b(r)·t
0.10bps
Improvement, i
0.00bps
Half of it, i/2
0.00bps

min(0.10 + 0.00, 2.00)

Pays 0.10bps

Effective price 100.029

the clearing price less its charge

Bid pays at each ceiling
CeilingPays
Flat0.60bps
¼0.92bps
½1.32bps
12.00bps
Ask pays at each ceiling
CeilingPays
Flat0.10bps
¼0.10bps
½0.10bps
10.10bps

Midpoint 100.035 rounds down

Conclusion

Incorporating reach into both of the Between matchup designs lets a greyscale emerge for moving from a Maker order to a Between one and finally into a Taker order. This smoother transition better reflects the potential change in intent for a Between order as it moves from the near side to the far side within the spread.

With any of these fee mechanisms, the aim is to gently guide the market towards a better state: one where there are tighter quotes and larger size behind them. For some traders, the opportunity to earn fee shares may make them opt to place orders that rest on the book. This can be a net positive outcome and help deepen liquidity.

What we want to avoid is creating a system where would-be Takers opt to place the most aggressive Between orders too often. Some can be good and can align with the goal of deepening liquidity. However, if it becomes the dominant behavior for Takers, it may have adverse effects for market makers as it could cut into their potential flow.

For any of these fee designs, a balance is necessary. Incorporating reach into Between order pricing is likely to be a useful tool to help achieve this balance. It becomes particularly important when a market has a big difference between the maker share and between share or when the take rate is high. Either of these fee configurations make Between orders starkly different from Maker or Taker orders at the edges. For those cases, some sort of reach incorporation can be useful to smooth things out.

When implementing any of the reach mechanisms presented here, nothing changes for market makers when repricing up to the midpoint. Beyond the midpoint, they can still re-price while factoring in the fee difference. The primary concern to guard against is when the change in fee exceeds the change in price, such as a 1.1bps increase in fee for a 1bps change in price. Such dynamics are likely to interfere with normal re-pricing. In situations like this, traders can still place an order at the midpoint, which could then become the prior best and then again price at the new midpoint etc., so as to move forward without incurring larger fees.

The possibility of fee designs for Tidemark can be extended beyond those presented here. When constructing any sort of mechanism, it becomes important to balance the additional complexity with the potential benefits it might bring to a market.