Skip to main content
    Education only. Not financial, tax or legal advice. We never ask for wallet keys or seed phrases.Your files stay in your browser · how we calculate

    Liquidity pool simulator: impermanent loss, ranges and fees

    Short answer

    Impermanent loss is how much less a liquidity-pool position is worth than simply holding the two tokens, because the pool sells the rising token and buys the falling one. For a 50/50 pool it is 5.72% when one price doubles. Fees earned can cover it; whether they do depends on the path.

    Runs in your browser · Your prices or a scenario path · Not financial advice

    Try a scenario:

    Your position

    Liquidity
    = 2,250 USDC per ETH
    = 3,990 USDC per ETH
    What you expect this position to earn in trading fees per year while the price is inside your range. Your estimate, not a quote: pool fees change daily.

    Price path: ETH priced in USDC

    ETH in USDC
    Fall from the start to the bottom.
    0 for a smooth path. The wiggles repeat exactly for the same inputs.

    A simplified path through the turning points you set, not real prices. Switch to “My own prices” to replay real history you have.

    ETH/USDC, Jan 1, 2025 to Jan 1, 2026 · scenario path
    Providing liquidity beat simply holding by $678 (6.8%)

    The position ended at $9,915 plus $763 of fees, against $10,000 for holding the same two tokens. Price moves alone cost −0.85% (impermanent loss).

    Impermanent loss at withdrawal
    −0.85%
    Fees earned
    $763
    Days in range
    84% · left 6×
    Fee APR needed to match holding
    1.1%
    Ended
    Inside the range
    Concentration vs full range
    7.5× fees per dollar while in range
    ETH priced in USDC, with your rangeYour range2,0003,0004,000Jan 25Mar 25May 25Jul 25Sep 25Nov 25Jan 26
    Pool price (USDC per ETH)Hover or tap the chart to read values.
    Position value vs holding the two tokens (CAD)$8,000$10,000Jan 25Mar 25May 25Jul 25Sep 25Nov 25Jan 26
    LP + feesLP without feesJust holdingHover or tap the chart to read values.

    What is driving this result

    • The pool keeps rebalancing: as ETH rises against USDC it sells ETH, and as ETH falls it buys more. Over this path the price moved between −33% and +11% of the entry price.
    • A concentrated range earns fees only while the price is inside it. Yours was in range 84% of the days, shaded red when outside; outside the range the position is entirely one token and stops earning.
    • Fees are your estimate, earned only on in-range days. A narrower range earns more per dollar while in range (7.5× full range here) but leaves the range sooner.
    • This is a scenario path through turning points you set (365 days, lowest −30% on day 120, finishing 10%), not real prices. Add your own daily prices for ETH in USDC to replay real history.

    What would have matched holding?

    Each line changes one assumption and holds the others fixed.

    Fee APR
    About 1.1% while in range. You assumed 10.0%.
    A range that never left
    Lower bound at or below −33% and upper at or above +11%.
    Price
    With no fees, the position only matches holding if ETH ends where it started against USDC; any move either way costs something.
    Gain or loss vs holding over this path, by range width and the fee APR a range like yours earns (other widths earn in proportion to their concentration). Green beats holding.
    Range ↓ / Fee APR →5%10%15%25%40%
    Full range0.5%1.1%1.7%2.9%4.7%
    ±10%2.5%7.5%12.5%22.5%37.4%
    ±25%3.0%7.0%11.0%19.1%31.3%
    ±50%2.6%5.8%9.0%15.5%25.2%
    ±100%1.6%3.7%5.7%9.8%15.9%

    Range widths are symmetric in price ratio: ±25% means an upper bound 25% above entry and a lower bound at entry ÷ 1.25.

    Quick what-if with a single price move: 50/50, weighted and stable pools

    Pool and price move

    Pool design
    100 means token A doubled relative to token B.
    50 for a standard pool; 80 for an 80/20 pool.
    Impermanent loss vs holding
    −5.72%

    $857.86 less than holding the same tokens, before fees. Fees of 8.0% APR add $1,131.37, so the pool ends ahead of holding by $273.51.

    If you had held
    $15,000.00
    Pool before fees
    $14,142.14
    Pool with fees
    $15,273.51
    Fee APR to break even
    6.07%
    Impermanent loss across price moves−42.7%−21.3%0.2%-90%-50%0%+100%+300%+400%
    50/50 constant product50/50 constant product (reference)

    Estimates from your inputs, calculated in your browser; nothing is sent anywhere unless you choose to email results below. Scenario values are illustrative, not quotes or forecasts; past prices do not predict future ones. Not financial advice, and not a recommendation of any protocol, token or platform. Formulas checked 2026-11-02. Prices come from the file you add or from a simplified scenario path; the site does not ship crypto price history. US dollar to Canadian dollar conversions use the Bank of Canada's daily exchange rate (Bank of Canada data; converted by DeFiCalculator.ca).

    Worked example

    $10,000 in a full-range ETH/USDC pool while ETH doubles over a year
    A scenario path, not price history: ETH starts at US$3,000 and rises to US$6,000 over 365 days with small daily swings. USDC is valued at the Bank of Canada USD/CAD rate each day.
    $10,000 in a full-range ETH/USDC pool while ETH doubles over a year: inputs, steps and result
    Deposit$10,000half in each token at the start
    RangeFull range
    Fee rate while in range10% a yearyour estimate; no live yields are shown
    Price pathETH +100% over 365 days
    Value if you had just held both tokens$14,288.00
    Value of the pool position (before fees)$13,470.85impermanent loss −5.72% against holding
    Fees earned$1,160.11
    Pool position vs holding, after fees+$342.972.40% of the holding value

    The pool sold ETH all the way up to stay balanced, so it ends with less ETH than you started with. The constant-product loss for a doubling is 5.72% of the holding value; here the fees more than cover it. In a narrow range the same move would push the position out of range and stop the fees.

    Open this example in the calculator →Computed 2026-11-02.

    Mitey the yeti steadies a brass balance scale holding gold coins on one pan and silver coins on the other
    Mitey steadies the scale while the pool trades gold for silver, keeping the two sides balanced whether he likes it or not.

    Providing liquidity only pays if the trading fees beat what you would have had by simply holding the two tokens. This simulator replays a full-range or concentrated position day by day on your own price file or a scenario path, valued in Canadian dollars, so you see the impermanent loss, the days your range was out of the market, and the fee rate you would have needed to break even.

    How to use it

    1. Name Token A and Token B, and tick “Token B is a US-dollar stablecoin” if it is one (CAD values then use the Bank of Canada rate for each date).
    2. Enter the Deposit (CAD value).
    3. Under Liquidity, pick “Full range (classic)” or “Concentrated range”; for a range, set the lower and upper bound as a percentage of the entry price.
    4. Enter the Fee APR while in range, your own estimate, then set the price path: “Scenario path” (turning points you choose) or “My own prices” (paste or upload A priced in B).
    5. Read the headline against holding, then the stats, the shaded out-of-range days and the grid of range widths and fee rates.

    Why a pool position trails holding

    A two-token pool keeps rebalancing as prices move. When Token A rises against Token B, traders buy A from the pool, so you end with less A and more B than you deposited; when A falls, you end with more A. Either way you hold more of whichever token did worse. The gap against simply holding the original tokens is impermanent loss. It depends only on where the pool price ends relative to where you entered, not on the path, and it disappears if the price returns to its starting point.

    A concentrated range puts all your liquidity between two prices. Inside the range it behaves like a much larger full-range position, so the same price move costs more and the same trading volume earns more. Outside the range the position is entirely one token, earns nothing, and stops rebalancing until the price comes back.

    Worked example: Token A doubles (illustrative)

    Suppose you deposit $10,000 at full range when Token A is $2,000 and Token B is a $1 token, and over 365 days A rises in a straight line to $4,000 while B stays at $1. Holding the deposited tokens would end at $15,000. The pool position ends at $14,142.14: you were steadily selling A on the way up. That is an impermanent loss of 5.72%, the same for any doubling, and for any halving too.

    Fees decide the outcome. At an assumed 12% fee APR the position earns $1,463.42 and ends $605.56 ahead of holding (+4.04%). At 5% it earns $609.76 and ends $248.11 behind. The fee APR that exactly matches holding is 7.03%. If A had doubled and then come back to $2,000 by day 365, the impermanent loss would be zero and the fees would all be profit.

    Illustrative straight-line paths, $10,000 deposit, Token B fixed at $1. Fee APRs are assumptions, not pool rates.
    ScenarioImpermanent lossFeesLP + fees vs holding
    A doubles over 365 days, full range, 12% fee APR−5.72%$1,463+$606 (+4.0%)
    A doubles over 365 days, full range, 5% fee APR−5.72%$610−$248 (−1.7%)
    A halves over 120 days, full range, 12% fee APR−5.72%$333−$96 (−1.3%)
    A halves over 120 days, range ±10%, 12% fee APR in range−32.54%$57−$2,423 (−31.8%)
    Same range, 40% fee APR in range−32.54%$190−$2,290 (−30.0%)

    Worked example: a narrow range when the price halves

    Now put the $10,000 in a range from 10% below to 10% above A's $2,000 entry price, and let A fall in a straight line to $1,000 over 120 days. The price leaves the bottom of the range within three weeks: the position is in range on 15.7% of days and ends holding only Token A, bought all the way down. It is worth $5,141.84 against $7,622.10 for holding.

    Even a generous fee rate barely matters once the range is left behind: at 12% a year while in range the position earns $57.12 and ends $2,423.15 behind holding; at 40% it earns $190.40 and is still $2,289.87 behind. The same move at full range costs only the 5.72% impermanent loss and ends $96.00 behind at 12%. A wide position gives up fees per dollar in exchange for never leaving the market.

    The fee estimate is the weakest input

    No fee rate is quoted here. Pool fees depend on trading volume, the fee tier and how much other liquidity shares them, and they change daily. Enter what you expect your own position to earn per year while the price is inside your range; pool dashboards often show this for a given range. In the grid, other range widths earn that rate scaled by how concentrated they are compared with yours, the theoretical relationship; in practice other positions crowd around the current price and share those fees, so test lower rates too.

    What the simulator leaves out

    Gas to deposit, adjust and withdraw is not included; add it in the fees vs yield calculator. The price history is the file you supply or a simplified scenario path, one value per day, so moves within a day and a pool price that drifts from the market are not modelled. Rebalancing a range, reward tokens paid on top of fees and smart contract failures are also outside the model. For a quick one-move what-if, including weighted and stable pools, open the “Quick what-if without history” panel.

    Tax adds its own steps: CRA's published pages don't address liquidity pools, and depositing tokens for a pool token may itself be a disposition. Record the CAD value of every deposit, fee claim and withdrawal in the ACB calculator.

    What this means for you

    Compare the pool against holding, not against your deposit: a pool can be up in dollars and still be behind what you'd have had. The tool shows both, and the fee rate that would break even.

    Narrow ranges earn more while the price stays inside and nothing once it leaves. Replay your own price history for the pair to see how many days you'd really have been in range.

    Definitions

    Impermanent loss
    The shortfall of a pool position against holding the same tokens, before fees. It becomes permanent when you withdraw.
    Concentrated liquidity
    Providing liquidity only between two prices, which multiplies fees in range and stops them outside it.
    Full range
    Liquidity at every price, like a classic constant-product pool.

    Questions people ask

    What is impermanent loss in simple terms?

    It is how much less a pool position is worth than the same tokens left in your wallet, caused by the pool selling the token that rises and buying the one that falls. It becomes permanent when you withdraw at a different price from your entry.

    How much impermanent loss if a token doubles?

    In a 50/50 full-range pool, 5.72% against holding, and the same if it halves. A 4× move costs 20%. A concentrated range loses more for the same move.

    Can trading fees make up for impermanent loss?

    Sometimes. In the illustrative doubling, a 12% fee APR beat holding by $606 while 5% fell $248 short; the break-even was 7.03%. The tool shows the break-even fee APR for your own prices.

    Is a concentrated range better than full range?

    Neither is better in general. A range earns more per dollar while the price stays inside it, and loses more, and earns nothing, once the price leaves.

    Is impermanent loss deductible in Canada?

    Not as such. A loss is generally only realised when you dispose of something. CRA's published pages don't cover liquidity pools; one internal, non-binding CRA interpretation (2024-03-20) treated depositing to and redeeming from a pool as dispositions, and practitioners dispute it. Keep CAD records of each step.

    Save Your Results

    Email yourself these calculations or get notified about updates to this calculator.

    Enquiries go to the MITEY network team, not to any other company. See our privacy policy.

    Sources and dates

    1. Uniswap v3 Core whitepaper (concentrated liquidity: token amounts for a price range)Published March 2021; checked 2026-11-01
    2. CRA — Reporting income from crypto-asset transactionsDate modified 2025-12-02; checked 2026-10-30
    3. CRA — Keeping books and records of crypto-assets for tax filingDate modified 2025-11-10; checked 2026-10-30