Updated Rules checked 2026-10-18
The mark price is a fair price that an exchange calculates from the index price, the funding rate and the futures order book. The last price is simply the price of the most recent trade on that contract. The official documentation of all 13 exchanges states that liquidation is based on the mark price (MEXC and Ourbit call it the “Fair Price”), and BingX and HTX also require the last price to reach the level. Charts show the last price by default, so a wick of a few seconds on the futures market alone usually won’t get a position liquidated.
Take-profit and stop-loss orders work differently: you choose the trigger price yourself. Bybit and XT trigger on the last price by default, and WEEX’s help page says the default is usually the last traded price. A stop-loss triggered by the last price sends a market order as soon as a wick touches it. Triggering by the mark price makes it less likely to be swept by brief abnormal trades, but once triggered it still fills at the current market price and may suffer slippage.
I put the mark price formulas of 13 exchanges, the price each one uses for liquidation, and the trigger prices available for TP/SL into one table. I also ran Binance’s formula once to see how long a wick has to last before the mark price falls to the liquidation price.
Key points
The official documentation of all 13 exchanges uses the mark price (or Fair Price) to decide liquidation; the last price determines your actual fill price and realized PnL.
At Binance, Bybit, Bitget, Gate, KuCoin, XT, BingX and Ourbit, the mark price is the median of three prices, two of which are built on an index price drawn from several spot exchanges. When the futures contract wicks on its own, the mark price usually stays close to the index.
BingX states that it uses dual-price liquidation: a position is liquidated only when both the mark price and the last traded price reach the liquidation price. HTX’s 2021 documentation also states that the margin ratios calculated from both prices must meet the threshold at the same time.
Bybit and XT trigger TP/SL on the last price by default, and Bybit warns that a stop-loss triggered by the last price may not fire before liquidation.
On 2026-10-18 I read the official APIs of 8 exchanges: the gap between the BTCUSDT last price and mark price was mostly within 0.004%. In normal conditions the two are almost identical; the gap widens only in violent markets.
The data below was verified against official pages on 2026-10-18 (data check date) and is provided for reference.
Last price, mark price, index price: what are the three prices?
Futures trading pages and charts usually let you switch between three prices. Their sources and uses are summarized below, with definitions taken from Binance’s futures liquidation protocol, OKX’s TP/SL guide (updated 2026-08-26) and KuCoin’s mark price guide (updated 2025-12-30):
| Price | Where it comes from | What it’s used for | Can it wick? |
|---|---|---|---|
| Last Price | The price of the most recent trade on this contract at this exchange | Actual fill price, realized PnL; shown on the chart by default | Yes. Large orders or thin liquidity can push it away for a moment |
| Index Price | A weighted average of prices on several major spot exchanges | Used to calculate the mark price and funding rate; selectable for TP/SL at some exchanges | Abnormal quotes from a single exchange are removed or capped |
| Mark Price | Built on the index price plus the funding rate or the order-book basis; each exchange uses its own formula | Unrealized PnL, liquidation trigger; selectable for TP/SL | Steadier than the last price, but it still falls when spot falls hard too |
Source: each exchange’s official documentation, checked 2026-10-18.
Index components differ by exchange. Binance lists sources including Binance, KuCoin, OKX, Gate, MEXC, Coinbase, Kraken, Bitget and Bybit, and also includes the last price of its own futures contract. When a single source deviates from the median of all sources by more than 3%, it is counted at 1.03 or 0.97 times the median; for major pairs such as BTCUSDT and ETHUSDT the limit is 1% (Binance mark price and index price guide, updated 2026-09-25). KuCoin lists 11 spot exchanges, and quotes that deviate from the median by more than 5% are adjusted to 1.05 or 0.95 times the median (KuCoin index price guide). MEXC simply removes any quote that deviates from the median by ±1% (MEXC FAQ on Index Price, Fair Price and Last Price, 2026-02-19).
At 14:18 UTC on 2026-10-18 (22:18 Taiwan time), I read the official public APIs of 8 exchanges. Here are their BTCUSDT perpetual prices at the same moment:
| Exchange | Last price | Mark price | Index price | Last − mark |
|---|---|---|---|---|
| Binance | 81,285.30 | 81,285.30 | 81,325.61 | 0 (0%) |
| Bybit | 81,283.10 | 81,285.08 | 81,325.81 | −1.98 (−0.0024%) |
| OKX | 81,293.00 | 81,294.10 | 81,329.00 | −1.10 (−0.0014%) |
| Bitget | 81,299.10 | 81,299.20 | 81,327.62 | −0.10 (−0.0001%) |
| Gate | 81,299.90 | 81,297.15 | 81,329.50 | +2.75 (+0.0034%) |
| MEXC | 81,285.20 | 81,285.50 | 81,326.90 | −0.30 (−0.0004%) |
| KuCoin | 81,272.80 | 81,293.34 | 81,328.30 | −20.54 (−0.0253%) |
| BingX | 81,292.40 | 81,293.00 | 81,331.10 | −0.60 (−0.0007%) |
Source: each exchange’s official public market data API (for example Binance premiumIndex, Bybit tickers, Gate tickers), read at 14:18 UTC on 2026-10-18, in USDT. The numbers change every second.
In normal conditions the last price and mark price differ by only a few dollars. KuCoin’s gap at that moment was about 20 USD, still only 0.03%. Another pattern: every mark price was about 0.03% to 0.05% below the index price, meaning futures were trading slightly below spot at the time. Pionex’s documentation says that in violent markets the gap between the mark price and the last price can reach 1% to 3% (Pionex mark price guide).
Why does liquidation use the mark price?
A contract’s last price only reflects trades on that one exchange. When the order book is thin, a single large market order can punch through several price levels in an instant. If liquidation followed the last price, a few seconds of that kind of anomaly would wipe out a whole batch of positions. Bybit calls its design a “dual-price mechanism” and states that a position is liquidated only when the mark price reaches the liquidation price (Bybit mark price guide, updated 2026-09-04). OKX’s liquidation FAQ also says the liquidation price refers to the mark price, not the last price and not the index price (OKX liquidation FAQ, updated 2026-08-27).
Binance’s formula shows how it filters out wicks (Binance mark price and index price guide):
- Mark price = median(Price 1, Price 2, futures last price)
- Price 1 = index price × [1 + last funding rate × (time until next funding ÷ funding interval)]
- Price 2 = index price + 30-second moving average of the basis; the basis is (best bid + best ask) ÷ 2 − index price, sampled every second and averaged over 30 points
Two of the three prices are built on the index price. When the futures last price wicks on its own, it simply becomes the lowest (or highest) of the three, and the mark price is set by the other two.
Worked example (hypothetical): the BTCUSDT index price stays at 80,000 USDT, the last funding rate is 0.01%, funding settles every 8 hours with 4 hours to go, and the normal basis is +20. Price 1 = 80,000 × (1 + 0.01% × 4 ÷ 8) = 80,004; Price 2 = 80,000 + 20 = 80,020; the last price is 80,030, so the mark price is the median, 80,020. Your long position’s estimated liquidation price is 77,000. Now a large order slams the futures market into a wick: the last price and the order-book mid price drop to 76,500, stay there for 3 seconds, then bounce back. Over the 30 seconds, 27 seconds have a basis of +20 and 3 seconds have a basis of −3,500, so Price 2 = 80,000 + (27 × 20 − 3 × 3,500) ÷ 30 = 79,668. The mark price = median(80,004, 79,668, 76,500) = 79,668, still about 2,668 USDT above 77,000, so the position is not liquidated.
Working backward: with the index unchanged, for Price 2 to fall to 77,000 the average basis over 30 seconds must drop below −3,000, which means the wick has to last about 26 seconds (25.7 seconds) or longer before the median falls below 77,000. Bybit’s moving average covers 2.5 minutes, so under the same conditions it would take about 129 seconds; Gate states a sampling window of usually 5 minutes, which would take about 257 seconds. This example only breaks down the formula and assumes spot does not fall with it. If the spot market drops too, the index price comes down, both Price 1 and Price 2 fall, and the mark price can still hit the liquidation price.
The mark price also sets your paper profit and loss. XT and Ourbit both note that seeing a small unrealized PnL right after an order fills is normal: it comes from the slight difference between the mark price and the fill price and does not mean you have already lost money (XT mark price guide, Ourbit Fair Price guide). When you actually close the position, realized PnL is calculated at the last traded price.
Should your stop-loss trigger on the last price or the mark price?
Liquidation always follows the mark price, but most exchanges let you choose the trigger price for TP/SL. Bybit’s FAQ on order execution and liquidation (updated 2026-09-25) lays out the pros and cons of the three trigger prices most clearly:
| Trigger price | Pros | Cons |
|---|---|---|
| Last Traded Price (Bybit default) | Trigger point is closest to the actual fill price | For a stop-loss, it may not fire before liquidation, because liquidation follows the mark price |
| Mark Price | Commonly used for stop-losses; more likely to trigger before liquidation | The order still fills at the last traded price, so a gap between the two prices at the moment of triggering causes slippage |
| Index Price | Combines several spot exchanges, so a brief wick on a single exchange is unlikely to trigger it | In fast-moving markets it may lag the market price, triggering late or missing opportunities |
Source: Bybit FAQ on order execution and liquidation, checked 2026-10-18.
Other exchanges give broadly the same official advice. Bitget writes that the last price is “more susceptible to short-term price fluctuations and abnormal trades,” and that the mark price suits medium- to long-term positions better (Bitget introduction to TP/SL, 2025-10-23). Pionex recommends the last price for take-profit and the mark price for stop-loss (Pionex trigger price guide). MEXC lists “trigger by Fair Price” as one way to keep a stop-loss from firing too early (MEXC TP/SL FAQ, 2026-10-08).
Back to the example above: a stop-loss at 77,500 triggered by the last price fires when the wick hits 76,500 and sends a market order. The fill could be near 76,500 or even worse, and when the price bounces back 3 seconds later, the position is already closed. The same stop-loss triggered by the mark price would not fire, because the mark price only dropped to 79,668. The trade-off is that the mark price is averaged, so in a real decline it reacts a little more slowly than the last price, and once triggered it also fills at the current market price.
Whichever you choose, two things don’t change:
- Put the stop-loss before the liquidation price, with room to spare: Binance states that it does not recommend setting the stop-loss trigger too close to the estimated liquidation price, or the position may be liquidated first and the stop order becomes void (Binance stop-loss and take-profit order guide, updated 2026-01-02). Bybit’s example: last price 12,050, liquidation price 12,000, stop-loss at 12,030 triggered by the last price. If the mark price falls to 12,000 first, the position is liquidated first.
- Once triggered, it usually fills at market and pays the taker fee: Binance’s VIP 0 rate for USDⓈ-M futures is Maker 0.02% and Taker 0.05% (Binance futures trading fee guide, updated 2026-05-01). A market stop-loss on 0.1 BTC at 76,500 costs 7,650 × 0.05% = 3.825 USDT in fees.
A triggered stop-loss pays the normal trading fee. For a Binance account registered with a referral code, the exchange refunds 20% of your futures trading fees. The rebate only covers fees; it does not change slippage or liquidation losses.
Watch the defaults too. Bybit states that its TP/SL uses the last traded price by default (Bybit TP/SL guide, updated 2026-10-08), and XT’s FAQ also says the stop-loss trigger price defaults to the last traded price. On the Binance website you can go to “Settings” → “Default Trading Settings” → “Default Trigger Type” and switch to Last Price or Mark Price; it applies to conditional orders on USDⓈ-M futures, COIN-M futures and copy trading (Binance leverage, margin mode and trigger type settings, updated 2026-01-06).
How 13 exchanges calculate the mark price and which triggers they support
The table below summarizes each exchange’s mark price formula for USDT perpetuals, the price used for liquidation, and the trigger prices and defaults available for TP/SL. Where an exchange doesn’t state a default, I wrote “not stated officially”; check the order screen for the actual setting.
| Exchange | How the mark price is calculated (official formula, summarized) | Price used for liquidation | TP/SL trigger options | Default trigger | Sources |
|---|---|---|---|---|---|
| Binance | Median (index × funding adjustment, index + 30-second average basis, last price) | Mark price | Last Price, Mark Price | Default can be customized; factory setting not stated officially | Formula, Trigger |
| OKX | Index price + moving average of the basis (averaging window not stated officially) | Mark price | Last Price, Mark Price, Index Price | Not stated officially | Formula, Trigger |
| Bybit | Median (index × funding adjustment, index + 2.5-minute average basis, last traded price); index uses the top 6 spot pairs by volume | Mark price | Last Traded Price, Index Price, Mark Price | Last Traded Price | Formula, Trigger |
| Bitget | Median (last price, index × funding adjustment, index + 30-second average basis); index uses up to 6 exchanges, excluding any 5% away from the median | Mark price | Last Price, Mark Price, Index Price | Not stated officially | Formula, Trigger |
| MEXC | Fair Price = median (funding rate premium, mid-price basis fair price, last price); index quotes ±1% from the median are removed | Fair Price | Last Price, Fair Price, Index Price | Not stated officially | Formula, Trigger |
| Gate | Median (index × funding basis rate, index + moving average basis (usually 5 minutes), last traded price); plus a deviation cap and instant-volatility protection | Mark price | Last Price, Mark Price, Index Price | Not stated officially | Formula, Trigger |
| BingX | Median (index price, index + 5-minute average basis, last traded price) | Both mark price and last traded price must reach it (dual price) | Mark Price, Last Price | Not stated officially | Formula, Trigger |
| KuCoin | Median (index × funding adjustment, index + 300-second average basis, last traded price); index uses 11 exchanges, quotes 5% off are adjusted | Mark price | Last Price, Mark Price; conditional orders can also use Index Price | Not stated officially | Formula, Trigger |
| HTX | Median (funding basis fair price, depth-weighted fair price, EMA of last price), calculated every 5 seconds | 2021 documentation: liquidated only when margin ratios from both the last price and mark price meet the threshold | Help page mentions the last traded price; whether mark price can be selected is not stated officially | Not stated officially | Formula, Trigger |
| XT | Median (index × funding adjustment, index + 30-minute average basis, contract price); if it deviates from the index by more than 1%, Price 2 is used directly | Mark price | Last Price, Mark Price, Index Price | Last traded price | Formula, Trigger |
| WEEX | Spot index price + moving average of the basis | Mark price | Last Price, Mark Price | Usually the last traded price | Formula, Trigger |
| Pionex | Index price + moving average of the basis (5 minutes) | Mark price | Last Price, Mark Price | Not stated officially | Formula, Trigger |
| Ourbit | Fair Price = median (funding rate premium, mid-price basis fair price, last price) | Fair Price | Trigger price type is selectable (trigger orders list Market Price, Index Price, Fair Price) | Not stated officially | Formula, Trigger |
Source: each exchange’s official documentation linked in the table, checked 2026-10-18. “Funding adjustment” means index × (1 + funding rate × time until next funding ÷ funding interval); the exact wording varies slightly by exchange, and Bybit’s formula always divides by 8.
The table shows moving-average windows ranging from 30 seconds (Binance, Bitget) to 30 minutes (XT). The longer the window, the less a brief wick moves the mark price, but the later it reflects the gap between futures and spot. The formulas of OKX, WEEX and Pionex are just “index + moving average of the basis,” with no median step. HTX’s documentation was published in March 2021, and its official page does not say whether it has changed since.
What happens during a wick?
A wick is a very long upper or lower shadow on a candlestick: the price swings far away and bounces back within an extremely short time. Under each exchange’s official rules, three things react differently during a wick:
- Liquidation: based on the mark price. The median formulas at Binance, Bybit, KuCoin and others exclude a last price that deviates on its own. BingX goes further: a position is liquidated only when both the mark price and the last traded price reach the estimated liquidation price (BingX dual-price liquidation mechanism).
- TP/SL: depends on the trigger price you chose. XT’s example: a take-profit trigger at 4,000 with the trigger type set to mark price. The last price touches 4,000 and quickly drops again, but the mark price never reaches 4,000, so the take-profit does not trigger (XT TP/SL FAQ, updated 2026-10-06). With last price selected, it would trigger.
- Charts: most exchanges show the last price on the chart by default. Bybit states that if you are liquidated even though the chart never touched your liquidation price, it is usually because liquidation follows the mark price (the yellow price on the order book), not the last traded price on the chart.
Exchanges also have a few other protections. Here is how they describe them officially:
- Gate mark price instant-volatility protection: when the mark price swings sharply compared with the past few minutes, updates pause and unrealized PnL is temporarily frozen so positions are not liquidated. Updates resume once the price returns; if it does not return for a long time, normal calculation resumes gradually. Gate also caps how far the mark price can deviate from the spot index for every contract; for TradFi contracts the cap is 3% (Gate mark price calculation).
- Binance last price protection: when stable index data cannot be obtained, Binance temporarily updates the index within a set range using the futures last traded price, which is then used to calculate unrealized PnL and the liquidation line. If the mark price moves abnormally and sharply in a short time, Binance reserves the right to switch that pair to reduce-only mode.
- Price-gap protection for TP/SL: with Binance’s “Price Protection” enabled, TP/SL will not trigger when the gap between the last price and the mark price exceeds a threshold (Binance futures price protection guide, updated 2026-03-03). On 2026-10-18 I read the triggerProtect field from Binance’s exchangeInfo API: the threshold for BTCUSDT, ETHUSDT and SOLUSDT is 5%, and 402 of the 525 USDT perpetuals currently trading are set at 15%. MEXC and Gate futures settings also include “price spread protection”: when the gap between the last price and the Fair Price (Gate: the last price, mark price or index price) exceeds the threshold, TP/SL orders are rejected (MEXC futures preferences, Gate TP/SL FAQ).
Price-gap protection has a cost as well. The downside Binance itself lists: in a market that moves fast but not abnormally, the protection can keep orders from executing, so you may miss a chance to take profit or stop out.
What risks come with the mark price?
Leveraged trading can be forcibly liquidated when the price moves against you, and you can lose your entire margin. The mark price only reduces “unnecessary” liquidations; it cannot guarantee you won’t be liquidated:
- It doesn’t help when spot falls too: the mark price is built on the index price, so it falls along with the whole market.
- The liquidation price can be skipped: in Binance’s example, a short position has a liquidation price of 17,006, and the mark price jumps from 17,000 to 17,100 within one second. The position is liquidated at 17,100, and the liquidation record also shows 17,100 (Binance futures liquidation protocol).
- TP/SL fills are not guaranteed: OKX states that TP/SL orders may fail because of price limits, position limits, insufficient margin, the contract not being in a trading state, or system issues, and a limit order placed after triggering may not fill either.
- Triggered by mark price, still filled at market price: WEEX notes that the mark price only does the triggering; once triggered, TP/SL fills at the latest best bid or best ask, depending on market depth (WEEX mark price guide). When the two prices are far apart, the fill can differ a lot from the trigger price.
- Newly listed, illiquid contracts have wider gaps: the mark price of Binance pre-market futures is the average of trade prices over the last 10 seconds, and Gate may activate a price circuit breaker on newly launched contracts, during which you can only reduce positions.
- Rules change: Binance, Bybit and BingX all state that they reserve the right to adjust index components or mark price filtering criteria without separate notice.
FAQ
What is the mark price?
The mark price is a fair price for a futures contract calculated by the exchange, used to compute unrealized PnL and decide liquidation. Formulas differ by exchange; most start from an index price drawn from several spot exchanges and adjust it with the funding rate or the order-book basis. Binance, Bybit, Gate and others then take the median of those values together with the last traded price.
What’s the difference between the mark price and the last price?
The last price is the price of the most recent trade on the contract; the mark price is a reference price calculated from the index price. The last price determines your actual fill price and realized PnL, while the mark price determines unrealized PnL and liquidation. Official APIs on 2026-10-18 showed the two usually differ by only a few dollars on BTCUSDT; Pionex says the gap can reach 1% to 3% in violent markets.
Is liquidation based on the mark price or the last price?
Liquidation is based on the mark price. The official documentation of all 13 exchanges states that liquidation is decided by the mark price (MEXC and Ourbit call it the Fair Price). BingX uses a dual-price mechanism and liquidates only when both the mark price and the last traded price reach the liquidation price, and HTX’s 2021 documentation also requires the margin ratios calculated from both prices to meet the threshold at the same time.
Can a wick get me liquidated?
If only the futures contract wicks and spot doesn’t move, usually not. Using Binance’s formula with the index unchanged, a wick below the liquidation price has to last about 26 seconds or more before the mark price follows it there. If spot also drops hard, though, the index price comes down and the mark price can still hit the liquidation price.
Is it better to trigger a stop-loss with the mark price or the last price?
If you worry about being swept by a wick or about the stop-loss not firing before liquidation, trigger by the mark price. If you want the trigger point closer to the actual fill price, use the last price. Bybit states that the mark price is commonly used for stop-losses, and Pionex recommends the last price for take-profit and the mark price for stop-loss. Either way, the order fills at the market price once triggered and may suffer slippage.
Why was I liquidated when the chart never reached my liquidation price?
Because the chart shows the last price by default, while liquidation follows the mark price. Bybit states that the chart shows the last traded price by default and that the mark price may reach the liquidation price first. Switch the chart to the mark price (on the Binance website, click “Last Price” on the chart to switch; on OKX, switch at the top left of the market page) to check the price at the moment of liquidation.
Why does my position show a loss right after I open it?
Because unrealized PnL is calculated with the mark price, which differs slightly from your fill price. XT and Ourbit both say this is normal and does not mean you have already lost money, but you should keep an eye on the liquidation price so you are not liquidated too early.
What is the index price?
The index price is a weighted average of prices on several major spot exchanges, and it is the basis for calculating the mark price and the funding rate. Binance, KuCoin, Gate and others list their component exchanges and adjust or remove quotes that stray too far from the median: for example 3% at Binance (1% for major pairs), 5% at KuCoin and ±1% at MEXC.
To see how far your own position is from liquidation, use the liquidation price calculator. For the difference between cross and isolated margin, see cross vs isolated margin; how to set stop-loss and take-profit orders is covered in how to set stop-loss and take-profit, and funding fees as a holding cost are explained in what is the funding rate. Step-by-step futures guides are available for Binance, OKX, Bybit, Bitget and other exchanges. For how fees are calculated, see how futures fees are calculated, and referral codes for other exchanges are collected in the exchange referral code roundup.
