lyudik.rofd.io
Contact me

Growth · 2 min read

"You'll Receive: ~2,847 USDC" — The Swap Preview Lie

💱 "You'll Receive: ~2,847 USDC" — The Swap Preview Lie
The preview displays a confident single number. The execution returns a different number. The user feels robbed, even when the variance is within normal parameters.
The estimation problem is architectural: swap quotes are computed against current state but execute against future state. Between quote and execution, the pool reserves change due to other transactions. MEV extraction adds another layer of unpredictability. The quote was never a promise—but the UI presents it as one.
User research on numerical precision—documented in behavioral economics literature and referenced in fintech UX guidelines—shows that specific numbers create specific expectations. "$2,847.32" implies precision that doesn't exist. Variance from that number, even within normal bounds, feels like a failure.
Paraswap's range-based estimates—showing "2,690 - 2,850 USDC" instead of a single value—reduced complaints about received amounts by 56% according to their product team's public discussions. The intervention is psychological: ranges communicate uncertainty honestly.
Production implementation:
→ Quote as range, not point. The range should be computed from slippage tolerance and current pool volatility. "You'll receive: 2,780 - 2,850 USDC based on your 0.5% slippage setting."
→ Post-execution comparison. "You received 2,823 USDC. This was 99.1% of the upper estimate and 101.5% of the lower estimate." Framing as percentage of range rather than deviation from point reduces perceived loss.
→ Variance attribution. "Price moved 0.3% during confirmation. MEV protection saved $0." Explaining the components of variance educates users about the system's mechanics.
→ Historical execution quality. "On this pair, you've received an average of 99.4% of quoted amounts." Personal track record builds trust over time.
Single-number estimates are convenient lies. Honest ranges set correct expectations.
→ MayWap | Designing swap UX that sets real expectations