# Budget

Source: https://docs.ops0.com/docs/settings/budget

Configure monthly cost limits for IaC deployments. ops0 checks the estimated deployment cost before each apply — if the limit would be exceeded, the deployment is blocked before any infrastructure changes are made.

**Estimates, not actuals**

Budget enforcement uses pre-deployment cost estimates. Actual cloud spend may differ based on usage patterns, data transfer, and resources without pricing data.

---

## Organization Budget

Sets a monthly spending ceiling across **all IaC projects** in the organization.

### Navigate to Budget Settings
Go to **Settings** → **Budget**.

### Set the monthly limit
Enter a value in USD (e.g., `5000`). Leave blank to disable the limit.

### Save
Click **Save Budget Settings**.

---

## Project-Level Budgets

Each IaC project can have its own budget limit, independent of the org-wide limit. Project budgets let teams manage their own spending ceilings.

Navigate to **IaC → (project) → Settings → Budget** to set a project-level limit.

Both limits are checked on every deployment. A deployment is blocked if **either** the project budget **or** the org budget would be exceeded.

---

## Budget Scope

When configuring the org budget, choose which projects it applies to:

| Scope | Description |
|-------|-------------|
| **All projects** | Limit applies to every IaC project in the org (default) |
| **Selected projects** | Applies only to the projects you choose |

Use **Selected Projects** to exclude sandbox or development projects from the global cap.

---

## Block on Exceed Toggle

Each budget (org-level and per-project) has a **Block on Exceed** toggle:

| State | Effect |
|-------|--------|
| **On** (default) | Deployments are blocked when the estimated cost exceeds the limit |
| **Off** | Budget limit is tracked and shown, but deployments are **not** blocked — only a warning is displayed |

Use **Off** when you want budget visibility without hard enforcement — useful for development environments or during an initial rollout period when you're calibrating accurate limits.

The current enforcement state (active / warning-only) is shown in a summary card at the top of the Budget settings page.

---

## Enforcement Behavior

| Scenario | Result |
|----------|--------|
| Estimated cost within all limits | Deployment proceeds normally |
| Estimated cost exceeds limit, Block on Exceed = On | Deployment blocked — shows estimate vs. limit |
| Estimated cost exceeds limit, Block on Exceed = Off | Warning shown, deployment proceeds |
| No pricing data for some resources | Those resources counted as $0 — estimate may be low |

### Budget Override

Users with the `budget:override` permission can approve a deployment that exceeds the limit. The override and reason are recorded in Audit Logs.

### Monthly Reset

Budget tracking resets on the 1st of each calendar month.

---

## Related

- [Cost Estimation](https://docs.ops0.com/docs/iac/deployments/cost): How ops0 calculates pre-deployment cost estimates

- [Organization](https://docs.ops0.com/docs/settings/organization): Set the organization-wide IaC budget limit

- [Deployments](https://docs.ops0.com/docs/iac/deployments): Deploy infrastructure and review cost impact
