Process Simulation

Testing processes and changes to them, without real-world consequences


OverviewCopy link to this section

Process simulation executes a process model in a synthetic environment, rather than the real world. Instead of waiting weeks to observe how a change to a process plays out in production, you can run a model of it thousands of times in seconds, under varying assumptions, and inspect the distribution of outcomes.

In HASH, process simulation complements flows and process mining:

  • Simulate a proposed flow before deploying it, to validate its logic and estimate its performance.
  • Simulate a mined model of an existing process to establish a baseline, then simulate modified versions to compare "as-is" against "to-be".

What simulation answersCopy link to this section

Typical questions a process simulation can answer quantitatively:

  • Throughput and cycle time: how many cases can the process handle per day, and how long does each take end-to-end?
  • Bottlenecks and queues: where does work accumulate, and how sensitive is the system to load?
  • Resource utilization: how busy are the people, agents, or systems involved, and where is capacity wasted?
  • What-if analysis: what happens if demand doubles, a step is automated, an approval is removed, or a third reviewer is added?
  • Risk and tail behavior: not just the average outcome, but the spread — how often does the process breach its SLA?

How it worksCopy link to this section

Process models in HASH are represented as Petri nets, and simulated using the same engine that powers Petrinaut:

  • Stochastic behavior. Step durations, branch probabilities, and arrival rates can be drawn from probability distributions rather than fixed values, so simulated runs exhibit the same variability as real executions. Where a model was mined from event data, these distributions can be fitted from the observed timings.
  • Parameters and scenarios. Models expose named parameters (arrival rates, staffing levels, error rates...) that can be varied without editing the model itself. A scenario bundles a set of parameter overrides, making baseline-vs-intervention comparisons reproducible.
  • Single runs and Monte Carlo experiments. A single run steps through one possible execution, and is useful for debugging a model's logic. Monte Carlo experiments execute many randomized runs and aggregate the results, producing distributions for each metric of interest. See Simulation in Petrinaut for details of the engine.
  • Custom metrics. Beyond built-in measures, models can define custom metrics — ratios, conversion rates, costs — evaluated against simulation state and aggregated across runs.

Simulating flowsCopy link to this section

Flow definitions describe executable processes, and simulating one means executing its structure without performing its side effects: no entities are modified, no external APIs are called, and no notifications are sent. Action steps are replaced by stand-ins that consume a representative amount of simulated time and produce representative outputs.

This is useful for:

  • Validating logic — confirming that branches, filters, and waits route cases the way you expect, including rare paths that seldom occur in testing.
  • Estimating cost and latency before scheduling a flow against real data, particularly for flows involving paid API calls or rate-limited services.
  • Capacity planning for flows with wait steps involving humans, where the constraint is human response time rather than compute.

A typical loopCopy link to this section

Mining and simulation are most powerful used together, iteratively:

  1. Mine the current process from event data to get a faithful as-is model.
  2. Simulate the as-is model and calibrate it until its outputs match observed reality.
  3. Modify the model to reflect a proposed improvement, as a new scenario.
  4. Compare simulated outcomes across scenarios, and pick the change worth making.
  5. Operationalize the improved process as a flow, then keep mining to verify the predicted improvement actually materialized.

Learn moreCopy link to this section