Verification checklist

  • At one timestamp, read the mark, the last price, and the liquidation comparator the venue’s docs name (liquidation price or maintenance-margin ratio).
  • A long is liquidatable when mark is at or below the liquidation price; a short, when mark is at or above it. Do not substitute last price.
  • Buffer R = |last − liq| / last. Divergence V = |mark − last| / mark. If V > R, do not call the position safe.
  • A chart screenshot must name its price type and timestamp. An unlabeled candle is not liquidation evidence.

1. Last price is a fill; the mark is the risk price

A perpetual panel carries at least two prices. Last price is the latest fill on that venue’s book. The mark is the reference used for unrealized PnL and for liquidation. Binance’s liquidation note says liquidation happens when the mark reaches the liquidation price, while realized PnL is calculated from the last price. The two series do not answer the same question. A note that pastes only the default chart has copied a trade print, not the series the engine is comparing.

This is not the site’s spot-futures basis note. That one asks whether funding pays the carry. This one takes the liquidation price as already computed and asks which tape you compare it with. It is also not the margin-tier note: a tier changes the liquidation price itself when notional crosses a threshold. Here the price is given, and the ban is on letting last price stand in for the mark. Auto-deleveraging is later still. It starts after the insurance fund cannot absorb the liquidation. Until the mark has crossed, that discussion has not started.

2. A worked example: last is 1.25% away, the mark has already crossed

Take a long. The chart’s last price is 64000 and the liquidation price is 63200, so the picture shows 800 of room. Buffer R = 800 / 64000 = 1.25%. At the same timestamp the mark is 62800. Divergence V = |62800 − 64000| / 62800 = 1200 / 62800 ≈ 1.91%. V is greater than R. A long is liquidatable when the mark is at or below the liquidation price: 62800 is already below 63200, while last is still 800 above the line. A sentence that says “price has not touched the liquidation line” fails the screen. The table is entirely hypothetical.

Worked example: at one timestamp, last price and the mark are not the same liquidation column
FieldTeaching valueReading
Last price64000What the default chart draws
Mark price62800What the liquidation engine reads
Liquidation price63200The long’s comparator
Last-price buffer R800 / 64000 = 1.25%The panel still looks clear
Divergence V1200 / 62800 ≈ 1.91%Greater than R; not “safe”
Long liquidatable?62800 ≤ 63200Yes; last has not touched the line

The 1.91% gap is not a rendering bug. Last price can be pulled away by one fill on a thin local book while the mark stays near the index. For a long, the dangerous sign is mark below last: the chart is still above the line and the engine is already under it. A short is the mirror. When the mark sits above last, the chart looks farther from liquidation than the engine is. Reverse the side and the buffer changes sign.

3. The mark is an index plus a smoothed basis, not this venue’s last trade

Binance’s mark-price note builds the contract mark as a median of several inputs, including a price index, time remaining in the funding interval, and a basis moving average on the order of 30 seconds. It is not defined as the last trade. OKX’s mark-price note writes mark as the index plus a moving-average basis, where the basis is a smoothed gap between the contract mid and the index. The formulas differ. The check does not: open that venue’s spec, name the series liquidation reads, and sample that series at one timestamp.

OKX’s liquidation FAQ adds a second cut. The liquidation price shown on a position is an estimate. The trigger is the mark at the moment the maintenance-margin ratio hits the venue’s threshold. An estimated line that was not recomputed after a size change, a leverage change, or a margin-tier crossing is already stale. Confirm the line still matches the position, then compare the mark with it. A stale estimate stops the note at “liquidation price not refreshed.” It is not a verified safety distance.

When the index feed breaks, some venues temporarily substitute a bounded last price for the mark. If the spec describes that fallback, the note has to say “fallback is on.” Do not assume the engine is still reading the index. In that window the two series converge, so a smaller V does not mean the risk went away. It means the two columns were tied together for a while.

4. A screen: if the gap exceeds the buffer, the position is not “safe”

The teaching screen is: last-price buffer R = |last − liq| / last, divergence V = |mark − last| / mark. If V > R, do not call the position safe from a last-price chart. A long has a harder line: if the mark is at or below the liquidation price, it is liquidatable, wherever last sits. A short is symmetric: mark at or above the liquidation price means liquidatable. The inequality is not a physical constant. It says the gap between the two series is already wider than the room you thought you had, so quoting the candle is quoting the lesser series.

The screen does not say who takes the other side after a liquidation, and it does not say whether the next clip will move the liquidation price up a margin tier. A failed fill walks into the insurance fund and auto-deleveraging. A tier moves the liquidation price. This note only asks, at the moment the liquidation price is given, whether the price the engine sees has crossed it. Passing once does not make the next minute safe. The mark updates continuously. One pass does not generalize to “this move had no liquidation risk.” A generalization needs the path of the mark relative to the liquidation price over the window, and in a violent window the p95 of V, not the mean. The mean is pulled down by quiet seconds and writes the second that crossed as noise.

A stop can also be wired to the wrong trigger. If the stop fires on last price and liquidation reads the mark, the two conditions race. Last can miss the stop while the mark liquidates the position, or the reverse. Write down the stop’s trigger type. “The stop should have fired first,” with no trigger type, is not evidence that the liquidation was wrong.

5. Keep a record another researcher can replay

The minimum fields are: venue and contract, side, margin mode, timestamp, the mark as printed, the last price as printed, the liquidation price or maintenance-margin ratio as printed, R, V, whether V exceeded R, the cross test for that side, the chart’s price type, and the stop’s trigger type. Mark and last must share a timestamp. If they are more than a few seconds apart, book them as two states. Do not join the rows. The fill price on a liquidation report is not the trigger. The trigger is the mark at that moment. The fill is whatever the book paid afterward, and in a fast market the two can separate.

Reconcile in a fixed order: the comparator named in the docs, the mark at that timestamp, whether it crossed, then the last-price buffer. Compute V before deciding whether the chart may be cited. A screenshot that does not name its price type cannot support a “verified safety distance.” If replaying historical marks requires a paid archive, write the data-source grade into the record.

6. Safety is measured on the mark, not on the candle

The weak sentence is “the candle has not touched the liquidation price, so the position is safe.” A useful one is “mark; last; liquidation condition; R; V; crossed or not.” Last price says where this venue just traded. The mark says which line the engine will liquidate on. Missing either column, safety is an unverified interface.

This is a research framework with hypothetical calculations, not a quality opinion on any venue or price feed, and not investment advice.