A Guide for Choosing Optimal Uniswap V3 LP Positions, Part 2

An overview of Uniswap Fees

Liquidity providers collect fees based on trading volume. The total amount of collected fees during a given time window should depend on

  1. The fee tier: 0.05%, 0.3% or 1%
  2. The trading volume.
  3. The total liquidity at the traded tick.
  4. The LP position’s liquidity.
  5. Fraction of time spent inside the upper/lower ticks.
  6. The total amount of time the LP position is deployed
  • Fee accrual rate: the fee tier, trading volume, and total liquidity are dictated by the AMMs smart contract and the market. Thus, when deploying liquidity, users should target Uniswap pools that optimize this quantity (ie. consider the volume, TVL and fee tier).
  • Effective liquidity: The effective size of a position is the product of the amount of assets locked in each tick of the position and the total time spent inside the range of the liquidity position. This is controlled by the liquidity provider when the LP position is deployed.
  • Duration: this is simply the amount of time a position is held before it is removed or rebalanced.

Capital Efficiency and Position Liquidity

Deploying liquidity in Uniswap v3 is more capital efficient than in Uniswap v2. Source: Uniswap v3 whitepaper.
Capital efficiency in Uniswap v3. Left: Deploying to a single tick is >1M times more capital efficient than Uniswap v2. Right: deployed liquidity is equally split into N ticks between the upper and lower limits of the liquidity position.

Time spent In-The-Money

The second factor that influences liquidity returns is the time spent inside the deployed liquidity range. While this quantity is typically not relevant in traditional finance (although it is related to the pricing of Asian options), understanding the expected time a position will remain in-the-money is extremely important in Uniswap v3, as fees are only collected when the price is inside the LP range.

  1. We assumed that the starting position is the geometric mean of the upper and lower ticks: S0 = √(tH*tL). The expression will be more complex if S0 is not equal to the range’s midpoint
  2. The timescale σ²T is small compared to ln(r). This is the same assumption as in our previous, but once again the T_ITM expression will differ somewhat when that’s not the case
  3. We assumed that the price drift term μ is equal to 0. This is also a valid assumption since the annual drift is a few percent per year at the most.
Probability to remain in the money as a function of time, range factor and volatility.

Closed form expression for the effective liquidity

We expect the“effective liquidity” to be a combination of both the capital efficiency of the position and the relative amount of time spent in-the-money. So, combining the expression for the liquidity and the time spent in-the-money, we obtain the following expression:

LP returns as a function of the range factor. Liquidity deployed to a single tick results in LP returns with a √T dependence. Returns become linear for larger r, but never exceed those of single-tick liquidity. Desmos: https://www.desmos.com/calculator/bba8lc6vks
  1. LP returns have a √T dependence. For example, to double the fees collected after 1 day, one needs to wait 3 extra days. We’ll call this phenomenon the radical liquidity drag.
    Takeaway 1: Exit a position early to avoid radical liquidity drag.
  2. LP returns are maximized for very narrow ranges: LP returns for range factors smaller than r~1.05 should lead to a √T dependence that outperforms wider liquidities. Smaller range also helps reduce impermanent loss.
    Takeaway 2: Keep ranges tight.
  3. LP returns become linear in time for larger range factors (r>2).
    Takeaway 3:Being lazy and choosing the full range will drastically reduce LP returns.


In this post, we derived an expression for the expected return of a Uniswap v3 LP position. We found that the effective liquidity of a tightly defined liquidity position can be several times more capital efficient than Uniswap v2. We also derived an explicit expression for the time spent inside a specific range.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Guillaume Lambert

Guillaume Lambert

Asst professor in Applied Physics at Cornell. LambertLab.io PI and proud father. Interests: Biophysics, Math, Crypto, and Options (often all at the same time).