Skip to content

Cost dashboard

Lives at Settings → Costs. Rolls up LLM call spend for the caller's workspace.

What you see

Three rolling windows: 7 / 30 / 90 days.

Stat grid

  • Total USD — sum of llm_calls.cost_usd within the window.
  • LLM calls — count of rows.
  • Total tokens — prompt + completion (cache-read shown separately).
  • Cache-read tokens — Anthropic prompt-cache hits. Each cache-read token costs ~10% of a fresh input token, so cache hits are the main cost lever once the prompt structure is stable.

By purpose

Bucketed by LlmCall.purpose — planner / verdict / ask / summarizer / tool_selector / classifier / reviewer. Sorted descending.

By connector

Bucketed by the connector the agent's investigation was acting against. Calls without a tool execution land in unattributed (planner, ask, summarizer of investigations that never reached ACTING).

Why rolling, not calendar

A 7-day window means now() - 7×24h to now(), not "last calendar week". This keeps the dashboard meaningful regardless of when you open it — Monday morning vs Friday afternoon shows the same picture.

What the dashboard doesn't show (yet)

  • Per-user spend — every call in v0.3 is workspace-scoped; per-user attribution lands when Gaby grows multi-user investigations in v0.4.
  • Daily timeseries — the rollup is one number per bucket. Time-of-day charts ship in v0.4 with the OBS-5 metrics export.
  • Budget alertsBudgetGuard already enforces per-investigation caps; workspace-wide rolling budgets are v0.4.

Source