What approach to use
Driver-based is the right default for headcount. Salary costs are determined by known inputs you control directly: hire dates, salary levels, increase cycles, pension rates. Model them explicitly rather than projecting from history. Use statistical when headcount is stable and salary increases follow a predictable annual pattern. It doesn’t account for changes in the trend. Hardcoded is for discrete, known costs that don’t follow a formula: bonuses, one-off contractor fees, signing bonuses. Not the right fit for recurring salary costs.Where to forecast headcount
- Dedicated sheet: right for most cases. Salary data is sensitive, individual costs have multiple components, and a dedicated sheet gives you a single place to model and update across the team. The P&L row references the total.
- Directly on the P&L: right for simpler cases: a stable team on statistical, or a one-off cost like a bonus hardcoded to a specific month.
Forecasting approaches
- Driver-based
- Statistical
- Hardcoded
Set up the sheet structureCreate a dedicated sheet with two sections: Assumptions at the top and salary totals below.In the Assumptions section, add rows for variables that apply across all employees: salary increase percentage, pension percentage, or any other shared inputs. These become the single inputs that drive calculations across the sheet.A common approach adds a group per employee or role with rows for base salary, pension, and other employer costs. Consider grouping employees into groups for departments.Enter starting salariesFor each current employee, enter their monthly salary directly on the Salary row. This is the baseline the forecast builds from.Forecast ongoing salariesOn each salary row, reference the prior month and apply the salary increase assumption:In months where the salary increase assumption is zero, the salary carries forward unchanged. When the assumption fires, the increase is applied automatically.Model salary increasesThe This sets the increase to 3% in month 6 and zero in all other months. Adjust the month number and percentage to match your review cycle. Because every salary row references the same assumption, updating it in one place updates every employee automatically.Add pension and employer costsReference the salary row and apply the pension percentage from the Assumptions section:Add a row for other salary-related costs using the same pattern with the relevant percentage.Model new hiresFor a new hire joining mid-year, leave the Salary row empty for months before their start date. Enter their salary directly in the month they join, then apply the ongoing salary formula from the following month forward.
if_month() logic lives on the Salary increase row in the Assumptions section, not on the salary row itself:As you move the Forecast Start date forward, periods that were forecast become actuals. Enter actual salary values for those periods on the headcount sheet. Formulas referencing prior months will break if the preceding actuals period is empty. If you don’t have actuals, put the budget numbers into the actuals layer to avoid formulas breaking.