## TL;DR

The CUR delivery prefix changed (report renamed, prefix edited, or account restructure), so new billing files land under a new S3 path while the Athena table still points at the old one; queries return nothing and the dashboard shows $0. Update the Athena table's location to the new prefix (and check for a manifest change), then verify the data appears. The data exists; the pointer is stale.

## Error

```text
agent's cost dashboard showed $0  -  the CUR prefix changed and the Athena table pointed at the old path
```

## Steps

1. Confirm the pointer staleness: check the Athena table's S3 location versus where new CUR files actually land. Expected: the paths differ.
2. Find the new prefix from the CUR report definition in the billing console. Expected: the current delivery prefix is known.
3. Update the Athena table location to the new prefix (alter table set location, or recreate the table). Expected: the table points at the live data.
4. Run a test query for the current month. Expected: cost data returns instead of $0.
5. Add a monitor: alert when the dashboard's latest data date falls behind. Expected: future prefix changes are caught by staleness, not by a $0 dashboard.

## When to use

- The cost dashboard shows $0 after a CUR configuration change.
- The CUR prefix or report name changed.
- Athena queries return empty on fresh data.

## When not to use

- The CUR has no data at all (a delivery problem).
- The dashboard queries the wrong table entirely.
- The $0 is correct (a new account with no spend).

## Tool compatibility

AWS Cost and Usage Reports, Athena (current 2026 releases).

### Variant phrasings

### dashboard went to zero overnight

The CUR path changed. Update the table location.

### athena queries empty after a cur rename

Repoint the table at the new prefix.

### new cur files landing elsewhere

Sync the table location with the report definition.

## Why it happens

The CUR report definition controls the S3 prefix, and Athena tables hardcode their location at creation. Any rename or prefix edit silently orphans the table: it keeps querying the old path, which stops receiving files, so results go empty and dashboards show $0. The failure is silent because empty results are valid results. A data-freshness monitor catches the class; the location update fixes the instance.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_-wd0bDU8Er8OGHhEsqVq1g
