Skip to content

Research notes

Realized vs unrealized PnL in crypto: reconcile the result

A profitable partial close can leave a losing account. Follow one hypothetical position through booked costs, remaining exposure and final execution.

Ivory tiles float above one tray and rest inside another, illustrating unrealized and booked PnL.
Illustration for research notes; examples in this article are educational.

Realized PnL is profit or loss already booked through events such as a position close, fees, funding or product-specific settlement. Unrealized PnL is the changing valuation of exposure that remains open. In crypto, the exact labels depend on the venue and contract, so reconcile both figures with fills, costs and the valuation price before treating either as your account's total result.

A green open position can coexist with a negative booked result. A profitable partial close can coexist with a losing account. Neither observation is a contradiction: the figures describe different parts of the same economic exposure.

Define the number before comparing it

For this article, gross position PnL means price movement alone. Net booked PnL means realized price movement plus received cash flows, less paid fees and funding. Unrealized PnL means gross valuation of the remaining quantity at a stated reference price. These are worksheet definitions, rather than a promise that every dashboard uses those names.

For a simple linear contract whose quantity is expressed in the underlying asset:

  • Long gross PnL = quantity × (valuation or exit price − entry price).
  • Short gross PnL = quantity × (entry price − valuation or exit price).

Use a valuation price for open exposure and the actual fill price for closed exposure. Exchange contracts may express quantity as a contract count, requiring a face value or multiplier. Inverse contracts use different formulas. OKX's futures PnL calculation rules specify these product differences and use mark price for unrealized PnL.

The leverage-versus-position-size comparison explains why an unchanged linear quantity retains the same gross dollar PnL when its leverage setting changes. A margin-based return percentage can still change because its denominator changed.

A net result also needs a time boundary. “Today,” “since this position opened” and “all closed orders this month” can contain different events even on the same account. Write the start, end, timezone and product beside the figure.

Follow one position through a partial close

The following ledger is entirely hypothetical. It models one USDT-settled linear long with a 1,000 USDT starting wallet, no other positions, no external transfers, no collateral haircut, no session settlement and no liquidation. Entry is 0.020 BTC at 60,000 USDT. The chosen charges are illustrative amounts, not a venue fee schedule.

We assume the wallet changes with net booked PnL, and define simplified equity as wallet plus gross unrealized PnL. Equity here does not mean available margin or withdrawable balance.

EventOpen quantityGross unrealized PnLCumulative net booked PnLSimplified equity
Open at 60,000; pay 0.60 entry fee0.020 BTC0.00 USDT−0.60 USDT999.40 USDT
Reference reaches 61,000; pay 0.10 funding0.020 BTC+20.00 USDT−0.70 USDT1,019.30 USDT
Close 0.005 BTC at 61,000; pay 0.15 exit fee0.015 BTC+15.00 USDT+4.15 USDT1,019.15 USDT
Reference falls to 59,000; no new cash flow0.015 BTC−15.00 USDT+4.15 USDT989.15 USDT
Close remaining 0.015 BTC at 58,950; pay 0.45 exit fee0 BTC0.00 USDT−12.05 USDT987.95 USDT

The partial close realizes 0.005 × (61,000 − 60,000) = 5.00 USDT of gross price profit. After all charges paid by that point, net booked PnL is 5.00 − 0.60 − 0.10 − 0.15 = 4.15 USDT. The remaining unrealized gain is 0.015 × 1,000 = 15.00 USDT.

Closing that slice at the same price used to value it moves 5 USDT from unrealized to realized price profit. It does not create an additional 5 USDT of wealth. The 0.15 USDT exit fee reduces total equity.

The last row adds 0.015 × (58,950 − 60,000) = −15.75 USDT and a 0.45 fee to the booked result. Final net PnL is 4.15 − 15.75 − 0.45 = −12.05 USDT. Actual execution below the preceding reference also matters; the slippage and order-book depth guide explains that execution gap.

Why “realized” can already be negative on an open trade

An entry fee is a completed debit even while the price result remains open. Funding payments can also be booked before any closing fill. In the second ledger row, gross unrealized PnL is +20 USDT, while net booked PnL is −0.70 USDT.

Bybit's USDT contract documentation distinguishes a position's realized PnL from its closed-PnL records. Its realized figure includes trading fees, funding and partial-close price PnL; its closed-PnL treatment prorates opening and funding fees for a partial close. The two records can therefore allocate costs differently. Bybit's USDT PnL definitions and partial-close accounting explain that venue-specific distinction.

Our ledger books the full entry fee when paid. A report that allocates part of that fee to the remaining exposure can show a different closed-trade result without changing the account's total cash flows. Choose one cost-allocation convention for your worksheet and reconcile its total to the exchange records. Do not subtract fees again if the imported net figure already includes them.

To solve the exit price that recovers those included costs, use the break-even price worksheet. It separates the remaining position's threshold from recovery of a campaign that already contains partial exits.

Funding received is a credit; funding paid is a debit. Keep actual signed cash flows rather than assuming every funding event is a cost. Use the perpetual funding-cost worksheet for the payment calculation and timing questions.

A price reference is not an exit receipt

Two screens can value the same position differently. Bybit's USDT documentation describes a default last-traded-price unrealized display, while the OKX rules above use mark price. Record the actual field instead of assuming “current price” is precise enough.

An unrealized figure calculated at mark price cannot establish the price at which the full position will close. The mark-price and liquidation guide separates risk references from executable prices. For a meaningful comparison, align quantity, timestamp, price source and included costs.

The word “unrealized” also does not mean a loss is harmless. The fourth ledger row has a positive booked result of 4.15 USDT, yet equity is 10.85 USDT below its starting value. Measuring only profitable closes would hide that remaining exposure. The drawdown and recovery guide explains why a marked equity series matters alongside closed-trade statistics.

Settlement is an exception to the close-only shortcut

“Profit becomes realized only when I close” is too broad. Bybit's USDC perpetual session-settlement mechanism can transfer unrealized PnL into wallet balance and reset the position's entry reference to the settlement mark while exposure remains open. Bybit's USDC session-settlement explanation documents that product-specific process.

For such a contract, compare cumulative settlement credits or debits with subsequent PnL from the reset reference. Comparing the new unrealized figure directly with the original entry can double-count earlier results. The USDT example above deliberately excludes this mechanism.

Spot sale proceeds are not realized profit

The same separation helps with spot holdings, but a sale receipt includes returned purchase cost. In a separate invented example, buy 1 ETH for 2,000 USDT and sell 0.25 ETH at 2,200. The 550 USDT proceeds contain 500 USDT of allocated purchase cost and 50 USDT of gross realized gain. The remaining 0.75 ETH, valued at 2,200, has a 150 USDT unrealized gain against its 1,500 USDT cost. This simple cost-allocation illustration ignores fees; multiple purchases require an explicit inventory convention.

A reusable reconciliation record

Before interpreting a result, complete this record for one account, contract and measurement interval:

CheckEvidence to recordMismatch it can expose
Opening exposureQuantity, direction and entry referenceAn average entry changed after adding size
Closing activityFill IDs, quantities and actual pricesA submitted close never fully executed
Booked cash flowsFees, funding, settlements and currenciesCharges omitted or deducted twice
Remaining exposureOpen quantity and valuation timestampA profitable close concealed an open loss
Valuation methodMark, last trade or another stated referenceScreens used different prices
Account movementsDeposits, withdrawals and transfersCash movements mistaken for trading PnL

A partial close must use the quantity actually executed. An unfilled remainder stays exposed; the partial-fill management guide covers that operational boundary.

For the simplified single-currency account used here, the reconciliation is ending equity − starting equity − deposits + withdrawals = net booked PnL + ending unrealized PnL − starting unrealized PnL. This assumes transfers are treated as external flows for the chosen account boundary and every relevant cost is included once. Multi-asset collateral, liabilities and conversion effects require a broader ledger.

Method and limits

This AI-assisted article uses linked exchange documentation reviewed on 23 October 2026 and original hypothetical arithmetic. It explains trading-account reporting, not tax recognition or a universal exchange accounting policy. The worksheet does not establish available buying power, withdrawable funds or a liquidation threshold. Keep those venue-defined measures alongside the PnL reconciliation.

Keep the context with the example.

Each worked example is illustrative, with its sources and assumptions in the article. Read our editorial standards for authorship, verification and corrections.