---
# System prepended metadata

title: Arrakis IL calculation

---

# Arrakis IL calculation

## Goal
Calculate IL of the pool and display it as a projected APR based on the 24h of past performance.

IL is calculated between 2 points: $t_0$ and $t_{-1}$
Where $t_0$ is current time, and $t_{-1}$ is 24 hours before.

## Challenges

The pool is constantly rebalanced.

Users add/remove liquidity all the time.

Token prices change every block.

## Proposal
1. Get current `token0` + `token1` amounts in Arrakis vault at block number $t_0$.
2. Get current total supply of Arrakis LP tokens at block number $t_0$
3. Calculate block number for $t_{-1}$
4. Get `token0` + `token1` amounts in Arrakis vault at block number $t_{-1}$
5. Get total supply of Arrakis LP tokens at block number $t_{-1}$
6. Calculate the USD value of current ($t_0$) `token0` + `token1` based on current prices
7. Calculate the USD value of past ($t_{-1}$) `token0` + `token1` based on *current prices* (not past prices)
8. Calculate average USD value of 1 Arrakis LP token at block number $t_0$
9. Calculate average USD value of 1 Arrakis LP token at block number $t_{-1}$
10. Calculate the change in prices from $t_{-1}$ to $t_0$
11. Project APR to 365 days

## Example:
- $t_0$ current block 83601585 (Optimism)
- $t_{-1}$ past block 83374720 (Optimism)
- pool wstETH/USDT 0.05% `0x95d7d146ae40d4822c2750276b54b6eed530d374`
1. `token0` = 85096456178279655213, `token1` = 247177751051
2. LP = 19548736484492746
3. $t_{-1}$ = 83374720
4. `token0` = 47667622993098469466, `token1` = 148488773140
5. LP = 11424262734326879
6. Total locked at $t_0$: $413 181.54
    - `token0` 85.096456178279655213 * 1947.724872 = $165744.48
    - `token1` 247177.751051 * 1.001049089111929728 = $247437.06
7. Total locked at $t_{-1}$: $243 643.10
    - `token0` 47.667622993098469466 * 1991.844335 = $94946.48
    - `token1` 148488.773140 * 1.001399804400975856 = $148696.62
8. LP price at $t_0$: $413181.54 / 19548736484492746 = $0.00000000002113597164
9. LP price at $t_{-1}$: $243643.10 / 11424262734326879 = $0.00000000002132681168
10. 24h change = 0.99105163758823981888 (**-0.89%**)
    - $0.00000000002113597164 / $0.00000000002132681168
11. IL APR: **-326.61%**



## Subgraph links

`https://thegraph.com/hosted-service/subgraph/tnkrxyz/arrakis-finance-optimism`

```graphql
{
  vault(id:"0xe9cf1b50420532f3197fc0211a4bbef67c6761f9", block: {number: 83601585})
  {
    id
    name
    symbol
    inputTokenBalance
    _token0 {
      symbol
      decimals
      lastPriceUSD
    }
    _token1 {
      symbol
      decimals
      lastPriceUSD
    }
    _token0Amount
    _token1Amount
  }
}
```