Missing Token Prices Must Stay Visible in Portfolio Totals
A portfolio total should separate valued balances from tokens with no usable price, then show coverage, quote source and timestamp so missing data cannot masquerade as zero.
Onchain Daily Newsroom5 min read

A portfolio total with missing token prices should show the valued subtotal separately from the unpriced balances. A missing quote is not a zero price: treating it as zero silently lowers the displayed value, while omitting the asset without saying so makes the total look complete. The useful output is therefore a subtotal, a measure of price coverage, and a clear state for every balance that could not be valued.
How should a portfolio total handle a missing token price?
Calculate the subtotal only from balances with accepted prices, and report the unpriced balances beside it. For each asset, the valuation starts with the human-readable token amount multiplied by its price in the portfolio’s chosen quote currency. The amount comes from the token balance adjusted for its decimal scale; the price must be expressed in the same currency as the total.
This separates two different failures. A wallet may hold no tokens, or the balance query may return zero; that asset contributes nothing. A wallet may hold tokens but have no usable price; the balance exists, but its value is unknown. The interface should preserve that distinction in both the total and any exported data. A blank, “unpriced,” or “price unavailable” state carries more information than a zero.
For example, a portfolio with a priced subtotal of 4,000 units of the reporting currency and one unpriced balance does not have a known total of 4,000. It has a known subtotal of 4,000 plus an unknown amount. Summing only the priced rows can still be useful, provided the label says “priced subtotal” and the unpriced position remains visible.
What should count as a usable token price?
A usable price needs an identified asset, a quote currency, a source, and a timestamp that meets the portfolio’s freshness rule. Token symbols alone do not identify assets: contracts on different chains can share a symbol, and similarly named tokens can have separate contracts. Match prices to chain and token contract, then convert them to the reporting currency through an explicit pricing route.
That route might use a direct market pair or derive a price through another asset. A derived quote can fail if an intermediate pair is missing or stale. A pool’s spot price can also move sharply in a thin market, while a time-weighted average price (TWAP) smooths observations over a period at the cost of lagging sudden moves. These are different marks, not interchangeable answers; the valuation policy should identify which it accepts.
A chart can help an operator inspect whether a market pair exists and whether recent activity supports a candidate quote. For that narrow check, Poocoin’s BNB Chain chart and wallet-check guide gives the fuller workflow; the portfolio still needs a rule for whether that quote is current and suitable for aggregation.
Freshness should be judged against the source’s update behavior, not just the time the portfolio page loaded. Some oracle feeds update after a deviation threshold or a heartbeat interval, so an unchanged answer may still be valid within the feed’s rules. Conversely, a recently fetched value may be unsuitable if its underlying market is stale, illiquid, or no longer mapped to the same token contract.
How can operators show coverage and edge cases?
Show how much of the portfolio has an accepted price, and keep that measure distinct from the subtotal. Coverage can be expressed as the share of known token balances with usable quotes, or as a count of priced positions against all positions. A percentage based on value alone cannot account for unpriced assets, because their values are unknown; do not imply that an unpriced balance has no weight.
For each unpriced position, expose a concise status that identifies the failed step. Useful states include:
- Balance found; no matching market or feed.
- Price source returned no answer or an answer outside the freshness limit.
- Quote route failed because an intermediate asset price is unavailable.
- Position requires a separate valuation method, such as an LP or other receipt token.
Receipt tokens and liquidity-provider positions need particular care. A token balance may represent a claim on multiple underlying assets, fees, or strategy accounting rather than a simple unit of the named token. Applying an unrelated spot quote to the receipt token can produce a precise-looking but unsupported value. Use a position-specific valuation method when one is available; otherwise keep the position in the unpriced set and state why.
For operational consistency, store the balance block or snapshot time, the price source and timestamp, the quote currency, and the reason for any rejected price. Apply the same rules to dashboards, exports, and alerts. If the source changes or a route becomes available, the total can then be recomputed without confusing a newly valued position with a balance change.
The practical rule is simple: add only balances whose prices pass the stated policy, and show the rest as unknown with enough detail to investigate. That gives people using the portfolio view a subtotal they can reproduce and prevents missing market data from appearing as a loss.