Open any perp trading screen and you'll usually see two prices sitting next to each other, close but not identical. One is the last price — whatever the most recent trade actually printed. The other is the mark price — a reference many perp platforms use to calculate unrealized PnL and assess liquidation risk. Its exact calculation and uses vary by platform.

Most of the time the two numbers are close enough that the distinction doesn't matter. The moments it does matter are exactly the moments a trader most needs to understand it.

Prefer watching? Here's the 20-second version:

What Last Price Actually Is

Last price is a trade record, not a judgment. It's the exact price at which the most recent order on that market filled. If a single large sell order sweeps through thin liquidity and executes a slice of volume well below where the market was trading a second earlier, that low print becomes the new last price — even though it reflects one transaction, not a shift in where the broader market is actually valuing the asset.

That's the property that makes last price risky as a basis for anything with real consequences attached to it. A single order shouldn't be able to single-handedly decide whether other traders' positions get force-closed.

What Mark Price Is For

Mark price answers a different question: what reference price should the platform use to value positions and assess liquidation risk, independent of any single trade on this specific venue? It may use a spot-market index, an oracle feed, and adjustments based on perp-market conditions, rather than taken directly off the last fill. The exact calculation varies by platform.

Because it isn't anchored to a single trade the way last price is, mark price can be less sensitive to an isolated aggressive order, depending on how it's calculated. A thin-liquidity sweep that briefly prints a lower last price doesn't necessarily move the mark price by the same amount.

That's why many perp platforms use mark price, rather than last price, for the two calculations that actually have teeth: unrealized PnL and liquidation triggers. Rules vary by platform, so it's worth confirming how the one you're trading on handles it.

The Scenario Where It Matters: A Wick

A "wick" is a brief, sharp price spike or drop that reverts almost immediately — named after the thin wick shape it leaves on a candlestick chart. Wicks typically happen when a large order hits thin order book depth, or when a feed momentarily disagrees with the broader market.

Here's why the mark-price/last-price split exists in the first place: imagine a market where liquidations were triggered directly off last price. A trader (or an attacker, deliberately) could place one outsized order, briefly crash the last price through a cluster of liquidation levels, and force-close positions that looked fine the moment before and the moment after.

If the move is isolated to that one venue and the reference price behind mark price stays stable, using mark price instead of last price can reduce the risk of liquidations triggered solely by that local trade print. It's not a guarantee — if the reference feed itself moves, or if the mark-price calculation weights local trades more heavily, a wick can still bleed through.

Why This Is a Protocol Design Choice, Not a Guarantee

A mark-price calculation can reduce sensitivity to isolated trade prints, but it isn't immune to every failure mode. If the external reference feed itself updates slowly, mark price can lag a genuine, sustained market move. A stale reference can delay liquidation during an adverse move, or trigger liquidation using an outdated price after the market has already recovered — the effect depends on position direction and the price path. Protocols address this tradeoff through their reference-price methodology and update rules, which differ depending on which oracle infrastructure a given protocol uses and how frequently that feed updates.

That's a separate question from the mark-price-vs-last-price distinction itself, but it's worth knowing the two are connected: a clean mark-price design with a stale feed behind it still produces bad outcomes. For a deeper look at that specific failure mode, see What Is Stale Pricing and Why It Costs You Money.

How This Works on LeverUp

LeverUp doesn't run its own order book. Instead, it uses oracle-referenced pricing for position valuation and liquidation checks within its protocol-managed virtual liquidity architecture, with price data sourced from Pyth Pro. Using an oracle reference rather than a local order-book trade print can reduce exposure to venue-specific last-price distortions like the wick scenario above — see What is LeverUp? for the full mechanics.

That doesn't eliminate the freshness question — oracle feeds can still lag a fast market. LeverUp reported lower measured staleness in its internal comparison of Pyth Pro and Pyth Core (see 19× Fresher Price Feeds: LeverUp Upgrades to Pyth Pro). For the exact liquidation math LeverUp uses against that oracle-derived mark price, see How Liquidations Work on LeverUp.

The Short Version

  • Last price = the most recent trade print. It can be moved by a single order.
  • Mark price = a reference price used for PnL and liquidation decisions, calculated differently by different platforms, generally to reduce sensitivity to single-trade manipulation.
  • A wick that moves last price doesn't necessarily move mark price by the same amount — reducing sensitivity to isolated trade prints is one reason platforms distinguish mark price from last price.
  • Mark price design and oracle freshness are related but separate questions; a good mark-price model still needs a fresh feed behind it.

Trade on LeverUp: app.leverup.xyz