TrueHold

Perp PnL explained: why your number and the exchange’s disagree

Perp PnL is four numbers pretending to be one: unrealized, realized, funding and fees. What each moves on, and why two screens rarely agree.

Published

Open the same perp position on two screens and you will often read two different profits. Neither is lying. Perp PnL is not one number: it is four, they update on different clocks, and every venue chooses which of them to put in the big font. Once you know which four, the disagreement stops being a mystery and starts being arithmetic you can check.

The four numbers

Every open perp position carries these at once. A dashboard that shows one of them is not wrong, it is answering a narrower question than you asked.

Unrealized PnL

What it measures

What the position would make if closed at the mark price right now

When it changes

Every tick, while the position is open

Realized PnL

What it measures

What closed parts of the position actually made

When it changes

Only when you close or reduce

Funding paid or received

What it measures

The periodic payment between longs and shorts

When it changes

Every funding interval, typically hourly or eight-hourly

Fees

What it measures

Taker and maker fees on every fill

When it changes

On each fill, including the closing one

The headline figure on most venues is unrealized PnL alone. It is the most flattering of the four, because it has not yet paid the fees that closing will cost and, on many venues, it does not carry the funding the position has already paid.

Mark price, not last price

Unrealized PnL is calculated against the mark price, not the last trade. The mark is a smoothed reference, usually an index of several spot venues with a premium adjustment, and it exists so that one thin print cannot liquidate a book. In calm markets the two are nearly identical. In a wick they are not, which is why a position can show a loss at a price that never printed on the chart, and why liquidation triggers off the mark rather than off the candle you are looking at.

Funding is the part people forget

A perpetual has no expiry, so something has to tether it to spot. That something is the funding rate: when the perp trades above the index, longs pay shorts; when below, shorts pay longs. Hold a crowded long through a week of positive funding and the payments can exceed the price move that drew you in.

Why two screens disagree

Four ordinary causes, in the order they usually explain it.

  • One screen shows unrealized only, the other shows unrealized plus funding paid so far.
  • One prices the position on the mark, the other on the last trade.
  • Fees are netted into PnL on one venue and reported as a separate line on the other.
  • The position was reduced once, so part of it is realized and the two screens split that part differently.

The question worth asking of any dashboard is therefore not "what is my PnL" but "which of the four is this, and over what window". A tracker that reads your address across venues can hold all four side by side; see how that looks on Hyperliquid and on Lighter, and how the pieces add up across venues in total perps exposure.

Reading a closed trade honestly

The whole truth about a finished perp trade is one line: realized PnL, minus fees on both sides, minus funding paid over the life of the position, plus funding received. Do that for a month of trades and the number will usually sit below the one the app celebrated at the time. That gap is not a bug in the venue; it is the cost of carry that the headline number never included.

Frequently asked questions

Why is my perp PnL different from what the chart suggests?

Because unrealized PnL prices against the mark price, not the last trade. The mark is an index of several spot venues with a premium adjustment, so it can sit slightly off the candle you are reading. It is also what liquidations trigger from.

Does funding count as profit or loss?

It is a real cash flow into or out of your margin, so it belongs in the result of the trade. Most venues report it separately from PnL, which is why a position can be flat on price and still down on the day.

Is unrealized PnL taxable?

In most jurisdictions no, because nothing has been disposed of yet, but perps are treated differently from country to country and funding payments are their own question. This is not tax advice; see the crypto tax checklist for what to keep, and ask a professional about your own case.

Why does my PnL change when I have not traded?

Two reasons. The mark price moved, which changes unrealized PnL, or a funding interval passed and the payment settled against your margin.

What is the honest result of a closed perp trade?

Realized PnL, less the fees on entry and exit, less funding paid, plus funding received. Anything that omits funding and fees flatters the trade.

See your whole portfolio in one view

TrueHold is an AI-native financial and DeFi platform for modern capital. Paste a wallet or link an exchange to see every chain in one view, free.

Open TrueHold →