# Budgets & financials

> Project money end to end - budget lines, committed vs. actual, change orders, purchase orders, invoices, and point-in-time snapshots.

Source: https://app.assetlab.ca/docs/projects/budgets-and-financials

Project financials answer the question every owner asks in every meeting: *are we on budget, and if not, why?* The model tracks money in three states - budgeted, committed, actual - with the paper trail connecting them.

## Budget items

The approved budget breaks into **budget items** - line items with a category and amount. Categories are a fixed set: lump sum, labor, materials, equipment, subcontractors, permits, contingency, and other. Lines give variance reporting its rows; a single-line budget can only ever say "over" or "under".

> [!note] Creating a project with a budget number auto-seeds one **lump-sum "Headline budget" line** for that amount. Break it into real lines when the tender lands - and replace the headline line rather than adding alongside it, or you'll double-count.

## The financial summary

The project's financial view shows four numbers:

| Figure | What it counts |
|---|---|
| Budget | The summed budget lines |
| Committed | Purchase orders (any status except draft or cancelled) plus approved change orders |
| Actual | Approved or paid [invoices](/docs/cmms/expenses-and-costs) plus project expenses |
| Remaining | Budget minus actual |

The gap between committed and budget is your remaining room; the gap between actual and committed is work not yet billed - both worth watching.

Two things deliberately *don't* flow in here: costs on linked work orders (those post to the assets, not the project - see [Tasks & milestones](/docs/projects/tasks-and-milestones)), and task hours. If money should show in the project's numbers, record it as an invoice or expense.

A **vendor spend summary** breaks the same actuals down by vendor, and the financial tab includes an in-app "How financial tracking works" explainer.

## Change orders

Scope changes get recorded as **change orders**: description, amount, a cost category, and a status that moves draft → submitted → approved (or rejected). An approved change order raises **committed** cost - it does not rewrite the budget figure, so the original approved budget stays visible and the pressure shows up as committed closing in on budget.

> [!tip] Enter change orders as drafts when they're *proposed*, not when they're approved. The pending pipeline is exactly what a project board wants to see coming.

## Cost snapshots

A **cost snapshot** freezes the financial picture at a moment - total budget, actual cost, percent complete, and forecasted cost - and keeps it. Snapshots are currently created via the [API and MCP tools](/docs/ai/tools-and-scopes) rather than an in-app button - a scheduled AI workflow that snapshots every active project monthly is a natural fit. Snapshot at every board report and you can later reconstruct what was known when.

## Where project money meets the portfolio

Because projects are [scoped to assets](/docs/projects/creating-projects), capital spend lands in the story of the things it renewed - and an active project's budget counts as **Committed** funding in the [Capital Brief's funding gap](/docs/asset-management/lifecycle), split across the system classes and networks it's linked to. Capital and O&M stay separable - but on the same records.

## Programmatic access

Budget items, change orders, POs, invoices, time entries, and snapshots are all exposed through the [REST API](/docs/reference/rest-api) and [MCP tools](/docs/ai/tools-and-scopes) - a monthly AI-drafted variance summary is a natural [workflow](/docs/ai/example-workflows).
