Skip to main content

Budgets

Budgets cap spend. They apply along three axes — the organization, each agent, and each person — and over three periods: hourly, daily, and monthly. The periods don't all behave the same way: the hourly limit slows an agent down, while the daily and monthly limits stop it.

Who can do what​

TaskUserAgent ownerAdmin
See why a task was slowed or stopped✅✅✅
Set the organization's monthly and daily limits——✅
Set per-agent monthly, daily, and hourly limits——✅
Set per-user monthly and daily limits——✅
Change the reset timezone——✅
Let agents know when they're near a limit——✅
Review the enforcement audit log——✅

Everything below is configured in Organization → Budget, which is visible to admins only. Owning an agent does not let you set its budget — budgets are an organization-level control so that one agent can't quietly consume the whole plan.

The three periods​

PeriodWhat happens when it's reachedSet forWhere
HourlyThe agent slows down. Each model call waits its turn; the agent keeps working and never stops.One agentOrganization → Budget → Agent Limits → Hourly limit (USD/hr)
DailyWork stops until the next daily reset.The organization, each agent, and each personOrganization → Budget
MonthlyWork stops until the next monthly reset.The organization, each agent, and each personOrganization → Budget

Hourly: a throttle, not a wall​

The hourly limit is a refilling budget. The agent's allowance tops back up continuously, and a model call that would overdraw it waits rather than failing — up to a minute per call. When the allowance is deeply overdrawn, successive calls each wait, so the agent visibly crawls but still finishes.

This is the right control for "don't let a runaway loop burn the month in an afternoon." It bounds the rate of spend without ever handing a user a dead agent.

Leave Hourly limit blank (the field shows No hourly limit) for no throttle. Hourly limits are per-agent only; there is no organization-wide hourly limit.

Daily and monthly: real ceilings​

Daily and monthly limits are hard stops. Before each model call, Delegate adds the call's estimated cost to what's already been spent in the period; if that would cross the cap, the call is refused and the task ends with a message. The call that would have crossed the line is the one that gets blocked, so you don't overshoot into the next dollar.

Both can be set two ways at once:

  • Organization-wide — Tenant Budget → Monthly limit (USD) and Daily limit (USD, optional). This is the ceiling for everything.
  • Per agent — the Agent Limits table, one row per agent, with Monthly limit (USD) and Daily limit (USD) columns.
  • Per person — the User Limits table, one row per member, with the same two columns.

Leave a field blank for "no limit at this level." A blank per-agent monthly limit does not mean unlimited — the organization limit still applies.

Agent limits and user limits are independent​

A turn is charged to both the agent that ran it and the person who asked for it, and both limits must have room. Giving Ada a $50 monthly limit doesn't reserve $50 for her — it caps her at $50 and she still has to fit inside the limit of whichever agent she uses.

That's why the two tables are validated separately: each table's sum has to fit under the organization's monthly limit on its own, and the sums are never added together. Adding them would double-count the same dollars.

Two rules cover which allowance a turn spends:

  • A turn belongs to whoever sent the message. Chatting with a shared agent spends your allowance, not the agent owner's.
  • A turn with no sender spends the agent owner's allowance. That covers scheduled routines and messages from a Slack account that isn't linked to Delegate. The owner set the agent up, so they answer for what it spends — and it means no spend escapes per-user limits entirely. If an owner is at their limit, their agents' routines back off until it resets rather than failing every time they fire.

Owning a busy agent spends your allowance. Someone who owns an agent that runs on a schedule, or that fields Slack traffic from unlinked accounts, needs a limit sized for that as well as for their own chatting — or no limit at all.

Allocating the monthly limit across agents

The Agent Limits table shows the sum of the per-agent monthly limits against the organization's monthly limit. Delegate rejects a save whose per-agent limits add up to more than the organization limit ("Sum of monthly limits exceeds the tenant monthly limit"), so you can't accidentally over-commit the plan. Deliberately under-allocating is fine and often sensible — it leaves headroom for agents you haven't given an explicit slice.

Which limit fires first​

More than one limit can be over at the same time. They are checked in this order, and the first one that would be crossed is the one that stops the call:

  1. Free-tier trial limit (only on the free tier — see Free tier & upgrading)
  2. Agent daily
  3. Agent monthly
  4. User daily
  5. User monthly
  6. Organization daily
  7. Organization monthly

Tightest scope and shortest period first. That ordering is deliberate: it means the message a user sees quotes the soonest reset time, so they're told to wait an hour rather than a month whenever that's the truth.

Reset timezone​

Reset timezone (IANA) sets the clock that daily and monthly boundaries are measured against. A daily limit resets at local midnight; a monthly limit resets at local midnight on the 1st.

The default is UTC. If your team works in one place, set this to that timezone — otherwise a "daily" limit resets in the middle of your afternoon. Pick from the dropdown or choose Custom… to enter any IANA zone (for example Europe/Lisbon). The zone is validated when you save.

The hourly limit ignores this setting: it's a rolling 60-minute window, not a clock-aligned one, so it has no boundary to align to.

Telling agents about their own budget​

Tell agents when they're near their budget is off by default. Turn it on and an agent that has passed 80% of whichever limit binds it first receives a note with its own work:

Budget notice: this agent has used 84% of the agent monthly token limit. Be concise; avoid unnecessary tool calls.

The notice names whichever limit is closest to full, so it may refer to the current user or this organization rather than the agent.

The agent adapts — fewer speculative tool calls, shorter answers. It is a nudge, not an enforcement mechanism; the hard stops above still apply. The trade-off is that the notice occupies a little context and can make an agent terser than you want, which is why it ships off.

What a user sees when a limit is reached​

Users don't need admin access to understand what happened — the task ends with a plain message:

Limit reachedMessageWhat to do
Agent hourlyHourly token limit for this agent reached. The rolling 60-minute window will clear by …Wait; the agent is throttled, not stopped
Agent dailyDaily token limit for this agent reached. Limit resets at …Wait for the reset, or ask an admin to raise it
Agent monthlyMonthly token limit for this agent reached. Contact your admin to raise the limit or reallocate across agents.Ask an admin
Your dailyYour daily token limit is reached. Limit resets at …Wait for the reset, or ask an admin to raise it
Your monthlyYour monthly token limit is reached. Contact your admin to raise it.Ask an admin
Organization dailyDaily token limit for this tenant reached. Limit resets at …Wait for the reset, or ask an admin
Organization monthlyMonthly token limit for this tenant reached. Contact your admin.Ask an admin
Free-tier trialFree-tier trial limit reached. Add a payment method to continue.See Free tier & upgrading

Reset times are shown in the organization's reset timezone.

The enforcement audit log​

Organization → Budget → Enforcement audit log (collapsed by default) records every block: When, Scope, Cap, Usage at block, and Next reset. Blocks triggered outside an interactive session — a scheduled routine, a webhook — are recorded too.

This is the page to open when someone reports "my agent just stopped": it tells you which limit fired, how close to the cap they actually were, and when it clears. Note that it logs stops only. Hourly throttling doesn't appear here, because nothing was blocked.

What budgets count​

Budgets meter the cost of model usage, in US dollars, summed from recorded task usage.

  • Free models cost nothing and are never throttled or blocked.
  • Bring-your-own-key usage still counts. You pay the provider directly and Delegate adds no fee, but the spend is recorded and it consumes budget — so your limits stay meaningful as a control on how hard your agents work.
  • Budgets are a spending control, not an invoice. For what you're actually billed, see Usage & spend and Plans & subscription.

Known limits​

A long task can overshoot slightly. Usage is written when a task finishes, so a single long-running task's spend isn't yet in the totals while it runs. Delegate compensates by counting what the in-flight task has spent so far, which bounds the overrun to roughly one extra model call.

Tasks running at the same time can each overshoot. Two tasks that start concurrently can both pass the check before either records its usage, so a cap can be exceeded by up to one call's estimated cost per concurrent task. For caps in the hundreds or thousands of dollars this is noise; if you need a strict ceiling at small values, set the hourly throttle too — it limits the rate at which any single agent can accumulate that error.