Problem
People can see a value but may not know whether it describes the current situation or an earlier one.
Solution
Show when the underlying data was last updated, alongside the period the value covers. Keep this distinct from the time the page last refreshed.
Use a readable age label and provide the exact timestamp and timezone when needed. Mark data as stale when it exceeds the expected delay for that source.
Only use a live indicator when it reflects arriving data. A working connection or successful page refresh does not establish that the measurements are current.
Use when
People act on recent values or read a screen they did not load themselves, especially a wallboard.
Don’t use when
Never skip it outright, but scale it down. On a monthly strategic report the cadence is understood and a loud “updated 4 seconds ago” is noise pretending to be rigour.
Trade-offs
Relative times are easy to scan but depend on reliable clocks and updating labels. Exact timestamps need a timezone. Freshness checks can fail too, so an uncertain status should not appear current.
Checklist
- Does this show when the data arrived, or only when the page refreshed?
- If the source went quiet five minutes ago, what does the panel look like? What about an hour?
- Is a stale value visually distinguishable from a current one, or only from a missing one?
- What is the expected arrival cadence, and does the indicator know it well enough to say “late”?
- Does a “live” indicator track data arriving, or just a connection being open?
- Relative or absolute time, and whose clock and timezone is it using?
- On a wallboard, can someone across the room tell whether the page is current?
- Does auto-refresh mask staleness by making the page feel alive?
- When a query fails, does the last good value stay on screen, and is it labelled as last-good?
- Who notices if the freshness indicator itself stops updating?
Compare
Grafana puts a refresh interval on the dashboard and reports on itself: the control tells you the page will re-query every thirty seconds, and says nothing about whether anything new arrived when it did. Netdata sidesteps the display entirely by drawing per second, so freshness is legible as motion and a frozen chart is its own alarm. Sentry works in events rather than samples, so “last seen” is a property of the issue and travels with it into the list, the detail view, and the alert. Honeycomb makes the question mostly disappear by being query-first: you asked for a window, the answer is that window, and there is no ambient “now” quietly drifting underneath the result.
Related
Data source badge identifies where values came from. Error and stale state marks data that is too old or unavailable. Time-range picker defines the displayed period.
Loading state covers an active request. KPI tile often needs a visible data age.