What is data freshness?
Data freshness answers the question every other number depends on: is the data under this dashboard current? Each connected source — store, ad platform, messaging platform — is graded by the time since its last successful sync: fresh within 26 hours, stale up to 72, critical beyond that. A brand new connection reads pending for its first 48 hours, then critical if it has still never synced.
Formula
fresh ≤ 26 h since last successful sync
stale ≤ 72 h
critical > 72 h (never synced: pending for 48 h, then critical)
Worked example
The freshness widget shows the store connection fresh (synced 3 hours ago), one ad platform stale at 41 hours, and a messaging platform critical at 9 days. Every marketing number on the dashboard is now quietly missing nine days of email revenue — nothing on those charts says so, which is exactly why this widget exists. The 26-hour bound is a daily sync cadence plus slack, so one missed run flips a source to stale.
How Saldo Metrics computes it
v_data_freshness joins each connection to its latest ingest run and grades the
time since the last successful one against the thresholds above. Soft-deleted
(disconnected) connections are excluded — they would otherwise decay to critical
forever. The widget appends one extra row from v_fx_rate_freshness for the ECB
exchange-rate feed, which is global reference data rather than a per-org
connection. The stale-connections alert metric counts connections currently
stale or critical, so you can be notified instead of noticing.
Why it matters
Every metric in the app inherits the staleness of its sources, silently: a stale ad connection makes yesterday's ROAS look great by omitting yesterday's spend. A glance at freshness before reading anything unusual turns most "why did revenue drop" investigations into "the sync failed" one-liners.
Common mistakes
- Debugging metrics before checking freshness. An odd number with a stale source is almost always the sync, not the business.
- Ignoring stale because critical hasn't hit. Stale means one to three missed days — already enough to distort daily comparisons.
- Expecting disconnected sources to appear. They are deliberately hidden; the connection doctor on the connections page covers their history.
Where you see this in the app
The Data Freshness dashboard widget, one row per connection plus the ECB FX feed, and the stale-connections alert metric.
- Formula
- hours since last successful sync per connection → fresh / stale / critical
- How Saldo Metrics computes it
- canonical.v_data_freshness, canonical.v_fx_rate_freshness
Last reviewed 2026-08-29