Finance teams are often tasked with forecasting their headcount and headcount-related costs like salary/wages, benefits, bonuses etc. This is often the biggest expense area for businesses, so is an important piece to get right! Weâve put together a detailed step-by-step post on how to build headcount in Causal. Feel free to also look at our template model here.
Please note that this is the âStarter editionâ and therefore only includes fairly basic headcount modelling. Causal is capable of much more, so stay tuned for the âAdvanced editionâ, which will includes things like variable pay (e.g. quotas, commissions), pay types (salary vs. hourly), pay periods (biweekly), employee types (% FTE), payroll taxes (e.g. by state) etc.
Step 1: Connect to data (three options)
- Connecting directly to your payroll provider (e.g. Justworks, ADP Workforce Now) - see here
- Connecting to a Google Sheet (where you push data to from your payroll provider, or where you keep your own running database) - see here, and a template google sheet here.
- Inputting the data directly into Causal, and having Causal be the source of truth that you update.
Step 2: Create categories
Note that if you were connected to a data source, then you would follow the steps here for bringing in categories, as you would just need to import them, not create them from scratch.
-
Bring up the Data Table section (in the spreadsheet workspace) & create a new category
Employee
.
-
Once youâve added employees in, you can then link to a new category called
Title
, and add titles.
-
We then want to link
Employee
withTitle
, and then map each employee to their title.
-
The last step is creating a new category
Department
, adding in the different departments, linkingTitle
withDepartment
, then mapping each title to a department.
Step 3: Inputs
-
In the same Data Table section (in the spreadsheet workspace), navigate to the
Employee
category tab, and add a new variableStart date
. Format it as a date, and add start dates.
-
Follow the same process as above, for the following:
End date
(simply leave blank if no End date)Annual base salary
(formatted as $)
Note that for steps 1 & 2, if youâre connected to data that has this information already, you would just need to import these variables into the model, and not create them from scratch. More info on that here.
- You can also add other variables as appropriate to you. These would be added in the Inputs section of the spreadsheet. For example:
Bonus
(e.g. 10% of salary),Bonus month
(e.g. â12â, for pay out in December each year)Pay increase
(e.g. 5% increase),Pay increase month
(e.g. â6â, for pay increase in June each year)Benefits
(e.g. % of salary)
It is worth nothing that input variables can be broken down by any of the categories mapped to each employee. For example, you could breakdown Bonus by department, if they differed. Causal then automatically understands, when calculating bonuses for each employee, to apply the department-level bonus % that is relevant!
Step 4: Calculations
-
First, we need to calculate the Headcount, allowing for new joiners and recent leavers in each month.
if
date
>=start date
and (date
â€End Date
or is_Empty(End Date
)) then1
else0
-
Next, we need to calculate our payroll costs each month, which consists of the base salaries, and (if appropriate to you) pay increases, bonuses, and benefits/tax/401k.
- Adjusted base salary: we need to calculate the current salary for each employee in any given month. Create a variable
Adjusted base salary
whose formula will be:
if
month
=Pay increase month
thenAdjusted base salary previous
* (1+Pay increase %
) elseAdjusted base salary previous
Note: the first month has no previous month to reference, so the formula will return an error. Youâll need to edit that first month only (single-click) to reference the
Annual base salary
input from your data. If youâre connected directly to your payroll provider via Finch (see here) - youâll want to connectAdjusted base salary
to the âSalary (annual)â data range, which pulls each employeesâ historical annual salary.- Then youâll want to create a
Monthly salaries
variable as follows
Adjusted base salary
/ 12 *Headcount
- Adjusted base salary: we need to calculate the current salary for each employee in any given month. Create a variable
-
If you are allowing for bonuses and/or benefits, you might add the following variables in too.
- Bonus: if
month
=Bonus month
thenBonus (%)
*Monthly salaries
* 12 else 0 (if accruing evenly throughout the year, then remove the if statement, and the *12) - Benefits:
Monthly salaries
*Benefits %
- Bonus: if
Step 5: Output
-
Last, we can calculate Total payroll each month. Include bonuses and benefits if applicable.
Total payroll
=Monthly salaries
+Bonus
+Benefits
-
We can then group by Total payroll by department, and create a chart to display this, summarizing by month, quarter, or year, as you see fit.
Step 6: Future planning
You may also want the ability to add in future hires, and see how that affects your payroll costs. The best way to do this is as follows:
-
Create a new category in Causal called
Status
(if this isnât already a category from your payroll data), and link it toEmployee
.
-
Fill in the
Status
of each employee as either âHiredâ or âPlannedâ. -
When you add future hires into Causal, you will add them in as an employee in the data table section, the only difference being their start date is in the future, their
Status
is âPlannedâ, and their name will probably just be a title, e.g. âFinancial Analyst #2â, until theyâre hired. -
You can then filter Total Payroll by Status, and easily chart this to see how it will grow over time. You can do the same for Headcount (group by Status).
Well done! You should have all you need to model your headcount & associated payroll costs going forward. If you have any additional questions - leave a comment on this post, or get in touch with us via our live chat. Remember that all of these steps are captured within our headcount template model here. Feel free to clone it and have a play.
Happy modelling & stay tuned for our Advanced edition