Budgets
A budget puts a spending limit on part of the platform and tells the platform what to do as spend approaches it: send an alert, or pause workloads and refuse new launches.
Who can manage budgets
| Who | Budgets they can create, see, and change |
|---|---|
| Platform administrators | Every budget, in any organization and for any user, including platform budgets. Open them under Admin > FinOps > Budgets. |
| Organization owners and admins | Only their own organization's budgets, for their own organization's users, resources, and resource groups. Open them from Budgets in the sidebar. |
The rule is the same on every installation. An organization owner or admin can never create, see, edit, or move a budget into another organization, scope a budget to a user of another organization, or manage platform budgets; the platform refuses the change with "You can only manage budgets for your own organization." Other members do not manage budgets; they see the budgets that cover them (see What members see).
Budgets are about cost control. They are separate from credits and billing: a budget never charges, tops up, or deducts anything, and credits never change a budget.
How budgets work
- Spend is measured from hourly cost data. Each hour, the platform attributes the cost of every running workload and AI request to its organization, owner, type, and labels. A budget adds up the cost that falls inside its scope for the current period, including spend from before the budget was created.
- Budgets are evaluated immediately and then hourly. Creating, editing, or resuming a budget evaluates it right away, so the usage bar is current as soon as you save. After that, the budget is re-evaluated every hour.
- Thresholds act at a percent of the amount. Each threshold either sends an alert or pauses workloads when spend reaches its percent. Alerts fire once per period. A pause stays in force for as long as spend is at or over the pause threshold.
- Launches are checked against budgets. Every launch, and every start, restart, or resume of an existing resource, is checked before it runs. If it would take a budget to its pause threshold, it is refused and the resource stays as it was.
Create a budget
- Open the Budgets page (Admin > FinOps > Budgets for platform administrators, Budgets in the sidebar for organization owners and admins) and click Create budget.
- Fill in the three sections of the form (described below): Settings, Alerts, and Notifications.
- Click Create budget.
The budget is evaluated as soon as it is saved. If current spend already reaches a pause threshold, workloads in scope are paused immediately.
A budget with a Pause resources threshold acts on real workloads the moment you save it. If spend in its scope is already at or over that threshold, running apps, add-ons, workspaces, and other long-running workloads in scope are stopped right away. Check the scope's current spend (for example, create the budget with alert thresholds only and look at its usage bar) before adding a pause threshold.
Settings
| Field | What to enter |
|---|---|
| Name | A descriptive name, up to 100 characters. It appears in alerts, emails, and launch-refusal messages. |
| Description | Optional, up to 500 characters. |
| Scope | What the budget covers. See Scopes. Choosing a scope shows the matching picker (user, resource group, resource type, resource, or tag). Platform and Platform cost bucket are offered to platform administrators only. |
| Organization | The organization the budget belongs to, for every scope except the platform ones. Administrators choose it from the list of organizations by name; the user and resource lists then show that organization's members and resources, and changing the organization clears a user or resource already picked. Organization owners and admins see their own organization, which cannot be changed. |
| Amount (USD) | The limit in US dollars, for example 1500.00. Must be greater than zero. |
| Budget Type | Recurring - resets every period, or Total - never resets. |
| Period | Recurring budgets only: Daily, Weekly, or Monthly. |
| Reset Day (week) | Weekly budgets: the day the week starts, Mon through Sun. |
| Reset Day (1-31) | Monthly budgets: the day of the month the period starts. In a shorter month, a reset day past the end of the month uses the month's last day. |
| Enabled - tracking and enforcement active | On by default. Turn it off to save the budget paused (no tracking, alerts, or enforcement). |
Alerts
The Alerts section lists the budget's thresholds. A new budget starts with two: 80% Send alert and 100% Pause resources. Click Add threshold to add more, and the remove button to delete one (a budget always keeps at least one).
For each threshold, set:
- Percent: 1 to 200. Values over 100 let you act after the budget is exceeded, for example an alert at 120%.
- Action: Send alert or Pause resources.
Rules checked when you save:
- At least one threshold.
- Each percent is used once.
- At most one Pause resources threshold.
- Budgets on a platform cost bucket are alert-only (see Specific Resource).
To watch spend without any enforcement, set every threshold to Send alert.
Notifications
Every threshold that fires puts a notification in the bell menu of the recipients. The Notifications section controls how those alerts are also emailed.
Recipients are chosen automatically: platform administrators for platform budgets, and the organization's owners and admins for every other budget.
| Field | Options |
|---|---|
| Delivery mode | Immediate: email as soon as a threshold fires. Alerts that fire together arrive as one email (subject "N FinOps Budget alerts"). Digest: collect alerts and send one summary email on a schedule. Off: no email; bell notifications still appear. |
| Frequency | Digest only: Hourly, Daily, or Weekly. |
| Hour of day (UTC) | Daily and weekly digests: the hour the digest is sent, 0 to 23, in UTC. |
| Day of week | Weekly digests: the day the digest is sent. |
| Minimum severity | Warnings and up, Errors and up, or Critical only. Alerts below this severity are not emailed. |
Each alert has a severity:
| Threshold | Severity |
|---|---|
| Send alert below 100% | Warning |
| Send alert at 100% or more | Error |
| Pause resources (workloads stopped) | Critical |
So Critical only emails you only when a budget pauses workloads, and Errors and up adds alerts for a budget that has been used up. Notifications link to the budget's page.
Scopes
The scope decides which spend counts toward the budget, which workloads a pause stops, and which launches are checked.
| Scope | Spend that counts | Checked at launch and start |
|---|---|---|
| Platform | All spend on the platform, across every organization. | Every launch |
| Organization | Spend of your organization. | Launches in your organization |
| User | Spend of the workloads one member of your organization deployed, whoever uses or triggers them (see Who usage belongs to). | Launches by that user |
| Resource Group | Spend of the resources in one resource group. | Starts of resources in the group |
| Resource Type | Spend of one type of resource in your organization, for example all workspaces. | Launches of that type in your organization |
| Specific Resource | Spend of one resource. | Starts of that resource |
| Tag | Spend of resources in your organization labeled with a tag key and value. | Not checked at launch; enforced by pausing |
"Your organization" is the budget's organization (see Organization above). Platform budgets belong to the platform rather than to an organization.
User
Pick a member from the User list, which shows each active member of the budget's organization by name and email with their role.
Resource Group
Pick one of your active resource groups from the Resource Group list. Administrators manage groups from the Resource Groups button on the Budgets page. An organization owner or admin can only use a resource group owned by a member of their organization. A resource group budget counts the spend of every resource in the group, and starting, restarting, or resuming a member resource is refused when it would take the group's budget to its pause threshold. A resource group cannot be deleted while a budget uses it as its scope; delete or re-scope the budget first.
Resource Type
Pick a type from the Resource Type list: App, Add-on, Workflow, Self-hosted model, Fine-tuning job, AI gateway request, Workspace, Agent, AutoML job, Avatar, Scheduled job, Model serving, Data Forge project, or Workflow tool. Agents and workflows are counted separately.
Specific Resource
Pick a Resource Type, then the resource:
- For every type except platform cost buckets, choose the resource by name from the Resource list, which shows that type's resources in the budget's organization. AI gateway requests have no individual resources; budget them with a Resource Type scope.
- Choose Platform cost bucket to budget platform capacity that no workload is using: Idle cluster capacity, Unallocated cluster cost, or Unmounted storage volumes. Bucket budgets belong to the platform and are alert-only: capacity cannot be paused.
A budget on a specific resource refuses starts, restarts, and resumes of that resource while it is at its pause threshold.
Tag
Enter a Tag Key and Tag Value. The budget counts spend of resources in your organization carrying that label. Tag budgets do not refuse launches; when spend reaches the pause threshold, matching workloads are paused.
What happens at each threshold
Alerts
When spend reaches an alert threshold, recipients get a bell notification such as "Budget 80%: Team ML" with the amount spent, plus an email according to the budget's notification settings. Each threshold alerts once per period. It alerts again after the period resets, or after you change the budget's amount, scope, or thresholds (see Edit a budget).
Pause
When spend reaches the pause threshold:
- Long-running workloads in scope are stopped: apps, add-ons, workflows, agents, workspaces, self-hosted models, avatars, model serving deployments, and workflow tools.
- Recipients get a critical notification that resources were paused.
- The budget's status becomes Exhausted.
The pause is continuous. At every evaluation while spend is at or over the pause threshold, anything in scope that was started again is stopped again, and recipients are notified of each new stop.
Work that runs to completion (fine-tuning, AutoML, jobs, Data Forge generations) is not stopped mid-run, but new launches of it are refused.
The pause ends when the period resets, when you raise the amount or the pause percent above current spend, or when you pause or delete the budget. Stopped workloads are not restarted automatically; start them again when you are ready.
Launches and starts
Before anything launches, and before an existing resource is started, restarted, or resumed, the platform checks every enabled budget that covers it (see the table in Scopes). Only budgets with a pause threshold can refuse a launch. A launch is refused only when the budget's spend has already reached the pause threshold; nothing is estimated, so a short workload is never refused for what it might cost. Otherwise the launch runs, its actual cost is recorded hourly, and the budget is evaluated again; spend can end slightly over the limit. The user sees a message like:
Budget 'Team ML' blocks this launch: $1,000.00 of $1,000.00 spent, which has reached its 100% pause limit.
Nothing is created or started, and the resource stays in its previous state. When several budgets would refuse the launch, the message names the one with the least money left.
Budget status
| Status | Meaning |
|---|---|
| Active | Enabled, tracking spend, and below any pause threshold. |
| Exhausted | Spend is at or over the pause threshold: workloads in scope are paused and covered launches are refused. Budgets with only alert thresholds never become exhausted. |
| Paused | Someone who manages the budget paused it. It does not track spend, alert, pause workloads, or refuse launches. |
Periods and resets
- Daily budgets reset at 00:00 UTC.
- Weekly budgets reset at 00:00 UTC on the reset day.
- Monthly budgets reset at 00:00 UTC on the reset day of each month.
The platform shows these times in your local time zone, so a reset can fall on the previous evening. For example, a monthly budget with reset day 1 resets at 00:00 UTC on the 1st, which is shown as 8:00 PM on the last day of the previous month in US Eastern daylight time.
- Total budgets never reset. They count all recorded spend in their scope, including spend from before the budget was created.
A recurring budget created mid-period counts spend from the start of the current period. For example, a monthly budget with reset day 1 created on the 20th starts with everything spent since the 1st.
At a reset, spend starts again from zero, every threshold is re-armed, and an exhausted budget returns to Active.
Manage budgets
Find a budget
The Budgets page shows summary cards (Total budgets, Active, Paused, Exhausted) and a table with each budget's name, scope, type, amount, usage bar with spend so far, and status. The cards count budgets of every status that match the scope filter and search.
The Scope column names what each budget covers: Platform-wide, the organization's name, the user's name and email, the resource group's name, the resource type (for example All Workspace resources), the resource type and resource name (for example App: EDI Translator), the platform cost bucket, or the tag. Below it, the budget's organization is shown when the scope does not already name it. A target that no longer exists shows its id with (not found). For recurring budgets, the Type column shows when the current period resets, in your local time.
Narrow the table with:
- Search name...: matches part of the name, ignoring case.
- Scope: one scope or All scopes.
- Status: Active (the default), Paused, Exhausted, or All statuses. Choose All statuses to see paused and exhausted budgets.
Click a budget's name, or its details button, to open it. The top of the budget's page shows its scope by name, amount, status, usage, the current period, when spend was last evaluated, and when the budget was created. When thresholds have fired or workloads were stopped this period, a This period's activity section lists each threshold reached and each stopped resource with its time.
All times on the Budgets pages are shown in your browser's local time zone, with the zone name.
Pause and resume a budget
Use the pause button in the table row, or Pause on the budget's page. A paused budget stops all tracking and enforcement until you resume it. Pausing a budget does not restart workloads it stopped.
Resume turns tracking and enforcement back on and evaluates the budget right away. If spend is already at the pause threshold, workloads in scope are paused again immediately.
Edit a budget
Open the budget, change any field in Settings, Alerts, or Notifications, and click Save changes. The budget is evaluated immediately with the new settings.
Changing the amount, budget type, period, reset day, scope, or thresholds re-arms every threshold, so thresholds that are already crossed on the new basis alert again. Changing only the name, description, notifications, or the enabled switch keeps the alerts already sent. Changing the type, period, or reset day moves the budget to the period that contains today. You can change the scope to any other scope, including between Platform and an organization scope. To clear the description, empty the field and save.
Delete a budget
Click Delete (on the budget's page or in its table row) and confirm. Deletion is permanent. The budget's bell notifications and any alerts not yet emailed, including queued digest alerts, are removed with it. Workloads the budget stopped stay stopped until someone starts them.
What members see
Members see the budgets that cover them in a Your budgets card on their dashboard: their own user budget, their organization's budgets, and platform budgets. Each shows the amount remaining, a usage bar, and, for recurring budgets, the days left in the period; hover over it to see the exact reset time in your local time zone. When a budget is exhausted, the card says that new launches are blocked and to contact an administrator. The card does not appear when no budget covers the member.
Read budgets with the API or SDK
Budgets are read-only outside the platform UI. With an API key of someone who manages budgets you can list budgets and read one budget, including its current usage, fired alerts, and stopped workloads. Administrators read every budget; organization owners and admins read their own organization's. See the REST API budgets reference and the Python SDK budgets page.
Examples
Organization monthly budget
- Scope: Organization
- Amount: $10,000.00, Recurring, Monthly, reset day 1
- Thresholds: 50% Send alert, 80% Send alert, 100% Pause resources
- Notifications: Immediate, Warnings and up
Organization admins are told at $5,000 and $8,000. At $10,000 the organization's long-running workloads are paused and new launches are refused until the 1st of the next month.
Per-developer budget with a digest
- Scope: User (the developer)
- Amount: $500.00, Recurring, Weekly, reset day Mon
- Thresholds: 75% Send alert, 100% Send alert
- Notifications: Digest, Daily, hour 9 (UTC)
Alert-only: nothing is ever paused, and admins get at most one summary email a day.
Hard cap on a project
- Scope: Resource Group ("Customer Analytics")
- Amount: $2,000.00, Total
- Thresholds: 90% Send alert, 100% Pause resources
- Notifications: Immediate, Critical only
The group can spend $2,000 in total. Admins are emailed only when the group's workloads are paused.
Idle capacity watch
- Scope: Specific Resource, type
platform, bucketcluster-idle - Amount: $300.00, Recurring, Monthly
- Thresholds: 100% Send alert
Platform admins are told when idle cluster capacity costs more than $300 in a month.
Best practices
- Start alert-only. Watch a new budget's usage for a period before adding a pause threshold.
- Layer budgets. An organization budget as the overall cap, resource group or resource type budgets per team or workload, and user budgets for individual development spend. Every covering budget is checked at launch; the one closest to its limit decides.
- Leave headroom. Put the pause threshold at or above 100% and an alert well before it, so admins can react before workloads stop.
- Use digests for noisy scopes. Budgets with many thresholds or small amounts are easier to follow as a daily digest.
- Combine with schedules. Resource schedules stop non-production workloads off-hours; budgets catch the spend schedules miss.