Everything on this site is computed from public Base mainnet state. There is no licensed data, no vendor feed, and no estimate imported from anywhere else. What follows is enough to reproduce it.
What is measured
The oracle. Each Coinbase B20 tokenized equity is priced by a Chainlink aggregator proxy. We
read latestRoundData(), which returns the published value and the updatedAt the contract itself
recorded. Every timestamp on this site comes from that field, never from the clock at the moment we
happened to look, so a measurement does not depend on our polling cadence.
The multiplier. Coinbase's registry holds a multiplier and a pause flag per asset. Token value is the underlying equity price multiplied by that factor, so the multiplier is the denominator of everything published here. It is displayed at full precision and never rounded.
The market. Four of the thirteen assets have a seeded Aerodrome Slipstream pool against USDC. A concentrated-liquidity pool's price changes only when a swap executes, and every swap emits a log carrying the post-swap price, liquidity and tick. That log is the observation: the pool price at any instant is the price recorded by the last swap at or before it. This is not an approximation of the pool's state, it is the pool's state.
A stall window
A stall window is the interval between two consecutive published rounds. It opens at the
updatedAt of the last round before the gap and closes at the updatedAt of the round that ends
it. Both boundaries come from the contract, so a window is exact even where it was reconstructed
after the fact rather than watched live.
Windows below one hour are not recorded. On a deviation-triggered feed during an active session, a short gap is the trigger working rather than the feed failing. Windows of six hours or more enter the headline statistics: a US regular session is six and a half hours, so six hours is the shortest gap that cannot be explained by an ordinary quiet afternoon.
A stall is not a market closure. The feed updates on roughly a half-percent deviation trigger with no off-hours heartbeat, so it stalls overnight, at weekends, and during live trading. Of the stalls of six hours or more measured across three weeks, most were overnight and several ran through an open session. Session labels appear on this site as annotation. They are never the thing that decides whether a feed is considered stale, and they are never an input to a confidence judgement.
Divergence
Divergence is the difference between the pool price and the oracle value frozen at the start of the window, in basis points:
divergence = (pool mid - frozen TRV) / frozen TRV
It is computed per swap, against the value that was frozen, not against a later one. A window reports the peak, the 95th percentile, and the volume-weighted average of the divergences observed inside it.
Divergence requires a venue. Nine of the thirteen assets have a live feed and nowhere to trade. Their stall durations and reopen gaps are facts. Their divergence does not exist, and is shown as unavailable rather than as zero. Nothing on this site renders a missing measurement as a zero or as a last-known value.
Filtering
Three rules, carried over unchanged from the measurement that established the method.
Zero-amount and zero-liquidity swaps are excluded from price math. A pool that has been created but not seeded still emits swap logs, and they do not describe a price anyone could trade at. They are stored and marked rather than dropped: a discarded row cannot be audited.
Mids beyond ten percent of the frozen value are excluded and counted. On a thin book a single small trade can push the tick hundreds of basis points through an empty range, and that is an artifact rather than a dislocation.
This rule can in principle discard something real, a genuine large move during a long stall, so a window records how many observations it excluded and how large the largest of them was. Where that largest excluded observation exceeds the peak we report, the window is marked as clipped and says so wherever the peak appears. The underlying swap is never deleted, so the unfiltered figure is always recoverable.
Thin windows stay out of headline statistics. A window whose median in-pool liquidity is under five percent of that ticker's deepest window is marked thin. It is still published; it is not averaged into anything quoted as a headline. Thinness is relative and therefore not permanent: a deeper window arriving later can reclassify earlier ones, so each judgement records which window it was made against.
The reopen gap
The reopen gap is how far the oracle itself moved when it finally published, measured against the value it had been holding. It needs no venue, so it exists for all thirteen assets.
It is usually small and negative. The oracle does not snap to the pool when it resumes; it resumes near where the pool already was. During a stall the pool leads price discovery, which is why this site reports what the market did rather than predicting what the oracle should have said.
Coverage
A stall window asserts that a feed did not update. That claim is only worth something if we can also say we were watching, so ingestion coverage is recorded as intervals and published on the status page, including the gaps. A backfilled reading and a reading observed as it landed are stored differently, so a window can distinguish "we watched this" from "we read this out of the contract afterwards".
What is not published
No implied value. A corrected pool price could stand in for the oracle during a stall, and the correction can be learned from periods when the feed was demonstrably live. It is not published until it has been tested against periods where the answer is known. Until then this site reports raw divergence: what the market said, and how far the oracle was from it.
No composite score and no ranking. There is no single number saying one tokenized equity is safer than another, and there will not be one. Measurements are per feed and per window, with their denominators shown.
No advice. How stale an oracle is, is a fact. What to do about it is not ours to say.