Business & Operations Tools

Staffing Capacity Planner

Plan team capacity from roles, workdays, holidays, allocation and utilisation targets, compare it with demand by skill, and see the gap - without storing anyone's data.

  • Available hours
  • Gap by skill
  • Scenario comparison
Runs in your browser

Everything you paste, type or drop is processed in this browser tab. It is not uploaded, logged, stored or sent to analytics.

Capacity planner workspace

Examples:

1 Planning period

Count workdays from dates

Public holidays are not known here; enter them above.

2 Roles (supply)

One row per role. FTE 2.5 means two full-timers and one half-timer. Leave is days per FTE in the period; allocation is the share of their time given to this work; utilisation is the productive share of that after meetings, admin and interruptions.

3 Demand by skill

Hours of work needed in the period. Skill names match the roles' skills (case does not matter).

4 Capacity against demand

Add roles and demand.

What the Staffing Capacity Planner does

This planner works out how many productive hours a team really has in a period - after public holidays, leave, time given to other work and the everyday overhead of meetings and interruptions - and sets that against the hours of work needed, skill by skill. The result is the gap: where you are short, by how many hours and full-time equivalents, and where there is slack.

It is built around roles and FTE rather than people's names, so a plan can be shared without exposing anyone's leave or workload. Nothing is sent anywhere, and nothing is stored unless you tick the box to remember the plan in your own browser.

How to use it

  1. Set the planning period: the number of workdays (or count them from two dates), the public holidays that fall in it, and the length of a working day.
  2. Add one row per role. Enter its skill, the FTE in that role, leave days per FTE in the period, the percentage of their time allocated to this work, and the utilisation you expect of that allocated time.
  3. Add demand as hours needed per skill. Skills are matched to roles by name, ignoring case.
  4. Read the gap by skill. A shortfall shows how many FTE would close it and the utilisation it would take to absorb it without hiring.
  5. Save the plan as a scenario, change something - add a contractor, move a developer to QA, cut a feature - and save again to compare the options side by side.

Reading the results

Capacity here is productive hours, the last of four steps: available days, gross hours, allocated hours, productive hours. Most over-optimistic plans skip the last two, assuming everyone spends every paid hour on the project.

Utilisation needed is demand divided by allocated hours. Above your planned utilisation the work can only fit through overtime or dropped quality; above 100% it cannot fit at all, and the finding says so.

The overall total can look fine while individual skills are short. Shortfall adds up only the skills that are short, because spare design hours do not write code - which is why the planner reports skills separately.

Worked example: a software team's month

October 2026 has 22 workdays and the team has 1 public holiday and 7.5-hour days. Four developers (4 FTE) average 2 days of leave each, spend 80% of their time on the product and are 80% productive within that; 1.5 FTE of testers have 1 day of leave, are fully allocated and 75% productive; one designer gives the team half their time at 80%.

Developers: 22 - 1 - 2 = 19 days, 4 x 19 x 7.5 = 570 gross hours, 456 allocated and 364.8 productive. The plan needs 520 development hours, a gap of -155.2 hours or -1.70 FTE - and it would take 520 / 456 = 114% utilisation to fit, so it cannot be absorbed by working harder.

Testers have 1.5 x 20 x 7.5 x 0.75 = 168.75 productive hours against 150 needed, 18.75 spare. Design has 63 hours against 90, short by 27. Nobody has the DevOps skill, so its 40 hours are uncovered. Overall 596.55 productive hours meet 800 hours of demand, with a shortfall of 222.2 hours across the three short skills.

Formulas and scoring rules

Available days per FTE
days = max(0, workdays - public holidays - leave days per FTE)
Gross, allocated and productive hours
gross = FTE x days x hours per day; allocated = gross x allocation%; productive = allocated x utilisation%
Gap by skill
gap = productive capacity - demand; gap in FTE = gap / (capacity / FTE)Positive is spare, negative is short. Skills with demand but no role are shown as uncovered.
Utilisation needed
needed = demand / allocated hoursAbove 100% the work cannot fit in the allocated time.
Workdays from dates
count of days from first to last day inclusive, excluding the chosen weekend daysPublic holidays are entered separately. Hours are shown to the nearest hour above 100, else one decimal.

Choosing a utilisation figure

Utilisation is the share of allocated time that turns into planned work. The rest goes on meetings, reviews, support questions, onboarding, email and the time it takes to switch between tasks. There is no universal figure; the best one is your own, from comparing past plans with what was actually delivered.

Planning at 100% utilisation leaves no room for anything unexpected, and queues grow quickly as a team approaches full load. If the planner shows that a skill only fits at very high utilisation, treat that as a shortage, not a stretch goal.

Limitations: what the result does not prove

  • It is a capacity model, not a schedule. Enough hours in the month does not mean the work can be done in the right order, or that one person is not a bottleneck.
  • Skills are matched by name only. People who can cover more than one skill are counted once, under the skill you give their role.
  • Demand is only as good as the estimates behind it. Pair it with a range estimate rather than a single optimistic figure.
  • Averages hide individuals: an FTE figure says nothing about who is overloaded, which is deliberate, but it means the plan needs a conversation with the team before it is final.

Privacy: where your data goes

Everything you paste, type or drop is processed in this browser tab. It is not uploaded, logged, stored or sent to analytics. Session recording and tag-manager scripts are switched off on this page.

Frequently asked questions

How do I calculate team capacity in hours?

Take the workdays in the period, subtract public holidays and each person's leave, multiply by hours per day and by FTE, then by the share of time allocated to the work and by a realistic utilisation. The last two steps are what turn paid hours into hours of actual output.

What is the difference between allocation and utilisation?

Allocation is how much of someone's time is given to this work rather than other projects or duties - 50% for someone split between two teams. Utilisation is how much of that allocated time becomes productive work once meetings, admin and interruptions are taken out.

Why does the planner not ask for people's names?

Because capacity planning only needs roles and FTE, and a plan with names in it records leave and workload about identifiable people. Keeping to roles makes the plan safe to share and avoids storing personal data you do not need.

How do I compare hiring against cutting scope?

Save the current plan as a scenario, then change one thing - add FTE to a role, or reduce demand for a skill - and save it as a second scenario. The comparison table shows capacity, demand, shortfall and load for each option side by side.

Is anything I enter saved?

Not by default. If you tick the remember box, the roles and demand are saved in your own browser's local storage and restored next time; unticking it erases them. Nothing is ever sent to a server.

Last reviewed by the A2Z.Tools team against the sources listed above.

Rate this tool

Was this tool useful? Your feedback helps us improve it.

No ratings yet — be the first to rate this tool.
Your rating (required)
0 / 2000

Please do not include passwords, payment details or other sensitive information.

Your feedback is sent privately to the A2Z.Tools team and will not be posted publicly.