Budgets
Spend and usage caps scoped to an agent, project, team, or the whole organization.
Studio → Settings → Budgets sets spend or usage caps that apply across a scope — one agent, one project, one team, or the whole organization — and a time period.
Setting up a budget
- Scope —
agent,project,team, ororganization, plus the specific one. - Meter group —
llm_tokens,voice_minutes,api_calls,skill_execution, ortotal(everything). - Period —
daily,weekly, ormonthly. Resets at the period boundary. - Cap — either a dollar amount, or a native quantity (e.g. a number of voice minutes) — whichever unit makes sense for that meter group.
Scope hierarchy
Budgets at different scopes can coexist for the same meter group — an org-wide total cap alongside a tighter per-agent llm_tokens cap, for example. When more than one budget in the chain (agent → its project → the organization) applies, the most restrictive status wins.
Spend vs. budget on Usage
The Spend vs. budget card on the Usage page follows the same chain as the budgets list. It shows the spend in the selected range against the most specific total budget that applies to what you are looking at (agent, then project, then organization). With no total budget it shows the highest used percentage among the other budgets in the chain and names it, for example "LLM tokens, monthly". With no budget at all it reads "No budget set" and links here.
Status
| Status | Meaning |
|---|---|
ok | Under 80% of the cap. |
warning | 80–99% of the cap. |
exceeded | At or over the cap. |
not_configured | No budget covers this scope/meter group. |
Not every budget blocks in real time
Whether exceeded actually stops new activity depends on the meter group: a voice_minutes
cap set as a native-unit quantity is checked before a call starts and blocks it in real time —
there's a live minute counter to check against. A dollar-only cap has no equivalent live figure to
check pre-flight (cost isn't known until after the work happens), so it's informational — visible
as exceeded on this page, without blocking the next run. Don't assume every budget on this page
is a hard stop; check what it's actually protecting against for your use case.