Console (platform.claude.com): multiple Analytics/Dashboard display bugs - caching under-reported, dashboard spend-limit $0, missing range control, filters/switcher ignored, Usage chart missing "All"

Resolved 💬 1 comment Opened May 30, 2026 by seidnerj Closed Jun 2, 2026

Several display bugs in the Anthropic Console web app (platform.claude.com), all on the Analytics/Dashboard surface. In every case the authoritative pages (Billing, Analytics -> Usage/Cost, request Logs) show correct data, but summary/dashboard cards, filters, and controls render stale, missing, or wrong data - looks like wrong-field / missing-fallback / not-recomputed handling.

(Filing here as it's the closest public Anthropic repo; please redirect if there's a better venue for console issues.)

Bug 1 - Prompt caching shown as "not enabled" despite a high cache-hit rate

  • Affected: the Dashboard "Prompt caching" card ("Not enabled / — tokens reused") and Analytics -> Caching ("You're not using prompt caching").
  • Both are driven by GET /api/organizations/{org}/cache_analytics?...&group_by=model. For an affected org this returns summary.cache_read = 0, cache_write = 0, and only a tiny slice of uncached tokens across just opus|4.6 + sonnet|4.6.
  • Reality: usage_activities / usage_cost show the large majority of input is cache reads, and the Logs per-request breakdown confirms it (e.g. one request: ~2 fresh input tokens vs ~184k cache-read tokens, ~99% cache read).
  • It appears cache_analytics does not aggregate usage attributed to user-scoped API keys (keys carrying an account_id, e.g. a Claude-Code-provisioned key), which is where most traffic/caching lives. Passing workspace_id to cache_analytics is also ignored - it returns the same slice.

Bug 2 - Dashboard spend card shows "$0 limit / 0% used" while Billing shows the real limit

  • The Dashboard "Spend this month" card shows the spend amount but "of $0 limit · 0% used".
  • The Billing page (correct) shows the real monthly spend limit and the correct % used.
  • The card appears to read enforced_limit_usd (which is null when the cap is a self-selected notify_and_pause limit rather than an Anthropic-enforced tier cap) and renders null as "$0", instead of falling back to the configured limit the Billing page uses.

Bug 3 - "Rate Limit Use + Caching" chart's Model selector has no "All" option

  • On Analytics -> Usage, this chart has its own Model selector (separate from the top filter bar's, which is fine). It initially shows "All", then auto-switches to a single model.
  • Its dropdown lists only individual models - there is no "All" entry - so there's no way back to the aggregate view. It should include an "All" option like the top filter bar's selector.

Bug 4 - Caching page has no date-range control

  • Analytics -> Usage and Analytics -> Cost both have a date-range selector, but Analytics -> Caching is hardwired to a fixed window with no way to change the period the cards and chart cover.

Bug 5 - Caching page summary cards ignore the Workspace and Model selection

  • The three top cards (Uncached input tokens / Cache read tokens / Cache read ratio, with their "vs previous N days" deltas) never change when you pick a Workspace or Model - only the chart below them re-filters.
  • Verified against the live API: cache_analytics's summary.{current,previous} is computed org-wide, and the endpoint ignores the workspace_id and model params (byte-identical response with or without them). The page filters only the per-group series client-side for the chart; the cards' summary is never recomputed, so they freeze on the org-wide totals.

Bug 6 - Dashboard ignores the global workspace switcher, and the switcher's label is misleading about why

  • /dashboard always shows all-workspaces data regardless of which workspace is selected in the top-left switcher.
  • The switcher's disabled "All workspaces" row is subtitled "Only available on Cost and Logs" - but the Dashboard is also all-workspaces-only, so that label is incomplete.
  • Relatedly: /usage/cache?workspace=all_workspaces aggregates correctly, but bare /usage/cache auto-selects a "Default" pseudo-workspace that has no keys, so it can render zeros.

Interim userscript fix

I wrote a client-side userscript (Tampermonkey / Violentmonkey / Greasemonkey) that corrects all six bugs above by intercepting the relevant API responses and rewriting the affected cards and controls. It is purely read-side/cosmetic and changes nothing server-side. Attached (zipped, since GitHub doesn't allow .js attachments directly):

anthropic-console-fixes.zip

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗