# How to Set Up Budgets and Budget vs Actual in NetSuite

> Source: https://netray.co/erp-help/netsuite-how-to-set-up-budgets
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: ERP Help

## Short answer

In NetSuite, budgets are entered per account, year and optional dimensions (subsidiary, department, class, location) at Transactions > Financial > Set Up Budgets, or loaded by CSV import. Reports such as Budget vs. Actual under Reports > Financial then compare the plan to posted actuals by period.

## Kind

how-to

## System

netsuite

## Erp

Oracle NetSuite

## Module

Financials / Budgeting

## Query

how to set up budgets in NetSuite

## Alternate Queries

- NetSuite budget vs actual report
- NetSuite import budget CSV
- NetSuite budget by department and class
- NetSuite budget categories

## Applies To

NetSuite (all editions); OneWorld adds a subsidiary dimension; Budget permission required, and Budget Categories if you keep several versions

## Steps

### Create and use a budget

**Items:**

- Confirm your role has the Budget permission and that budgeting is available to you. If Set Up Budgets is missing from Transactions > Financial, check the Accounting options under Setup > Company > Enable Features.
- Optionally define budget categories at Setup > Accounting > Budget Categories, for example Original, Revised and Forecast, so versions do not overwrite each other.
- Go to Transactions > Financial > Set Up Budgets. Choose the year, the budget type (by account, customer, or item), and the dimensions such as subsidiary, department, class and location.
- Enter amounts per account by month or period, or use the Annual option and spread. Save each combination.
- For large budgets, load a CSV through Setup > Import/Export > Import CSV Records, choosing the Budget record type, and map Year, Account, Period amounts and dimension columns.
- Run Reports > Financial > Budget vs. Actual (or the Budget Income Statement) and filter by period, subsidiary and category.
- Revise by editing the budget or loading a new category, and schedule the report to the budget owner.

## Sections

### How NetSuite stores budgets

**Body:**

A budget row is keyed by year, account, accounting period and the optional dimensions. A row for Dept A, Class 1 is distinct from one for Dept A with no class, which is why reports mixing budgeted and unbudgeted dimensions often seem to miss amounts. Decide up front which dimensions your budget carries and keep them consistent.

Budgets are amounts for income statement accounts in most setups, plus statistical accounts if you plan headcount or units. They are not transactions: they do not post to the ledger, and they do not encumber spend or block purchase orders. NetSuite will not stop a purchase because the budget is exhausted without a custom workflow or script.

### Importing and revising budgets

**Body:**

CSV import is the practical route for a full chart-by-department budget. Build the sheet with one row per account and dimension combination, with a column per period, and use internal IDs or exact names for lookups. Run a small file first to confirm account and period mapping, and watch that the year matches your fiscal calendar.

To keep history, use budget categories rather than editing last year's numbers. Original stays frozen, and a Revised category carries mid-year changes. Reports can then show actual against either version. Without categories, a new import overwrites the existing row for the same keys.

**Code:**

-- SuiteQL: actual expense by department for a period (compare to budget)
SELECT tl.department, SUM(tal.amount) AS actual
FROM transactionaccountingline tal
JOIN transactionline tl ON tl.transaction = tal.transaction AND tl.id = tal.transactionline
JOIN account a ON a.id = tal.account
WHERE a.accttype = 'Expense' AND tal.posting = 'T'
GROUP BY tl.department

### Getting variance reporting you can trust

**Body:**

Variance only works when budget and actuals share the same dimensions. If actual spend is posted without a department on many lines, the Budget vs. Actual report shows the budget against a large unassigned bucket. Make department and class mandatory on transactions, or default them from the employee or item, before relying on the report.

For richer planning (driver-based models, headcount, scenarios, what-if), NetSuite's budget tools are basic, and many teams use Planning and Budgeting or an external tool, then load results into NetSuite budgets for reporting. If you just need an annual budget by department, the native tools are usually enough.

## Pitfalls

- Importing budgets with different dimensions from actuals, so every variance line looks wrong.
- Overwriting a budget by re-importing for the same keys when you meant to keep an original version.
- Assuming budgets block spending. They are reporting only unless you add a workflow.
- Budgeting at the wrong fiscal year when the calendar does not match the calendar year.
- Not restricting the Budget permission, so finance managers can overwrite approved plans.

## Ai Angle

An assistant grounded in NetSuite can compute budget versus actual for a department on demand, point to which accounts are trending over, and explain why a line is unassigned. ERPray reads the data read-only, shows the query and follows your roles, so a manager sees only their own cost centers. Approving a revised budget stays a finance decision.

## Faq

### Does a NetSuite budget stop people from spending?

**Answer:** No. Budgets are reporting data and do not post to the ledger or encumber commitments. To enforce limits you need a workflow or SuiteScript on purchase requisitions or purchase orders that compares the amount with the remaining budget and blocks or routes it for approval.

### How do I import a budget into NetSuite?

**Answer:** Use Setup > Import/Export > Import CSV Records, pick the Budget record type, upload a CSV with year, account, period amounts and dimension columns, and map the fields. Test with a few rows first, then run the full file and review the job status for errors.

### Can I keep multiple versions of a budget?

**Answer:** Yes, with Budget Categories. Create Original, Revised or Forecast at Setup > Accounting > Budget Categories, then enter or import each version under its category. Reports can filter by category so you compare actuals to any version without overwriting another.

### Why does Budget vs Actual show amounts as unassigned?

**Answer:** Actual transactions were posted without the dimension you are reporting on, such as department or class. The budget has a value for that dimension while actuals fall into a blank group. Make the field mandatory or default it, then reclassify the old lines.

## Search terms

netsuite budget setup, netsuite set up budgets, netsuite budget vs actual, netsuite import budget csv, netsuite budget by department, netsuite budget categories, netsuite budget income statement, netsuite budget permission, netsuite variance report

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
