Compass Docs
Observability

Spend limits

Put budgets on model spend — per organization, project, or connection — and refuse new work when a budget is hit.

Every execution records what it cost. Spend limits turn that record into budgets: set a dollar amount on an organization, a project, or a single provider connection, and Compass either refuses new work or marks the overage when the budget is reached. A runaway workflow stops costing you money before the next model call — not after the invoice.

Where cost comes from

Compass computes cost from each execution's token usage and the model's pricing, per step. For models without standard pricing (a local or fine-tuned model, for example), set per-token rates on the provider connection — the connection's rates are then used for everything that runs through it. Cost rolls up the same way tokens do: per step, per execution, per agent or workflow, and overall.

What a limit is

A spend limit is a budget with four parts:

  • Scope — what it covers:
    • Organization — everything, across all projects.
    • Project — everything in one project.
    • Connection — every agent model call through one provider connection. This is the universal circuit breaker for agents: it covers deployed work, test runs, chat, and schedules alike, because they all reach the model through a connection.
  • Amount — the budget, in dollars.
  • Period — per day, per month, last 30 days (a rolling window), or lifetime (never resets).
  • When exceeded — Block refuses new work once the budget is spent; Alert lets work continue, and the overage shows on the limit's bar. (No notification is sent.)

Creating and managing limits

Limits are managed where the thing they cover is managed:

  • Organization limits — Settings → Organization → Spend limits. Setting them takes an organization Admin.
  • Project limits — Settings → Organization → Projects, pick the project, then its Spend limits tab. The project's own Admins can set these.
  • Connection limits — the connection's Spend & cost step, next to its pricing. See Providers.

Click New limit and set the Budget (USD), Period, and When exceeded. Each limit shows a spend-versus-budget bar with the amount spent this period, and can be switched off without deleting it. The bar turns amber as spend approaches the budget and red once it's over.

To watch budgets in one place, open the Spend tab under Console → Observability — the Budgets section lists the organization's limits and your current project's, with its connections', grouped by organization, project, and connection, alongside spend-over-time charts and your top-spending agents and workflows. A monthly budget also shows on the Home pages, as spend against its cap.

What blocking looks like

When a Block limit is spent:

  • Organization and project limits refuse new executions at dispatch — the execution is never started. Started from the API or the app, the refusal is a 402 error stating which limit was reached and how much has been spent. A scheduled run that's refused doesn't start, so it doesn't appear in Observability; the schedule tries again at its next time.
  • Connection limits refuse right before an agent's model call through that connection: the execution fails at that step, with an error naming the limit.

In-flight work finishes

Spend is counted when an execution completes, and checked before the next one starts. The execution that crosses a budget runs to completion; it's the next one that gets refused. Treat limits as a backstop, not a precise meter.

Next

On this page