← SafeVault Academy How to calculate the ROI and performance of a liquidity pool

How to calculate the ROI and performance of a liquidity pool

The ROI of a liquidity pool measures how much the position has earned relative to the capital you put in. In its simplest form:

ROI = (current value + fees received − capital deposited) ÷ capital deposited

This formula works well for a position with a single deposit. When there are deposits and withdrawals over time, it distorts the result, and you need a method that accounts for when each dollar went in.

Simple ROI calculation: a worked example

You deposit $10,000 into a pool. Sixty days later:

  • Current position value: $10,300
  • Fees already collected: $450
  • Pending fees: $150

ROI = (10,300 + 450 + 150 − 10,000) ÷ 10,000 = 9% over 60 days.

Notice that collected fees are part of the calculation. They left the position and went to your wallet, but they're still returns from the pool. Forgetting collected fees is the most common mistake people make when calculating ROI by hand.

Realized vs. unrealized profit

Part of the result is already in your pocket; part still depends on price. In market terms, this is called realized and unrealized profit:

  • Realized: fees already collected and gains locked in through withdrawals. In the example, the $450 collected.
  • Unrealized: the appreciation of the open position and pending fees. In the example, $300 in appreciation + $150 pending = $450.

Together they make up the $900 (9%) ROI, but they don't carry the same weight: the unrealized portion can still shrink if the price drops or the position goes out of range.

The problem with deposits and withdrawals

Now imagine you started with $10,000 and, on day 15 of a 30-day period, deposited another $10,000. At the end of the month, the position plus fees is worth $20,600.

  • Gain: 20,600 − 10,000 − 10,000 = $600
  • Simple ROI on total deposits: 600 ÷ 20,000 = 3%

That 3% understates the result: the second deposit was only working for half the month. Treating both deposits as if they'd been there from the start dilutes the return.

Time-weighted ROI: Modified Dietz (MWR)

The Modified Dietz method, a form of money-weighted return (MWR), weights each deposit or withdrawal by the fraction of the period it was invested:

Return = gain ÷ (starting capital + Σ deposit × fraction of the period it was invested)

In the example: 600 ÷ (10,000 + 10,000 × 0.5) = 600 ÷ 15,000 = 4%. This is the return that reflects the capital actually at work during the period. Withdrawals are entered with a negative sign, following the same logic.

How to annualize the return (APR)

To compare positions held for different periods, convert the return into an annual rate:

APR ≈ period return × 365 ÷ days in the period

In the first example, fees totaled $600 over 60 days on $10,000: 6% × 365 ÷ 60 ≈ 36.5% per year in fees. Be careful with very short periods: a single day of exceptional volume, annualized, turns into an unrealistic APR.

ROI isn't everything: add pool vs. hold

ROI tells you how much you earned on your capital. It doesn't tell you whether simply holding the tokens would have been better. In a bull market, a position can have a positive ROI and still lag behind holding because of Impermanent Loss. That's why a complete analysis combines ROI, fee APR and pool vs. hold.

LP performance metrics

  • Total capital deposited
  • Current position value
  • Pending and collected fees (including rewards such as AERO)
  • ROI for the period, accounting for deposits and withdrawals
  • Fee APR
  • Pool vs. hold

The SafeVault Performance Tracker does this math automatically from each position's events, with deposits and withdrawals weighted by time.

Frequently asked questions

Are ROI and APR the same thing?
No. ROI is the cumulative return over the period; APR is that return converted into an annual rate.

Should I include network fees (gas) in the calculation?
For your net result, yes: they reduce your real gain, especially on small positions or ones you rebalance often.

Why is the ROI in my spreadsheet different from the DEX's?
Usually because collected fees were left out, deposits were treated as if they'd been there from the start, or different reference prices were used.

Conclusion

For a single deposit, the simple formula is enough. With deposits and withdrawals, use a time-weighted return such as Modified Dietz, and annualize it to compare positions.

And remember that ROI is only one piece: combined with fee APR and pool vs. hold, it shows whether the position is really worth it.

Published on Aug 30, 2026 at 4:21 PM UTC

Keep reading

Track your liquidity positions

SafeVault Performance Tracker: fees, APR and real returns of your pools.

Discover the Performance Tracker