Skip to main content

Three decisions

Running a liquidity book is three questions repeated: which pool, how wide a range, and when to move. Each is answered from chain data rather than from a target yield.
1

Pick the venue

The same pair often exists at several fee tiers, and the busiest pool is not always the best one. A tier with a fifth of the volume but five times the fee rate can pay more per dollar deployed, and a small pool pays well until your own capital dilutes it. Every candidate venue for a pair is measured the same way: what the pool’s own fee rate over the last day would pay on the capital being deployed, after accounting for the dilution that deploying it causes.
2

Set the range

A position earns only while the price is inside its range, and the liquidity a fixed amount of capital buys falls as the range widens. Fees per dollar therefore keep rising as a range narrows, without limit — so the fee-maximising range is always the tightest one, and it is also the one that spends most of its life out of range holding nothing but whichever side just lost.The range is set instead to the narrowest band that would have contained the price for 95% of the last week, rounded outward to the pool’s tick spacing. Tight enough to earn, wide enough to survive a week untouched.
3

Decide when to move

Repositioning is not free: it realises whatever impermanent loss has accumulated and pays a swap fee to rebalance into the new range. A position that is holding its range is left alone. One that has drifted out, or whose pool has changed character, is moved.

What gets measured

Every number behind those decisions is read from the chain — pool state, price history, and fee growth — and published on the dashboard rather than summarised into a single yield.
Earned APR and Run rate are not meant to agree, and neither is the APR a venue shows you. A venue’s APR column is a property of the pool — its fees divided by its whole TVL — so every position in that pool shows the same number regardless of where its range sits. Run rate applies that same pool rate to this position’s range. Earned is what actually happened. Early in a position’s life the gap between them is mostly the gap between a short window and a long one.

Fees are not the return

A position can show a large fee number and still be a loss. Fees only ever rise; the capital underneath them moves both ways, and a concentrated position converts steadily into whichever asset is falling as the price crosses its range. This is why vs. hold is reported next to every position and why the two are never added into a single figure. A pool that pays spectacularly is usually paying for volatility, and volatility is paid for out of the capital. The book is sized accordingly: the pairs it holds are chosen because their price travel is contained enough that a workable range holds for a week, not because their headline yield is the highest on the chain.
Past measurement is evidence about the future, not a forecast. Price history is sampled, so the travel measured over any window is a floor on the real travel and never a ceiling — a range that only just held last week is a range that breaks on the first week that is worse.

Everything is verifiable

The positions are held by a treasury address that is published, the pools are public, and every figure on the dashboard is derived from contract state at load time. There is no indexer to trust, no database that can drift, and no reported number that cannot be recomputed from the chain by anyone who wants to check it.