Where every figure in Perpetua comes from, and what we do not do.
This page exists so you can check any number we show you. Each section says where the data comes from, how often we read it, and what assumptions it carries. Where a term has its own definition, we link to the glossary instead of repeating it.
We read the public APIs of the 8 perp DEXs we track. No middlemen, no aggregators: every figure comes from the venue that publishes it.
Each venue explicitly declares three things we never assume: how many hours its funding settles on, whether its open interest is in units of the asset or in dollars, and where its reference price comes from. Assuming any of the three produces false comparisons between venues.
The cadences, which you can see in every view as the age of the data: funding and routes are recomputed every minute, order-book depth every five, averages every ten. If a venue does not respond, we say so: we do not recycle its last value as if it were current.
One venue settles funding hourly, another every eight hours. Comparing their raw rates compares different things, so before anything else we bring them all to the same base: the rate per eight-hour period.
The conversion is simple arithmetic on the interval the venue declares. From there, annualising is three periods a day times 365 days. The base is always written in the interface, because a funding number without its base means nothing.
This instant's funding may be a spike that lasts an hour. The sustained rate is the average of the last 24 hours, and it is what we sort the table by and what we project with.
This is not a matter of taste. An APR annualised from a single instant claims that instant will repeat one thousand and ninety-five times; the sustained rate at least has a day of market behind it. When the instantaneous rate is more than twice the sustained one, the row says so with the “Spike” label.
And when there are not at least eight hours of history on both legs, the route is not projected: its net APR stays empty and it cannot top the table. We prefer an empty cell to a number with no ground under it. It fills itself as history accumulates.
A delta-neutral route is four executions: opening both legs and closing them. Each one pays the venue's fee and the slippage of crossing its book.
Fees come from each venue's fee table; when we have not been able to confirm one against its official documentation, we use the most expensive one and mark the route as “fee unverified”.
Slippage depends on size, which is why we measure it as a ladder: what it costs to move one thousand, ten thousand and one hundred thousand dollars in that book. For a size in between we interpolate on a logarithmic scale, because impact grows with the square root of size, not in a straight line. Above one hundred thousand we have no measurement, and we say so instead of quietly extrapolating.
Any value that already subtracts these costs is labelled “net”; if it is not, it is gross.
Capacity is the size at which your own impact becomes comparable to the fee you already pay to enter. Below it, the market sets the price; above it, you do.
The threshold is the greater of two things: the book's full spread, or a floor of five basis points. On wide books the spread governs, and a wide book gives low capacity. On tight ones the floor governs, because a one-tick spread would be a tiny threshold: with it alone, the deepest book in the market was declared exhausted by a minuscule order. The five is not a number picked by eye — it is where your impact becomes comparable to the taker fee you already pay, which across the venues we track is around four basis points, and it sits at the 75th percentile of the spreads we measure: for the widest quarter the spread still governs.
A route has two legs, so the thinner one governs: it is no use that one side absorbs eighty thousand if the other moves the price at three thousand. And each leg is measured on the side that is actually crossed — buying on the long venue, selling on the short one.
We only compute it from real prices: the order book, or the quotes the venue publishes. Which of the two is always written next to the figure, because they are not worth the same. Where there is neither we say “not measured”, and we do not estimate it from open interest: measured against real books, that approximation overshoots by up to thirty-six times.
There is one case where the figure is not the crossing but a LOWER BOUND: when the ladder we could measure never reaches the threshold. All that is proven there is that at least that much fits, so we write it that way —«more than 22k US$»— and we do not call it measured. With the floor, the bound is the frequent case rather than the exception. It happens with a book so deep that slippage is still small at a hundred thousand dollars, and it happens almost always with Pacifica, which publishes ten levels of its book and no more: in its markets, the bottom we see is usually the edge of our window rather than the book's. When sorting by capacity, the bound counts at its value, which is the only thing proven.
Bounds are never counted together, neither here nor on any screen. “More than a hundred thousand” says it fits with room to spare and “more than a thousand” says almost nothing: adding them up turns an improvement into its opposite.
Next to every funding or carry chart we draw its channel: the band this funding has stayed in eighty per cent of the last seven days, with its median dotted at the centre.
It tells something persistent apart from a spike at a glance. The centre is the median and not the average because a single spike drags the mean, which is exactly what the channel exists to separate.
The verdict below describes, it does not predict: a funding above its channel says nothing about where it is going, only that today it is outside where it has been.
With less than three days of history we do not draw a channel, and we say why. Narrowing a band from four points so that it looks like a channel would be making the data up.
The three dots next to each asset measure how much of that number is measured and how much is assumed. They do not say whether the route is good: a terrible route can have high confidence, and an excellent one, low.
We look at two axes. The time axis asks whether there is history behind the number: enough coverage, no spike, no stale data. The structural axis asks whether the cost is measured or modelled: confirmed fees, slippage from a real book.
Three dots mean both axes are clean. Two, that one thing on the structural axis is missing. One, that something on the time axis is off, or more than one thing on the structural one.
The time axis weighs more on purpose: an unconfirmed fee shifts the number, but insufficient coverage leaves it with no ground under it. They are not the same kind of doubt.
Perpetua analyses and calculates. It does not execute trades, custody funds, connect to your keys, or recommend entries.
The “optimal point” of a route is a calculation, not a suggestion: it is the largest size that route absorbs without slippage eating into the net, at the highest leverage that withstands the adverse move you choose. If it does not exist under your assumptions, we say so instead of offering you the least bad one.
Alerts describe conditions — “this route's carry fell below such a threshold” — and never actions.
And every projection carries its assumptions written beside it. A dollar figure without the size, the cost and the horizon that produced it is not information: it is a promise.
Would you rather start with the basics? The Learn guides