Thursday, February 29, 2024

AMM LP Unprofitability: irrationality, volatility premium, or passive trading?

 A puzzling aspect of automated market makers (AMMs) is that LPs, in aggregate, lose money, and no one seems to care. Uniswap is the most prominent AMM developer here, currently worth $9B. Uniswap's docs page only indirectly addresses LP profitability, pointing to theoretical papers with no data (link) or anecdotal empirical blog posts from 2019 (link).

If you search this topic and look for an empirical analysis, you generally get a discursive analysis that is not even wrong. For example, one paper states

Our supporting data analysis of the risks and returns of real Uniswap V3 liquidity providers underlines that liquidity providing in Uniswap V3 is incredibly complicated, and performances can vary wildly"

This could be said about anything one does not understand. The most focused prominent empirical study was done in 2021 by Topaze Blue, and even there, the best they could say was that half of LPs lose money, which is almost meaningless: By count or capital? Were the losses of greater or lesser magnitude than the profits? Was it only the stupid ones? Invariably, the few empirical investigations out there break the data into a dozen subsamples and present hundreds of points in a scatter plot but no table with a simple "average LP profitability." 

I have been posting about AMM LP profitability since 2022, and the trend is consistent: major pair LPs lose money.[1]

LP profitability is a significant problem. Transformational technologies like the internet and the automobile experienced consistent exponential growth for decades, while AMM usage peaked two years after its introduction and has not recovered. This is related to AMM profitability, which is not simply a question of fees, as indicated by the comparable loss rates for Uniswap's 30 bp (basis point, 0.3%) pool and its 5 bp pool, and those for TraderJoe's 22 bp pool. LPs in the capital-efficient pools consistently lose money.

Interestingly, Uniswap's initial v2 pool, which uniquely has only an unrestricted range, has been consistently profitable for LPs since it started in April 2020, but the new capital-efficient restricted range approach immediately overshadowed it, so it's of limited relevance today. However, this gives a clue as to what drives LP profitability in the common restricted range pools, as it is clearly not fundamental to the blockchain (e.g., MEV).

To recap, the LP pnl can be broken into three parts.

LP pnl = + price change of tokens + fees - convexity costs

The effect of the token price change on the underlying pool dominates the other components by a factor of 100. As this risk is orthogonal to the LP's position and hedgable, we can eliminate this factor to see LP profitability more clearly. That gives us

LP pnl = fees - convexity costs

Fees are easy to see, but convexity costs are subtle and do not show up unless you go out of your way to calculate them. For example, if you deposit 1 ETH and $2000 in a pool, and the price of ETH rises to $2400, you pull out 0.91 ETH and $2191 for a profit of $382 without fees. You made money, but it is not obvious you lost $18 due to convexity costs (see here for videos on calculating pnl).

Cause #1: Irrationality

Crypto is filled with conspicuous irrationality, where celebrities and shills promote coins without a legitimate use case, enabling insiders to make a lot of money. Yet this should be de minimus in liquid markets with open entry and exit. However, there is a subtle selection bias akin to the winner's curse, where an auction winner tends to overpay because the most optimistic bidder necessarily wins. Similarly, perhaps LPs tend to underestimate convexity costs or overestimate volume. If expectations are normally distributed, and the most optimistic become LPs, they could lose money due to their collective overconfidence in their subjective estimations.[2] That would seem just as likely in Uniswap v2, where we see profits, so it cannot be a sufficient explanation by itself.

 The capital efficiency in Uniswap v3 levers a v2 LP position. Assume an LP considered a pool where the v2 return on investment, net of convexity costs, generates a 2% APY. Unlike many YouTube influencers promising 100%+ returns, such a return is not absurd. With concentrated liquidity, restricting a range to 20% +/- up and down reduces the required capital by 90%, like 10x leverage. This turns a 2% return on a v2 pool into a 21% return. Below, we see the effect of restricted ranges on the base 2% APY. Each LP position has the same capital invested, but as the range narrows, the returns are amplified.

Market value and liquidity for various ranges

Current price = 2000

APY for v2 is assumed to be 2%


Thus, if one thinks the pool is profitable like a v2 pool, given the average range is +/- 10%, that's an attractive return. A minor overestimation can become compelling in this framework. This plays perfectly with the ubiquitous overconfidence bias, in that not only will the overoptimistic LP see a significant return, but also reason they can outperform their LP peers by applying their capital to a more concentrated range than average. For example, if Bob puts down $1k in a 10% range, Alice can put $1k into a 5% range, double Bob's profit, and proudly boast she is the best at LPing.

The problem is subtle because LP profitability is linear in liquidity at the margin or partial equilibrium analysis. In general equilibrium, more liquidity will not change volume much, and Bob and Alice get the same revenue split if they each supply 10 or 100 units of liquidity. However, their convexity costs will increase 10-fold with certainty. Uniswap v3 is especially sensitive to overconfidence in a way that does not apply to the v2 approach, where this mechanism is absent.

#2: Inverse Vega Premium

In tradfi, there's a return premium to being short convexity, often called the volatility premium. One can see it in variance swaps, straddles, and futures on implied volatility (e.g., short VXX ETF). It is present in all developed equity markets and has a similar risk to the stock market, underperforming in crises like the last big recession in 2008 or the brief collapse in March 2020. It makes sense that a short volatility/gamma position will generate a premium like the stock market because it has a similar risk profile, substituting exposure to this risk factor. In contrast, crypto's volatility premium goes the other way. For example, here is a chart of the total return for a few major equity markets from Nomura research.

Here's the current implied volatilities for the SPY, the US equity index ETF. Volatilities are higher for the lower strikes, as the market anticipates volatility will increase if the price falls.

Here are the Bitcoin implied volatilities on Deribit. Here, the market expects volatility to rise when the price rises. The crypto-implied volatility smirk goes in the opposite direction as the equity smirk.  

Intuitively, this makes sense, as volatility rises when crypto is mooning. I took daily data for the US stock market since 1926 and ETH and BTC data from 2016 to document this. I then calculated each week's total return and volatility using the 5-ish data points. It shows that, unlike equities, returns are highest in the top volatility decile and lowest in the lowest volatility decile. Thus, in crypto, being long volatility is like being long the market, which should generate a risk premium.

If long crypto volatility positions generate a positive return, short volatility generates a negative return. In crypto, unlike equities, being long volatility is like being long the underlying. If the expected return on crypto is positive, so is the return on being long volatility. If short crypto volatility had a positive return, one could short volatility as an LP and then go long crypto, generating a hedged portfolio that makes a profit on both legs, arbitrage. I don't have data on implied volatilities from Deribit, but it would be interesting to know the averages over the past couple of years.

Given a positive expected return for volatility, an LP position is like a standard hedge, costly. At the very least, it lowers the market pressure for positive returns on negative-convexity positions, like a constant product AMM LP.

#3: LP Positions as Resting Limit Orders

I recently discovered that many LP positions are passive trading tactics (ht @ryskfinance). For example, if I post 1 ETH just above the current ETH price, as soon as the price jumps through my range, I will have sold ETH while getting paid the trading fee instead of paying it. This isn't a free lunch, as statistically, the price will be significantly higher than the range when one removes that position, implying you could have sold it for more, classic adverse selection. The efficacy of this tactic depends on many parameters, so I won't get into whether this is a good idea. I want to see if it adds up to anything substantial.

If many LPs effectively trade this way, they may lose money on the convexity implied by their positions. Still, as they have a different objective, that's not a problem. We need to estimate LP profitability when we remove these players, as they could be biasing the aggregate profitability statistics.

To estimate their effect, I took all the mints and burn for the Uniswap v3 ETH-USDC 5bp pool from Jan 1, 2023, through Feb 14, 2024. I only included LP positions that completed a round-trip, with both an add and remove in the time frame, where the add and remove were single transactions. I classified an LP position as a passive-trade if its initial range was above or below the current price and held for less than seven days, and the deposit and withdrawal were completed in a single transaction. I also excluded those LP positions with zero token changes, as these would have never been touched and are irrelevant to LP risk or revenue.

LP positions

Between 1/1/23 and 2/16/24

The table above shows that these passive-trade LP positions accounted for 5% of the total mints over those 409 days. The absolute USDC change for these LPs is not the total amount traded in LP positions, just the net. For example, if the price moved across a range in one transaction and were then removed in the next block, the LP's net USDC change would equal their gross USDC change. If the price moved into the range and bounced around from the upper to lower price bound, the gross USDC traded would be much greater than the net USDC traded. The average duration for passive-trade LP positions was only half a day, and the median range size was 0.2%, so they do not generate significant fees outside of the tokens needed to push the price across their range.

To estimate their effect on the total LP convexity costs, I used the initial and ending price, the LP range's lower and upper price bounds, and their liquidity. For example, in the range below, from 125 to an upper price of 175, if the initial price is at p0, around 115, the range is above the current price. Only one token will be offered for these positions, and the range will be either above or below the initial AMM price. 

The formula I used for the convexity cost was

Conv cost = liquidity * (sqrt(p0) – sqrt(p1))^2 / sqrt(p0)

Here, p0 is the first price in the range crossed, and p1 is the more extreme final price relevant to the LP position. This captures the cost of an LP position from its negative convexity. The profit for the LP position was hedged once at inception, excluding fees (and, thus, always a loss). As explained in my post last Tuesday, the static hedge does not change the expected cost of convexity cost. Still, it eliminates the first-order effect of the simple position delta, which would otherwise increase the volatility of these data points by a factor of 100. While a better estimate would update a hedging ratio daily, that would take ten times more work for me. My approach below, which presumes a static hedge, generates an unbiased estimate that is sufficiently efficient given the thousands of LP positions in my sample.

The tricky thing about restricted ranges is the three cases mentioned above, where a range is above, below, or straddling the current price. These require different formulas for estimating the number of tokens in the position and the convexity cost for the LP over its life. There are three cases for the initial state and when the position is removed, for a total of nine combinations. Below is how these nine cases map into the prices used in the above equation.

price points used for LP positions based on range position

The total costs are listed below. I present three different convexity cost calculations, which highlight the standard error in these approaches. All approaches rely on different assumptions, but they give confidence in their approximate magnitude.  

Convexity Costs
1/1/23 through 2/16/24

 

Cashflow: USDCin + ETHin * endPrice – 0.05%*abs(USDCtraded)
Sqrt()2: liquidity * (sqrt(endPrice) – sqrt(initPrice))^2 / sqrt(initPrice)
Variance: 2 * liquidity * sqrt(initPrice) * variance / 8
Data were calculated daily and summed from 1/1/23 through 2/16/24

While the passive-trade LPs represented only about 5% of the total convexity cost, this is significant because LP losses are driven by costs about 9% greater than revenues. In this period, the average daily net LP profits in this pool were about -13k daily, comprising around $141k in fee revenue and 154k in convexity costs (see explainer here). If we subtract $3.6MM/409 from the convexity costs, the daily pnl loss falls to $4k per day.

Anyone who has worked with large datasets knows many problems are only discovered through experience. I have only been investigating this effect for a few days; my LP convexity cost numbers are tentative.

Conclusion

AMM LP unprofitability is a problem, but perhaps not as puzzling as I thought. The LP positions that are put on primarily as a passive limit order to buy below the current price or sell above the current price significantly bias standard LP profitability, as these LPs are not providing liquidity to make money as a liquidity provider but instead are trying to implement conditional trades (resting limit orders). This effect seems responsible for most of the LP losses.

While the race to narrow ranges generates negative externalities many LPs do not appreciate, over time, losing money tends to disabuse even the most deluded. The anomalous long volatility premium reduces the tendency for LPs to demand large positive returns for being short volatility, as a premium for being short vol/gamma/convexity would not be an equilibrium, given volatility and returns are positively related in this asset class. I suspect both are relevant, but it isn't easy to know how much. 

I hope more people will address this problem because, as noted initially, very few papers estimate average LP profitability. Often, a yield farm is built on something like a constant product AMM, and the farmer dapp just adds up the fee revenue (and airdrops!) to generate highly misleading APYs. While the recent crypto bull market covers up many bad business models, in the long run, dapps built on LP tokens with a zero or negative, long-run return are not going to make it. I realize most people in this space don't care about the long run, though they would never admit it publicly. Nonetheless, many do, and they should prioritize decentralization and sustainable mechanisms. A sustainable AMM must generate profits for its LPs. 


There are a bazillion long-tail AMMs, and the ability to permissionlessly create trading pairs on meme coins does seem a sustainable model in that there's a perennial influx of new coins. Further, as these coins are not listed off-chain, the LPs may be able to avoid adverse selection by being connected to insiders. This increases risk to idiosyncratic scams frequent in these coins, so pulling general statistics is a second-order consideration.

2 The analogy to the winner's curse is not perfect because everyone who wants to become an LP is treated the same on a pro-rata basis, while for an auction, only the top bidder pays for and gets the item. Nonetheless, it highlights the selection bias to buyers.

No comments: