> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lucidblock.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Totals

> When total_value_usd is null, what known_value_usd means, and how prices feed them.

## Totals semantics

> [!WARNING]
>
> **`null` is never `0`.** When `total_value_usd` is `null`, show `known_value_usd` labelled as partial, with the
> reasons from `total_null_reasons`.

* `total_value_usd` is non-null only when coverage is complete and every in-scope leg is `priced`; it then equals
  `known_value_usd`.
* `known_value_usd` adds priced and indicative legs (signed: debts subtract). It is **not a lower bound** when a debt
  is unpriced.
* It can also be **negative and far below the real value** when a debt is priced but its collateral is not: the debt
  subtracts while the collateral adds nothing. Such a position carries the warning `unpriced_collateral_debt_only`,
  and `totals.warnings` repeats it for the wallet. Read that known value as "debt only", not as what the position is
  worth.
* `total_null_reasons` lists every failing condition: `coverage_incomplete` (a protocol was not fully checked, or the
  snapshot is stale), `empty_universe` (no supported protocol was scanned), `unpriced_legs`, `indicative_legs`,
  `stale_legs`, `peg_unverified` (a pegged asset could not be verified against its peg) and `price_source_unavailable`.
* `excluded.*` (`indicative_value_usd`, `stale_value_usd`, `estimated_rewards_value_usd`,
  `claimable_rewards_not_included_usd`, `staker_only_value_usd`) are informational and never added.
* `include_rewards_in_total=true` counts claimable rewards and fees.
* `unpriced_position_count` and the leg counts; `price_sources` lists each source with its status.
* `note` restates that the value is not wallet net worth.

## Prices in one page

* Sources: in this release prices come from the built-in on-chain source (`pricing_source` such as
  `builtin:raydium-amm-v4`), refreshed every 2 minutes; each source is graded, and a thin market is `indicative`.
* A price older than its source's limit is `stale` (shown, not counted); older than 24 hours it is not served.
* LSTs are valued as redemption rate × SOL/USD (D-08), not at their market price; the market price is shown for
  reference.
* Protocol mark prices (`protocol_mark_price_usd`) are informational and never used for value (D-10, D-17).
* Pyth is not used (D-10).

The full rules are in [Valuation methodology](https://docs.lucidblock.xyz/reference/valuation-methodology.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.