How the Routescore is produced.
Schema carries a published version hash. Weights are published. The methodology and detector manifest are published so the score is auditable on any confirmed block. If the score we show you is wrong, the methodology is the place to disagree with it.
What Routescore measures
Routescore is a pre-trade scoring layer. For every candidate swap route, it produces a single 0–100 score and a per-component breakdown. The components are: expected MEV exposure (sandwich + frontrun), slippage vs the mid quote, gas efficiency vs the cheapest available route, liquidity depth at the prevailing mid, and the post-tax effective price (gas + tax drag included).
- Custody. We never sign, broadcast, or hold user funds. The score is decision support, not execution.
- Oracle, bridge, and contract risk are surfaced as separate signals — they do not roll into the Routescore number, because mixing rugability into a price-execution score makes both worse.
- Yield / APR / TVL forecasting. Routescore is a swap-route score, not a yield score.
Where the numbers come from
The scoring formula
Each component is independently normalised to 0–100 against the same trade evaluated across all candidate routes, then combined with the published weights. The sign convention is explicit: higher Routescore = better route. The two risk penalties (MEV risk, slippage) are subtracted; the two quality / efficiency terms (gas efficiency, liquidity depth) are added. See the glossary below for which term is which.
# Higher Routescore = better route.
# RISK penalties are SUBTRACTED; QUALITY / EFFICIENCY terms are ADDED.
Routescore = 100
- w1 · MevRiskPenalty # RISK (subtracted)
- w2 · SlippagePenalty # RISK (subtracted)
+ w3 · GasEfficiency # QUALITY/EFFICIENCY (added)
+ w4 · LiquidityDepth # QUALITY/EFFICIENCY (added)
# Component definitions (each normalised to 0..100 over candidate routes)
# RISK terms — higher = worse, enter the formula with a MINUS sign:
MevRiskPenalty = sandwich_probability + frontrun_probability (detector v0.4.2)
SlippagePenalty = |mid_price - executed_price| / mid_price * 1e4 (bps, magnitude)
# QUALITY / EFFICIENCY terms — higher = better, enter with a PLUS sign:
GasEfficiency = min(gas_cost_usd_over_routes) / gas_cost_usd (1.0 = cheapest)
LiquidityDepth = pool_1bp_depth_usd (deeper = better)
# Weights — see /methodology#weights for rationale (and #glossary for signs)
w1 = 0.40 w2 = 0.25 w3 = 0.15 w4 = 0.20
# Output bounds
0 <= Routescore <= 100 (higher = better execution-adjusted route)| Symbol | Component | Sign | Weight | Why this weight |
|---|---|---|---|---|
| w1 | MEV risk | Risk · subtracted | 0.40 | RISK penalty (subtracted). Sandwich + frontrun probability dominates ex-ante loss on retail-size swaps. Largest weight by design — more modeled MEV pushes the score down. |
| w2 | Slippage | Risk · subtracted | 0.25 | RISK penalty (subtracted). Modeled execution slippage vs the mid quote, pulled per-DEX from the aggregator quote step. More slippage pushes the score down. |
| w3 | Gas efficiency | Quality · added | 0.15 | EFFICIENCY term (added). Inverse gas-cost per unit notional, normalised to the cheapest available route on the same trade. A cheaper route pushes the score up. |
| w4 | Liquidity depth | Quality · added | 0.20 | QUALITY term (added). Deeper pools reduce execution risk and push the score up. Measured as 1bp-depth at the prevailing mid. |
Every term is labelled so the sign is never ambiguous. RISK terms are penalties (subtracted); QUALITY / EFFICIENCY terms raise the score (added). Higher Routescore always means a better route.
| Term | Class | Direction | Definition |
|---|---|---|---|
| MevRisk | RISK | Higher = worse → subtracted | Modeled sandwich + frontrun probability for the route. A penalty: more MEV risk lowers the Routescore. |
| Slippage | RISK | Higher = worse → subtracted | Modeled price move between the mid quote and the executed price, in signed bps. A penalty: more slippage lowers the Routescore. |
| GasEfficiency | QUALITY/EFFICIENCY | Higher = better → added | Inverse gas cost per unit notional, normalised across candidate routes. A quality term: a cheaper route raises the Routescore. |
| LiquidityDepth | QUALITY/EFFICIENCY | Higher = better → added | Pool depth at 1bp around the prevailing mid. A quality term: deeper liquidity raises the Routescore. |
| Routescore | QUALITY/EFFICIENCY | Higher = better route | The published 0–100 output. Risk penalties are subtracted and quality/efficiency terms are added, so a higher Routescore always means a better execution-adjusted route. |
What the score does not include
- Oracle risk. Surfaced as a separate badge on the route detail. A 100/100 Routescore on a pool with a fresh oracle compromise is still a bad trade — and we tell you that, separately.
- Bridge risk. Cross-chain routes carry bridge exposure that is not modelled in the score; the route detail names the bridge and links to its operating posture.
- Smart-contract risk. Audit + bug-bounty + age-of-deployment signals are surfaced separately. We do not mix exploit-tail risk into a price-execution score.
- Counterfactual gas. Gas efficiency is normalised across candidate routes for the same trade ; comparing scores across different notionals or different chains is not apples-to-apples.
- Detector ceiling. The sandwich detector is detector-only: its spoofable-signal score caps at 0.65 confidence, and Routescore does not operate a confirmation layer. Candidates never exceed that cap, so a “found sandwich” is a detector-only candidate, not a confirmed loss.
Audit the score
What changed, when, and why
| Component | Version | Last changed | Note |
|---|---|---|---|
| Score schema | 2026.06.13 | 2026-06-13 | Public launch — first hash-stamped schema. |
| Sandwich detector | v0.4.2 | 2026-06-11 | Detector-only; spoofable signals capped at 0.65 confidence. |
| Pricing source | chainlink-twap-30m | 2026-06-09 | 30-minute TWAP from Chainlink price feeds for victim-loss USD conversion. |
| Finality depth | 64 blocks | 2026-06-04 | One-epoch bound; depth-12 (Wave 12) deprecated as unsafe under empirical reorg data. |
Detector specification
The detector is the disputable thing. We publish the full interface — input shape, output shape, algorithm summary, and known limitations — so the score is auditable on the evidence. A standalone, clonable reference repo is coming; until then, the published spec and the benchmark are the public record.

Measure in public. Price the risk. Never touch the keys.