> ## Documentation Index
> Fetch the complete documentation index at: https://dev.jup.ag/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Slippage Estimation

> Use RTSE for optimal slippage on Meta-Aggregator and Router

Slippage is the difference between the quoted output amount and what you actually receive. It depends on token pair volatility, trade size relative to pool liquidity, and time between quoting and execution.

Jupiter's **Real-Time Slippage Estimator (RTSE)** estimates the optimal slippage tolerance for each swap, balancing trade success against price protection.

## How RTSE works

RTSE estimates slippage at **order time** (when you call `/order` or `/build`), not at execution time. The estimated slippage is baked into the transaction.

RTSE uses a variety of heuristics, algorithms, and monitoring to estimate the best possible slippage:

* **Heuristics:** token categories, historical and real-time slippage data. Uses token categories to intelligently estimate slippage for different token types, with increased sensitivity for tokens with high historical volatility patterns.
* **Algorithms:** Exponential Moving Average (EMA) on slippage data to smooth out noise and follow trends.
* **Monitoring:** real-time monitoring of failure rates to reactively increase slippage when necessary.

## RTSE on Meta-Aggregator vs Router

|              | Meta-Aggregator (`/order`)           | Router (`/build`)                             |
| ------------ | ------------------------------------ | --------------------------------------------- |
| **RTSE**     | Automatic. Applied at order time.    | Opt-in. Pass `slippageBps=rtse`.              |
| **Default**  | RTSE (no param needed)               | `slippageBps=50` (fixed 0.5%)                 |
| **Override** | Pass `slippageBps` for a fixed value | Pass a number for fixed, or `"rtse"` for RTSE |

### Meta-Aggregator (automatic)

On the Meta-Aggregator path (`/order`), RTSE is applied automatically when the order is created. You do not need to set any slippage parameter. The estimated slippage is embedded in the transaction returned by `/order`.

If you pass `slippageBps` to `/order`, it overrides RTSE with a fixed value. Fixed `slippageBps` does not restrict `/order` to Metis-only routing by itself.

### Router (opt-in)

On the Router path (`/build`), slippage defaults to 50 bps (0.5%). To enable RTSE, pass the literal string `"rtse"`:

```
GET https://api.jup.ag/swap/v2/build?inputMint=...&outputMint=...&amount=...&taker=...&slippageBps=rtse
```

The estimated slippage is reflected in `otherAmountThreshold` in the response.

## When to use RTSE

**Use RTSE (recommended for most cases):**

* You want Jupiter to handle slippage optimisation for you
* You are swapping tokens where the right slippage is hard to predict
* You want to minimise failed transactions without overpaying on slippage

**Use a fixed `slippageBps` value when:**

* You want to accept more slippage to improve success rate, e.g. trading memecoins or exiting a position as quickly as possible
* You are building a UI that lets users set their own slippage
* You need deterministic behaviour for testing or simulation

## Related

* [Routing impact matrix](/swap/order-and-execute#routing-impact-matrix): how optional parameters affect which routers are available
* [Order & Execute](/swap/order-and-execute): the default swap flow where RTSE is automatic
* [Build](/swap/build): full transaction control, RTSE is opt-in via `slippageBps=rtse`
