> For the complete documentation index, see [llms.txt](https://help.modelreef.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.modelreef.io/use-cases/professional-services-and-consulting/utilisation-and-capacity-planning.md).

# 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:

{% stepper %}
{% step %}

### Branch structure

* Branches for offices, teams or service lines.
* Optional group or holding branch.
  {% endstep %}

{% step %}

### Capacity drivers

* FTE by role.
* Available hours per FTE.
* Utilisation and realisation assumptions.
  {% endstep %}

{% step %}

### Revenue variables

* Billable hours by role.
* Revenue as billable hours times rate card.
  {% endstep %}

{% step %}

### Outputs

* Utilisation and capacity KPIs.
* Office or team P and L.
* Impact on margin and hiring needs.
  {% endstep %}
  {% endstepper %}

***

## 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

{% stepper %}
{% step %}

### 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 Year` or 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.
{% endstep %}

{% step %}

### 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.
{% endstep %}

{% step %}

### 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.
{% endstep %}

{% step %}

### 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.
  {% endstep %}

{% step %}

### 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.
{% endstep %}

{% step %}

### 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.
{% endstep %}
{% endstepper %}

***

## Check your work

{% hint style="info" %}

* FTE and hours assumptions are realistic and grounded in actual contracts and work patterns.
* Utilisation and realisation percentages are plausible given historical performance.
* Revenue per role and branch aligns with what you would expect from the rate card.
* Office or practice P and Ls reconcile to the consolidated firm view.
  {% endhint %}

***

## Troubleshooting

{% hint style="warning" %}
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.
{% endhint %}

{% hint style="warning" %}
Revenue jumps or dips unexpectedly — Look for step changes in FTE drivers or utilisation assumptions, and align them with known hiring or restructuring events.
{% endhint %}

{% hint style="info" %}
Too many roles make the model hard to manage — Group similar roles into bands for planning (for example junior, mid, senior) and track very granular titles only in HR systems.
{% endhint %}

***

## Related guides

* [Build an Opex Planning Model](/how-tos/operations-and-unit-economics/build-an-opex-planning-model.md)
* [Scenarios & Planning](/how-tos/scenarios-and-planning.md)
* [COGS Variables: what is, rules, what it affects](/help/drivers-variables-and-timing/cogs-variables.md)
* [Entering Accruals & Delays](/syntax/how-input-fields-work/entering-accruals-and-delays.md)
