---
title: Budget Pools
slug: budget-pools
icon: 📊
docTags: 
createdAt: 2026-09-15T21:12:52.285Z
---

## Overview

Budget Pools allow you to configure spending budgets within a comp cycle. Budgets are **optional** — a cycle can have none, one, or multiple budget pools. Each budget is independent and can be configured with its own scope, calculation logic, and visibility rules.

Common examples: a base salary increase budget, a promotion budget, a bonus budget, an equity budget.

## Budget Scope: Who Does the Budget Apply To?

When creating a budget pool, you first define which employees it applies to. The default is all eligible employees, but you can narrow it:

- By department, location, or team
- Using a custom CQL filter (e.g., only employees where a "Promotion" field is set to Yes, or only employees outside the USA)

If an employee does not apply to a budget:

- They do **not** contribute to that budget's total
- Any raise they receive does **not** count against that budget's spend

Scope affects both the total and the allocation simultaneously.

## Budget Currency

You can set a default display currency for the budget. In practice, this almost never needs to be changed from the org default (USD for most orgs).

ChartHop's currency logic:

- If all employees in a pod are paid in the **same non-USD currency**, the budget defaults to that currency
- If there are **mixed currencies** in a pod, the budget always defaults to **USD**

Managers can also switch the budget currency themselves at any time using the currency dropdown within the cycle view.

## Budget Visibility: Who Can See the Budget?

By default, anyone with an employee who applies to the budget can see it. If no employees in your pod apply to a budget, that budget simply won't appear for you.

You can restrict visibility further:

- **By role** — e.g., only Final Approvers, Owners, and Collaborators see it (reviewers/approvers do not)
- **By specific people** — name specific individuals who can see the budget
- **Custom filter** — any CQL-based rule
- **Role + filter combination** — e.g., Final Approvers, Owners, and Collaborators, plus anyone in the tree matching a specific filter

## How Budget Allocation is Tracked

This setting tells ChartHop how to count spend against the budget — i.e., when someone receives a raise or change, how much does that count toward the budget?

### Option 1: Change and Track Field

Select a field (e.g., Base Annualized). ChartHop calculates:

**New value of the field − Current value of the field = Amount counted against the budget**

For a straightforward base salary budget, this works well.

:::BlockQuote
**Always use Base Annualized (not Base Comp)** when tracking base salary budgets. Using Base Comp on hourly employees would count their hourly rate (e.g., $25) instead of their annualized salary, producing meaningless budget numbers.
:::

### Option 2: Custom Formula

Write a formula directly to define what counts against the budget. This is the most flexible option and is now the recommended approach for complex scenarios.

**Examples:**

- Reference a specific field in the cycle: whatever that field's value is counts as the spend
- Combine fields: 3% of new base + one-time bonus amount
- Use ternaries for conditional logic: if department is Marketing, count 4% of new base; otherwise count 3%

This allows precise control over what gets counted per employee without relying on the change-minus-current calculation.

## How the Budget Total is Calculated

This section defines the total pool of money available. There are a few approaches:

### Calculated Budget (Same for Everyone)

The most common setup. Define a percentage or fixed amount per employee and ChartHop sums it up across everyone who applies to the budget.

**Examples:**

- 3.5% of Base Annualized for every eligible employee
- $2,000 flat per eligible employee
- Custom formula if the logic is more complex

### Calculated Budget (Varies by Field Value)

The budget percentage or amount varies based on one or more field values, such as department, location, or performance rating — all within a single budget pool.

**Examples:**

- Engineering: 4% of base | Marketing: 2% of base | People: 3.5% of base
- Outstanding rating: 5% | Meets Expectations: 3% | etc.
- Multiple fields combined: department + location (e.g., Chicago + CX = 5%, Dallas + CX = 3%)

This is very common and avoids needing to create a separate budget pool per department or rating tier.

### Static Budget (Based on Reviewer Pods)

Use this when your finance team has defined a fixed dollar amount per manager rather than a formula-based total.

You manually enter the budget amount for each reviewer/approver in the tree. There is no import for this — it must be entered manually.

:::BlockQuote
**Important:** When entering budgets for higher-level approvers, remember they **inherit** the budget totals from everyone submitting to them. If you want a manager to have $10,000 of their own to allocate on top of what rolls up to them, their entered budget must equal $10,000 **plus** the sum of all budgets submitting up to them. You need to account for rollups all the way up the tree.
:::

This method is the most flexible (any number goes) but the most manual.

## The Calculate Button

Every budget pool has a **Calculate** button that generates a preview of the budget — showing the total and how much each reviewer/approver would see based on the current configuration. Use this to:

- Verify the setup is working as expected before launch
- Help customers sanity-check totals against their finance targets
- Quickly iterate on percentages if the total is coming in too high or low

## Multiple Budget Pools

A cycle can have multiple budget pools, each configured independently with its own scope, calculation logic, visibility, and label. Common combinations include a base increase budget, a promotion budget, a bonus budget, and an equity budget running simultaneously within the same cycle.
