Staffing and utilization: how many people are needed?

Intermediate 10 min read · Updated November 14, 2026

Staff demand is the work a process generates per period: cases times processing time per case. Divided by the working time of one full-time person, it gives the full-time equivalents (FTE) needed. Compared with the time the people actually have for the process, it gives the utilization. Above 100%, cases pile up.

Demand: the work per period

Demand is calculated per lane, that is per role or department. For each step that is not automated, the processing time (including query effort) is multiplied by the visits per case; parallel branches all count. The sum over the lane, multiplied by the cases per period, is the demand in hours. The total staff demand counts only your own staff, that is lanes of the kind role or department; external partners, customers and IT systems are not included.

demand per period (h) = cases per period × Σ visits × processing time incl. query effort ÷ 60
Visits matter here just as much as for cost. A check step that runs 1.25 times per case generates 25% more work than its time on the diagram suggests. See Branches and loops.

Capacity: the time the people really have

Capacity is the working time the people in a lane have for this process. The key figure is availability: the share of their working time that goes into this process. A purchasing clerk who also handles supplier management and complaints might have 60% for purchase orders. Two people at 90% are 1.8 people for this process, not two.

capacity per period (h) = people × availability × hours per day × working days in the period FTE = demand ÷ (hours per day × working days in the period) utilization = work of the arriving cases ÷ capacity missing hours = demand − capacity (to handle all cases) backlog (hours) = work of the arriving cases − capacity (left over per period)

Worked example: accounts payable

In the invoice example, accounts payable spends 16 minutes per invoice (enter 6, check 1.25 × 4, post 5). At 1,000 invoices a month the demand is 16,000 minutes, 266.7 hours. A month has 220 ÷ 12 = 18.33 working days. Two people with 90% availability and 8 hours a day have 2 × 0.9 × 8 × 18.33 = 264 hours.

Invoice check, per month
LaneDemandCapacityUtilizationFTE needed
Accounts payable266.7 h264 h101%1.82
Division management24.8 h29.3 h84%0.17
Accounts payable is overloaded by a small margin: 1.82 FTE are needed, 1.8 are available. The backlog grows by (266.7 − 264) ÷ 266.7 × 1,000 = 10 invoices a month, because every invoice passes through accounts payable. Small overloads like this are typical: nobody notices them in a single week, but after a quarter the inbox is noticeably fuller. Division management would need 25 hours at full inflow (1,000 × 0.3 × 5 minutes); because accounts payable leaves 10 invoices a month, only 297 approvals arrive: 24.8 hours against 29.3 hours, 84%.

Backlog above 100%

If demand exceeds capacity, the difference is work that is not done in the period. The app shows it as a growing backlog in cases per period: the uncovered share of demand multiplied by the cases that pass through this lane. In reality the backlog is cleared by overtime, by postponing other tasks or by cases waiting longer. All of these are visible symptoms of an overload that the calculation makes explicit.

Only the cases that actually pass through the lane count. Division management only sees the 300 invoices above €5,000. If a single person with 15% of their time handled approvals, the lane would have 22 hours of capacity for 25 hours of demand: 114% utilization. Then (25 − 22) ÷ 25 × 300 = 36 approvals a month are left over, not 120 as a calculation with all 1,000 invoices would suggest. The backlog in working hours is unambiguous: work of the arriving cases minus capacity, here 3 hours a month – that much is left over each month. Distinguish it from the missing hours (“… full-time equivalents are missing”): demand for all cases minus capacity – that much is missing to handle all cases. Without an overloaded lane upstream, both are equal.

If several lanes are overloaded, their backlogs in cases are not added up: a case stuck in two lanes is one open case, not two. The app calculates the whole process along the flow, assuming “work in progress first”: every lane finishes the cases it has already worked on and accepts only as many new ones as its capacity covers for their entire work in that lane. What is left over upstream does not arrive downstream. “Open cases grow by …” is then the number of arriving cases minus the cases that reach an end; if only one lane is overloaded, that is exactly its backlog. In the example with division management at 15% this comes to 36 invoices a month, not 10 + 36 = 46: accounts payable no longer has to post the 36 invoices waiting for approval. Its demand drops to 263.7 hours against 264 hours of capacity, so it is no longer overloaded. The working hours left over, on the other hand, may be summed across lanes, because work adds up.

The app calculates the values per lane with the cases that actually arrive there. If an overloaded lane comes first, fewer cases arrive than at full inflow; the app then names the value at full inflow at the lane, labeled as such. A lane that would be above 100% at full inflow can therefore keep up in reality, like accounts payable in the example. And because the backlog of the whole process counts cases, not work, more staff does not reduce it in every process: if some cases end early, for instance as “not approved”, or if case types need very different amounts of work, a relieved lane can pass on more of the laborious cases, and the next overloaded lane accepts fewer simple ones in return. Then fewer cases reach an end although more work gets done. The working hours left over in the lane you strengthen, on the other hand, never increase. Check a staffing measure against both figures.

backlog in hours per period = demand − capacity backlog in cases per period = (demand − capacity) ÷ demand × cases per period that pass through the lane

Why 100% is too much in an office

A role at 100% has no slack at all. Cases do not arrive evenly, and some take much longer than the typical time. When the role is fully loaded, every irregularity turns into waiting: cases queue until someone is free. The closer utilization gets to 100%, the longer these queues become. That is why the app marks lanes from 85% in amber and above 100% in red; the lane with the highest utilization from 85% is the bottleneck and is marked red as well.

The instant calculation does not derive this waiting time itself; it uses the waiting times you entered. The simulation in the analysis area sends cases through the process with limited staff and shows how queues build up. For the reasoning behind the threshold and what to do about it, see Bottleneck analysis.

Estimating availability honestly

Availability is the figure most often overestimated. Ask the people involved, not their managers. The app keeps two inputs apart: the working days per year (default 220) are the days left after weekends, public holidays and annual leave, so leave and public holidays are already included there. Availability is the share of that working time that really goes into this process. Deduct from it:

Worked through for accounts payable in the invoice example (two people, 8 hours a day)
InputCalculationResult
Working days per year365 − 104 weekend days − 11 public holidays − 30 days of leave220 days
Working time per person and month8 h × 220 ÷ 12146.7 h
Availability100% − 5% meetings − 5% sickness90%
Capacity2 × 0.9 × 146.7 h264 h per month
Utilization266.7 h demand ÷ 264 h101%
Leave deducted twiceavailability 90% − 30 ÷ 220 = 76.4%; 2 × 0.764 × 146.7 h = 224 h119% – a bottleneck that does not exist
Rule of thumb: annual leave and public holidays belong in the working days per year, everything else that takes time away from this process belongs in the availability. The same rule applies in the staffing calculator and in the editor. If your organization calculates with other working days or hours, change them in the process settings.

From the calculation to a staffing decision

A demand of 1.82 FTE does not mean "hire 0.02 people". It means the team is at its limit and any growth in volume, any additional query or any absence tips it over. The useful question is which lever is cheapest: reducing the load per case, for example fewer queries; shifting work to another role; or adding capacity. In the worked example, halving the incomplete invoices from 20% to 10% brings accounts payable down to 97.5% without hiring anyone. Use the staffing calculator for quick what-if checks, and the lesson on volumes and case counts for reliable input.

Invoice check (worked example)Invoice check (worked example), drawn from the model the app calculates with, in the same rendering as the export: processing and waiting time per step, “×” top right on steps that run more or less than once per case, the bottleneck step marked in red. The legend below the diagram explains the other symbols. Accounts payable 2 ppl. · 101% Division management 2 ppl. · 84% Supplier Invoice check (worked example) Invoice received ERP Enter invoice 6 min 1 h BOTTLENECK ×1.25 ERP Check invoice 4 min 0 min Complete? Query to supplier 5 working days Amount above €5,000? ×0.3 Approve invoice 5 min 3 working days ERP Post invoice 5 min 2 h Invoice posted yes · 80% no · 20% yes · 30% no · 70% Line width = number of cases Rework loop Bottleneck Lane utilized over 100% Media break worked in an IT system done manually ×0.3 Passes per case, if not exactly one (below 1: only some of the cases) Problem Measure
Invoice check (worked example), drawn from the model the app calculates with, in the same rendering as the export: processing and waiting time per step, “×” top right on steps that run more or less than once per case, the bottleneck step marked in red. The legend below the diagram explains the other symbols.

Try it in the editor

Invoice check (worked example) · 1,000 / month

In the worked example accounts payable is at 101% with 1.82 FTE needed; change the number of people or the availability and watch the lane color change.

Open the example in the editor

Free, no sign-up, in your browser. Lead time, cost and utilization are calculated while you draw.

Matching calculator

Staffing calculator: cases and processing time

Calculate staffing from case volume and processing time: full-time equivalents, utilization and backlog per period. Free calculator, queries included.

Frequently asked questions

What is an FTE?

A full-time equivalent is the working time of one full-time person in the period: hours per day times working days. 1.82 FTE means the work of almost two full-time people.

Why does the app show no utilization for some lanes?

Utilization needs the number of people. Without a headcount there is no capacity, and the app shows only the demand. External partners, customers and IT systems are not given a utilization.

Is waiting time part of the staff demand?

No. Demand is processing time only. Waiting affects the lead time, not the number of people needed.

Can I use this for back office capacity planning?

Yes, for planning based on average volumes and estimated times. For peaks, calculate a second variant with the peak volume; for the effect of queues, use the simulation.

Self-test

1. Two people work 50% of their time on a process. How many people does that count as?
Capacity counts people × availability: 2 × 0.5 = 1.
2. Demand 266.7 h, capacity 264 h. What is the utilization?
266.7 ÷ 264 = 1.01, so 101%. The lane is slightly overloaded.
3. From which utilization does the app mark a lane in amber?
From 85% amber, above 100% or as the bottleneck red.

Keep learning

Would you like to map or improve a process together with us? Contact