Skip to content

Data Health: Check That Your Cost Data Is Complete and Current

Every number in Xplorr rests on cost data arriving completely and on time. Data Health checks that assumption for each cloud account, so you find out that a bill is missing three days before you present it to someone.

Open Data Health from the sidebar. The page is read only and anyone can see it, scoped to the accounts they have access to.

CheckWhat it looks for
Empty syncsThe sync ran successfully but wrote no cost records at all
Stale dataThe newest cost data is older than the staleness threshold, 3 days by default
Missing daysDays with no cost data inside the last 35 days
Dropped totalsA day whose total fell by more than 20 percent compared with the previous sync

Two deliberate details that prevent false alarms:

  • Missing day detection stops a couple of days short of today, because provider billing lands a day or two late. A gap yesterday is normal, not a fault.
  • Gaps before an account’s first data date are not counted, so connecting an account today does not report 35 missing days.

Dropped totals catch the failure mode people miss most: a sync that succeeds but returns less than it did last time. A day that disappears entirely counts as a 100 percent drop. Days whose previous total was negligible are ignored as rounding noise.

Each account gets one status, in order of severity.

StatusMeaning
Never syncedNo sync has run yet
FailingThe last sync ended with an error
No dataSyncs return no cost data
StaleNewest data is older than the threshold
WarningGaps, drops, or an empty sync in recent history
HealthyCurrent, complete, no drops

There is no numeric health score. An account is in exactly one of these states, and the summary counts how many need attention.

Accounts marked inactive are left out entirely.

Expand any row to see:

  • Last sync: result, when it finished, how many records it wrote, and whether the source was a FOCUS export or the provider cost API
  • Missing days in the last 35, listed as dates
  • Daily total drops, with the size of each drop
  • What to check, a plain list of the specific problems found

The “what to check” list is the useful part. It says things like how many days are missing, how far behind the newest data is against the threshold, or the exact error the last sync returned, rather than leaving you to infer it.

A Refresh button re-runs the checks on demand. The checks are computed when you ask for them, so there is nothing to schedule and no cached result to invalidate.

When an account is failing, empty or stale, a banner appears on other pages linking here. It lists at most three accounts and can be dismissed for the rest of your browser session.

Treat it as a warning about the numbers on the page you are looking at, not as a notification you can safely clear and forget.

Failing

Almost always credentials or permissions. A rotated key, an expired secret, a deleted role, or a permission that was narrowed. The exact provider error is shown in the expanded row.

No data

The connection works but there is nothing to read. Common causes are a billing export that was never enabled, a BigQuery table that is empty, or an account with genuinely no spend.

Stale

The sync is not completing, or the provider has stopped publishing. Check whether the last sync succeeded; a stale account with successful syncs usually means the provider side is behind.

Missing days

Often transient, from a sync that failed on a particular day. Running a sync again for that period usually fills the gap, because re-syncing a day replaces it.

Dropped totals

Investigate rather than dismiss. A large drop can mean a provider restated a bill, an account was removed from an organization, or a sync only partly succeeded.

  1. Open the account from the expanded row and confirm the credentials still work.
  2. Fix whatever the error names, usually a permission.
  3. Run a sync for the affected period. Admins can trigger syncs, limited to 10 per hour.
  4. Come back and refresh to confirm the status cleared.

A newly connected account syncs within a few minutes and then on the regular daily schedule, so Never synced on a brand new account is expected for a short while.

Does this page change anything? No. It only reports. Syncs are triggered from Cloud Accounts.

Can I change the staleness threshold? It is a platform setting, 3 days by default, rather than a per organization option.

Why does it only look back 35 days? It is long enough to catch a real gap and short enough to stay fast. Older gaps are unlikely to be fixable from the provider anyway.

Who can see this? Everyone, scoped to the accounts they have access to.