> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getnovaplan.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Headcount planning

> Model your team and open roles at fully loaded cost across the forecast window.

Headcount planning models your people and open positions and projects fully loaded cost across your forecast window: base, fringe, merit, bonus, commission, and recruiting fees. It starts from your live HRIS team, lets you plan hires and changes on top, and derives the result into the GL so the P\&L always reflects the latest plan.

<Card title="Watch the demo" icon="circle-play" href="https://getnovaplan.com/demos">
  Headcount Planning On Live Data: from HRIS snapshot to fully loaded cost, plan open positions, model removes, and watch the forecast reconcile to payroll.
</Card>

## The Sub-Sections

| Section               | What it is for                                                        |
| --------------------- | --------------------------------------------------------------------- |
| **Overview**          | The headcount P\&L: cost and count by department and period           |
| **People Snapshot**   | Your current team from the HRIS, with adjustments and overrides       |
| **Open Positions**    | Planned hires, backfills, and removals, with direction-aware counting |
| **Assumptions**       | Global defaults for the forecast engine                               |
| **Fringe / Merit**    | Rate models that load onto base salary                                |
| **Positions Manager** | Manage the catalog of plannable positions                             |

## How to Use It

<Steps>
  <Step title="Start from the snapshot">
    Your live team comes from the HRIS. Apply per-person overrides (title, department, memo, tags) or month-level cost adjustments without touching the source data. Overrides and adjustments layer on top, so the next sync never overwrites your planning.
  </Step>

  <Step title="Add open positions">
    Plan hires, backfills, and removals. Each position carries a start and end window, so it only counts and costs in the months it is active.
  </Step>

  <Step title="Set assumptions">
    Fringe and merit rates resolve from most-specific to global, so you set a company default and override per department where it differs.
  </Step>

  <Step title="Run the forecast">
    The engine projects per-person, per-month loaded cost and derives it 1:1 into the GL (one person-month posts one GL row per cost component).
  </Step>
</Steps>

## What the Cost Components Mean

| Component           | What it is                                                      |
| ------------------- | --------------------------------------------------------------- |
| **Base**            | Annual salary, spread per month and translated to base currency |
| **Fringe**          | Benefits and statutory employer cost, loaded as a rate on base  |
| **Merit**           | Modeled raises that load onto base over the window              |
| **Bonus**           | Bonus accrual, modeled as a percent of base                     |
| **Commission**      | Variable comp, applied at a realization percentage              |
| **Recruiting fees** | One-time hiring cost attached to an open position               |

## Direction-Aware Counting

<Note>
  Open positions are counted by direction. An "add" increases headcount, a "remove" decreases it, and an "update" changes cost without changing the count, so your headcount numbers never double-count a backfill. A position only counts in the months its start-to-end window is active.
</Note>

A removal does not create a separate negative line in the forecast. Instead it terminates the matched employee in the snapshot, so the decline shows up as natural attrition rather than a phantom row. KPI subtitles break the count down as snapshot plus adds minus removes, and the Hires and Exits chart shows planned hires and exits alongside actuals.

## Drill and Explain

Click any cell to open the underlying rows: the exact people and positions behind the number, with filter, sort, and export. The Combined view unions your snapshot team and your planned positions into one table with a Type pill marking each row's source, and same-concept fields (job title, site, end date) are shown as one column rather than two half-empty ones. Open an employee to see their profile, overrides, timeline, and forecast.

## Common Questions

<AccordionGroup>
  <Accordion title="If I change someone's department in the planner, does it change the HRIS?">
    No. Edits in the planner are overrides that layer on top of the snapshot. The source HRIS record is untouched, and the next sync will not overwrite your override.
  </Accordion>

  <Accordion title="How do I plan a backfill without double-counting?">
    Add a "remove" position for the departing person and an "add" position for the backfill. The remove nets the count back to flat, so you see the cost change without the count drifting up.
  </Accordion>

  <Accordion title="An employee was added in the HRIS after I locked a version. Can I get them into the locked snapshot?">
    Yes. Use the copy-to-locked-snapshot flow. It lists employees present in the HRIS but missing from the locked snapshot (already-present people are shown disabled, not hidden) so you can backfill them.
  </Accordion>

  <Accordion title="Why doesn't filtering by the version's year give me the right months?">
    A version's label year is just a label. Headcount is driven by the forecast window (start and end month), not the version name. Plan and read against the window.
  </Accordion>
</AccordionGroup>

## If the Numbers Look Off

* A position is costing in months it should not: check its start and end window. A position with no end date is treated as open-ended and will keep costing.
* Headcount count looks doubled around a backfill: confirm the departing role is a "remove" and the new role is an "add", not two adds.
* Rolling Forecast data reverted overnight: an HRIS sync can auto-trigger a forecast. The engine reads your forecast window, so confirm the window is set correctly on the live version.
* Loaded cost disagrees with payroll: open the underlying rows and compare base plus components side by side; fringe, merit, and bonus are loaded as rates, so a rate change moves the loaded total without changing base.
