How to calculate real PnL on crypto futures
The number next to a closed trade is often not what actually landed in your account. Here is how net PnL is made up — price move, trading fees and funding — and how each exchange reports it.
Three parts of the result
Every futures trade has three money flows:
- Price PnL — the move between entry and exit. For a long: (exit − entry) × size. For a short: (entry − exit) × size.
- Trading fees — charged on entry and on exit, as a percentage of the position value (price × size). Market orders usually pay the higher taker fee, limit orders the lower maker fee.
- Funding — periodic payments between longs and shorts while the position is open. When the funding rate is positive, longs pay shorts; when it is negative, shorts pay longs. On most exchanges it is charged every 8 hours, on some markets more often.
Net PnL = price PnL − fees ± funding.
A worked example
Long 0.5 BTC, entry 60,000, exit 61,200, taker fee 0.05% on both sides, the position stayed open through three funding payments of 0.01% on about 30,000 of position value.
- Price PnL: (61,200 − 60,000) × 0.5 = +600.00
- Entry fee: 60,000 × 0.5 × 0.05% = 15.00
- Exit fee: 61,200 × 0.5 × 0.05% = 15.30
- Funding: 3 × 0.01% × 30,000 = 9.00 (paid, because the rate was positive and you were long)
- Net PnL: 600.00 − 15.00 − 15.30 − 9.00 = +560.70
Almost 7% of the result went to fees and funding — on a single trade. Over hundreds of trades this is often the difference between a profitable and a losing month.
How exchanges report it
Exchanges show “PnL” differently, which is why traders get confused when they add things up:
- Bybit — Closed P&L already includes the opening and closing fees and funding.
- OKX — realized PnL of a position includes fees and funding.
- Bitget — net profit of a position includes fees and funding.
- MEXC — realised PnL already includes fees and funding.
- Gate.io — the closed position’s PnL is the total; the parts (position, fees, funding) are shown separately.
- Binance — the realized PnL of a fill does not include fees; commissions and funding are separate records in the income history. You have to add them up yourself.
- Hyperliquid — closed PnL on a fill excludes the fee and funding; funding comes as separate payments.
See these numbers for your own trades
Connect an exchange and your trades load automatically — PnL, fees and funding per trade. The demo works without signing up.
ROI: two different numbers
The exchange screen often shows ROI (or ROE) as price move × leverage. Another common way is net PnL divided by the margin used — then fees and funding lower the ROI. Both are valid, they just answer different questions: “how good was the entry and exit” versus “how much did the margin actually earn”. Always check which one you are looking at before comparing trades.
How to keep track without spreadsheets
Doing this by hand for every trade is slow and error-prone, especially with partial closes and funding. CheckMyProfit loads your futures trades from 8 exchanges and shows each trade’s result with fees and funding included wherever the exchange reports them, plus a separate view of how much fees took over a period.