You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Usage tops out at 90 days (WINDOW_OPTIONS in apps/web/src/components/usage/usageShortcuts.ts), and the server prunes its scan cache at the same horizon (CACHE_RETENTION_DAYS = 90 in apps/server/src/usage/UsageService.ts).
That cache is currently the only long-term record for Claude usage: Claude Code deletes transcripts after 30 days by default, and T3 keeps showing that usage only because the scan cache retained it. After 90 days it is pruned too, so there's no way to see a year of spend, compare quarters, or answer "what did this project cost since I started".
Some of us keep transcripts on purpose (cleanupPeriodDays, or syncing agent history from several machines onto the server), so the raw data is often there. The UI just can't reach it.
Proposal
Add a 1 year and/or All time period next to 24h / 7 / 30 / 90 days. The server already accepts any sinceDay; this is mostly the options list plus bucketing (weekly or monthly buckets past 90 days keep the chart and payload small).
Retain compact per-day aggregates beyond 90 days rather than raw per-file records, so deleted transcripts still count without growing the cache much. Alternatively, make CACHE_RETENTION_DAYS follow the longest offered window.
Why it fits
Performance: aggregates past 90 days are a few rows per model per day, and scans stay mtime-filtered, so the common 7/30-day views cost the same as today.
Multi-environment: nothing new on the wire beyond the longer window; existing environment filtering and dedupe apply.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Problem
Usage tops out at 90 days (
WINDOW_OPTIONSinapps/web/src/components/usage/usageShortcuts.ts), and the server prunes its scan cache at the same horizon (CACHE_RETENTION_DAYS = 90inapps/server/src/usage/UsageService.ts).That cache is currently the only long-term record for Claude usage: Claude Code deletes transcripts after 30 days by default, and T3 keeps showing that usage only because the scan cache retained it. After 90 days it is pruned too, so there's no way to see a year of spend, compare quarters, or answer "what did this project cost since I started".
Some of us keep transcripts on purpose (
cleanupPeriodDays, or syncing agent history from several machines onto the server), so the raw data is often there. The UI just can't reach it.Proposal
sinceDay; this is mostly the options list plus bucketing (weekly or monthly buckets past 90 days keep the chart and payload small).CACHE_RETENTION_DAYSfollow the longest offered window.Why it fits
Happy to send a PR if this direction is welcome.
All reactions