Utilisation & Capacity Planning
This use case explains how to use Model Reef to plan utilisation and capacity for professional services and consulting businesses.
You will:
Model headcount and roles across offices or teams.
Convert FTE capacity into available and billable hours.
Apply utilisation and realisation assumptions.
Connect supply of billable hours to revenue, margins and hiring plans.
The aim is to move away from static spreadsheets and build a capacity engine that is directly tied into your three statement model.
When to use this pattern
Use this pattern when:
You run or advise a consulting, agency or professional services firm.
Utilisation is a key driver of revenue and margin.
You want to understand when to hire, and how many people you need, to support planned work.
You need to see the impact of utilisation changes on P and L and cash.
It is often combined with:
Rate Card and Billable Hours Forecasting
Project Pipeline and Revenue Scheduling
Office or Team Profitability Modelling
Architecture overview
You will build four layers:
Step 1: Design the branch structure for your firm
Start by deciding how you want to see performance:
By office or city.
By practice or service line.
By team or squad.
In Model Reef, create a branch tree such as:
Firm(root).Practice - Strategy.Practice - Technology.Practice - Implementation.Overheads(for central costs).
Or, for geographic focus:
Firm.Office - London.Office - Manchester.Office - Remote.Overheads.
This branch structure will drive how you see utilisation and profitability.
Capacity & utilisation build steps
Define headcount and capacity drivers
In the Data Library, create drivers for headcount and capacity, for example:
FTE - Consultant - London.FTE - Senior Consultant - London.FTE - Partner - Firm.Available Hours per FTE per Yearor per period.
You can choose to work in:
Hours per week and number of weeks per year, or
Hours per month or quarter directly.
For example:
Available Hours per FTE per Week = 40.Working Weeks per Year = 46.Available Annual Hours = 40 × 46.
You may prefer to work with capacity modules per branch, storing all the assumptions for that branch in a small group of drivers.
Add utilisation and realisation assumptions
Define the following drivers per role or per branch:
Target utilisation percentage (share of available hours that are billable).
Realisation percentage (share of billable hours that can actually be billed at full rate, after write offs and discounts).
Examples:
Utilisation - Consultant - London = 75 percent.Utilisation - Senior Consultant - London = 80 percent.Realisation - Firm = 95 percent.
Store these as Modifier type drivers in the Data Library so they can be reused in formulas and easily updated.
Convert capacity into billable hours and revenue
In each office or practice branch, create variables to compute:
Available hours per role.
Billable hours per role.
Billable hours after realisation.
For example:
Available Hours - Consultant - London = FTE - Consultant - London × Available Hours per FTE.Billable Hours - Consultant - London = Available Hours - Consultant - London × Utilisation - Consultant - London.Billable Hours Realised - Consultant - London = Billable Hours × Realisation.
Then link to rate card drivers (described in more detail in Rate Card and Billable Hours Forecasting), for example:
Revenue - Consultant - London = Billable Hours Realised × Rate - Consultant - London.
Set these revenue variables as type Revenue so they flow into P and L and cash correctly.
Compare capacity to demand
If you implement Project Pipeline and Revenue Scheduling, you will have a view of demand for billable hours over time.
You can then compare:
Supply of billable hours (from this utilisation and capacity structure).
Demand for billable hours (from pipeline and project schedules).
Use charts or custom reports to show:
Excess capacity or shortfalls per office or role over time.
Expected utilisation compared to target.
This helps answer questions such as:
When do we need to hire more people in a team or location.
Where are we likely to be overstaffed if pipeline slows.
Connect to staff cost and P and L
Make sure Staff variables exist for all roles in each branch, representing:
Salaries or day rates for employees and contractors.
Oncosts such as pensions and payroll tax.
Then check that:
Revenue variables from billable hours and rate card are in the same branch as staff costs.
Office or practice P and L shows revenue minus staff and Opex clearly.
This gives you a utilisation driven margin view at office or practice level.
Build utilisation and capacity dashboards
Create a dashboard focused on utilisation and capacity that shows:
FTE counts per role and branch.
Available hours, billable hours and realised billable hours over time.
Utilisation percentages per role and per office.
Revenue per FTE and gross margin per FTE.
These views give partners and managers a clear line of sight from staffing to revenue and margin.
Check your work
Troubleshooting
Utilisation looks too high across the board — Check that you have not confused billable hours with available hours, and that holidays and non-billable time are correctly reflected in the capacity assumptions.
Revenue jumps or dips unexpectedly — Look for step changes in FTE drivers or utilisation assumptions, and align them with known hiring or restructuring events.
Related guides
Last updated