DeviationOverviewPoolsCuratorsFlowTradersLPsOraclesStocksChainsMethodology
Trade ↗
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 section that is not fed by real data yet is marked "coming soon" and stays empty.

Data sources01 / as of 16 Oct 2026
SourceUsed forRefresh
Metric public APIPool metadata: tiers, fees, provider details, extensions, 24h analytics. Live bid_ask depth. Factory settings.30 s · 1 s · hourly
AlchemynewHeads per chain. Swap, BinSwapped, LiquidityAdded and LiquidityRemoved logs on every pool, live over WebSocket and backfilled over eth_getLogs for the rolling 24 h window. Factory and extension event history.push · 60 s aggregates
DefiLlamaAll-chain volume, all-time V0 + V1, TVL, per-chain DEX totals and rank, partner-chain volumes.15 min
Pyth HermesReference price series for reference-vs-execution and markouts.coming soon
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 router attribution there can only come from the swap's sender and transfer paths. Today, 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 shown as "unlabelled", never guessed.
Known gaps and caveats03 / honest list
  • Protocol spread fee: the docs say 7.5%, onchain and factory-settings say 15%. The onchain value is shown.
  • "Spread earned" is the API's feesFiat until it is reconciled against the exact BinSwapped fee legs.
  • APRs from the API annualise 24 h, and aprBps7d trails 7 d. They are not yield and ignore inventory risk.
  • Trader identity is the recipient of the swap output. Aggregator settlement contracts show as contracts, flagged in the table.
  • Router labels cover a small share of volume because Metric pools are called by aggregator executor contracts; those stay unlabelled until verified.
  • History covers a rolling 24 h window for swaps and LP events. Longer history, retention and the weekday heatmap fill in as the worker keeps running.
  • Swap size in USD uses the API's token fiat prices at poll time.
  • Markouts, when they ship, depend on the chosen reference feed. V0 history depends on DefiLlama's adapter addresses.
  • US sessions are computed in New York time; market holidays are not modelled yet.
  • Analytics: a cookieless, self-owned Matomo instance counts page views and clicks on the Trade links. No cookies, no fingerprinting, Do Not Track is honoured, IPs are anonymised. Nothing is shared with third parties.
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 indexlive
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 matterscoming soon
Freshness and feed_downSeconds since last reference update vs maxRefStaleness; feed_down minutes per dayMetric API priceProviderStatus; provider views over Alchemy30 s / liveShows status and limit; live seconds-since-update is cominglive
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 tracescoming soon
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 token0ScaleMultipliercoming soon
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 feedcoming soon
LP edgeSpread earned − |markout| per horizonderivedt + hThe honest LP numbercoming soon
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 h24 h Swap log backfill60 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 is cominglive
Trust LedgerEvery fee, provider, admin and StopLoss change with before/after, proposer, executeAfter, timelock appliedFactory and extension events via AlchemyliveIndexed from each chain's factory deploy blockcoming soon
Guardrail limitsStopLoss drawdownE6, velocity maxChangePerBlockE18, staleness limit, pause level, allowlistsMetric API extensionDetails30 sLive readings from the extension views are cominglive
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, DefiLlamadaily—coming soon
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 Alchemylive—coming soon