Portfolio Notes

When portfolio numbers do not match

Whether your total is too high or too low narrows the field faster than any other first step.

Start from the direction of the error

Whether your total is too high or too low narrows the field faster than any other first step.

SymptomMost likely causeCheck this first
Total too highSame asset counted in more than one placeReceipt tokens, wrapped forms and bridged versions
Total too highAn internal transfer counted as a disposalWithdrawals with no matching deposit
Total too lowAn account stopped syncingLast successful update time per account
Total too lowA wallet was never addedWhether every address you hold in is listed
Off by a small amountPrice source differenceWhich source the view uses against the venue's own
Value changes constantlyNo timestamp on the figureWhether the displayed total is tied to a moment
Cost looks wrong per assetAverage cost versus lot-basedWhich method the view is using

Coverage first, always

The overwhelming majority of large discrepancies are coverage problems, not calculation problems.

An account that stopped syncing continues to show its last known balance. Nothing about it looks broken. The total simply becomes quietly wrong by however much that account holds, and the error grows as the portfolio changes.

The check is cheap and worth doing whenever a figure surprises you: list every account and wallet you hold anything in, then confirm each is present and recently updated. The account you forgot about is the one that explains the discrepancy.

Duplicate representations

The same economic position can appear as two lines without either being wrong.

Hold a liquid staking receipt and the underlying asset and you have two balances, frequently with similar tickers, that a naive sum counts twice. The same applies to a wrapped form of an asset you already hold, and to a bridged version on a different chain.

The check is to look at the asset list and ask, for every line, whether this is a separate claim or the same claim in a different representation. The second kind should not be added separately.

Internal transfers

A transfer creates a window in which one venue has debited you and the other has not credited you. A total across both is wrong by exactly that amount until it lands.

That self-corrects and is usually harmless. The lasting version of the problem is a transfer that never appears on both sides at all — an asset moved to an address you no longer control, or a withdrawal whose destination is unlabelled. Those do not correct themselves.

Price source differences

If the holdings and quantities match and the totals still differ, the price source is the next place to look.

In a thin market the gap between venues can be wide, and an aggregate that smooths across venues will not match any of them. This is a definitional difference rather than an error, and the way to establish which is which is to compare using one source on both sides.

Cost basis methods

If only the per-asset cost figures disagree and the total value is fine, the two sides are using different cost methods.

Average cost and lot-based produce different numbers from identical transactions. That is not a bug in either. It does mean the two are not comparable, and reconciling them requires going back to individual acquisitions.

Rounding

Small persistent differences usually come from precision, not from a mistake.

Quantities with many decimal places, values shown to two significant figures, and repeated averaging all accumulate small drift. If the difference is consistent and small, that is the most likely explanation. If it grows over time, it is something else.

A debugging order

  1. Confirm coverageEvery account listed, every one recently updated. This resolves more cases than everything below combined.
  2. Reconcile asset by asset against each venueIndividually, not in total. A total that matches nothing individually is not worth investigating further.
  3. Check for duplicate representationsReceipts, wrapped and bridged forms appearing alongside the underlying.
  4. Pair internal transfersEvery withdrawal with a deposit. Unmatched movements are the ones that matter.
  5. Fix the price source on both sidesOnly then compare totals. Comparing across sources produces differences that look like errors and are not.
  6. Confirm the cost methodEstablish whether each side uses average or lot-based before concluding anything about cost figures.