Reading live Uniswap data…
Reading live Uniswap data…
Uniswap v3 · Ethereum mainnet · 0.30% fee on every swap
0x2cbe14bd5598bd30ee769cad3ef42a280501955b
Where a position in this pool would be active, as the price of one WETH in USDC.
1,840.19 – 1,851.26 USDC per WETH
0.60% below and 9.316E-9% above the current price.
Current price 1 WETH = 1,851.26 USDC
The current price is inside this range. A position opened here would be active straight away.
Between these two prices a position earns its share of the pool's swap fees. Outside them it holds a single token and earns nothing until the price comes back.
If the price falls below the range, the position ends up holding only WETH; if it rises above it, only USDC.
From how much the price of WETH actually moved over the last 30 completed days — not from a forecast of where it goes next.
The standard deviation of one day's price change, over the window.
The same movement stretched over the horizon chosen below: one standard deviation, either way.
Chosen below. A wider range is left less often, and the same deposit spread over it is thinner at any one price.
5 daily changes went into it.
The range is centred on today's price and drawn the same distance up and down in ratio terms — halving and doubling are the same move — which is why the two percentages differ. It describes how far the price has moved, not where it will go: it is not a forecast, and the width is not a confidence level. Nothing here sizes a position or says how much of either token to deposit.
The same method at each width the form offers, so the trade-off can be seen rather than told: a wider range holds more of the days, and spreads the same deposit over more prices — which is the last column, and it is the arithmetic of the protocol rather than an estimate.
| Width | Range | Inside, of the last 30 days | Inside, on days it never saw | Fee share while inside |
|---|---|---|---|---|
| Tight (1σ) · shown above | 1,840.19 – 1,851.26 USDC | 26 of 30 | 0 of 31 | 1× |
| Medium (1.5σ) | 1,840.19 – 1,851.26 USDC | 26 of 30 | 0 of 31 | 1× |
| Wide (2σ) | 1,840.19 – 1,851.26 USDC | 26 of 30 | 0 of 31 | 1× |
| Very wide (3σ) | 1,840.19 – 1,851.26 USDC | 26 of 30 | 0 of 31 | 1× |
The first count is over the days each range was drawn from, so it says how that width was fitted, not how it held. The second is the check above, run for each width: the method stepped back a horizon and laid over the days that followed.
The last column is what the same deposit would take of the fees charged on a day the price stays inside that range, against the width shown above — so that one reads as one. It is the protocol's own position arithmetic rather than an estimate: a narrower range turns the same money into more liquidity over fewer prices. It assumes the rest of the pool's liquidity is unchanged, which a deposit large enough to move it would not leave true, and it says nothing about the days price spends outside.
The whole pool's, shared among everyone whose liquidity was active.
Of the last 30 days, 26 stayed entirely inside this range, 0 sat entirely outside it, and 4 crossed an edge.
A day that crossed an edge spent part of itself inside and part outside, and the source's daily high and low cannot say how much of each.
These are the same days the range was drawn from, so they show how it was fitted rather than testing how it holds up — and the range is centred on today's price, which nobody could have opened a month ago. Read them as how the pool's recent movement sits against the range, not as a backtest.
None of this is what a position would earn: it is what the whole pool charged. What a deposit would have taken of it — its share of the liquidity active while the swaps happened — is the panel directly below, and even that is fees and nothing else.
The size this is worked out for. Change it in the form above.
Over the 26 days the price never left the range.
Those fees against the money put in, over those days and no others. Not a yearly rate, and nothing here turns it into one.
On the 26 days the price never left this range, the pool charged $0.00 in fees. A deposit of $1,000 placed in the range would have taken about $0.00 of that — its own liquidity as a share of the liquidity that was actually active on each of those days.
A larger deposit does not collect proportionally more. The share is your liquidity over everybody's including your own, so past a certain size most of what you add dilutes what you already have — which is why the amounts offered are a thousandfold apart.
Fees only, and days that have already happened. It assumes the position was open for every one of them and that nothing moved in response to it, and it says nothing about what the next thirty days will pay. What a position gives up against simply holding the two tokens is the comparison further down this page, and the two have to be read together.
These agree on every measured day. The declared rate is the rate that was charged.
The window's fees over the window's volume, so a busy day counts for more than a quiet one.
The fee the pool states is one number. This is what swappers actually paid, divided back out of the same days as the figures above: a day's fees over that day's volume. It needs no extra request and nothing from the hook.
Across 2 folds, 0 of 31 days stayed entirely inside the band this method would have drawn.
Every figure above is fitted to the days it describes. These are not. The method was stepped back 30 days, run again on the prices before that point only, and centred on the price at that point — one somebody standing there would actually have seen. Then it was laid over the days that followed, and the whole thing repeated back through the history as many times as it had room for.
How many times the history had room to fit a band and then test it.
| Days checked | Fitted volatility | In / out / crossed |
|---|---|---|
| 2026-07-24 → 2026-08-23 | 4.672E-11% | 0 / 17 / 1 |
| 2026-08-23 → 2026-09-22 | 6.47E-11% | 0 / 10 / 3 |
Each row is one fold: the days it was checked over, the volatility its own fit measured — not the figure above — and how those days sat against the band that fit produced.
Nobody held these bands. Each is what the method would have suggested at that moment, laid over prices that then happened — and the days above, which the suggested range was drawn from, are not these days.
What a position in this range would be worth compared with simply holding the two tokens, at each price. Exact arithmetic rather than an estimate — but it counts price movement and nothing else. It says nothing about the fees a position would earn, and fees are precisely what a liquidity provider is paid for this difference.
| Price of WETH | Position against holding |
|---|---|
| 1,840.19 USDC | -0.30% |
| 1,845.72 USDC | -0.07% |
| 1,851.26 USDC | 0.00% |
| 1,851.26 USDC | -1.521E-12% |
| 1,851.26 USDC | -2.509E-12% |
The price this is measured from — the pool's current price.
This is what is usually called impermanent loss. It is only impermanent if price comes back: a position closed at a price other than the one it opened at has realised it.
This range has no one-sided half to describe.
This range is too narrow to hold a one-sided position on either side of the current price.
Everything above is about providing liquidity. This is about using it. A pool's liquidity is constant between the price steps it is built on, so a swap that stays inside the step the price is in can be priced from the protocol's own formulas with nothing assumed — and one step further cannot, because another position's liquidity may begin there and this application does not read the liquidity at every price.
What goes in before the price reaches the end of the step it is in. Not a limit: a larger swap works, and this page cannot say what it costs.
How far the swap's average sits from the price on the screen.
Only one direction is shown. The price is sitting close enough to the end of its step that the room the other way is a rounding error rather than a swap, and this page will not print a figure it cannot check.
That average is the geometric mean of the price now and the price the swap ends at — the same identity the one-sided positions above rest on, seen from the other side of the trade. A swap crossing a band pays it; a position sitting in that band receives it.
The two directions are not the same size because the price sits somewhere inside its step rather than in the middle of it. What is worth comparing between pools is the size itself: it is what this market absorbs before it moves, and it is the reason anybody breaks a large order into small ones instead of sending it at once.
The ticks, blocks and figures the page above is checked against.
Source reported -75,240.
A price step of 0.60% between usable edges.
WETH per USDC
Before snapping to the tick grid, in the pool's own direction.
Sample standard deviation of daily log returns, scaled by sqrt(365).
How much of the window had consecutive daily prices behind it.
2026-09-22 09:07 UTC
Writing the explanation…
None of these is a recommendation. A narrower range takes a larger share on the days it holds and nothing at all on the days it does not, and which of those matters more depends on what the position is for — which nothing here knows.
A few folds on one pool are not a measure of how often the method holds, and say nothing about what happens next. Consecutive fits overlap, too — a 31-close fit is longer than a step of one horizon — so the folds are not independent of each other.
When the response arrived, not what it describes.
USDC / WETH trades at only this fee tier on Ethereum mainnet. Everything above is about the whole pair, because the pair is this one pool.
No Uniswap v4 pool trades USDC / WETH with these two contracts.
This Uniswap v3 position is quoted as USDC per WETH. The current price is inside the shown range, but it is already at the upper edge. The range is therefore concentrated almost entirely below the current price, with only a negligible amount of room above it. The range was fitted to recent movement, not chosen as a forecast. The pool’s recent volume and fees were extremely low, so the range describes placement rather than promising fee income. Widening the range buys more days inside but costs a smaller share of the fees charged on each of those days; here, the alternative widths shown are identical, so they add no visible coverage or fee-share difference.
Still being written…
Still being written…
Still being written…
If the price falls below the lower edge, the position holds only WETH. If the price rises above the upper edge, it holds only USDC. While the price is inside the range, the position provides liquidity across the prices between those edges. The swap comparison shows how much this market absorbs before the next price step changes the calculation, not a trading limit or capacity. Larger swaps may work, but their cost is not determined by the liquidity data read here.
The volatility figure shows an almost imperceptible typical daily move and an almost imperceptible movement over the stated horizon. That is why the displayed band is extremely narrow and why the current price sits at its upper boundary. The estimate rests on only a few usable daily changes, while the measurement window covers more days; missing days were skipped rather than estimated. The range stayed entirely inside on most of the measured days, crossed an edge on some days, and was never entirely outside. The same method was also checked on days the fit never saw; across the stretches and days checked, none stayed entirely inside.
The comparison with simply holding the two tokens is exact for price movement, but it excludes fees and gas. It is therefore only part of the liquidity-provider result: the missing part is the fees paid for providing liquidity. The recent pool figures are whole-pool figures, not anyone’s earnings, and the displayed deposit estimate assumes the position stayed open throughout the measured days. They are not a yield, a rate, or a forecast. This analysis also does not assess whether the pool or its tokens are trustworthy.
Written by gpt-5.6-luna. The figures above were not.