Elastic Pool APR Calculations

Understanding Your Elastic APR

Annual Percentage Rate (APR) calculation

To demonstrate the practicality of the reinvestment curve design, KyberSwap also displays an average APR for each Elastic pool. In order to provide a more accurate estimate of potential APR, the average APR calculation will have to prioritize active liquidity positions which were accumulating fees during a selected time interval. As such, APR calculations are based on the historical data for the selected pool. KyberSwap Elastic APR calculations are based on 30 minute intervals whereby the return per interval is:

Pool FeesTVL InRange100%\frac{Pool\ Fees}{TVL\ In-Range} * 100\%

Extending this over a day, we get the sum for 48 intervals (30 min each). This is the daily return if your liquidity position was in range for the whole day:

0<x48(Pool FeesTVL InRange)100%\sum_{0<x\le 48}(\frac{Pool\ Fees}{TVL\ In-Range}) * 100\%

To get the APR from the last 24 hours of trading data, we multiply the above by the number of days in a year. The final APR calculation is as follows:

0<x48(Pool FeesTVL InRange)100%365\sum_{0<x\le 48}(\frac{Pool\ Fees}{TVL\ In-Range}) * 100\% * 365

Example APR calculation

Scenario

A user holding some ETH and USDT is planning to earn yield for her asset by contributing liquidity to a KyberSwap Elastic Pool. She visits the Elastic Pools page at 10:00 AM, 4th Jan to view the available pools and notices that the ETH - USDT (1% fee tier) Elastic Pool offers the highest APRs. Before committing her tokens, she would like to understand how this APR is calculated.

Assumptions

  • APR is being calculated for the ETH - USDT (1% fee tier) Elastic Pool at 10:00AM, 4th Jan

  • The current price of the pool is 1200

  • Based on the current price, the tick ranges of the pool increases in roughly 1% (~12USD) steps:

Single interval calculation

To calculate the return for the earliest time interval (10:00 AM, 3rd Jan ←→ 10:30 AM, 3rd Jan):

  • 30m Fees = USD2000

  • Pool price at the end of the interval (12 PM, 3rd Jan ←→ 12:30 PM, 3rd Jan). This is used to calculate in-range positions for this interval = 1190

  • Based on above price, the 30m tick range to consider = 1188-1200 (.....1176 - 1188 - 1200 - 1212.....)

  • TVL for active liquidity positions that supported the tick 1188-1200 at 12:30PM, 3rd Jan = USD9000 (aggregate TVL of position 1 + 2 + 3 below)

Liquidity PositionTick RangeTVL (USD)Included

1

1100 - 1200

1000

Yes

2

1152 - 1212

500

Yes

3

1188 - 1236

250

Yes

4

1100 - 1188

500

No

  • Return for the interval (12:00 PM, 3rd Jan ←→ 12:30 PM, 3rd Jan) = (2000/9000) * 100% = 0.00222%

The above calculation is repeated for each of the 48 intervals with the total returns for the day being the sum of all 48 intervals. This is then multiplied by 365 days to get the final estimated APR. For simplicity, assuming all 48 intervals have the exact same fees and TVL, the APR would be 38.93% (0.00222% * 48 * 365 ).

Last updated

Change request #477: Elastic fee tier and token launches