Workforce and Resource Forecasting
Свайпніть щоб показати меню
Revenue, cost, and cash flow forecasts answer the financial questions. Workforce forecasting answers the operational ones: do we have enough people to deliver the projected revenue? Where will capacity constraints appear first? What does the hiring plan need to look like to support the growth assumptions in the model? A financial forecast without a resource plan attached to it is a target without a delivery mechanism.
The Link Between Revenue and Headcount
Workforce forecasting starts with a simple but powerful assumption: revenue is ultimately produced by people. Every dollar of projected revenue implies a certain amount of human capacity — sales capacity to win the business, operational capacity to deliver it, and support capacity to retain it. When revenue grows faster than headcount, pressure builds. When headcount grows faster than revenue, costs rise and margins compress.
The key metric connecting revenue and headcount is Revenue per Employee — the average revenue generated per full-time equivalent (FTE) in a given period. It is your primary productivity assumption and the foundation of the headcount forecast.
Revenue per Employee (historical benchmark):
=Total_Annual_Revenue / Current_Headcount
Your dataset does not contain a headcount column directly, but it contains enough structure to derive implied capacity metrics by region, channel, and product category. For a full workforce model you would supplement it with a headcount input table — which this lesson shows you how to build.
Building the Headcount Input Table
Create a Workforce_Forecast sheet with a headcount baseline table. This table records current staffing levels by function and region, which you will then project forward based on revenue growth assumptions.
| Function | Current FTE | Revenue per FTE | Target Rev per FTE | Required FTE 2025 |
|---|---|---|---|---|
| Sales | input | calculated | assumption | calculated |
| Operations | input | calculated | assumption | calculated |
| Marketing | input | calculated | assumption | calculated |
| Support | input | calculated | assumption | calculated |
| Management | input | n/a | n/a | input + growth |
| Total | sum | blended avg | blended avg | sum |
For the current FTE column, enter your actual headcount figures. If you are using this as a training exercise rather than a live business model, use reasonable illustrative figures — for example, a business generating the revenue levels in this dataset might employ 40–80 people across all functions.
Calculating Required Headcount
The required headcount formula works in three steps:
Step 1 — Calculate projected revenue per function:
Not all revenue flows through all functions equally. Sales generates all revenue but Operations only delivers product-related revenue, not pure software subscriptions. Use revenue mix assumptions to allocate projected revenue to each function:
Sales_Allocated_Revenue: =Total_Forecast_Revenue * Sales_Coverage_Pct
Operations_Allocated_Rev: =Total_Forecast_Revenue * Operations_Coverage_Pct
Add coverage percentages to your Assumptions sheet as named cells.
Step 2 — Apply productivity improvement assumption:
Target Revenue per FTE typically improves year over year as systems improve, processes mature, and teams gain experience. Add a productivity growth rate to your assumptions:
Target_Rev_per_FTE:
=Current_Rev_per_FTE * (1 + Productivity_Growth_Rate)
Where Productivity_Growth_Rate is a named assumption cell — a typical range is 3%–8% per year.
Step 3 — Calculate required FTE:
Required_FTE (per function):
=CEILING([@Allocated_Revenue] / [@Target_Rev_per_FTE], 1)
CEILING rounds up to the nearest whole person — you cannot hire 0.7 of an employee. The result is the minimum headcount required to deliver the revenue forecast at the assumed productivity level.
Calculating the Hiring Plan
The hiring plan is the difference between required FTE and current FTE, distributed across months based on lead time assumptions:
Net_Hiring_Required (per function):
=[@Required_FTE_2025] - [@Current_FTE]
A positive number means you need to hire. A negative number means you have surplus capacity — a signal to freeze hiring or consider redeployment.
Hiring Lead Time — the number of months between deciding to hire and a new employee being fully productive. Add to Assumptions sheet:
Hiring_Lead_Time_Months: named cell, default 2
Ramp_Time_Months: named cell, default 3 (months until new hire reaches full productivity)
The effective hiring timeline means headcount decisions made in January don't generate full productive capacity until April or May at the earliest:
Productive_Start_Month:
=EDATE(Decision_Month, Hiring_Lead_Time_Months + Ramp_Time_Months)
Build a monthly hiring schedule table showing when each required hire needs to be initiated to be productive in time for the revenue ramp:
Latest_Decision_Date (per hire):
=EDATE(Month_Needed, -(Hiring_Lead_Time_Months + Ramp_Time_Months))
If this date is in the past, the hire is already late — flag it immediately.
Modeling Capacity Utilization
Headcount alone does not tell you whether the team is overloaded or underutilized. Capacity utilization — the ratio of required output to available capacity — is the more meaningful metric for operational planning.
Available Capacity per FTE per month:
Working_Hours_per_Month: named cell, default 160 (40 hours × 4 weeks)
Utilization_Target: named cell, default 80% (20% buffer for non-billable work)
Effective_Capacity_per_FTE: =Working_Hours_per_Month * Utilization_Target
Required capacity per unit of revenue — this is where your dataset's Units_Sold and product mix become useful:
Implied_Hours_per_Revenue_Unit (Operations):
=Total_Operations_Hours_Available / Total_Units_Delivered
Where Total_Operations_Hours_Available = Operations_FTE * Effective_Capacity_per_FTE
Monthly Utilization Rate:
=[@Required_Capacity] / [@Available_Capacity]
Apply conditional formatting:
Green: utilization 70%–85% — healthy range
Yellow: utilization 85%–95% — approaching constraint
Red: utilization > 95% — overloaded, quality and retention risk
Blue: utilization < 70% — underutilized, cost efficiency opportunity
Connecting Headcount Costs to the Financial Forecast
A workforce forecast is incomplete without the cost implications feeding back into the financial model. Headcount is typically the largest cost category in a service or software business.
Add a Headcount_Cost_Forecast block to your Workforce_Forecast sheet:
Monthly_Salary_Cost:
=[@Total_FTE] * Avg_Monthly_Salary_per_FTE
Employer_Overhead_Cost (benefits, taxes, equipment):
=[@Monthly_Salary_Cost] * Overhead_Rate
Total_People_Cost:
=[@Monthly_Salary_Cost] + [@Employer_Overhead_Cost]
Add Avg_Monthly_Salary_per_FTE and Overhead_Rate to your Assumptions sheet. Overhead rates typically range from 25% to 40% of base salary depending on the business and location.
Feed Total_People_Cost back into your cash flow model from Lesson 4.3 as an additional outflow category — for many businesses it is larger than the variable cost of goods and cannot be omitted from a credible cash flow forecast.
In Cash Flow table, add a new outflow row:
People_Cost_Payment: =[@Total_People_Cost] (payroll is typically paid in the current month)
Update Total_Cash_Outflow:
=[@Cost_Payment] + [@Marketing_Payment] + [@People_Cost_Payment]
Model headcount costs at the function level rather than as a single blended average. Sales headcount is expensive but directly revenue-generating — its ROI is measurable. Support headcount is a cost of retention. Management headcount is largely fixed. Blending them obscures where cost pressure is actually coming from.
Scenario Impact on Workforce
Connect the workforce model to your scenario toggle so headcount requirements update automatically when the scenario changes:
Best Case — higher revenue requires more FTE but productivity improvements partially offset the hiring need. The hiring plan accelerates and lead times become critical.
Worst Case — lower revenue means surplus capacity. The model should flag a hiring freeze threshold — the revenue level below which no new hiring is warranted:
Hiring_Freeze_Revenue:
=Current_Total_FTE * Current_Rev_per_FTE * (1 - Acceptable_Underutilization)
If forecast revenue falls below this threshold, the workforce model flags a surplus and the hiring plan shows zero net new hires.
Add scenario-specific workforce outputs to your dashboard from Lesson 3.5:
Dashboard additions:
- Total Required FTE 2025 (updates with scenario);
- Net Hiring Required (updates with scenario);
- Peak Utilization Month (INDEX/MATCH on utilization column);
- Headcount Cost as % of Revenue (updates with scenario).
🔧 Task 1: Build the Headcount Baseline and Hiring Plan
Goal: Establish current headcount by function, calculate required FTE for the 2025 forecast, and build a monthly hiring schedule.
- Create a new sheet called
Workforce_Forecast. Build the headcount input table with five function rows using illustrative FTE figures consistent with your dataset's revenue scale. - Add
Productivity_Growth_Rate,Hiring_Lead_Time_Months,Ramp_Time_Months, and function-levelCoverage_Pctcells to yourAssumptionssheet. Name all cells. - Calculate
Current_Rev_per_FTEfor each function using 2024 actual revenue allocated by coverage percentage. - Calculate
Target_Rev_per_FTEapplying the productivity growth rate, thenRequired_FTE_2025using the CEILING formula from this lesson. - Calculate
Net_Hiring_Requiredper function. Flag any negative values (surplus) with yellow conditional formatting and any values requiring more than 20% headcount growth with red — aggressive hiring plans carry execution risk. - Build the monthly hiring schedule showing the latest decision date for each required hire using the EDATE formula from this lesson. Flag any dates already in the past in red.
🔧 Task 2: Model Capacity Utilization and Feed Costs Back
Goal: Calculate monthly utilization rates, identify capacity constraint months, and connect headcount costs to the cash flow model.
- Add
Working_Hours_per_Month,Utilization_Target,Avg_Monthly_Salary_per_FTE, andOverhead_Rateto yourAssumptionssheet. - In your monthly forecast table, add a
Total_FTEcolumn showing the cumulative headcount including planned hires by month — each month's FTE is the prior month plus any hires initiated the appropriate number of lead-time months earlier. - Add
Available_Capacity,Utilization_Rate, and aUtilization_Flagcolumn using the four-color conditional formatting rule from this lesson. - Add
Monthly_Salary_Cost,Employer_Overhead_Cost, andTotal_People_Costcolumns using the formulas above. - Add
Total_People_Costas a new outflow row in your cash flow table from Lesson 4.3 and update the Closing_Balance calculations to include it. Observe how the cash flow picture changes — funding gaps that were marginal may now become significant. - Switch Active_Scenario to Best Case and note the peak utilization month and total hiring required. Switch to Worst Case and confirm the model flags a hiring freeze. Add both outputs as KPI cards on your dashboard.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат