Public risk reporting is shaped as much by its gaps as by its values. A system that hides missing evidence can look complete while making its weakest assumptions invisible.
An unavailable-state policy gives each gap a meaning, preserves the last valid record, and prevents presentation logic from inventing certainty.
Zero is a value; missing is a state
Zero says a source measured none under a defined method. Missing says the system does not have a usable observation.
Replacing missing with zero changes absence of evidence into evidence of absence. For TVL, fees, rates, or positions, that can reverse the meaning of the record.
A public metric therefore carries both value and status. Only an available status may expose a number.
Separate unavailable, error, stale, and partial
Unavailable means the required observation was not published or approved. Error means collection or validation failed.
Stale means a complete reading exists but is older than the freshness policy. Partial means some relevant coverage exists while known parts remain outside it.
These states lead to different questions. Combining them into a blank cell removes the information needed to respond.
Preserve the last complete reading
A failed update should not overwrite a valid snapshot. Publication occurs only after the complete candidate passes its contract.
If collection fails, the last successful snapshot can remain readable as last-good data. Its age and the failed run must remain visible.
Last-good is not current. It is a preserved record with an explicit warning, useful for continuity but not evidence that the underlying vault is unchanged.
Make coverage visible
Coverage shows which vaults, periods, positions, or sources support an analysis. It lets the reader see the denominator behind a chart or comparison.
A chart based on covered vaults should not imply full inventory coverage. A ranking should not place unavailable values at the bottom as if they were measured zeros.
Coverage belongs near the conclusion because it limits the conclusion.
Never repair a gap with inference
Do not infer APY from APR without a published compounding convention. Do not infer a closed position from missing composition or a fee from another product.
Fallback logic may format, label, or preserve validated data. It must not manufacture a value to keep a surface visually complete.
When the source cannot support the claim, the output is unavailable and the reason travels with it.
Turn uncertainty into an action
Start by naming the decision that depends on the gap. A missing fee, exit term, position, or source can carry different weight for different decisions.
Then return to the primary source, request clarification, narrow the comparison, or defer the decision. The correct action may be to proceed with a stated limit or not proceed at all.
The important step is explicit treatment. Silence should never make an unknown look resolved.
Publication rules
Tulipa's public contract follows a small set of rules:
- Available numbers require a public source and observed-at time.
- Unavailable or failed metrics carry no numeric value.
- APR and APY remain separate, with period and method.
- A complete snapshot publishes atomically.
- Failed collection preserves the last successful snapshot.
- Freshness and coverage remain visible.
- Historical and current observations do not guarantee future outcomes.
These rules govern the public dashboard. They do not make every source complete; they make the limits of the published record inspectable.