How to calculate a Polymarket wallet's PnL — and why sites disagree
Two sites can show the same Polymarket wallet with different profits and both be honest. The difference is in the window, what counts as realised, how open positions are priced, and whether the record follows the address or the trader.
Profit is cash flow plus change in value
For each wallet and each market, PMWallets adds up every flow of money in a window — what was paid for buys and fees, received from sells and redemptions, put into splits and taken out of merges — and adds the change in the value of the position held. Transfers of shares between wallets are valued at the market price at that moment on both sides, so moving shares around never creates profit on its own.
period cash flow = − bought − fees + sold
− split in + merged out + redeemed
− transfers in (at market value) + transfers out (at market value)
PnL (per wallet, per market) = period cash flow + value at end − value at start
value: resolved market → its payout; open market → a robust recent priceRealised and unrealised
If the market had resolved by the end of the window, its whole result is realised: the position is valued at its payout, redeemed or not. If it is still open, the result is unrealised — the closing value is an estimate from a price, not money. PMWallets ranks traders by realised profit and shows unrealised separately, because a track record should not depend on a price that has not been cashed.
Pricing an open position
Open positions are valued from a volume-weighted average of recent fills across all traders rather than the last trade, so one small print cannot swing a valuation. When a market has too few recent fills for that, the valuation falls back to its last trade price, or the complement of the other outcome's price, and is flagged as weak. A position that cannot be priced at all is left out of the totals and counted, not valued at a guess.
Why the numbers differ from Polymarket's profile
Polymarket's profile shows a lifetime figure for one account. PMWallets scores a stated window, clusters wallets that belong to the same trader, ranks realised profit by default, and closes each window at a fixed block a little behind the chain tip. Its ledger also has a start: a position opened before it has no known cost, so that market is left out of PnL and the entity page says so. Each of these makes the two figures answer slightly different questions.
What makes a record checkable
Every figure traces to on-chain events inside a stated block window, every exclusion is counted next to the total, and a published run is never rewritten. You can recompute a PMWallets number from the chain; you can also see how much of a trader's activity it did not count, and why.
Questions
What is the difference between realised and unrealised PnL on Polymarket?
Realised PnL comes from markets that have resolved — the position is valued at its payout. Unrealised PnL is the estimated value of positions in markets still open, which can change until they resolve.
Why does PMWallets show a different profit from Polymarket's profile?
Different questions: a stated window instead of lifetime, the trader's clustered wallets instead of one account, realised profit ranked by default, windows closed at a fixed block, and a ledger with a start date. The method is on the About and Compare pages.
Do fees count in Polymarket PnL?
On PMWallets, yes — as the cash fee actually charged on chain. Legacy buy fees taken in shares are reflected in the smaller number of shares received.