---
title: Use Case: Budget Scenario
slug: use-case-budget-scenario
icon: 💳
docTags: 
createdAt: 2026-04-08T16:08:59.073Z
---

A Budget Scenario lets you model planned headcount changes and track their cost against a fixed budget in real time. It's a way to give your Finance team or department leads a sandbox to plan hiring — while making sure everyone is working against the same number and the same definition of what "cost" means for your organization.

This article walks through the full workflow end to end, starting with cost configuration, because getting that right before you build your scenario is what makes the budget tracker meaningful.

## Before you start: who can create a Budget Scenario?

Budget Scenario creation is permission-controlled in ChartHop. By default, the following built-in roles can create Budget Scenarios: **Cash Comp Viewer, Comp Viewer, Equity Comp Viewer, Org Editor,** and **People Ops Admin**.

Other roles, including managers, can create other scenario types (like Create Job or Promotion Planning) but cannot create Budget Scenarios unless their access role is updated. If you have users with custom access roles who need to create Budget Scenarios, a ChartHop admin will need to add the **Allow Create Budget Scenarios** policy to their role.

## Step 1: Understand how cost works — and decide what it should mean for your org

Before building your scenario, it's worth understanding how ChartHop calculates cost and where that calculation lives, because it directly affects what your budget tracker shows.

### The default cost formula

By default, ChartHop calculates cost using:

**(Base Salary × Org Cost Multiplier) + Variable Pay**

The org cost multiplier is configured in **Admin → Financial**. If your org hasn't set one, it defaults to 1, making the effective default simply base salary + variable pay.

This formula powers two built-in cost fields:

- **cost** — calculates cost for any job, whether filled or open
- **budgetCost** — only returns a value for currently filled roles; returns null for open roles

This distinction matters for Budget Scenarios: if you're planning new open headcount, budgetCost won't contribute to your tracker — only cost will.

### Why open roles often show $0

When you add a new open role to a scenario, ChartHop needs data on the role to calculate against. If the role has no base salary entered and no compensation data assigned, there's nothing to run the formula on — so cost comes back as $0.&#x20;

To get cost to populate for open roles, make sure each role has the data your formula depends on. For example:

- If your formula uses base salary, enter a base salary when creating the role.
- If your formula uses comp band fields, assign a comp band to the role so those fields have a value to return.

The right approach depends on how your organization defines cost for planned headcount.

### Deciding whether to use the default formula or a custom one

The default formula works well for many organizations. Consider configuring a custom formula if:

- Your org calculates cost differently — for example, using a loaded cost that accounts for benefits, taxes, or overhead
- You want cost to reflect something other than actual base salary — for example, a band-based value used for planning purposes
- You want to calculate monthly or quarterly cost instead of annualized cost
- You want to apply fiscal year date logic to your cost figures

The formula is configured at the org level in **Admin → Financial → Cost Calculations** and applies to all scenarios, not just Budget Scenarios.

### Configure a custom cost formula

1. Go to **Admin → Financial**.
2. Under **Cost Calculations**, select **Custom formula**.
3. Enter a CQL expression in the **Formula** field. Some examples:

| Formula                                     | What it calculates                                                           |
| ------------------------------------------- | ---------------------------------------------------------------------------- |
| compBand.baseMid                            | The midpoint of the assigned compensation band                               |
| baseComp.annualized \* 1.2 + variableTarget | Annualized base with a 1.2x loaded cost multiplier, plus variable pay target |
| baseComp.annualized + variableTarget        | Annualized base salary plus variable pay target                              |

1. Optionally update the **Cost label**. This short label is displayed in scenarios and defaults to *Annual Cost*. Only change it if your formula doesn't represent annual cost — for example, if you're calculating a loaded or monthly figure — so collaborators know what the number means.
2. Optionally add a **Cost description** — a plain-language explanation of what the formula includes, visible to anyone with access to the scenario. Supports rich text and markdown.
3. Select **Save**.

:::BlockQuote
**If your formula uses comp band fields:** Comp bands need to be uploaded and applied to roles before comp band fields will return values. For open roles, you can apply a comp band when creating the job inside your scenario. For existing roles, comp bands need to be applied — either inside or outside of a scenario — before you build your plan. See Compensation bands.
:::

## Step 2: Create a Budget Scenario

Once you've confirmed your cost formula reflects how your org thinks about headcount spend, you're ready to build your scenario.

1. From the left navigation, select **Planning**.
2. Select **Create scenario**.
3. Select **Budget scenario** — *Associate your changes with a fixed budget.*
4. Enter a **Scenario name** — something clear and specific, like *Q3 2026 Delivery Headcount Plan*.
5. Enter a **Start date** — the date the proposed changes are intended to go into effect.
6. Enter your **Budget amount**. This is the total spend you're planning against, measured using your configured cost formula.
7. Select **Create**.

:::BlockQuote
**On setting your budget amount:** Make sure your budget amount and your cost formula are using the same basis. If your formula calculates annualized cost, your budget should be an annualized figure. If you've configured a monthly formula, your budget should be monthly. Mismatching these will make the tracker misleading.
:::

You can update the budget amount at any time after creation by selecting **Edit scenario details** from the dropdown in the scenario header.

## Step 3: Add roles to your scenario

Once the scenario is created, you'll land on the **Changes** tab. This is where you add and manage the roles you're planning for. Every change you make automatically updates the budget tracker in the scenario header.

### Make sure each role has the data your formula needs

Roles without the right data will show $0 in your tracker and won't count against your budget even though you're planning for them. Before adding roles, make sure you know what your formula depends on.

A few things to keep in mind:

- **Be careful when cloning existing roles.** Cloned jobs carry over all data from the original, including base salary. If your formula uses band-based data for planning purposes, an existing salary on the role may produce unexpected cost figures. Creating roles from scratch gives you a clean starting point.
- **Apply any required comp bands when creating the role.** If your formula references comp band fields, assign the band at role creation. A comp band field can't return a value if no band is assigned.
- **Set a Planned Start Date on each role.** This affects how ChartHop treats the role. Jobs without a future planned start date are treated as open; setting a future date is what converts a role to a "new hire" in terms of how it's counted in headcount and cost calculations. This date is also used in forecast reports — when you view the scenario using *Primary, with Forecast* as the data source, roles with a Planned Start Date are projected as filled on that date.

## Step 4: Track spend against your budget

The **budget tracker** lives in the scenario header, next to the scenario name and status. It shows:

- The annualized cost of all changes in the scenario so far
- Your total approved budget amount (for example, *$0 / $15,000,000*)
- A progress bar showing how much of your budget has been used

The tracker updates in real time as you add and edit roles. If a new role pushes you over budget, you'll see it immediately.

For a deeper breakdown, select the **Impact** tab inside your scenario. This surfaces reports that slice headcount cost by dimensions like team, location, department, or role type — useful for presenting the plan to Finance or department leads.

## Step 5: Share your scenario

When you're ready to bring in collaborators, use the sharing controls in the scenario header to add them. Each person gets a permission level that combines what they can **do** with what data they can **see**.

| Permission                        | What it means                                                                                             |
| --------------------------------- | --------------------------------------------------------------------------------------------------------- |
| **Viewer - limited data access**  | Read-only; can only see changes to people below them in the org chart; cannot view the total cost summary |
| **Viewer - standard data access** | Read-only; can only see what they'd normally have access to on Primary                                    |
| **Viewer - full data access**     | Read-only; can see all scenario data including compensation, regardless of their normal access role       |
| **Editor - limited data access**  | Can make changes; limited to people below them in the org chart; cannot view the total cost summary       |
| **Editor - standard data access** | Can make changes; limited to data they'd normally have access to on Primary                               |
| **Editor - full data access**     | Can make changes; full access to all scenario data including compensation                                 |
| **Owner - full data access**      | Full access, including the ability to merge the scenario to Primary                                       |

**Choosing the right level:**

For a Finance team or department lead who is actively building out the plan, **Editor - full data access** is usually the right choice — they need to add roles and see compensation data to plan meaningfully. If they're reviewing rather than building, **Viewer - full data access** gives them visibility without edit rights.

Use **standard data access** when someone should only see what they'd normally see on Primary. Use **limited data access** when you want a manager to plan their own part of the org without visibility into the full cost picture or other teams' data.

:::BlockQuote
**Note:** Full data access overrides a person's normal ChartHop access role for the scope of this scenario. Use it for people who genuinely need to see sensitive compensation data to do their planning work.
:::

## Step 6: Submit for approval and merge to Primary

### Setting up an approval chain

Budget Scenarios support their own dedicated approval chain, separate from other scenario types. If your org requires approval before a headcount plan goes live, you can configure an approval chain specifically for Budget Scenarios in **Admin → Approval Chains**. This lets you route Budget Scenario approvals to Finance, leadership, or a different set of approvers than, say, a promotion planning scenario.

### Submitting and the approval flow

When your scenario is ready for review, select **Submit for approval** in the scenario header.

Once submitted, the active approver can make edits to the scenario — for example, adjusting a planned start date or updating compensation. Once they approve or reject, the scenario locks and they can no longer edit it.

:::BlockQuote
**Note:** There are currently no in-platform notifications sent when an approver makes edits. Anyone with access to the scenario maintains visibility as always.
:::

If a scenario is **rejected**, it enters a locked state. The submitter should select **Edit Scenario** from the **Actions** dropdown to unlock it, return it to Draft status, make revisions, and resubmit.

### Merging to Primary

Once approved, select **Merge to Primary** to bring your planned changes into the live org chart.

Merging works well for open roles you're adding. If your scenario includes changes to existing employees' fields — like title or salary — keep in mind that any fields synced from your HRIS will be overwritten at the next sync. For those changes, the recommended approach is to export a CSV from the scenario and import those changes directly into your HRIS source system first, then merge.
