Three different numbers all get called 'PnL'
The dashboard's portfolio chart is a sampled curve — the venue stores snapshot points roughly daily, and the line between them is interpolation, not your ledger. It answers 'about how was I doing' beautifully and 'exactly how much did I make' poorly.
Your true realized PnL is a per-fill quantity: every position close carries a venue-computed closedPnl value, and the honest total is their sum. Unrealized PnL is a third thing — the mark-to-market drift on whatever is still open, which is precisely what the sampled curve captures and the fill sum doesn't.
What the real number is made of
Realized PnL is the headline but not the whole P&L. Funding settles hourly — every open position accrues up to 8,760 payments a year, and on a crowded trade the funding bill can exceed the trading PnL. Fees matter too, and the sign confuses everyone: a negative fee is a cost, a positive fee is a rebate — maker fills often earn money.
So the accurate figure for 'what did trading actually net me' is: Σ realized PnL + Σ funding + Σ signed fees. Each piece comes from a different endpoint, which is why dashboard glances and naive exports disagree with it.
Why the curve and the sum can disagree
The sampled curve measures account value, which includes unrealized PnL on open positions and — on builder-dex accounts — a quirk we measured: the venue's own PnL series excludes builder-dex unrealized PnL while its account-value series includes it. The two official series contradict each other on dex-heavy accounts.
That's why 'my PnL' needs a definition before a number means anything: realized-only (the tax-relevant one), realized+funding+fees (the trading-performance one), or account-value delta (the wealth one). They can differ by six figures on the same account.
Getting the fill-level figure
Pulling it yourself means three calls: fills from a chain indexer (the venue's own fill endpoint only retains ~30 hours), funding and ledger from the venue's full-history endpoints. Then the sum is arithmetic — but only if the fills are actually complete.
Our free check does exactly this and nothing more: recomputes every fill, sums funding and signed fees, and cross-checks the result against the account-value identity so you can see both numbers and the measured gap between them.
Common questions
?Why doesn't my Hyperliquid PnL match the portfolio chart?
The chart is a sampled account-value curve — it blends realized PnL, unrealized drift and flows, at daily-resolution points. A fill-level recomputation isolates the trading result. Both can be 'right' while measuring different things.
?Does Hyperliquid PnL include funding and fees?
The realized PnL figure on each close doesn't — funding settles on its own stream and fees are separate signed values. Your actual trading result needs all three summed; each lives on a different endpoint.
?Why do I see positive fees on some fills?
A positive fee is a rebate, not a cost — maker fills earn them. Summing fees without respecting the sign (or negating all of them) is a classic way to misstate costs.
?Is the number on the dashboard good enough for taxes?
For filing you want fill-level realized PnL plus the funding and fee streams — the sampled curve isn't a ledger. The tax guide covers what goes into the filing record.
See your recomputed PnL — free
Paste your address: realized PnL summed over every fill, the full funding stream, signed fees — cross-checked against the venue's own account-value identity, with the measured residual shown.
Run the free check