Statistical Distributions
Statistical distributions for modeling variation in processing times, arrival rates, and other simulation parameters.
ProcessMind uses a discrete event simulation (DES) engine to model your processes. Understanding how this engine works will help you configure simulations more effectively and interpret results accurately.
In discrete event simulation, the system state changes only at specific events—the clock jumps from event to event, and between events, nothing happens. This approach is ideal for business processes because:
Unlike continuous simulation (used for physics or fluid dynamics), business processes don’t need moment-by-moment modeling. A loan application doesn’t gradually transition from “submitted” to “approved”—it changes state at specific events.
The simulation engine follows a simple but powerful loop:
1. Initialize: Set up starting conditions
2. Get Next Event: Find the earliest scheduled event from the priority queue
3. Advance Time: Move simulation clock to that event's time
4. Process Event: Handle the event (start activity, complete activity, etc.)
5. Schedule New Events: Based on what happened, add new events
6. Repeat: Continue until end time or max events reached (2,000,000)
7. Output: Generate the complete event log
The simulation generates and processes several event types:
| Event Type | What Happens |
|---|---|
| Case Arrival | A new case enters the process at a start event |
| Activity Start | A case begins executing an activity (resources allocated) |
| Activity Complete | A case finishes an activity (resources released) |
| Gateway Evaluation | A decision point determines which path(s) to take |
| Case Complete | A case reaches an end event |
Cases enter the simulation through Start Events in your BPMN model. The arrival pattern is controlled by the case generation distribution.
By default, cases arrive following a Poisson distribution with a rate of 1 case per hour. This creates realistic, random inter-arrival times typical of many business processes.
You can configure different arrival patterns using the distributions described in the Distributions documentation.
When a case completes an element, it immediately follows the outgoing sequence flow. If there’s only one outgoing path, the case takes it automatically.
Gateways control how cases branch and merge:
| Gateway Type | Behavior |
|---|---|
| XOR (Exclusive) | Exactly one outgoing path is selected using probability-weighted random selection. Probabilities are treated as relative weights and automatically normalized. |
| AND (Parallel) | All outgoing paths are taken simultaneously. The case splits into parallel tokens. |
| OR (Inclusive) | Random selection of paths with at least one path guaranteed to be taken. |
| Event-Based | Random selection among available events. |
For XOR gateways, you assign probabilities to each outgoing flow. These are relative weights:
When a case reaches a task (activity), the engine follows this sequence:
Does the required resource have capacity available?
If resources aren’t available, the case enters the waiting queue. ProcessMind uses FIFO (First In, First Out) ordering—cases are processed in the order they arrived.
Once available, the required resource units are reserved for this case.
The engine draws a value from the configured processing time distribution. This determines how long the activity will take.
A completion event is added to the event queue at current_time + processing_time.
When the completion event fires, resources are returned to the pool for other cases.
To ensure unique timestamps and realistic behavior, all activities have a minimum duration of 1 second. Even with a zero-duration distribution, activities take at least this long.
Activities can be configured with a skip chance (0-100%). When an activity is skipped:
This models real-world scenarios where steps are occasionally bypassed.
The simulation maintains a virtual clock that advances discretely from event to event. If the next event is at 10:35 AM and the current time is 10:30 AM, the clock jumps directly to 10:35 AM.
All times are converted to consistent units internally. You can specify durations in:
Parameters can vary based on the simulation time. For example:
See the Periodicity documentation for configuration details.
Each resource has a defined capacity—the number of cases it can handle simultaneously.
When demand exceeds capacity, cases wait in a queue. ProcessMind uses FIFO (First In, First Out) ordering, ensuring cases are processed in arrival order.
As the simulation runs, every activity execution is recorded in the output event log:
| Field | Description |
|---|---|
| Case ID | Unique identifier for each case (generated sequentially) |
| Activity | Name of the BPMN element |
| Start Timestamp | When the activity began |
| Complete Timestamp | When the activity finished |
| Resource | Which resource performed the activity |
| Attributes | Any case attributes at that point |
This log follows standard event log formats and can be analyzed with all ProcessMind tools.
| Limit | Value | Purpose |
|---|---|---|
| Max Events | 2,000,000 | Prevents runaway simulations |
| Min Duration | 1 second | Ensures unique timestamps |
Start Small, Then Scale
When setting up a new simulation, start with a short time period (a few days or weeks) to validate your configuration. Once you’re confident the model behaves correctly, scale up to longer periods.