# Budgets

# Budgets


:::info
**NexWave Budget is the recommended budgeting solution.** This page documents NexWave's earlier extensions to the standard Budget functionality. For new budgets, please use the [NexWave Budget](/doc/05cc4505-46e2-4844-9043-ec92baa3280e) module instead. NexWave Budget supports any combination of accounting dimensions (not just one), provides independent Annual, Accumulated Monthly, and Monthly enforcement controls, and replaces the Budget Category pattern with simpler per-budget action settings.

:::

NexWave extends the standard budget functionality with Budget Categories for scenario planning, explicit monthly period allocations, and enhanced variance reporting.

## Overview

A budget in NexWave defines planned spending or revenue for a set of accounts against a cost centre (or project) for a fiscal year. NexWave adds three key enhancements:

* **Budget Categories** for managing multiple budget versions (Control, Forecast, Revised)
* **Monthly period fields** for explicit per-month budget allocation
* **Enhanced variance reporting** with category-based filtering

## Budget Categories

Each budget is assigned a **Budget Category** that controls enforcement behaviour and enables scenario planning.

### Category Fields

| Field | Description |
|-------|-------------|
| **Category Name** | A descriptive name (e.g., "Control", "Forecast", "Q3 Revised") |
| **Budget Action** | How this category affects transactions: **Stop** (block), **Warn** (allow with warning), or **Ignore** (no enforcement, reporting only) |
| **Description** | Optional notes about the category's purpose |

 ![](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC83ZDlhYzkwYi04M2E4LTRlNzMtOGZlMy0wNmY3NzVkZjNlZmYvU2NyZWVuc2hvdCAyMDI2LTAzLTE4IGF0IDEyLjM2LjI4LnBuZyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzkyNjIwOTAwLCJleHAiOjE3OTI3MDczMDB9.fJJf7D7xrM_ZO8Z8Ak1fSSbNdf2fe9mICuunpYvpNu8 " =2295x526")

### Default Categories

Two categories are created automatically:

| Category | Action | Purpose |
|----------|--------|---------|
| **Control** | Stop   | The active operating budget. Transactions exceeding this budget are blocked. |
| **Forecast** | Ignore | Planning/forecasting scenarios. Not enforced on transactions, used for reporting only. |

You can create additional categories at any time (e.g., "Board Approved", "Q3 Revised", "Best Case").

### How Enforcement Works

When a transaction is created (e.g., a Purchase Order), NexWave checks all submitted budgets matching the transaction's cost centre, fiscal year, and account:

* **Stop**: If spending exceeds the budget, the transaction is **blocked**
* **Warn**: If spending exceeds the budget, a **warning** is shown but the transaction is allowed
* **Ignore**: The budget is **skipped** entirely during validation (reporting only)

### Per-Budget Action Tuning

When you select a category on a budget, the category's action is applied to all six enforcement fields:

* Annual/monthly budget exceeded on Material Request
* Annual/monthly budget exceeded on Purchase Order
* Annual/monthly budget exceeded on actual expenses

You can **downgrade** individual fields after the category sets them. For example, if the category is "Stop", you could change the Material Request action to "Warn" while keeping Purchase Order at "Stop". These manual changes are preserved on subsequent saves as long as the category doesn't change.

 ![](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC8wOTBmNmYzMC0xMmZmLTQwZDEtOGYxMy02Mzg5ZGNjMGFhZTIvU2NyZWVuc2hvdCAyMDI2LTAzLTE4IGF0IDEyLjM4LjAwLnBuZyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzkyNjIwOTAwLCJleHAiOjE3OTI3MDczMDB9.AmES3Vn55KY_oyxRnqb53-lNvOEqraBuLA-ISvyz0KI " =2295x1359")

### Duplicate Protection

Within the same category, you cannot create two budgets for the same cost centre + fiscal year + account. This prevents double-counting in reports and conflicting enforcement.

Across different categories, the same accounts can have different budget amounts. This is the intended behaviour for scenario planning.

## Monthly Period Allocations

NexWave adds 12 explicit period fields (Period 01 through Period 12) to each budget account row, allowing you to set specific monthly budget amounts instead of relying on even distribution or monthly distribution templates.

### How Periods Work

| Field | Represents |
|-------|------------|
| Period 01 | First month of the fiscal year |
| Period 02 | Second month of the fiscal year |
| ...   | ...        |
| Period 12 | Last month of the fiscal year |

The period numbers follow the fiscal year, not the calendar year. For a fiscal year starting in April, Period 01 = April, Period 02 = May, and so on.

### Period Calculation Rules


1. **If period fields are filled in**: The `Budget Amount` (total) is automatically calculated as the sum of all 12 periods
2. **If only the total is entered** (all periods empty, no monthly distribution selected): The total is distributed evenly across all 12 periods, with any rounding remainder assigned to Period 12
3. **If a Monthly Distribution template is selected**: The template percentages are used instead (standard behaviour)

 ![](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC9kMDNlMzRiZC04Y2E2LTQxNzUtOTFlOS01NTZiYjE5NDRlMjMvU2NyZWVuc2hvdCAyMDI2LTAzLTE4IGF0IDEyLjM4LjQ5LnBuZyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzkyNjIwOTAwLCJleHAiOjE3OTI3MDczMDB9.R2z2lH5gK10Pd9rGnoJz7FMkL0nnmRhkEWNyotXzXbk " =2295x1359")

### Bulk Editing

The budget accounts table supports bulk editing. You can use the **Download** and **Upload** buttons to export the accounts to a spreadsheet, fill in period amounts, and import them back.

## Budget Labels

Each budget has an optional **Budget Label** for easy identification in list views and link fields. If left empty, it is auto-generated as:

```
{Category} - {Cost Centre/Project} - {Fiscal Year}
```

For example: "Control - Main - AK - 2025-2026"

You can override this with a custom name like "Q1 2026 Operations Budget". The label is displayed as the primary identifier in list views and link field dropdowns, with the system-generated budget ID shown alongside.

## Common Process Flows

### Creating a Budget


1. Go to **Accounting > Budget > New Budget**
2. Select **Budget Category** (e.g., "Control")
3. Set the **Cost Centre** (or Project), **Fiscal Year**, and **Company**
4. Add account rows with either:
   * Individual period amounts (Period 01 through Period 12), or
   * A total Budget Amount (which will be distributed evenly)
5. The **Budget Label** is auto-generated. Edit it if you want a custom name.
6. Submit the budget

### Mid-Year Budget Revision

When the board approves revised numbers mid-year:


1. **Create a new category** (e.g., "FY2026 Revised") with action **Stop**
2. **Change the old category's action** from Stop to **Ignore** (the old budget remains for reporting but no longer blocks transactions)
3. **Create new budgets** under "FY2026 Revised" with the updated amounts
4. The old budgets remain available for comparison in the variance report

 ![](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC82NmMzMzU1Yy1jNjI1LTRjNGMtYjM3YS0wMGE3OTE5OGEzNzAvU2NyZWVuc2hvdCAyMDI2LTAzLTE4IGF0IDEyLjM5LjUzLnBuZyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzkyNjIwOTAwLCJleHAiOjE3OTI3MDczMDB9.vKkJnRfN9wxnltXiFmdxCNBx1CZfUqHv0q0PzamZdw0 " =2295x583")

### Comparing Budget Scenarios


1. Go to **Accounting > Period-wise Budget Variance Report**
2. Select the **Budget Category** to view
3. The report shows budget vs actual for all budgets in that category
4. Switch between categories to compare different scenarios (e.g., original vs revised)

 ![](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC9jY2VkMWYyNS0wNjc2LTQ5ZjctYmVmOS02MmVjYzMwMjNiNDcvU2NyZWVuc2hvdCAyMDI2LTAzLTE4IGF0IDEyLjQ1LjQxLnBuZyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzkyNjIwOTAwLCJleHAiOjE3OTI3MDczMDB9.ysyKjSFFNDpvfBNE4vVRUAhFaXInvCSfuX-m-xTgwvI " =2295x920")

### Importing Budgets

Budget data can be imported using NexWave's Data Import tool:


1. Go to **Settings > Data Import > New**
2. Select **Budget** as the doctype
3. Download the template, fill in the budget details including:
   * Budget Category, Cost Centre, Fiscal Year, Company
   * Account rows with period amounts or totals
4. Upload and import

## Period-wise Budget Variance Report

The enhanced variance report compares budgeted amounts against actual GL entries for a selected budget category.

### Report Filters

| Filter | Description |
|--------|-------------|
| **From/To Fiscal Year** | The fiscal year range to report on |
| **Period** | Monthly, Quarterly, Half-Yearly, or Yearly |
| **Company** | The company to report for |
| **Budget Against** | Cost Centre, Project, or custom accounting dimension |
| **Dimension Filter** | Optional filter for specific cost centres/projects |
| **Budget Category** | Which budget category to compare against actuals |
| **Show Cumulative** | Show running totals instead of per-period amounts |

### How the Report Uses Period Fields

The report reads the explicit period fields (Period 01 through Period 12) for each budget account. If period fields are empty, it falls back to the Monthly Distribution template percentages, or even distribution if no template is set.

Variance is calculated as: **Budget - Actual**

* Positive variance (green): under budget
* Negative variance (red): over budget

## Related Documentation

* [NexWave Budget](/doc/05cc4505-46e2-4844-9043-ec92baa3280e) - The recommended multi-dimension budgeting module
* [Accounting](/doc/85b00666-859d-4e2b-9bac-6c1dd3848464) - Financial management overview
* [Intercompany Elimination](/doc/d728bccb-f459-495e-ab42-be39db517e0d) - Intercompany elimination entries