## TL;DR
The usage data moved and the score did not, so the break is between them: a sync job that skipped the account, a scoring run that read a stale snapshot, or a join key that stopped matching. Trace one affected account through the usage table, the sync log, and the score input snapshot to find which hop dropped it.

```text
usage drop detected but health score not updated: sync failure
```

## Use this when
- Usage tables show the drop but the health score is unchanged
- Other accounts updated in the same scoring run, or none did
- A sync or scoring job recently changed schedule or owner

## Not for this skill when
- The score updated but support and NPS gains legitimately offset the usage loss
- Usage itself is wrong, which is an upstream pipeline problem

## Steps
1. Take one affected account and record its usage values in the source table with timestamps. Verify: the source drop and its timestamp are documented
2. Check the sync job log for that account and run: succeeded, skipped, or failed with what reason. Verify: the account's sync outcome and any skip reason are known
3. Open the exact input snapshot the last scoring run used and find the account's row. Verify: the snapshot shows stale usage, a missing row, or current usage, which isolates the failing hop
4. Fix that hop (schedule, join key, or snapshot freshness), re-run the sync and scoring for the account. Verify: the health score moves to reflect the real usage drop
5. Add a freshness check comparing newest usage timestamp against newest score timestamp per account. Verify: staleness over the threshold alerts instead of silently scoring old data

## Variant phrasings
### usage changed but health score stale
A related phrasing for the same underlying problem.
### health score sync not picking up usage
A related phrasing for the same underlying problem.
### scoring job reading old snapshot
A related phrasing for the same underlying problem.

Compatibility: Compatibility: scheduled scoring pipelines (Airflow or cron-driven jobs, warehouse to CRM or Gainsight-style sync), current versions.

## Why it happens
Health scores are only as fresh as their stalest input hop. Usage, sync, and scoring each look healthy in isolation while their handoff fails, so the diagnostic is a single-account trace across all three with timestamps at each hop.

## Edge cases / pitfalls
- A scoring run that deliberately uses a weekly snapshot is not broken. Check the intended cadence before filing the sync as failed.
- Join keys often break only for renamed or merged accounts. Test the trace on a normal account as a control.
- Re-scoring history changes past scores. Snapshot the old scores before the corrective run.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_9PDaWWQPPP9KbKpQx0DwvA
