Business process simulation
Business Process Simulation: Test Process Changes Before Implementation
A process map tells you the sequence of steps, but it cannot tell you how a change will actually behave under real volume and variation. Simulation runs your process forward, many times over, so you can compare options against a fixed baseline before you commit budget or headcount to any of them.
- Published
- Reading time
- 16 min read
- Type
- Guide
Most process improvement decisions are made on the strength of a diagram and a hunch. Someone looks at a flowchart, points at the step that seems slow, and proposes a fix: add a person, remove an approval, automate a check. Sometimes that fix works. Often it does not, because the diagram never showed what actually determines how a process performs: how work arrives, how much variation exists in how long each step takes, how busy each resource already is, and what happens when several cases compete for the same person at the same time. Business process simulation is the practice of building a model that includes those factors and running it forward, many times, so you can see the range of outcomes a change would actually produce instead of guessing at a single one.
This guide explains what simulation adds beyond a process map, the mechanics that make a simulation realistic, why looking at averages is misleading, and how to read the results, throughput, utilization, bottleneck rankings, and case-level detail, to make a defensible decision about a proposed change. It closes with a practical checklist for judging whether a process is ready to be simulated at all.
What business process simulation is
Business process simulation takes a model of a process, roles, steps, decision points, durations, and volumes, and uses it to generate a large number of hypothetical cases, each one moving through the process independently according to the same rules but with different random outcomes at each point of variation. One simulated case might hit a fast reviewer with no missing documents and finish in twenty minutes. Another might hit a busy reviewer, get flagged for a second check, and take three days. Neither case is wrong. Both are plausible outcomes of the same process, and a simulation that runs hundreds of cases through the model will produce a realistic spread of results rather than a single idealized number.
The output is not a prediction that next Tuesday will look exactly like the simulation. It is a structured way of answering a narrower and more useful question: given what we believe about how this process behaves, what range of outcomes should we expect, and how does that range change if we alter one part of the process. That framing matters because it keeps the exercise honest. Simulation does not remove uncertainty from a business decision. It makes the uncertainty visible and lets you reason about it deliberately instead of by instinct.
Why a process map alone is not enough
A process map is a static picture. It shows the sequence of steps, who owns each one, and where the decision points sit. What it cannot show, on its own, is how that sequence behaves when a hundred cases are moving through it at once, competing for the same three approvers, arriving in bursts rather than evenly, and occasionally looping back for rework. Two processes with identical-looking maps can perform completely differently depending on how much spare capacity each role has and how much variation exists in how long each step actually takes.
This is why a proposal to fix the slowest-looking step on a map so often disappoints in practice. The step that looks slowest on paper is not always the step that is actually limiting how fast cases move through the whole process. A step can have a long average duration and still not be the constraint, if it has enough capacity to keep up with arrivals. Meanwhile a step with a short average duration can create long queues if it only has one person assigned and volume regularly spikes. A map cannot distinguish between these situations. A simulation, because it accounts for arrivals, capacity, and variation together, can.
Arrivals, service times, resources, queues, decisions, branches, and rework
A realistic simulation is built from a small number of ingredients, and getting each one right matters more than adding complexity elsewhere. Arrivals describe how new cases enter the process: how many per day or per hour, and whether they arrive steadily or in clusters, such as a surge of claims on a Monday morning after a weekend backlog. Service times describe how long each step takes once a case reaches it, expressed as a range or distribution rather than a single fixed number, because real work varies even when the same person does the same task twice.
Resources represent the people or systems that perform each step, along with how many of them are available and when. A step is not really one thing, it is a step plus a resource pool, and the size of that pool determines how quickly a queue can be cleared once one forms. Queues themselves are what happen when cases arrive faster than a resource can process them: work waits, and that waiting time is often the single largest component of total cycle time, far larger than the actual hands-on work required at any step. Decisions and branches route cases down different paths based on a condition, each with its own probability, and rework routes a case backward instead of forward, adding an extra pass through steps it has already been through. A model that leaves out rework will understate total effort, sometimes by a wide margin, because every looped case consumes capacity twice.
None of these elements need to be measured with scientific precision to be useful. What matters is that each one is stated explicitly, as a range where a range is honest, rather than smoothed over into a single confident-sounding average that hides how much is actually assumption.
Why averages hide risk
If you ask how long a process takes and someone answers with a single number, that number is almost always an average, and an average by itself can be dangerously reassuring. An average cycle time of two days sounds fine for a customer-facing process with a three-day service commitment, right up until you learn that a meaningful share of cases actually take five or six days because of how variation and queueing interact. Averages describe the middle of a distribution. They say nothing about the tail, and in most operational processes the tail is where the complaints, the missed deadlines, and the escalations come from.
This is the core reason simulation is worth the extra effort over a simple back-of-envelope calculation. A calculation based on averages can tell you what a typical case looks like. A simulation that runs hundreds of cases, each with its own randomly drawn combination of arrival time, service duration, and branch outcome, can tell you what a typical case looks like and also how bad the bad cases get, and how often they happen. Those two answers are frequently very different, and the second one is usually the one that actually drives customer dissatisfaction, staff overtime, or missed service levels.
P50, P90, and P95 cycle time
Because averages hide risk, simulation results are usually reported as percentiles instead. The P50 cycle time is the point at which half of simulated cases finish faster and half finish slower, essentially the median, and it is a more honest stand-in for the typical case than a mean, because it is not dragged upward by a small number of extreme outliers. The P90 cycle time is the point below which ninety percent of cases finish, meaning one case in ten takes longer than that. The P95 cycle time pushes that further: only one case in twenty exceeds it.
The gap between P50 and P95 is often more informative than either number alone. A process with a P50 of two days and a P95 of two and a half days is predictable: most cases behave like most other cases. A process with a P50 of two days and a P95 of nine days is erratic: the typical case is fine, but a meaningful minority of cases go badly wrong, and whoever is accountable for service levels needs to know that before making promises to customers or setting staffing levels around the average alone. When comparing a proposed change against the current process, watching how it moves P90 and P95, not just P50, is usually the more decision-relevant comparison, because it tells you whether the change makes the process more consistent or simply moves the middle while leaving the tail just as long.
Waiting time versus service time
Total cycle time is made up of two very different things: service time, the time actually spent doing the work, and waiting time, the time a case spends sitting in a queue before anyone touches it. In most business processes, waiting time dwarfs service time. An invoice that takes eight minutes to actually review might sit in an approver's queue for a day and a half before that eight minutes happens, simply because the approver is working through a backlog. If you only look at how long each step takes to perform, you will systematically underestimate how long the whole process actually takes, and you will misdiagnose the cause, because the eight-minute step looks efficient in isolation.
Separating waiting time from service time in the results is what lets you tell the difference between a process that is slow because the work itself is complicated and a process that is slow because there are not enough people to keep up with how much work arrives. Those two problems have completely different solutions, and mistaking one for the other is a common way that improvement projects target the wrong thing.
Throughput and utilization
Throughput is how many cases the process can actually complete in a given period, and it matters as much as cycle time, particularly when volume is growing or seasonal. A process can have a perfectly acceptable cycle time under normal load and still fall apart during a volume spike if it does not have enough spare throughput capacity to absorb the extra work without queues building up faster than they can be cleared.
Utilization describes how much of a resource's available capacity is actually being used. It is tempting to treat high utilization as a sign of efficiency, but a resource running close to full utilization has very little slack to absorb variation, and queues in front of a highly utilized resource tend to grow disproportionately once arrivals become even slightly uneven. A resource sitting at sixty percent utilization looks less efficient on a spreadsheet but will usually produce far more stable cycle times than one running at ninety-five percent, because it has room to absorb the arrival bursts that real processes always produce. Reading utilization alongside cycle time percentiles, rather than in isolation, is what makes it useful for decision-making instead of just a vanity metric.
Bottleneck ranking
Every process has a constraint, the step or resource that most limits how fast cases can move through the system as a whole, but that constraint is rarely the step that looks slowest on a map. A simulation can rank steps by how much they actually contribute to queueing and delay across all simulated cases, which is a different and more reliable signal than looking at average step duration alone. A step with a short average duration but very limited capacity can rank as the primary constraint, while a step with a long average duration but ample capacity might barely contribute to overall delay at all.
This ranking is one of the most practically useful outputs of a simulation, because it tells you where to spend limited improvement effort first. Fixing a step that is not actually the constraint rarely improves overall cycle time by much, even if it makes that particular step faster, because the case still has to wait for the real bottleneck downstream or upstream. A bottleneck ranking based on simulated behavior, rather than an assumption based on which step looks worst in a meeting, redirects that effort to where it will actually move the numbers.
Case-level traces and slow-case analysis
Aggregate numbers like P90 cycle time tell you that a problem exists. They do not by themselves tell you why. This is where looking at individual simulated cases becomes useful. A case explorer lets you pick out the cases that landed in the slow tail of the distribution and trace exactly what happened to them: which resource they queued behind, whether they were routed down a rework loop, whether they hit a decision branch that added an extra approval step. Patterns tend to emerge quickly. Perhaps the worst cases are consistently the ones that arrive late in the day and queue overnight. Perhaps they are the ones that fail an initial check and get sent through a second, slower review path.
This kind of case-level detail turns a percentile number into an explanation, and an explanation is what makes a proposed fix specific instead of generic. Knowing that the slowest ten percent of cases are almost all cases that require a second reviewer is a much more actionable finding than knowing only that P90 cycle time is higher than anyone would like.
What-if scenarios
Once a model reflects the current process with reasonable fidelity, it becomes a testbed for proposed changes. What happens to cycle time and throughput if a second approver is added to the busiest queue. What happens if a low-risk category of cases is exempted from a review step entirely. What happens if an AI agent is introduced to handle a well-defined classification task, reducing the time that step takes without removing it from the process. Each of these questions can be represented as a scenario: a modified version of the model with one or more specific changes applied, run through the same simulation logic as the original.
The value of a what-if scenario is that it forces the change to be stated precisely before it gets tested. A vague idea like 'speed up the approval step' has to become a specific claim, such as a revised duration range or an added resource, before it can be simulated at all. That act of translation often exposes assumptions that were never made explicit in the original proposal, which is useful on its own, independent of whatever the simulation eventually shows.
Comparing alternatives against one locked baseline
Comparisons only mean something if they are made against a fixed reference point. If the baseline process keeps shifting, whether because someone tweaks an assumption between meetings or because a different person's mental model of the current state gets used each time, then a claim that a proposed change improves cycle time by a certain amount cannot actually be trusted, because it is not clear what it is being compared against. A locked baseline, an as-is model that has been reviewed, agreed, and then frozen, solves this. Every scenario, whether it is a modest process tweak or a more ambitious redesign, gets compared against that same fixed starting point, using the same simulation logic and the same assumptions about volume, so that differences in the results reflect the change itself and nothing else.
This discipline matters more as the number of proposed changes grows. When three or four alternative approaches to fixing a process are on the table, each represented as its own scenario against the shared locked baseline, it becomes possible to compare them directly on P50, P90, P95, throughput, utilization, and estimated labor cost, side by side, rather than relying on whoever argues most persuasively in the room.
Assumptions and uncertainty
Every simulation is only as good as the assumptions that go into it, and those assumptions should stay visible rather than disappearing into the model. A duration range for a step, a probability assigned to a decision branch, an estimate of how many new cases arrive per day, these are all informed guesses, usually reasonable ones, but guesses nonetheless when they are not backed by measured data. Treating simulation output as a precise forecast rather than a structured exploration of a set of stated assumptions is the most common way the technique gets misused.
The practical response is not to avoid simulation until every input is perfectly measured, which would mean never using it at all. It is to be explicit that a given result depends on a given assumption, to test how sensitive the result is to changing that assumption within a reasonable range, and to update the assumption whenever better information becomes available. A recommendation built on a stated, reviewable assumption is far more useful, and far more trustworthy, than a hidden one, even when the assumption itself later turns out to need revising.
Where simulation helps and where it does not
Simulation earns its keep on processes with real variability and real resource contention: multiple case types competing for a shared pool of people, decision points with meaningful branching, queues that form and clear unevenly, rework loops that add hidden cost. These are exactly the conditions under which intuition and simple averages tend to mislead, and exactly the conditions where a model that captures arrivals, service times, and capacity together will produce a materially different, and more useful, picture than a flowchart and a guess.
It is much less useful on a short, largely linear process with a single person doing all the work and almost no variation from case to case. In that situation the answer to 'how long does this take' is already obvious from a stopwatch, and building a simulation model adds ceremony without adding insight. Simulation also does not answer questions outside its scope. It will not tell you whether a proposed automation is technically feasible to build, and it will not validate that a given AI capability can actually perform a task at an acceptable accuracy. What it can tell you is how the process would behave, in terms of time, cost, and capacity, if that step performed the way you have assumed it would. Confirming that the assumption itself is realistic is a separate exercise, one that should happen before, not instead of, running the simulation.
How Processfix uses discrete-event Monte Carlo simulation
Processfix sits before the point where a process gets automated or handed to an AI system, and simulation is the core of what happens at that stage. Once a process has been captured, whether from an uploaded SOP or PDD, a plain-language description, or built directly in the editable swimlane editor, and any gaps have been closed through a round of clarifying questions, that model becomes the input to a discrete-event Monte Carlo simulation. The simulation runs hundreds of individual cases through the model, each one drawing its own arrival time, service durations, and branch outcomes from the ranges and probabilities defined in the model, so the results reflect the real spread of possible outcomes rather than a single average path.
That reviewed model becomes the locked baseline, the fixed reference point against which every proposed change is measured. From there, an Improve scenario or an Add AI scenario can be built, each representing a specific, stated change to the baseline, and simulated on the same terms. The case explorer lets you step into individual simulated cases to see exactly how a change plays out, not just at the aggregate level. Results are compared side by side across P50, P90, P95, throughput, utilization, bottleneck ranking, labor, and an estimated value for the change, with those value figures always presented as estimates based on the assumptions that were reviewed and approved, not as guarantees. Each scenario can then be approved or rejected on the basis of that comparison, and once a direction is chosen, the resulting process definition can be exported to Word, PDF, or Markdown to hand off to whoever will actually plan or build the change. Processfix does not build, deploy, or run the automation or AI capability itself, and it does not validate the technical feasibility of a proposed AI step. Its role is to make sure the decision about which change to pursue, and why, is made on evidence rather than intuition, before any of that implementation work begins.
A simulation readiness checklist
Is your process ready to simulate
Work through these before building a simulation model. Gaps here do not stop the exercise, but they should be flagged as assumptions rather than left unstated.
- Every step has an owning role and a duration estimate or range, not a single false-precision number
- Every decision point has a stated condition and an estimated probability for each branch
- Rework loops are mapped explicitly, including what triggers them and how often they occur
- Resource capacity is known for each role: how many people, and roughly how much of their time is available for this process
- Arrival volume is estimated, including whether arrivals are steady or tend to cluster
- Exception paths and rare-but-real edge cases are included, not just the happy path
- The as-is model has been reviewed by people who do the work day to day, not only by managers
- The as-is model is locked as a fixed baseline before any alternative scenario is built
- Any proposed change is stated as a specific, simulatable modification, not a vague intention
- Assumptions behind every duration, probability, and volume figure are written down and can be revisited
A model is worth building once, and worth testing changes against many times, before any of those changes cost real money to implement.
Related reading
- Business process simulationWhat Is Business Process Simulation?
- Business process simulationHow Monte Carlo Simulation Works for Business Processes
- Business process simulationP50 vs P90 vs P95 Cycle Time
- Business process simulationWhy the Slowest Step Is Not Always the Bottleneck
- Business process simulationWhat-If Process Analysis: How to Compare Alternative Designs
- Process improvement methodologyHow to Improve a Business Process Before Automating It
Analyze one process before implementation
Upload an SOP or PDD, or describe how the work happens today. Map the process, simulate it, compare improvement and AI scenarios, and export the selected target process.
One process per month, free.