Crypto Portfolio PnL Calculation: Proceeds, Basis, Fees, and the Realized Line (2026)
Crypto Portfolio PnL Calculation: Proceeds, Basis, Fees, and the Realized Line (2026)
Reviewed by Wag3s Editorial Team — verified against the realized-PnL = proceeds − basis − fees identity, the realized/unrealized split, and the jurisdiction-specific basis-method dependency · Last reviewed May 2026
Crypto Portfolio PnL Calculation
The PnL number on an exchange app and the gain on your tax return are different figures computed from the same trades — and confusing them is how people both misjudge performance and misfile. This guide is the realized/unrealized split, the fee treatment, and why the two numbers diverge.
TL;DR
- Realized PnL = proceeds − cost basis − fees, basis on the jurisdiction-mandated method.
- Unrealized PnL = mark-to-market on what you still hold — paper performance, generally not taxable (individuals, realization regime).
- Fees: acquisition fees raise basis, disposal fees reduce proceeds, gas per a consistent policy.
- The basis method (not the arithmetic) is the jurisdiction-specific part — see cost-basis methods.
- Exchange-app PnL ≠ taxable gain — single venue, simple method, ignores other wallets/self-transfers.
- Performance PnL and taxable gain are different outputs — compute them separately.
The realized PnL identity
For a disposal:
Realized PnL = proceeds − cost basis − allowable fees
The arithmetic is trivial; the cost basis input is not — it must use the method your jurisdiction mandates: US per-wallet FIFO/Spec-ID from 2025, UK Section 104 pooling, German FIFO, Canadian ACB, French 150 VH bis. Two tools that disagree on the same trades disagree on the basis method, not the formula.
Realized vs unrealized
| Realized PnL | Unrealized PnL | |
|---|---|---|
| From | Disposals that happened | Positions still held |
| Tax | Feeds the taxable gain | Generally not taxable (individuals) |
| Use | Tax computation | Portfolio performance |
A portfolio view blends both for performance; a tax computation needs the realized line isolated and on the correct basis method (see realized vs unrealized). Mixing them is the classic "why do I owe tax on a paper gain" confusion.
Fees are not optional
- Acquisition fees → generally increase cost basis.
- Disposal fees → generally reduce proceeds.
- Network gas → captured per a consistent, documented policy.
Ignoring fees overstates the gain. Fees attach to the specific transaction, never netted invisibly — the same discipline as reconciliation. Exact deductibility of specific fees can be jurisdiction-specific; document the policy and confirm edge cases.
Why the exchange number is wrong for tax
An exchange PnL display is an indicative performance figure, not the tax figure, because it typically:
- covers one venue only — ignores other wallets/exchanges;
- uses a simple running/average method, not your jurisdiction's mandated one;
- may misclassify self-transfers as disposals (see internal transfer vs disposal);
- excludes off-venue acquisitions that set the real basis.
The taxable gain needs a complete, cross-wallet, jurisdiction-correct computation — not a venue widget.
Practical guidance
- Isolate realized PnL for tax — disposals only, on the mandated basis method.
- Report unrealized PnL separately as performance, not as taxable gain.
- Attach fees to transactions — acquisition into basis, disposal against proceeds.
- Use a complete, cross-wallet history — not a single exchange's view.
- Set the basis method per jurisdiction — the formula is constant, the method is not.
- Keep performance PnL and taxable gain as distinct outputs of the same data.
How vendor tools handle PnL
Koinly and CoinTracker separate realized from unrealized PnL and compute the taxable line on the jurisdiction method. Confirm the tool aggregates all wallets/exchanges, attaches fees correctly, does not treat self-transfers as realized, and outputs a tax figure distinct from a performance figure rather than echoing an exchange widget.
How Wag3s helps
Wag3s Folio computes realized PnL as proceeds minus cost basis minus fees on your jurisdiction's mandated method across every wallet, reports unrealized performance separately, and excludes self-transfers from the realized line — so the tax figure and the performance figure are each correct and distinct. See the Folio product page.
Further reading
- Crypto Cost Basis Methods 2026
- Realized vs Unrealized Gains in Crypto
- FIFO vs LIFO vs HIFO for Crypto
- Internal Transfer vs Disposal in Crypto
- Crypto Capital Gains Calculation France (150 VH bis)
- Crypto Bank Reconciliation: Subledger to General Ledger
Sources
- Realized gain identity: proceeds − cost basis − allowable fees; cost basis on the jurisdiction-mandated method
- Realized (taxable, disposal-based) vs unrealized (mark-to-market, generally non-taxable for individuals) distinction
- Fee treatment: acquisition fees into basis, disposal fees against proceeds (jurisdiction-specific deductibility for edge cases)
- Jurisdiction basis methods: US Rev. Proc. 2024-28 per-wallet; UK Section 104; Germany FIFO; Canada ACB; France 150 VH bis
Crypto Tax-Lot Selection: Specific Identification, Done Right (2026)
Specific identification lets you choose which crypto lot is sold — but only if done at or before the sale with adequate records, and per-wallet after IRS Rev. Proc. 2024-28. The standing-instruction requirement, what counts as adequate records, and why an after-the-fact spreadsheet fails.
US Crypto Per-Wallet Cost Basis: Rev. Proc. 2024-28 (2026)
From 1 January 2025 US crypto cost basis must be tracked per wallet and account — universal/aggregate is gone. IRS Rev. Proc. 2024-28's per-wallet rule, the one-time safe harbor for pre-2025 basis, the FIFO/Specific-ID methods, and the Form 1099-DA timeline (proceeds 2025, basis 2026).
Every chain, integration, and competitor mentioned in this article gets its own page — coverage detail, comparison signals, and the audit trail your finance team needs.
- Chain
Ethereum
ERC-20, DeFi positions, gas treatment, restaking.
View page - Chain
Solana
SPL tokens, native stake, Jupiter, Metaplex NFTs.
View page - Integration
NetSuite integration
Mid-market and enterprise crypto subledger.
View page - Integration
QuickBooks integration
SMB GL with daily JE sync.
View page - Integration
Safe integration
DAO and corporate multi-sig accounting.
View page - Compare
Wag3s vs Cryptio
Side-by-side enterprise subledger comparison.
View page