Skip to main content

Read the LLM spend dashboard

Every AI conversation you run has a token leg: which model answered, how many tokens it consumed, and what the tokens cost. The LLM spend dashboard (/insights/llm-spend) is where you watch that leg — per agent, per model, and per conversation — and where you set the caps that keep a goosed preset or a runaway agent from landing on your month-end statement. All money on the page is integer cents rendered in your org wallet currency.

1. Read the spend tables

Four stat cards sit on top of the page: Today’s spend, This month (with the projected month-end total underneath), Vs previous 30 days (a signed percentage), and Daily cap used. Below them, a trend chart plots spend over the selected window, and three tabbed tables cut the same window three ways: Use By agent to answer “which line is spending”, By model to answer “which model does the spending”, and Top conversations to catch outliers (an agent stuck in a long tool-call loop shows up here first). The window defaults to 30 days; the date-range filter at the top of the page accepts 24 hours to 12 months, or a custom range. Up to 50 rows per tab. Sample numbers, By-agent view over the last 30 days: The spend-trend chart above the tables buckets the window daily, or hourly when the window is 14 days or shorter. Day buckets resolve in your organization’s timezone, so the chart and the conversation rows agree on what “today” means.

2. The daily-cap progress ring

The ring next to the cards shows how much of today’s cap you have consumed: today's spend ÷ daily cap, to one decimal. Colors track the breach distance — green under 70%, amber 70–90%, red above 90% — and at 100% a banner tells you new agent runs are blocked until midnight in your organization’s timezone. Caps are set at two levels, both in the AI budget form at the bottom of this same page:
  • Org-level — the Daily cap and Monthly cap fields in the form apply to the whole organization and drive the ring. Leave a field blank for no cap.
  • Per API key — if a key integrates AI usage, bound that key with a monthly spend ceiling via PUT /api/v1/developer/budgets/:keyId, as covered in Per-API-key spend budgets. Key budgets are separate from this dashboard’s org-level caps and apply to all usage on that key, not just LLM tokens.
The role gates around page reads and budget writes are described in the roles note below.

3. The month-end projection

The projection card backfills the question “if the last week’s pace holds, where does the month land?” The formula is:
The minus-one avoids double-counting today, which is already included in the month-to-date total. When the last seven days are empty (a new org, or an idle month) the projection shows rather than a fabricated zero-based figure. Worked example — today is the 12th of a 31-day month, month-to-date is 1,842.00,last7dayspendis1,842.00, last-7-day spend is 693.00:
  • Average daily = 693.00÷7=693.00 ÷ 7 = 99.00
  • Days remaining = 31 − 12 + 1 = 20, so remaining-after-today = 19
  • Projected month-end = 1,842.00+(1,842.00 + (99.00 × 19) = $3,723.00
Read the projection as a run-rate estimate, not a forecast: it assumes the last week’s mix of agents and models holds. A preset change or a campaign launch today moves the number tomorrow — that is the point of having it on the page.

4. Compare spend across presets

The By model tab is the realized-cost counterpart of the picker card estimates from the voice-agent model presets guide. Preset cards quote per-minute comparison estimates; this tab tells you what the choice actually costs on your own traffic. A practical loop for a re-tier question:
  1. Run two agents side by side on the candidate presets (the before/after loop from Safely Roll Out an AI Agent).
  2. Set a window that covers the comparison, open By model, and read cost per conversation: total cost ÷ conversation count. In the sample table above, Sonnet costs 0.35perconversationwhileHaikucosts0.35 per conversation while Haiku costs 0.06 — a 6× gap, wider than the per-minute estimates on the picker cards imply, because Sonnet conversations in this org run longer tool loops.
  3. Keep the cheaper preset only if quality metrics hold; the token leg is one side of the decision.

5. Alarm when a preset gooses token rates

Retiering to a bigger model multiplies your per-conversation cost, so an alarm should watch the spending-rate, not just a fixed amount. Set three things in the AI budget form on this page:
  1. Monthly cap and/or Daily cap — the ceiling the alerts measure against.
  2. Alert threshold (%) — the share of a cap at which the per-feature breach warnings fire (default 80). After a retier, 80% of your old cap arrives much earlier in the month, which is exactly the early warning you want.
  3. Automatic model downshift — optionally switch agents to a fallback model id (e.g. claude-haiku-4-5) once spend crosses the trigger percent. At trigger 100 the downshift fires only on an actual breach; set it lower to degrade gracefully before the cap hits. This is an org-wide default; each agent can override it.
Below the form, the Billed spend by AI feature panel lists threshold breaches the moment a feature (voice agent, inbox assist, KB-RAG, and so on) crosses its configured channel cap — the in-page alarm. For velocity alarms independent of a fixed cap — “today’s spend is 4× the trailing average” — wire the usage anomaly alert rules; the page reloads its figures every 60 seconds, so either mechanism surfaces a goose within minutes.

6. Export into billing chargeback

Nothing on the page stays on the page: export the window you are looking at and hand it to the chargeback workflow. From the API (the same routes the dashboard reads):
Fold the rows into your export pipeline — the reverse ETL warehouse exports guide covers scheduled pulls — and attribute the cost to a department by tagging outbound sends with a metadata.cost_center label, per Cost-center chargeback. The AI leg aggregates under the tag just like the telephony leg. One caveat for the rollup: the Billed spend by AI feature panel is the billed (invoiced, includes markup) measure, while the per-agent / per-model / per-conversation tables are raw token cost. The totals deliberately don’t reconcile — pick one basis per report.

Roles and permissions

  • Read the dashboard — owner, admin, developer, or billing. Agent and viewer roles do not see the page at all.
  • Save the AI budget form (caps, alert threshold, downshift) — restricted to roles that can reach the page; on the API the budget PUT is an authenticated, org-scoped write, so every eligible operator’s writes land in the same single org-level config.
  • Per-API-key budgets — owner, admin, or developer scope on the developer API.
Every budget write is audit-logged with the org, the caps, and the thresholds.

Troubleshooting

See also