Three clocks, three meanings
An observation time says when the underlying price or condition was observed. A collection time says when a system retrieved it. A rendering time says when the interface was generated. They may differ substantially, so each belongs in its own field. Updating the rendering time does not make the underlying observation fresh.
Define validity by the feed contract
A market-rate feed, an institutional bulletin and a provider’s quoted transfer price can have different validity rules. Use the source contract and the analytical use case to set a validity boundary. Avoid a universal “live” badge across datasets that are updated on different schedules.
Make failure visible
A failed refresh should not replace a valid timestamp with the current time. If stale data are retained for historical context, identify them clearly. Where an expired price would mislead a customer, withhold the actionable amount and show the reason.
A compact evidence record
Useful observation metadata include the source, observation time, collection time, validity boundary, currency pair, transaction conditions and a publication-rights decision. These fields let analysts distinguish a collection problem from a genuinely changing market.