# Budgets and budget vs. actual

> What an initiative was approved to spend, how its budget is set and revised, who signs off an increase, and how Roiva checks it against the budget in your ERP.
>
> Source: https://roiva-staging.com/docs/budgets-and-budget-vs-actual
> Checked against the product on September 22, 2026

An initiative has two sets of cost figures. Its **business case**, the CapEx and OpEx on its edit form, is a proposal anyone can change, before approval and after. Its **budget** is what was signed off, and it changes only through a recorded revision.

#### How a budget is set

When an initiative is approved into Implementing, Roiva writes its first budget from the business case as it stood at that moment: a CapEx total and an OpEx rate. If the business case has no cost figures, no budget is written, and an Owner or Admin can set one from the initiative's **Costs → Budget** page with **Set Budget**.

Editing the business case after approval leaves the budget alone.

#### What counts against it

- **CapEx** is a total. Actual CapEx since the budget began is spent against it.
- **OpEx** is a rate, per month, quarter or year. The OpEx budget for a stretch of time is the rate for each month in it, so a revision changes the months after it and never restates the ones before.

A budget covers whole months, from the month it starts. Actual is every cost entry dated from that month on, net of tax, whether logged by hand or synced. Cost dated before the budget began is shown separately rather than counted against it. An initiative is over budget if either its CapEx or its OpEx is over.

#### Revising a budget

Owners and Admins choose **Revise Budget** on the initiative's **Costs → Budget** page. Set the new CapEx total, OpEx rate, when it takes effect, when it ends (blank for ongoing OpEx) and a reason. A revision is a new version, not an edit: **Budget History** keeps every version, who set it and why.

A revision applies at once, unless it's an increase that takes the budget above the **Senior approval threshold** in **Organization Settings → Approvals**. The threshold is compared with CapEx plus a year of OpEx. A blank threshold means no revision ever waits. Those revisions wait for the account Owner, or someone holding an Owner's delegation, who can **Approve increase** or reject it with a reason. It waits in **Approvals** alongside other sign-offs. See [Approving value and initiatives](https://roiva-staging.com/docs/approving-value-and-initiatives).

#### Where budget vs. actual shows

- **Finance → Budget** lists every approved initiative: budget to date, actual to date, variance and how much is used, with totals across the portfolio. An initiative with no budget is listed too, so the gaps show.
- An initiative's **Costs → Budget** page shows the same for that initiative, split into CapEx and OpEx, with its budget history.
- The account export includes every budget version as `costs/budgets.csv`, and the Board Brief reports budget vs. actual for the quarter.
- An initiative's Overview carries the same comparison in its **Budget used** card.

Sample initiatives are listed on **Finance → Budget** and marked, so a new account can see what the page does. The Board Brief leaves them out.

Whoever proposed a revision that is waiting can take it back with **Withdraw revision**; nothing changes until an increase is approved.

#### Telling a channel

A connected Slack or Microsoft Teams channel can post when a budget is set or revised, and when an increase goes to the Owner, is approved or is rejected. Tick **Budgets** under **Notifications to send** on the connection. A connection whose notifications were chosen before budgets existed keeps sending only what was ticked. See [Managing a connection](https://roiva-staging.com/docs/managing-a-connection).

#### Checking against the budget in your ERP

If your finance team also holds the AI budget in Xero or QuickBooks, Roiva compares the two and tells you where they disagree. It is a check, not a correction: **the budget approved in Roiva stays the record**, and the figure from your ERP never changes it, never gates an approval and never moves a variance.

**What gets matched.** Roiva matches on the tracking category, class or department an initiative already posts under — its **GL dimension value** in **Organization Settings → GL Mapping**. Where exactly one ERP budget covers that value for the fiscal year, Roiva uses it. Where several do — a plan and a reforecast over the same tracking value, say — Roiva doesn't guess: the initiative reads **Several ERP budgets**, and an Owner or Admin picks one in **GL Mapping**. The same dropdown turns the check off for an initiative that genuinely isn't in the ERP budget.

**What gets compared.** One fiscal-year total against the other, in your organization's own fiscal year.

- **OpEx** is the rate for each month of the year, the same figure as the fiscal-year row on the initiative's Budget page.
- **CapEx** is a total, not spread over time, so Roiva counts it in the fiscal year the budget version that set it took effect, and a later revision counts only the change. A fiscal year in which no version took effect contributes no CapEx.

Roiva reports a difference of more than 1% of the Roiva figure, or $1,000, whichever is larger. Anything smaller reads as **Matches ERP**. Budgets in different currencies are never converted — Roiva says so and compares nothing.

Xero and QuickBooks budgets are profit-and-loss budgets, so an initiative whose CapEx is genuinely capitalized will show a difference. That is a real finding about the two systems rather than a fault in the arithmetic; the ERP accounts listed under the comparison show where the money sits.

**Where it shows.** On the initiative's **Costs → Budget** page, under the CapEx and OpEx cards, with the ERP accounts behind the figure. On **Finance → Budget** as an **ERP Check** column you can filter by. Both appear only once your GL is mapped and budgets have synced.

**Xero needs reconnecting.** Reading budgets needs a permission Roiva didn't ask for before. A Xero connection made earlier will show a warning on its setup check until someone chooses **Reconnect** and approves it. Nothing else about that connection is affected in the meantime. QuickBooks needs no reconnect. NetSuite budgets aren't read yet.

#### A Google Cloud budget is something else

A Cloud Billing budget in Google Cloud tells Roiva which spend belongs to an initiative — see [Linking connections to initiatives](https://roiva-staging.com/docs/linking-connections-to-initiatives). Only its scope is used: its amount is an alert threshold in Google Cloud, not an approved budget, and Roiva never reads it as one.
