DeviationOverviewPoolsCuratorsFlowTradersLPsOraclesStocksChainsMethodology
What this is00 / disclosure

DEVIATION is an unofficial terminal for Metric, built by @zerokn0wledge_. It is not affiliated with Metric. No Metric logo, wordmark or artwork is used. No token exists and this app does not speculate on one.

Everything is drawn as distance from one line: the oracle reference. A pool's price before spread is reference × (1 + deviation), where deviation is the position in the active bin. Metric calls that distance the deviation, which is where the name comes from.

Nothing on the site is estimated silently. A panel that is not yet fed by real data says so and stays empty. The amber tag marks the intended chart, never a number.

Data sources01 / as of 16 Oct 2026
SourceUsed forRefresh
Metric public APImetadata (pools, tiers, fees, provider details, 24h analytics), bid_ask depth, factory settings30 s · 1 s open pool · hourly
AlchemynewHeads per chain, Swap and BinSwapped logs on every pool (live tape, pulses), getLogs backfill of the last minutes; day 2 and 3: traces, archive binStates, Transfers APIpush
DefiLlamaall-chain volume, all-time V0 + V1, TVL, per-chain DEX totals and rank15 min
Pyth Hermesreference series for reference-vs-execution and markouts (day 2)stream
Alchemy coverage used02 / verified 16 Oct
CapabilityETHBSCRHC
RPC, archive eth_call, eth_getLogsyesyesyes
WebSockets (logs, newHeads)yesyesyes
Transfers, Token, Prices APIsyesyesyes
Debug and Trace (call-tree attribution)yesyesno
Pending transactionsyesverifyno
No traces on Robinhood Chain, so RHC router attribution falls back to the swap's sender and transfer paths and is marked heuristic. Day 1 attribution on every chain uses the Swap event's indexed sender, which is the contract that called the pool, matched against a verified router list; unknown callers are "unlabelled", never guessed.
Known gaps and caveats03 / honest list
  • Protocol spread fee: docs say 7.5%, onchain and factory-settings say 15%. The onchain value is shown.
  • feesFiat from the API is shown as "spread earned" until it is reconciled against exact BinSwapped fee legs.
  • APRs from the API annualise 24 h (and aprBps7d trails 7 d). They are not yield and ignore inventory risk.
  • Markouts, when they ship, depend on the chosen reference feed.
  • V0 history depends on DefiLlama's adapter addresses.
  • Pipelines, Subgraphs and pending-tx coverage on BSC and RHC are unconfirmed.
  • The swap tape is a session buffer from live logs plus a short backfill, not full history.
  • Day 1 size in USD uses the API's token fiat prices at poll time.
Price quality04 / metric dictionary
MetricFormulaSourceFreshnessCaveatStatus
Quoted spread (bp)(ask / bid − 1) × 1e4 from bid_ask, Q64.64 decoded as ÷ 2^64 × 10^(dec0 − dec1)Metric API bid_ask1 s open pool, 15 s othersIncludes provider half spread and any per-bin fee; notional fee excludedlive
Deviation (bin)curBinIdx from metadata; per swap: binIdx and posInBin from the packed Swap.details wordMetric API, Swap logs via Alchemy30 s / liveBin width differs per pool; shown as bin index on day 1, bp on day 2live
Depth within N bpΣ levelUsd of bid_ask levels with priceImpactE6 ≤ N × 100, both sidesMetric API bid_ask1 sUSD via API token fiat priceslive
Effective spread per swap|exec − reference_at_block| / reference × 1e4Swap logs + Pyth HermesliveReference feed choice mattersday 2
Freshness and feed_downSeconds since last reference update vs maxRefStaleness; feed_down minutes per dayMetric API priceProviderStatus; provider views over Alchemy30 s / liveDay 1 shows status and limit onlylive
Fresh-quote fill share, pick-off rateShare of swaps executed on a quote older than the limit or before the block's update; cost = exec vs next referenceBlock tx order + traces (ETH, BSC); block order only (RHC)per blockRHC has no tracesday 3
Liquidity and LPs05 / metric dictionary
MetricFormulaSourceFreshnessCaveatStatus
TVL and turnovertvlFiat; turnover = 24 h volume / TVLMetric API, DefiLlama30 s / 15 minAll-chain TVL from DefiLlama, public-chain TVL from the APIlive
LP events and walletsLiquidityAdded/Removed logs per 24 h: adds, removes, providers, bins, USD from unscaled bin deltas × fiat price24 h log backfill via Alchemy60 sA wallet adding through a vault shows the vaultlive
Per-bin LP revenueBinSwapped.fees high 128 bits (LP leg that stays in the bin), exactBinSwapped logs via AlchemyliveScaled balances convert with token0ScaleMultiplierday 2
MarkoutLP PnL = (exec − ref_{t+h}) × size for a trader buy, at h = 1 s, 10 s, 1 m, 5 m, 30 m, 1 hSwap logs + Pyth Hermest + hDepends on the reference feedday 3
LP edgeSpread earned − |markout| per horizonderivedt + hThe honest LP numberday 3
APR three waysAPI 24 h annualised; aprBps7d; markout-adjustedMetric API, derived30 sAnnualised 24 h, not yield; ignores inventory risklive
Flow and traders06 / metric dictionary
MetricFormulaSourceFreshnessCaveatStatus
Volume, swaps, average sizeΣ analytics24h.volumeFiat, swapTxCount; live: |amount1| × token1 price per Swap logMetric API, Swap logs30 s / liveQA: decoded Σ within 2% of the API over 24 hlive
Caller share, Flow RiverCaller of pool.swap: the indexed Swap.sender vs a verified router list, aggregated chain → pool → caller over 24 h; next: call-tree caller from debug_traceTransaction24 h Swap log backfill, Alchemy Debug API60 sExecutor contracts stay unlabelled until verifiedlive
Unique traders, size bucketsDistinct Swap.recipient per 24 h; <$1K, 1 to 10K, 10 to 100K, >$100K24 h Swap log backfill via Alchemy60 sRecipient is a proxy for the trader; settlement contracts show as contracts; retention needs more than one daylive
Curators and trust07 / metric dictionary
MetricFormulaSourceFreshnessCaveatStatus
Curator leaguePools, TVL, 24 h volume and fees grouped by pool adminMetric API metadata30 sFees earned exact from ProtocolFeesCollected admin legs on day 2live
Trust LedgerEvery fee, provider, admin and StopLoss change with before/after, proposer, executeAfter, timelock appliedFactory and extension events via AlchemyliveNeeds backfill from the factory deploy blockday 2
Guardrail limitsStopLoss drawdownE6, velocity maxChangePerBlockE18, staleness limit, pause level, allowlistsMetric API extensionDetails30 sLive readings from extension views on day 3live
Stocks08 / metric dictionary
MetricFormulaSourceFreshnessCaveatStatus
US market sessionPre 4:00 to 9:30, regular 9:30 to 16:00, post 16:00 to 20:00 New York time; weekend closedclock30 sHolidays not yet in the calendarlive
Session volumeStock-pool swap volume bucketed by the New York session at the swap timestamp24 h Swap log backfill60 sHolidays not modelledlive
Weekend premium, multiplier events, venue shareWeekend premium vs Friday close and Monday open; MultiplierOracle events; venue share per tickerquotes history, oracle contract, DefiLlamadailyday 3
Chains and competition09 / metric dictionary
MetricFormulaSourceFreshnessCaveatStatus
Share of chain DEX volume, rankMetric 24 h / chain DEX 24 h; rank among DEX protocols on that chainDefiLlama overview/dexs/{chain}15 minDefiLlama's protocol list and chain slugslive
All-time volumeV0 + V1 totalAllTimeDefiLlama summary/dexs/metric, metric-v0, metric-v115 minV0 history depends on the adapter addresseslive
Protocol revenueExact from Swap.platformFees and ProtocolFeesCollectedlogs via Alchemyliveday 2