ClearTrace · Execution Quality · Interactive

What execution quality actually costs you

A DEX aggregator shows you one number: the quote. ClearTrace's fork-simulation sampler requests the same trade from every aggregator and measures what happens next. Two things erode a quote before the tokens reach your wallet. The route can revert, or it can fill worse than quoted. The cheapest-looking quote is often neither.

Explore the sampler

Each line is one aggregator across four order sizes on Ethereum. Switch the metric, rebase to an indexed view to compare trajectories, click a legend chip to isolate a series, or go fullscreen. Hover anything for values.

Metric
View

How to read it

Quote fails to realize (%) is the share of fork-verifiable quotes whose execution reverted when ClearTrace replayed it against a mainnet fork: the route the aggregator quoted failed to settle. Off-chain RFQ quotes are excluded here: a fork can't replay a market maker's off-chain commitment, so counting those as failures would confuse routing with reliability. Realized cost, ex-gas (bps) is the median shortfall of what actually filled versus what was quoted, for the quotes that landed. It covers fee, MEV and slippage. Gas is not in it on this window. See the correction dated 2026-09-17 below.

Odos has wound down. Odos shut down its API and operations (effective 2026-07-30). Its figures on this page are ClearTrace's sampler benchmark of Odos through the window below, which closed 2026-07-20 and is entirely before that date, so they are valid measurements kept for historical reference. It is no longer a live venue and is not currently rankable. Nothing about Odos here is a claim about a venue you can route to today.

Corrected 2026-09-17. The cost axis never contained gas, and no longer says it does. Until today this page called its second metric "Realized cost (bps)" and defined it as the shortfall "(fee + MEV + slippage + gas)". Gas is not in it. The snapshot behind every number on this page was cut on 20 July 2026, a month before the sampler learned to value gas at all: gas_bps is 0.0 on all 22,330 decomposed rows, the snapshot has no gas_valuation column, and all_in_cost_bps is consequently identical to output_gap_bps. The two medians agree to the last decimal. A zero that nothing measured was published under a name that promised gas. No plotted value changes. The numbers were always the output gap; only the label was wrong, and it now reads "Realized cost, ex-gas (bps)". This is the same defect the methodology page records as corrected on 2026-08-21. That repair reached the sampler and the live dataset, but not the frozen snapshot this page renders from, which nothing checked until now. The Base page is unaffected: its snapshot was cut after the repair and carries a real, valued gas figure, labelled exec-only to show that it excludes the L1 data fee.

Corrected 2026-09-08. The off-chain RFQ axis is withdrawn. Earlier versions of this page plotted a third metric, "off-chain RFQ routing (%)", and led with a stat tile reading "KyberSwap sends 86% of flow through off-chain RFQ makers at $1M, versus ~0% for every other aggregator." That comparison was a detection artifact, not a finding: the sampler parsed an RFQ flag out of KyberSwap's quote format only, so every other sampled venue read exactly 0.0%, including venues we know route heavily through RFQ desks. A metric where most venues are exactly zero is unmeasured, not zero, so it is withdrawn rather than ranked. This matches the Edition 2 errata, which withdrew the same column and its finding. The flag is still used internally for simulation-coverage bookkeeping, which is why RFQ-routed rows stay excluded from "fails to realize" above: that exclusion is unaffected and still correct. The KyberSwap figure itself was not part of that withdrawal. On the 20 July snapshot, 86% of sampled KyberSwap $1M routes carried at least one off-chain RFQ leg, and the weekly rate ran 85-88% through July. The detector reads KyberSwap's quote format and not its peers', which is why one venue's number stands while the comparison does not.

Corrected 2026-09-08. A simulation that never ran is no longer counted as a quote that settled. Every "fails to realize" rate on this page divides reverts by fork-verifiable quotes. Until today that denominator also held rows where the quote came back but the simulation never happened, because our own build or authentication step failed first (for example paraswap build: Validation failed, okx swap: Invalid Sign, oneinch swap: Forbidden). The sampler wrote those rows as "did not revert", which is a claim about a swap nobody replayed, so a broken collector was quietly published as a venue's successful fill. There are 207 of them in this snapshot, and they are now excluded from both sides of every rate. Two plotted cells move: Odos at $1k goes from 19.8% to 19.9%, and 1inch at $100k from 4.8% to 4.9%. The sample counts underneath fall accordingly, most visibly for ParaSwap, whose $1k and $10k denominators drop from 1,009 and 1,007 to 963 and 859. No venue's standing changes and no reading on this page changes with it. Rows where the venue returned no quote at all are a separate case and still count as non-reverts, for the reason given below: there was nothing to simulate, and that is a fact about the request rather than a failure to measure it.

Three aggregators are worth naming. Odos (wound down; see the note above) posted among the cheapest fills of any aggregator here, at a near-zero median gap, yet roughly one in seven of its quotes failed to realize in simulation overall (14.5%), and nearly one in five at $1k (19.9%). Its routes were all on-chain, so this was genuine: a quote you can't rely on settling isn't cheap. 1inch's failures track size instead. Its quotes fail to realize 2.9% of the time at $1k and 16.1% at $1M, so its unreliability sits exactly where the trade is largest and the cost of a failed settlement is highest. OpenOcean almost never fails (0.4%) but charges for it, at an 11.5 bps median fill: largely its disclosed routing fee (OpenOcean charges 10 bps on volatile pairs, 1 bp on stables), not hidden slippage. That is an order of magnitude above the near-zero-gap routers. Meanwhile Uniswap's direct route and ParaSwap quietly clear nearly every quote at a near-zero gap.

No aggregator wins outright, and that is the finding: no single number, least of all the quote, ranks an aggregator. Reliability, fill quality, routing topology, and how each moves with size are different questions, and the best answer changes with the trade. This is the layer ClearTrace measures that a quote screen can't show you.

What this is and isn't. These figures come from ClearTrace's controlled quote sampler: the identical trade requested from each aggregator API and replayed against a mainnet fork from a single fixed taker, so no address-rotating solver bots inflate the counts. "Fails to realize" is a fork-simulation reliability signal for on-chain routes, not a live on-chain user-revert rate. The two answer different questions. This sampler asks whether the quoted route settles exactly as offered; a genuine user's front-end retries and re-quotes, so the rate they actually experience is far lower. Odos was the clearest case: its ~14.5% here is the highest in the set, yet ClearTrace's separate on-chain measurement put its genuine-user revert rate near 0.2–1.1% over the same period (the v6 user-only rate, which strips the address-rotating solver-bot spam that inflated older headline figures). Read the sampler as a test of the quoted route, not as the rate a trader lives with. Off-chain RFQ routes can't be fork-verified, so they are excluded from that axis and never counted as failures. They are no longer reported as a comparable per-venue share either; see the correction above.

Methodology & sources

Sampler window , Ethereum, token pairs, quote samples across four size cohorts ($1k / $10k / $100k / $1M). Realized cost is the median basis-point shortfall versus the quoted output for successfully simulated fills, excluding gas. "Fails to realize" counts reverted simulations over fork-verifiable quotes only; off-chain RFQ and non-simulatable routes are excluded from that axis, because a fork cannot adjudicate an off-chain commitment. That exclusion is bookkeeping, not a published metric: the per-venue RFQ share was withdrawn on 2026-09-08. SushiSwap (overlaps the reliable-cheap cluster exactly), OKX (began returning fillable quotes only mid-window, from 2026-07-10, so it lacks full-window coverage) and LI.FI (began mid-window, too few full-window samples) are excluded from the chart. Every figure traces to the pinned snapshot research_drafts/snapshots/quote_samples_2026-07-20.csv: a frozen copy of the ClearTrace repo's live sampler output, pinned 2026-07-20 so every number stays reproducible even as the live seed/quote_samples.csv keeps growing.

Reviewer verification: every plotted number, traced to source

Regenerate: groupby(source, size_cohort) on research_drafts/snapshots/quote_samples_2026-07-20.csv. Fails % = mean(reverted==1) over fork-verifiable rows (rfq_routed!=True & sim_unsupported!=True) that recorded a simulation outcome: a row with ok==0, reverted==0 and a quote in hand never reached the fork and is in neither side of the rate, while a row that got no quote back stays in the denominator as a non-revert. Realized cost = median(all_in_cost_bps) over ok==1. On this snapshot every all_in_cost_bps equals its row's output_gap_bps, because gas was never valued: gas_bps is 0.0 on all 22,330 decomposed rows and the snapshot carries no gas_valuation column at all. The figure is therefore the output gap, and is labelled ex-gas above.

← All ClearTrace research · Base edition · Methodology · Live execution-quality dashboard · Privacy Policy · Terms of Service