Why did you receive less than the screen showed?
When you swap tokens on a decentralized exchange, the interface shows an expected output, yet the amount you actually receive is often a little lower. Two different causes are mixed together: price impact, the movement your own order causes, and slippage, the movement that happens between sending the order and its execution.
This guide separates the two, explains how the minimum-received amount is calculated, and shows how to choose a slippage tolerance, using hypothetical numbers. It also covers the front-running risk that comes with a wide tolerance and a checklist for every swap.
Price impact: the price your order moves
Price impact is the price change caused by the size of your own trade. On an order book, a large order works through several price levels; on an AMM, it shifts the ratio of pooled assets. Either way, the average fill gets worse. The SEC's Investor.gov notes that a market order guarantees execution but not price.
Price impact can be calculated right before you trade. The same amount has small impact in a deep market and large impact in a shallow one. A high price-impact figure on the swap screen is a signal to reduce or split the trade.
Slippage: the price that moves after you send
Slippage is the difference caused by price movement between signing a transaction and its execution in a block. If other people's trades are processed first, the pool's ratio changes and so does what you receive. Uniswap's documentation notes that slippage must be considered separately from price impact.
That is why swap interfaces include a slippage tolerance: if you would receive less than the expected amount by more than that percentage, the transaction fails. You lose the gas spent on a failed transaction, but you avoid being filled at a price you did not accept.
Calculating the minimum received
As a hypothetical example, suppose a swap of 30,000 USDC for ETH shows an expected output of 9.091 ETH. The minimum received depends on the tolerance you set.
| Tolerance | Minimum received | Worst-case shortfall | Notes |
|---|---|---|---|
| 0.1% | ≈ 9.082 ETH | ≈ 0.009 ETH | Fails often when prices are volatile |
| 0.5% | ≈ 9.046 ETH | ≈ 0.045 ETH | Close to a common default |
| 1.0% | ≈ 9.000 ETH | ≈ 0.091 ETH | Used for more volatile tokens |
| 5.0% | ≈ 8.636 ETH | ≈ 0.455 ETH | Exposed to sandwich attacks |
Minimum received = expected output × (1 − tolerance). The tolerance is the worst-case loss you agree to in advance.
The risk of a wide tolerance
A wider tolerance makes failure less likely but leaves more room for a poor fill. Pending transactions on public blockchains are visible, so someone can see your swap, buy ahead of it to push the price up, and sell right after your trade executes. This is known as a sandwich attack.
The most an attacker can extract is roughly the tolerance you set. At 5% in the table above, you could be filled up to 0.455 ETH worse than expected. The rule of thumb is to keep the tolerance just wide enough for the trade to succeed.
What to read on the swap screen
Most swap screens show the expected output, minimum received, price impact, network fee, and routing. If the route passes through several pools, each step adds its own price impact and fee.
Forcing a trade through by widening the tolerance when price impact is high makes for an expensive trade. Alternatives include splitting the trade, finding a deeper market, or using a service that supports limit-style orders.
Limits to set before you execute
Apply this checklist before every swap on a DEX.
- Check the price-impact percentage and reduce or split the trade if it is high.
- Set the slippage tolerance yourself to suit the token's volatility rather than accepting an automatic setting.
- Read the minimum received and decide whether you can accept that worst case.
- Check the route, the number of pools it passes through, and fees at each step.
- For large trades, check whether your wallet or the service offers a submission method that protects against front-running.
What the numbers cannot guarantee
Expected output and price impact are calculated from the state just before you trade; the state when your transaction lands can differ. A minimum-received limit caps the worst outcome but does not guarantee a good price.
The amounts and percentages above are hypothetical. When trading, check the service's current interface and documentation with their dates, and watch how the minimum received changes each time you adjust the tolerance.
