Methodology

How the index is constructed

The technical companion to the overview. This page states the option-implied valuation of impermanent loss for both concentrated-liquidity and full-range designs, the volatility-surface machinery it consumes, and the realized counterpart used to form the risk premium. The full write-up is available as a white paper (PDF).

1 · Economic setting and notation

Consider liquidity provision between a risky asset and a stablecoin, with ETH-stablecoin as the leading example. The stablecoin is the numéraire, and the listed option surface is taken on the risky asset. More generally the same construction applies to any underlying with a sufficiently liquid option surface.

A concentrated-liquidity position is defined over a price interval [S, Su] with 0 < S < Su. Inside the interval the position continuously rebalances between the two assets; outside it, the provider is effectively fully invested in one side of the pair. The object of interest is the loss of the position relative to a passive benchmark holding the same inventory without rebalancing. That loss is path-dependent after the fact, but under option-replication arguments it can be linked to the risk-neutral distribution of future prices — and therefore inferred from option markets.

Corridors

Ranges are taken symmetrically around the forward price Fτ for horizon τ. For a corridor parameter α ∈ (0,1):

Rα = (1 − α)Fτ , R+α = (1 + α)Fτ The index is evaluated across α ∈ {0.10, 0.15, 0.20, …, 0.90}, producing a surface over horizon and range width rather than a single number.

Notation

SSpot price of the risky underlying
τTarget maturity (for example, 30 days)
FτForward price of the risky underlying at the target maturity
O(K, τ)Out-of-the-money option price at strike K and maturity τ
Rα, R+αLower and upper corridor boundaries
σimp(K, τ)Black-76 implied volatility at strike K and maturity τ
SVIStochastic Volatility Inspired parameterization

The time subscript is suppressed throughout; all calculations are snapshots at a fixed point in time.

2 · Volatility surface construction

The valuation integrals require option prices at arbitrary strikes and at a fixed horizon, neither of which the market quotes directly. The surface is therefore reconstructed before it is integrated.

SVI total variance

For each snapshot and listed maturity, parameters (a, b, ρ, m, σ) are estimated from market data. In log-moneyness k = log(K/Fτ), total variance and implied volatility are

w(k) = a + b ( ρ(km) + (km)2 + σ2 ) , σimp(K, τ) = w(k)τ Before evaluation, log-moneyness is clipped to ±3·a + bσ and total variance is capped at 20. Both are numerical safeguards against explosive tail values, not additional modeling assumptions.

Moneyness grid

Each maturity slice is evaluated on a fixed grid of forward moneyness m = K/Fτ, spanning roughly m ∈ [0.3, 2.0], with strikes Ki = Fτ mi.

Interpolation across maturities

The target horizon rarely coincides with a listed slice. The two bracketing maturities τlow < τ < τhigh are interpolated in total variance, not in volatility, with the forward interpolated linearly:

w(K) = wlow(K) + λ ( whigh(K) − wlow(K) ) , λ = τ − τlowτhigh − τlow The target implied volatility follows as σ = w(K)/τ.

Delta filtering

Black-76 forward deltas are computed on the interpolated smile and the support is restricted to a moderate range — 0.01 ≤ Δcall ≤ 0.99 and −0.99 ≤ Δput ≤ −0.01 — so that the pricing integrals are evaluated only where the smile is numerically reliable rather than on deep-tail extrapolation.

Black-76 pricing

d1 = log(F/K) + ½σ2τ στ , d2 = d1 − στ C = DF·(F N(d1) − K N(d2)) and P = DF·(K N(−d2) − F N(−d1)). The out-of-the-money price is O(K, τ) = P for K < F and C for KF. In the current implementation the rate is zero, so discounted and undiscounted prices coincide.

3 · Implied impermanent loss

Both expressions below are risk-neutral expectations of the liquidity position's underperformance, written as a weighted strip of out-of-the-money options.

Concentrated liquidity (v3)

IILX(α, τ) = 1 R+αRα O(K, τ) K3/2 ( 2KRαKR+α ) dK Only strikes inside the corridor enter the integral. Note what the bracket in the denominator is: the value of the liquidity position when the price ends at K — so each option is weighted by how much that price level matters to the position.

Full range, constant product (v2)

IILX(v2, τ) = 1 O(K, τ)K2 dK With no corridor the weight collapses to 1/K2 across the whole supported surface — the weighting of a variance swap.
Consistency check

A variance swap has fair value (2/τ)∫O(K)/K2dK, so the full-range expression is exactly one eighth of it: IILX(v2, τ) = σ²implied/8. That recovers the standard constant-product result — impermanent loss accrues at roughly an eighth of variance — with implied variance in place of a historical estimate. The realized side satisfies the same identity, which is why the realized full-range series is computed as ⅛ of annualized return variance.

4 · Where the value comes from

The dashed line is the weight each strike receives in the integral; the shaded line is its actual contribution once multiplied by the option price traded there. Narrowing α truncates the corridor and removes the tails from the calculation entirely.

Option strip weighting

Illustrative: forward normalized to 1, flat volatility, 30-day horizon. Both curves are scaled to their own maximum so the shapes are comparable.

5 · Realized impermanent loss and the premium

The realized series applies the same band geometry to spot prices sampled at regular intervals, typically hourly. With S0 the current spot and S1 the next observation, the range is re-centered each step: S = (1 − α)S0, Su = (1 + α)S0.

Position value

VP(S1) = { S1( 1/S − 1/Su ) S1 < S 2S1SS1/Su SS1 < Su SuS S1Su is a liquidity scaling constant; it cancels in the ratio below.

Buy-and-hold benchmark

VH(S0, S1) = { S1( 1/S − 1/Su ) S0 < S (S0 + S1)/S0SS1/Su SS0 < Su SuS S0Su

Aggregation

The one-step loss and its annualized rolling average are

RILstep =VPVHVH , RIL(α, m) = 365A · 1W Σ RILstep For a target horizon of m days at observation frequency with annualization constant A (A = 24 for hourly data), the rolling window is W = mA, subject to a minimum-data requirement. The full-range case is RIL(v2, m) = ⅛ · 365A · Var(ΔS/S) over the same window.

The premium

The impermanent-loss risk premium is the difference between the two sides, ILRP = IIL − RIL, for matching underlying, horizon and range width. IIL measures the level of exposure; ILRP measures the compensation for bearing it.

6 · Pool data: fee returns and APR

The index measures a risk. The pool series measures what that risk was paid. Both are computed on the same hourly clock and the same corridor grid, so a band of the index and a band of the fee series describe the same position.

The position

One dollar is deployed into a Uniswap V3 position at the start of each hour, centred on the pool's current tick, with bounds set by the corridor width α and snapped outward to the pool's tick spacing. The position is liquidated and rebuilt the following hour. It is therefore a sequence of independent one-hour positions, not a single position held over time — which is what makes the result attributable to a stated range rather than to a drift away from wherever the range happened to start.

Fees earned over one hour

Fees come from the pool's own accumulators rather than from an estimate. Uniswap V3 tracks feeGrowthGlobal per unit of liquidity in X128 fixed point; the fee earned by liquidity L between two observations is the growth in that accumulator times L:

feest = L · Δf02128 · P0 + L · Δf12128 · P1 P0, P1 are the two token prices in USD at the end of the interval. The accumulators are unsigned 256-bit counters that wrap, so Δf is taken modulo 2256 in exact integer arithmetic — the operands are of order 1030 and adjacent hours are close together, so the difference would otherwise be lost to floating-point rounding.

Impermanent loss over the same hour

The loss term is the one from §5, in dollars rather than as a ratio: the position value at the end of the hour minus what the same initial holdings would have been worth untouched.

ILt = [ VP(S1) VH(S0, S1) ] · P1 Negative by construction whenever the price moves. Nett = feest + ILt is what the hour actually paid: the fee income less the cost of having provided the liquidity that earned it.

Annualization

The dashboard reports these as rates. For a trailing window of w days:

APRfeew = Σ feest · 876024w , APRnetw = APRfeew + APRILw Summing over the hours in the window, with w = 7 and 30 published. APRIL is the identical construction applied to ILt; since it is negative, the net rate sits below the fee rate.

Two choices in that formula are worth stating explicitly, because plausible alternatives would give visibly different numbers.

  1. Simple, not compounded — hence APR rather than APY. The position is rebuilt at one dollar every hour and nothing is reinvested, so a compounded figure would describe a strategy that is not the one being measured. The gap is not cosmetic: at half a basis point per hour the two conventions read 44% and 55%.
  2. The denominator is elapsed calendar hours, not observations — an hour absent from the pool data is an hour in which no swap occurred, which genuinely earned nothing, so it belongs in the denominator at zero. This deliberately differs from the realized index, where a missing hour still had price movement and dropping it would bias the variance upward.

Rows whose trailing window is not yet fully covered are left empty rather than reported from a partial window, so each series begins w days after the pool's first observation. Every value is stamped at the end of the hour it describes, matching the index convention — without this the same underlying observation would appear an hour apart on the two series.

What the figures exclude

Gas and slippage are not deducted, and the hourly rebuild is assumed costless; in practice both reduce every rate shown. Hours in which the price left the band earn no measurable fee and enter the sum as zero — on the pools published this is roughly 0.001% of hours, since an hourly-recentred position would need a 10% move inside a single hour to escape even the narrowest band. The series describes a hypothetical position, not the return of any particular liquidity provider.

7 · Numerical implementation

Integrals are evaluated on a discrete strike grid K1 < … < Kn with trapezoidal-type weights

ΔK1 = K2K1, ΔKn = KnKn−1, ΔKi = Ki+1Ki−12 On an equally spaced grid this coincides with the standard trapezoidal rule. The corridor grid spans [Rα, R+α]; the full-range grid spans the supported smile.

Workflow

  1. Load market data — SVI parameters, forward, spot and maturity per snapshot.
  2. Select target maturity — exact slice if available, otherwise interpolate between the nearest bracketing slices.
  3. Construct the smile — evaluate SVI on the moneyness grid and convert to implied volatilities.
  4. Filter tails — retain only strikes whose deltas lie in the stable range.
  5. Price options — Black-76 call and put prices on the forward, taking the out-of-the-money side.
  6. Integrate — the corridor formula for each α, plus the full-range benchmark.

8 · References

White paper IILX — The Derive Implied Impermanent Loss Index. L. Schönleber, A. Papanicolaou, S. Dawson. Download PDF →
Derivations The Implied Impermanent Loss in Decentralized Liquidity Provision. A. Papanicolaou, L. Schönleber, T. Li. SSRN →
Implied Impermanent Loss for Concentrated Liquidity. L. Alberici, A. Papanicolaou, L. Schönleber.
Methods Gatheral (2004, 2006), SVI parameterization · Black (1976), forward option pricing · Adams et al. (2021), concentrated liquidity · Heimbach et al. (2022), liquidity-provision risk