How the Simulation Engine Works
Understand the mechanics behind ProcessMind's discrete event simulation engine and how it models your process.
This page provides a complete reference for the simulation interface in ProcessMind. Use it as a quick lookup when configuring simulations.
The simulation configuration is located in the right-hand panel when viewing a process model:
At the top of the simulation panel, you’ll find controls for managing simulation configurations:
| Control | Description |
|---|---|
| Dropdown | Select an existing simulation configuration |
| Create New | Create a new simulation configuration |
| Rename | Change the name and dataset name of the current configuration |
| Duplicate | Create a copy of the current configuration |
| Auto Configure | Automatically configure simulation parameters using AI or observed data |
| Delete | Remove the current simulation configuration |
You can have multiple simulation configurations for the same process, allowing you to compare different scenarios without losing your settings.
Below the simulation selector, you’ll find the main action buttons:
| Button | Description |
|---|---|
| Run Simulation | Execute the simulation with current settings |
| Auto Configure | Open the auto-configuration dialog to populate simulation parameters |
The Auto Configure dialog offers two modes:
The periods section defines the time frame for your simulation:
| Setting | Description | Example |
|---|---|---|
| Simulation Period | The date range for the simulation (start and end dates) | 2025-01-01 to 2025-03-31 |
| Warm-up period | When enabled, runs an additional warm-up period before the start date | Toggle on/off |
Warm-up Period
The warm-up period allows the simulation to reach a steady state before collecting data. When enabled, the simulation runs for a period equal to the simulation duration before the start date. Only events occurring between the start and end dates are included in the output. This eliminates initialization bias in your simulation results.
Attributes are values carried by each case through the process. Configure how they’re generated.
Number attributes use statistical distributions to generate values. See Distributions for all available types.
| Setting | Description |
|---|---|
| Distribution | Type of statistical distribution |
| Parameters | Distribution-specific parameters |
| Periodicity | Optional time-based variation |
| Conditions | Optional conditional generation |
Text attributes have several generation modes:
| Mode | Description | Example Output |
|---|---|---|
| List | Weighted random selection from a list of values | ”Gold”, “Silver”, “Bronze” |
| Numbered | Prefix followed by sequential number | ”ORDER-0001”, “ORDER-0002” |
| Fictional Names | Generated person names | ”Sarah Johnson”, “Michael Chen” |
| Fictional Companies | Generated company names | ”Acme Corp”, “Global Industries” |
| Countries | Country names | ”United States”, “Germany”, “Japan” |
Define the resource pools available for activities to use.
| Setting | Description |
|---|---|
| Name | Identifier for the resource pool |
| Capacity | Number of available units |
| Periodicity | Optional time-varying capacity |
See Resources for detailed guidance on resource modeling.
Configure how new cases enter the process through start events:
| Setting | Description |
|---|---|
| Distribution | How arrivals are distributed (typically Poisson) |
| Rate | Average number of arrivals |
| Rate Unit | Time unit: perHour, perDay, perWeek, perMonth, perYear |
| Periodicity | Time-based arrival rate variations |
| Conditions | Conditional arrival patterns |
By default, cases arrive following a Poisson distribution at 1 case per hour.
Each task in your BPMN model can be configured with processing parameters:
| Setting | Description |
|---|---|
| Distribution | How processing time varies |
| Time Unit | seconds, minutes, hours, days |
| Periodicity | Time-based processing time variations |
| Conditions | Conditional processing times |
| Setting | Description |
|---|---|
| Resource Pool | Which resource pool to use |
| Quantity | How many units required |
Multiple resource requirements can be added to a single task.
| Setting | Description |
|---|---|
| Percentage | Probability (0-100%) that the activity is skipped |
| Periodicity | Time-based skip probability variations |
| Conditions | Conditional skip rules |
When skipped, the case proceeds immediately to the next element without consuming resources or time.
| Setting | Description |
|---|---|
| FIFO | First In, First Out - cases are processed in the order they arrived (default) |
| LIFO | Last In, First Out - most recently arrived cases are processed first |
| Random | Cases are selected randomly from the waiting queue |
The queue strategy determines how the next case is selected from the waiting queue when the activity becomes available to process new work.
Configure how case attributes are modified when the task completes:
| Setting | Description |
|---|---|
| Attribute | Which attribute to modify |
| New Value | The value to set (can be fixed or distribution) |
| Conditions | When to apply the change |
For intermediate events (not start events):
| Setting | Description |
|---|---|
| Attribute Changes | Modify case attribute values |
| Skip Chance | Probability to bypass the event |
For exclusive gateways, configure the probability of each outgoing path:
| Setting | Description |
|---|---|
| Probability | Relative weight for this path (auto-normalized) |
| Periodicity | Time-based probability variations |
| Conditions | Conditional path selection |
Note: Probabilities are relative weights. Setting flows to 70, 20, 10 produces the same result as 7, 2, 1.
No configuration needed—all outgoing paths are taken simultaneously.
Similar to XOR, but multiple paths can be selected, with at least one guaranteed.
Configure individual sequence flows (arrows between elements):
| Setting | Description |
|---|---|
| Probability | Relative weight when flow leaves a gateway |
| Periodicity | Time-based variations |
| Conditions | Conditional flow selection |
When configuring any distribution, you’ll use the distribution editor:
| Type | Parameters | Use Case |
|---|---|---|
| Fixed | value | Constant values |
| Normal | mean, stdDev | Symmetric variation |
| Uniform | min, max | Range with equal probability |
| Triangular | min, mode, max | Range with most likely value |
| Poisson | lambda, rateUnit | Arrival rates |
| Lognormal | mean, stdDev | Right-skewed times |
| Weibull | scale, shape | Reliability modeling |
| Pearson VI | alpha1, alpha2, beta | Complex patterns |
When applicable, durations can be specified in:
For arrival distributions:
See Distributions for detailed explanations.
When configuring time-varying parameters:
| Type | Parameters | Example |
|---|---|---|
| Always | (none) | No time variation |
| Default | (none) | Fallback rule |
| Each Day | startTime, endTime | 09:00-17:00 daily |
| Each Weekday | startTime, endTime | Business hours Mon-Fri |
| Each Weekend Day | startTime, endTime | Weekend hours Sat-Sun |
| Each Week | startDay, startTime, endDay, endTime | Multi-day weekly pattern |
| Each Month | startDayOfMonth, startTime, endDayOfMonth, endTime | Month-end processing |
| Each Year | startMonth, startDayOfMonth, startTime, endMonth, endDayOfMonth, endTime | Seasonal patterns |
| Fixed Period | startDateTime, endDateTime | One-time events |
See Periodicity for detailed guidance.
Conditions allow parameter values to vary based on case attributes:
| Condition Type | Description |
|---|---|
| Value Match | Attribute equals specific value(s) |
| Range | Numeric attribute within a range |
Example: Apply different processing times based on customer tier.
| Control | Description |
|---|---|
| Run Simulation | Start executing the simulation |
| Progress Bar | Shows completion percentage during execution |
| Cancel | Stop a running simulation |
| Limit | Value | Purpose |
|---|---|---|
| Max Events | 2,000,000 | Prevents runaway simulations |
Event Limit
The simulation will stop if it reaches 2,000,000 events. If you hit this limit, consider shortening your simulation period or reducing arrival rates.
When the simulation completes, it creates a dataset in your process containing the complete event log:
| Field | Description |
|---|---|
| Case ID | Unique identifier for each simulated case |
| Activity | Name of the executed activity |
| Start Timestamp | When the activity began |
| Complete Timestamp | When the activity finished |
| Resource | Which resource performed the activity |
| Attributes | Case attribute values at time of execution |
The simulated event log is a standard ProcessMind dataset. You can: