Back to blog
August 17, 2026by The Crypto Hub

Why Is My Crypto PnL Wrong? 9 Common Causes

Why is my crypto PnL wrong? Find the data gaps, cost-basis rules, transfers, fees, and derivatives issues that distort your results across exchanges.

A portfolio can show a strong green number while your exchange account feels flat. Or it can report a loss after you sold an asset for more dollars than you paid. If you are asking, “why is my crypto PnL wrong,” the issue is usually not one bad calculation. It is a mismatch between the data, accounting method, price source, or definition of profit and loss being used.

Crypto PnL is harder to calculate than it looks because activity is fragmented. A trade on one exchange, a transfer to a wallet, a perpetual futures position, and a staking reward may all affect your financial picture differently. The answer starts with identifying which PnL number you are reviewing and what it is designed to measure.

First, confirm what your PnL number means

“PnL” is often used as if it were one universal metric. It is not. A trading dashboard may show market performance, while a tax report calculates realized gains and losses. Both can be correct at the same time.

Unrealized PnL is the gain or loss on assets you still hold. If you bought ETH at $2,000 and it trades at $2,400, the position has an unrealized gain of $400 before fees. That number changes with the current market price.

Realized PnL applies when you dispose of an asset through a sale, swap, spend, or other taxable disposition. Your realized result depends on the cost basis assigned to the specific units sold, not simply your average purchase price.

Portfolio performance may include cash deposits, withdrawals, rewards, and mark-to-market changes. Depending on the platform, it may be calculated from total account value over a selected period rather than from every individual trade.

Taxable gain or loss follows accounting rules and transaction classifications. It can differ significantly from the performance number on your trading dashboard, particularly if you use multiple exchanges or receive staking rewards.

Before troubleshooting, compare like with like. Do not expect a tax gain report to match a seven-day unrealized PnL widget. Check the reporting period, reporting currency, included accounts, and whether the figure is realized, unrealized, or combined.

Why Is My Crypto PnL Wrong? Check the data first

Most PnL discrepancies begin before the math. If your transaction history is incomplete or incorrectly categorized, even the best formula will produce an unreliable result.

Missing exchange history

API connections can provide current balances and recent trading activity, but available history varies by exchange and account type. A connection may be authorized after older trades occurred, or an exchange may limit how much historical information is returned through its API.

This creates a common problem: a platform sees that you sold 1 BTC but does not see the original purchase. Without a cost basis, it may treat the units as having zero cost, use an estimated value, or flag the transaction for review. Any of those outcomes can make PnL look dramatically wrong.

Review the earliest transaction date for every connected exchange. If you moved assets into an exchange before your tracked history begins, import or enter the original acquisition data before relying on realized results.

Transfers recorded as sales or purchases

Moving crypto between accounts you own is generally not a sale. But a tracker cannot always know that the withdrawal from Exchange A and the deposit into Exchange B belong together. If the two records do not match by asset, amount, time, and transaction ID, the system may classify the withdrawal as a disposal and the deposit as a new acquisition.

That can create a false capital gain, reset your cost basis, or double-count holdings. Network fees make matching more complicated because you might withdraw 1 ETH and receive 0.998 ETH after the fee.

Review large withdrawals, deposits, and wallet movements. Mark internal transfers correctly and confirm that the fee is treated according to the reporting method you are using.

Incomplete on-chain activity

Wallet transactions add another layer of classification. A token approval is not a trade. A bridge can look like a disposal and acquisition. Wrapping ETH into WETH may need different treatment than swapping ETH for another token. Liquidity pool deposits, lending collateral, rebasing tokens, airdrops, and NFT transactions can all require review.

Automated imports save time, but they should not replace reconciliation for unusual activity. The more complex the transaction, the less safe it is to assume the label is correct.

Cost basis can change the answer

The same sale can produce different realized gains depending on the cost-basis method selected. This is not an error by itself. It is an accounting choice that must be applied consistently and supported by complete records.

Under FIFO, the earliest acquired units are sold first. Under LIFO, the most recently acquired units are sold first. HIFO assigns the highest-cost units first. When an asset has moved sharply over time, the difference can be substantial.

Consider a simple example. You buy 1 SOL at $20, then another 1 SOL at $100, and later sell 1 SOL at $80. FIFO produces a $60 gain because the $20 lot is treated as sold. LIFO produces a $20 loss because the $100 lot is treated as sold. The sale proceeds are identical, but the reported PnL is not.

Average-cost figures shown on an exchange are also not always appropriate for tax reporting. Exchanges may calculate average entry price within that exchange only, exclude transferred-in cost basis, or apply their own treatment to fees and conversions. Use one consistent methodology across your full transaction set rather than relying on each venue’s display.

Fees, funding, and derivatives may be outside the headline number

Spot trading fees reduce your economic return. If they are paid in the asset you buy, sell, or hold separately, the impact may not be obvious from an exchange’s trade history. Small fees can become material for active traders.

Derivatives create additional reasons for differences. Perpetual futures positions can include realized trading PnL, unrealized mark-price PnL, funding payments, liquidation fees, and collateral changes. An exchange may show contract PnL in USDT while your portfolio tracker reports the changing market value of the collateral asset as well.

A profitable BTC perpetual trade can coincide with a lower total portfolio value if the BTC, ETH, or other collateral you hold declines. Conversely, an account’s value can rise even when your derivatives strategy loses money. Separate spot holdings from derivatives activity before deciding a number is wrong.

Also check whether your platform uses last traded price, index price, mark price, or a consolidated market price. For liquid assets, the difference is often small. During volatility, illiquid markets, or exchange-specific dislocations, it can be meaningful.

Fiat currency and timing differences matter

If you buy in USDC, trade on a USD-based exchange, and report in USD, pricing may appear straightforward. It becomes less straightforward when stablecoins depeg, purchases are made in another currency, or transaction timestamps differ across platforms.

A trade executed near midnight can fall into a different reporting period when exchanges, wallets, and reporting tools use different time zones. This matters for daily PnL, monthly performance views, and year-end tax records. Confirm the selected time zone before comparing reports.

Stablecoins deserve attention too. Treating USDT or USDC as exactly one dollar may be reasonable for some performance views, but it can conceal small gains or losses when actual execution prices differ from the peg.

A practical reconciliation workflow

Do not start by adjusting a final PnL number until it looks right. Work from the transaction ledger upward. A controlled review is faster and produces records you can rely on later.

Start with the accounts that hold the largest balances or generate the most activity. Confirm each account is connected, verify the imported date range, and compare end-of-day balances with the exchange or wallet. Then review exceptions: missing cost basis, unmatched transfers, duplicate trades, unknown assets, and transactions with unusually large gains or losses.

Next, isolate one asset and one period. Compare purchases, sales, transfers, fees, and ending quantity. Once the asset quantity is correct, verify the cost basis and accounting method. Only then compare the calculated PnL to the exchange display.

For active multi-exchange traders, centralized visibility reduces this manual work. The Crypto Hub brings exchange data, portfolio tracking, historical analysis, and tax reporting into one read-only workspace, helping you reconcile activity without giving a third party permission to trade or move your assets.

When a difference is normal and when it needs attention

A small difference is often normal. Price updates, fee timing, rounding, mark-price methodology, and delayed API synchronization can all create short-lived gaps. A large or persistent difference usually deserves investigation, especially if it affects a tax report, changes your true asset quantity, or turns internal transfers into apparent sales.

Keep the original exchange statements, wallet transaction records, and any manual classifications that support your final report. Precision is not about forcing every dashboard to match to the cent. It is about knowing what each number includes, proving where the data came from, and correcting the records that affect your decisions.