The IT service desk as a ready-made computational model
The template ships with FlowVisual: triage, a branch, first and second level, with volumes, ranges, capacities and rates already filled in. Twenty minutes later you know whether the time is lost in the work or before it.
The IT ticket template covers the support flow in three working steps and one branch: triage and intake, then the decision “solvable now?”. 65 % go to a first-level fix, 35 % escalate to second level. It is set up for 24,000 tickets a year, about 96 on a working day. Across 20,000 stress-test runs, triage is the binding constraint in 75 % of runs, second level in 14 %, first level in 11 %. The service desk can clear 118 tickets a day against 96 arriving, enough on average, not enough on 26 % of days. Lead time is 0.08 working days at the median and 4.9 on a busy day (P90): the ticket dies in the queue, not in the work.
29min
Per ticket, weighted across both branches.
0.1 → 4.9days
Normal day against busy day.
75%
Not second level, which usually gets the blame.
6
Order handling, quotation, invoice approval, complaints, onboarding, IT ticket.
What is in the template
The figures come from an example model, not from a client engagement. They are chosen to match an internal IT service with a few hundred users. A starting point, not a benchmark.
Inflow: 24,000 tickets a year, about 96 on a working day, with a day-to-day variation of 28 % and a peak factor of 1.35 on 8 % of days. Mondays, rollouts, outages.
| Step | Role | Share | Processing | Capacity | Load, avg. | Load on a busy day |
|---|---|---|---|---|---|---|
| 01 Triage & intake | Service desk | 100 % | 5–10 min | 2 people × 8 h → 118/day | 84 % | 129 % |
| Decision: solvable now? | ||||||
| 02 First-level fix | Support | 65 % | 8–18 min | 105/day | 62 % | 86 % |
| 03 Second level | IT | 35 % | 25–55 min | 7 people × 7 h → 62/day | 57 % | 91 % |
The "share" column is why this template reads differently from the others: second level only sees a third of the tickets. Measure its utilisation against the full volume and you get 155 %, and you call a step overloaded that is actually running at 57 %.
The decisive finding. Constraint probability per step, across 20,000 runs:
| Step | Constraint probability | Days over capacity |
|---|---|---|
| 01 Triage & intake | 75 % | 26 % |
| 02 First-level fix | 11 % | 4 % |
| 03 Second level | 14 % | 7 % |
The column adds up to 100 %: each run counts exactly one binding step, the one carrying the highest load that day.
Second level, blamed in house for long turnaround, is the constraint in 14 % of runs. The service desk, the place where a ticket is merely taken down, for five to ten minutes, is the constraint in 75 %. The process loses its time before the work, not inside it.
And that is where a spreadsheet fails. Five minutes per ticket is unremarkable. Ninety-six times five to ten minutes is not.
The six numbers you replace
Everything else can stay. Adapting more does not improve the result; it only delays the meeting.
- Tickets per working day. Last year's tickets ÷ working days. The helpdesk report has it. Take the same definition of a ticket (duplicates, bulk incidents) that you will use when you measure again afterwards.
- Peak factor. How many tickets arrive on the busiest day compared with a normal one? Monday, the day after a rollout, the day of an outage. A factor of 1.3 to 2 is common. Without it you are computing a service desk that is never under load, and load is a service desk's normal state.
- People on the service desk and their hours for triage. Not the size of the team. Somebody taking calls alongside does not have eight hours for intake.
- The processing range for triage. Low end and high end. Five minutes for a password, twenty for an incident report that has to be reconstructed first. That range is what drives the waiting time.
- The share solved on the spot. 65 to 35 in the template. Every helpdesk report carries this as first-contact resolution, and it is the one number here you can genuinely measure. It shifts load between the branches, not before them.
- Fully loaded rates per role. Gross salary × 1.5 to 1.8, divided by roughly 1,500 productive hours a year. At 24,000 cases a year every euro of rate difference matters; a naive rate from salary ÷ 2,080 hours makes the statement in money attackable later.
Cross-check before you compute: count the open tickets in the system and divide by the tickets you close in a day (Little's Law). If that lands near your known turnaround, the model is usable. A large deviation means a queue is missing, with tickets almost always the "waiting for the user" status.
What the template does not contain. Lead time here is processing plus queueing, in working days. Prioritisation is not modelled: the model works in arrival order. If you run real prioritisation, model it as a second branch with its own capacity; otherwise the model is too slow for urgent tickets and too fast for the rest. Also absent: the time a ticket spends waiting on the user.
Four levers, computed one at a time
Change only one lever per run. Three at once produce a number nobody can attribute to a single lever, and therefore no business case. The four runs below use the same template with exactly one input changed each time.
| Lever | Lead time P90 | Triage load, busy day | Working time per ticket | New most likely constraint |
|---|---|---|---|---|
| Template as shipped | 4.9 days | 129 % | €28.82 | Triage (75 %) |
| 1 A form at intake (5–10 → 3–6 min) | 0.22 days | 77 % | €26.38 | First level (53 %) |
| 2 A third person on the service desk | 0.38 days | 86 % | €28.82 | First level (46 %) |
| 3 Knowledge base absorbs 20 % (96 → 77/day) | 0.86 days | 103 % | €28.82 | Triage (75 %) |
| 4 More solved on the spot (65 % → 75 %) | 5.0 days | 129 % | €25.34 | Triage (68 %) |
Lever 1. A form at intake. Mandatory fields for device, application, symptom and urgency. Triage falls from 5–10 to 3–6 minutes because there is nothing to reconstruct. Effect: the P90 of lead time from 4.9 to 0.22 working days, busy-day load from 129 % to 77 %. The cheapest lever in the field, and the only one that needs no staff.
Lever 2. A third person on the service desk. Also works clearly (0.38 days), but costs a headcount. The ratio between this lever and lever 1 is the actual statement of the table.
Lever 3. A knowledge base that absorbs 20 % of tickets before they arrive. Fewer tickets is always better, but it does not solve the constraint: triage still binds in 75 % of runs, and its busy-day load only falls from 129 % to 103 %. A fifth less volume lifts a step barely over the line, no more.
Lever 4. Resolve more tickets at first level. The most interesting null result. Raising first-contact resolution from 65 % to 75 % is the standard recommendation in support, and it works: working time per ticket falls from €28.82 to €25.34, because expensive second-level minutes are replaced by cheaper first-level ones. Lead time does not follow; it even ticks up to 5.0 days. The lever saves money, not time. Sell it as a turnaround measure and you are selling the wrong thing about an otherwise correct measure.
Compute the four separately and rank by effect per effort. Lever 1 is a form, lever 2 is a headcount, and in the model they are 0.16 days apart.
How 20,000 runs turn into a percentage per step is covered in Monte Carlo simulation for processes; why 85 % utilisation is already too much, in How to calculate a bottleneck.
What ends up on paper
After saving the baseline, changing one lever and running a second time, the comparison produces:
- Lead time before/after as P50 and P90. A service commitment is made against the P90, not against the median. That is exactly what separates an SLA statement from an average: the median says 0.08 days, and the commitment still breaks on every tenth day.
- Utilisation per step on the busy day and the new constraint after the measure. In this model it moves to first level under two of the four levers.
- Throughput as tickets per week against tickets arriving: 455 of 480 as shipped. The difference is the backlog the service desk rebuilds every week.
- Working-time cost per ticket and per year, from volumes, durations and fully loaded rates. At 24,000 cases every cent counts, and the template computes €28.82 per ticket.
- The assumption list with every estimated input, stated. The sentence "prioritisation and user wait states are not modelled" takes the sting out of the sharpest question before it is asked.
That is exported as two PDFs: a proposal for the decision maker and documentation for traceability, with your letterhead if you have set one.
One model, two questions. This page answers the arithmetic one: where the 75 % comes from, and why a fifth fewer tickets does not solve the constraint. The other question (what would you recommend, and what does a ticket left sitting cost) belongs to the method rather than the tool. It lives next door in the Flowrefy analysis archive, alongside the approach these templates came out of. One dataset, two questions, two audiences.
The other templates
Six models ship with the app. All follow the same pattern: structure complete, figures typical, six values to adapt, exactly one clear constraint.
- Order handling runs from the order to the confirmation. The case with a shared role: two steps that look comfortable on their own are one person's afternoon.
- Quotation process is the case where lead time acts on revenue rather than on cost.
- Invoice approval is the volatility case: under capacity on average, over it at month end.
- Complaint handling puts the constraint outside the company, so the honest recommendation is not "automate".
- Employee onboarding has low volume and many participants, with one step that binds 86 % of runs.
- IT ticket is this page.
Every template opens from the welcome window via Browse templates. The first time round it is worth opening one before starting your own model. Otherwise people build too finely.
- Included in
- FlowVisual for macOS 13+ and Windows 10/11, in the welcome window under “Browse templates”
- Scope
- 3 working steps, one decision with a 65/35 routing share, arrivals with variation and a peak factor, capacities, processing ranges, roles, cost rates
- To adapt
- Tickets/day, peak factor, service desk hours for triage, triage range, share solved on the spot, hourly rates
- Computed with
- 20,000 runs, seed 42. The app defaults to 400. The median holds, the P90 moves by a few per cent
- Typical finding
- The constraint is triage (75 %), not second level (14 %)
- Provenance of figures
- Example model, no client data. Labelled as such inside the template
Frequently asked
Why is triage the constraint rather than second level?
Because triage sees every ticket and second level sees a third of them. The service desk can clear 118 tickets a day and receives 96; second level can clear 62 and receives 34. On average both sit below the line, but triage runs at 84 % utilisation and second level at 57 %, and from roughly 85 % upwards the queue grows faster than the utilisation does. On a busy day triage stands at 129 %. Five minutes per ticket is unremarkable; ninety-six times five to ten minutes is not.
Are the template figures real client data?
No. They are example values matching the orders of magnitude of an internal IT service, and the template labels them as such. Their purpose is that a model runs immediately. They should be replaced by your own six numbers.
Does a higher first-contact resolution bring turnaround down?
No, it brings cost down. In the model, raising it from 65 % to 75 % cuts working time per ticket from €28.82 to €25.34, because expensive second-level minutes are replaced by cheaper first-level ones. Lead time on a busy day stays at roughly five days, because the limiting step sits before the branch and is untouched by it. The measure is right; the justification is not.
We prioritise by urgency. Why does the template not model that?
Because prioritisation changes the order, not the capacity: urgent tickets get faster, everything else gets slower, and the average wait stays where it was. The template therefore works in arrival order. If you want to see the effect on both classes, model them as two branches with their own capacity; the comparison then shows what prioritising one class costs the other.
Why is absorbing 20 % of tickets with a knowledge base not enough?
It helps, but it does not solve the constraint. In the model triage's busy-day load falls from 129 % to 103 %. It still binds in 75 % of runs, and the P90 of lead time falls from 4.9 to 0.86 days. A form at intake, which shortens triage itself from 5–10 to 3–6 minutes, brings it to 77 % and 0.22 days. Less volume acts linearly; shorter processing acts on the queue, and here the queue is the entire lead time.
Do I need the template at all, or can I start straight away?
You can start straight away. Experience says the first model people build is too fine (thirty steps instead of three), and the extra detail costs input time without moving the constraint. Thirty seconds in a finished template saves that.
Open the template and enter your six numbers
Download FlowVisual, choose “Browse templates” in the welcome window, open the IT ticket model. Modelling and stress testing cost nothing.
Guide: seven steps to the number- Method
How to calculate a bottleneck: why 85 % utilisation is already too much
The bottleneck is not the longest step, it is the step with the highest utilisation. And waiting time does not grow linearly with utilisation. It explodes just before the limit. The maths behind it fits on one page.
Read - Method
Monte Carlo simulation for business processes: what it does and when it lies
Monte Carlo is not a magic word, it is systematic dice-rolling: the same process, hundreds of times, with different random draws each time. What comes out is not a number but a distribution. That is the whole point.
Read - Use case
Seven process simulations, worked through
Seven processes, seven models, seven findings, each with volumes, capacities and the lever that actually worked. In five of the seven it was not the one the project proposed.
Read