Skip to content

Research notes

Liquidity pool fee APR vs net return

A synthetic 30-day LP wallet earns fees and gains 30%, yet trails holding by $610. Reconcile principal, claimed rewards and a prefunded gas reserve.

An ivory sieve with a lime bead hangs above a tray of folded paper, with one paper piece outside a broken rim.
Illustration for research notes; examples in this article are educational.

Liquidity pool fee APR annualizes a fee-income measure under a stated window and denominator. Net return reconciles the position's changing token inventory, fees, incentives and costs over the period you actually held it. Compare that ending value with both starting capital and the same original tokens held outside the pool; a positive fee APR can accompany a loss or a shortfall against holding.

The useful question is how the account changed, including assets outside the position. A fee collection moves tokens from a pool claim into a wallet. It does not create a second reward, and it should not make previously earned fees disappear from the performance record.

Read the rate's window and denominator

A swap fee tier is a percentage charged on trading activity. Fee APR is an annualized measure of fees relative to some capital base. Neither is a fixed payment on your deposit.

The measurement window can be short. Uniswap's Token Details documentation describes the pool APR field as a one-day annualized rate. Its Explore documentation also lists Pool APR and Rewards APR separately. Those labels do not establish what a particular wallet earned over a month.

For an explicitly chosen simple convention, divide the fee value over an observed period by the chosen capital base, then multiply by 365 divided by elapsed days. This does not assume compounding. The distinction between an annualized rate and reinvested growth is covered in the APR versus APY guide.

Save whether the denominator is total pool value, the marked value of in-range positions, average position value or starting capital. Use the same reporting currency for fee income and capital. DEX TVL versus active liquidity explains why capital value and the raw active-liquidity parameter L differ. A rate using one capital base cannot be transferred unchanged to another.

Uniswap's fee documentation says fees accrue to liquidity active at the time of a swap, with allocation proportional to liquidity provided. A position's range, competing liquidity and trading activity therefore affect its own earnings. The separate guide to concentrated liquidity outside its range follows that eligibility boundary.

Start with a complete wallet boundary

Consider this hypothetical 30-day record. It represents no live pool, reward program or KLINEO feature. Token B is assumed to remain worth $1, and ETH is assumed to remain at $2,500 throughout. These fixed prices simplify the illustration; they are not guarantees about actual assets.

At the opening timestamp, the tracked wallet contains:

  • 4 A at $900 each: $3,600.
  • 3,600 B: $3,600.
  • 0.04 ETH reserved for gas: $100.

Starting wallet value is $7,300. The first two balances, worth $7,200, enter an LP position. The ETH stays in the tracked wallet. No external capital is added or withdrawn. Network charges are paid from the reserve. Claimed fees and incentive tokens remain in that wallet without reinvestment or sales. Assume no service fees or taxes in this illustration.

At the cutoff, A is worth $1,600. The hypothetical principal claim contains 2 A and 6,000 B, worth $9,200. Treat those principal quantities as balance inputs to this reconciliation, rather than trying to reconstruct them from an APR. They are consistent with an idealized concentrated-liquidity reserve model; real positions require their actual range and chain state.

Fees are accounted separately from principal in this example. Uniswap's documented position details screen likewise separates liquidity balances from uncollected fee balances. Establish what each field contains before adding them together.

Reconcile each asset exactly once

During the month, the position generates a total fee balance of 0.08 A and 64 B. Of that, 0.03 A and 24 B have already been collected. The remaining 0.05 A and 40 B are claimable at the cutoff. All quoted fee quantities are after any applicable protocol allocation.

The wallet also receives 120 transferable incentive tokens R through a distribution requiring no recipient transaction. Their stipulated cutoff price is $0.50. This is an additional reward stream, separate from swap fees.

Included network transactions cost $12 for approvals, $28 for opening, $7 for a reverted collection attempt and $15 for the successful collection. Total paid gas is $62, or 0.0248 ETH at the assumed ETH price. That leaves 0.0152 ETH worth $38.

Cutoff componentQuantity or calculationValue
LP principal claim2 A × $1,600 + 6,000 B$9,200
Previously collected fees, still held0.03 A × $1,600 + 24 B$72
Uncollected claimable fees0.05 A × $1,600 + 40 B$120
Received incentive tokens120 R × $0.50$60
Remaining gas reserve0.0152 ETH × $2,500$38
Total marked wallet valueSum of the five components$9,490

The balance check is:

$9,200 + $72 + $120 + $60 + $38 = $9,490

There is an independent profit check. Principal appreciation contributes $2,000, fee tokens contribute $192 at cutoff prices, incentives contribute $60, and gas removes $62. Together, 2,000 + 192 + 60 − 62 = $2,190, matching $9,490 − $7,300.

The resulting marked account return is $2,190/$7,300 = 30% over 30 days. Gas has already reduced the reserve from $100 to $38. Subtracting $62 again from the ending table would charge it twice.

Now isolate the fee display. At cutoff prices, $192/$7,200 = 2.6667% of initially deployed principal. Simple annualization gives 2.6667% × 365/30 = 32.4444%, calculated with unrounded inputs.

That is an illustrative fee-only annualization using starting deployed capital and ending fee prices. The 30% figure is a period account return using the entire starting wallet. They differ in numerator, denominator and clock. Neither figure describes a promised next year.

Put the unchanged holding wallet beside it

The holding comparison starts with exactly the same assets: 4 A, 3,600 B and 0.04 ETH. Assume it makes no transactions during the window. At the same cutoff prices, it is worth:

4 × $1,600 + $3,600 + $100 = $10,100

Holding gains $2,800, or 38.3562% on the original $7,300. The LP wallet finishes $610 below it despite its positive fee balance and 30% account gain.

Performance statementCalculationResult
LP return from starting wallet$2,190 / $7,30030.0000%
Holding return from starting wallet$2,800 / $7,30038.3562%
Difference in those returns−$610 / $7,300−8.3562 percentage points
LP shortfall relative to ending holding value−$610 / $10,100−6.0396%

The percentage-point gap and the relative shortfall use different denominators. Reporting one as the other obscures the comparison.

Before fees, rewards and costs, principal alone trails the original two-token holding inventory by $800: $9,200 versus $10,000. Fees and rewards close $252 of that gap, while gas adds $62 to it. The resulting shortfall is 800 − 192 − 60 + 62 = $610.

The impermanent loss versus holding guide develops the inventory comparison. Here that inventory difference is already inside the two ending valuations. Subtracting an additional impermanent-loss estimate from the $9,490 total would count the same inventory effect again.

Separate earned quantities from their current value

The $192 fee figure marks all fee tokens at the cutoff. It does not claim they were worth $192 when they accrued. If A changed price after a collection, that change affects the value of the collected A still held.

For attribution, retain two records: token quantities earned, and their reporting-currency value at each accrual or collection timestamp under a stated method. Compare those with cutoff value to distinguish fee income from subsequent price movement. Do not sum historical dollar valuations and ending token values as though they were separate assets.

Incentives need the same discipline. The ledger's $60 is a mark on 120 R, not $60 of sale proceeds. Record reward eligibility, vesting, claim restrictions and the ability to sell the quantity. Keep conditional future emissions outside the current wallet total. If an earned restricted claim has value under your chosen methodology, disclose that claim separately from transferable tokens and explain its valuation.

A rising reward APR can also reflect a changing denominator or token price. It does not prove more transferable reward tokens reached this wallet.

Check costs and the withdrawal output

On Ethereum, gas is paid in ETH for computation, including transactions whose execution fails. That is why the included reverted attempt remains a cost in this example. Ethereum's gas documentation explains the charging rule. The failed-swap gas ledger shows how to distinguish included failures from attempts that never incurred an on-chain charge.

The $9,490 result is marked value while the position remains open. Future withdrawal, collection of remaining fees and conversion costs have not been paid. If an additional hypothetical closing transaction costs $30, the gas reserve falls to $8 and marked assets fall to $9,460. This still does not establish dollar cash proceeds: sale prices, slippage and any additional conversion charges remain to be measured. A cash-liquidation comparison must apply the corresponding sale assumptions to holding too.

Fee accounting also changes by implementation. Uniswap v2 embeds fees in reserves; v3 and v4 account for them separately, as its fee documentation describes. Adding a fee estimate to a reserve-based redemption value can therefore duplicate income.

Even with separate fee accounting, check the withdrawal payload. The documented Uniswap LP API flow bundles v3 uncollected fees into withdrawal output. If that output already includes this example's $120, do not add it again as a separate claim after withdrawal.

Save a reconciliation another person can check

For each measurement interval, retain this worksheet:

RecordValidation
Pool identity and stateChain, contracts, version, position identifier, range and cutoff block agree
Opening walletPrincipal, idle balances and gas reserve are included at opening prices
Ending principalQuantities are redeemable principal, with fee inclusion explicitly identified
Fee historyClaimed transfers and remaining claims reconcile without duplication
IncentivesEarned quantities, restrictions and valuation are separate from future emissions
CostsActual receipts reduce the gas balance; prospective costs remain labeled estimates
BenchmarkOriginal token quantities use identical cutoff prices and the same initial reserve
Rate labelWindow, denominator, price convention and annualization method are saved

When external capital enters or leaves, retain dated flows and make matching contributions or withdrawals in the benchmark. Internal fee reinvestment changes the position's inventory without adding external capital; document it without crediting the benchmark with a new contribution. Retain transaction identifiers so the distinction can be checked.

At the next cutoff, reconcile principal, fees inside and outside the position, rewards and the remaining gas balance before reading the APR. Then place the unchanged holding value beside that total and explain every difference in units, prices or costs.

Keep the context with the example.

Each worked example is illustrative, with its sources and assumptions in the article. Read our editorial standards for authorship, verification and corrections.