Edit simulation scenario
Simulation in Apromore allows users to simulate different scenarios within their process and assess these changes’ potential impact.
Simulation is done from a BPMN model that has a specified simulation scenario. If a BPMN model does not have a simulation scenario, we can specify a simulation scenario from Apromore BPMN Editor. To specify the simulation scenario of a BPMN model, go to Apromore Portal and open the BPMN model.
Note
We can also open a BPMN model by right-clicking and clicking Edit model.
This opens the BPMN Editor, with the selected BPMN model. Click on the icon in the top-right corner to open the Properties panel.
Go to the Simulation tab to specify the simulation scenario.
Note
If we want to hide the parameters panel, we can always click on the “>>” sign located at the right side of the panel and click on it once again to make it visible.
The parameters are organized into different tabs.
General
Attributes
Tasks
Timetables
Roles
Gateways
Waiting time
General parameters tab
The General tab allows us to specify properties that apply universally to the process.
We can specify the simulated scenario start date and time to determine when the first process starts. For specificity, we also specify the scenario timezone.
For the cost calculations, we may choose a suitable currency from the dropdown list.
Inter-arrival time
The inter-arrival time is the time between two consecutive arrival of cases. For example, an interarrival time of 30 minutes means that one case is created every 30 minutes on average.
To specify an arrival time, go to the General tab.
An inter-arrival time is specified with respect to an arrival calendar. The arrival timetable determines the periods during which new cases are created. In other words, new cases are only created during the timeslot of the arrival timetable. For example, if we create an interarrival time on a timetable with a “Monday to Friday, 9:00 to 5:00 PM” timeslot, then no cases will be created outside these times.
To define an inter-arrival time, select the default Arrival timetable.
Note
The timetable “Arrival timetable” is created by default. This timetable follows a Monday to Friday, 9 AM to 5 PM timeslot. To learn how to change timeslots or add new timetables, see Timetables parameters tab.
After selecting the timetable, we can now specify the value of the interarrival time. Apromore offers a variety of statistical distributions for the inter-arrival time. It could be fixed, normal, exponential, uniform, triangular, log-normal, or gamma.
If, for instance, on Monday to Friday, 9 AM to 5 PM, a new case starts every 20 minutes. This is a fixed arrival time, so we choose “Fixed” inter-arrival time and enter a value of 20. Also, we change the Time unit to “Minutes.”
Note
To prevent us from entering incorrect values, Apromore displays inline alert messages signaling that we need to recheck the data. Alert messages are shown in red.
Apromore also allows us to create a different inter-arrival time. For instance, if, during weekends, a new case starts every 30 minutes, we can add a new inter-arrival time to capture this behavior. First, we create a “Weekend” timetable in the timetable tab. To learn more about creating a new timetable, see Timetables parameters tab.
Click the + sign of Inter-arrival time.
In Arrival timetable, select the other timetable we have created from the timetable. In our case, we select Weekends.
Now we can specify the arrival timetable for weekends. If a new case starts every 30 minutes, we will set the values accordingly.
Simulation timeframe
To specify how long the simulation will last, Apromore offers two options.
The first option is to specify the number of cases. For example, when we set the number of cases to 200, then the simulation will stop once 200 cases have been created and completed.
Enter 200 total number of cases.
The second way to specify how long the simulation will last is by entering the duration of the simulation. For instance, we may want to create a simulation that lasts for three months, irrespective of the number of cases that will be created within that period. To specify the simulation duration, enter 0 as the total number of cases.
We are now prompted to enter the length of the simulation scenario. Let us enter three months.
We also have the option of ticking/unticking “End simulation scenario with no open cases.” When we leave this option unticked, the simulation stops strictly after three months. There could be open cases that have not been completed. Conversely, when we tick this option, Apromore stops creating new cases after three months. However, any case that has been created prior to that time will be allowed to complete. Consequently, the simulation timeframe may exceed the inputted value.
In the simulation, we may want a certain number of cases to begin together at the start of the simulation. This is specified by Number of cases in the queue at the start of simulation. Let us say we want 10 cases to begin together.
We can also exclude specific numbers of cases at the start and end of the simulation to better focus on the core period where case arrival is most consistent. This ensures that the simulation gives an actual representation of the process, focusing on periods where resource availability is stabilized, and there are no unusual delays.
We can specify the max branching probability error as well. When this is done, the gateway branching probabilities in the simulation results will not deviate more than the specified value. If, for instance, we simulate a process model with X/OR split gateways that have probability-based conditions, and we select a maximum branching probability error of 5%, the simulation results of the branching probabilities will not deviate more than 5% for all the X/OR split gateways.
By default, the deterministic mode is unchecked. This means that when a simulation is performed with the same parameters, the simulated log slightly changes between every run. If we want to obtain the same log with the same simulation parameter, check the Deterministic mode.
Attributes parameters tab
In a simulation, we can specify that some of the branching behavior of the process depends on one or more attributes. Apromore distinguishes two types of attributes:
Case attributes: These are attributes that remain unchanged in a case, e.g., the “type of customer” in an order-to-cash process.
Event attributes: These are attributes that may be altered by the execution of activities in the case.
We can attach attributes to a simulation scenario. These attributes may behave as case attributes or event attributes, depending on whether they are modified by one or more tasks (event attributes) or never modified (case attributes).
To specify an attribute, open the model in BPMN Editor. Open the Properties pane. In the Simulation tab, click Attributes. Click the “+” sign to create a new attribute.
Specify whether it is a categorical or numerical attribute and enter the name of the attribute. Edit the Attribute name to System.
We can create the following categories for the system: Guidewire BillingCenter, Guidewire ClaimCenter, and iSight with 40, 30, and 30 percent, respectively. Click the “+” sign in Categories.
Enter the categories and their respective probabilities.
Note
The sum of probabilities for all the defined categories must equal 100.
To capture the fact that this attribute may be modified by the task being executed, we must specify which tasks will update it. Let’s say the “System” attribute changes when performing the “Analyze Defect” and “Register” tasks. Click the “+” symbol in the “Tasks updating the selected attribute” section to add these two tasks.
In the Select task dropdown, add the tasks that affect the attribute.
The added tasks are displayed in the “Tasks updating the selected attribute” section.
Note
Specifying the “Tasks updating the selected attribute” section indicates an event attribute is being created.
For categorical attributes, we can also specify the probability distribution after executing a task. Click a task in “Tasks updating the selected attribute” to edit the probabilities. By default, the probabilities are inherited from the probabilities of the attribute.
However, we can change the probabilities for each category.
The categorical attribute is successfully defined.
Attributes can also be numerical. This is done by switching the slider to Numerical. Add a new attribute with the “+” sign and switch to the Numerical type.
Examples of numerical case attributes would be the purchase amount of a case. In this case, we define its distribution and its value. For example, we can define an “Activity cost” attribute with an exponential distribution and mean of 2.386.
Since it is a case attribute, we do not specify “Tasks updating the selected attribute”.
Case Priority
We can also define Case priority based on some conditions. For instance, if a case attribute is equal to one of the categories, the case should be a high priority, or vice versa. Priority is an integer from 1 to 10, with 1 indicating low priority and 10 indicating high priority. We can specify a Case Priority by clicking the “+.”
We can add different clauses, the condition, and the corresponding priority. In the following example, we mean that when the system of a case is “iSight”, the case has a priority 9.
We can also use the “Add else if statement” to add other conditions for case priority.
Task parameters tab
The task tab is used to specify the behavior of each task in the scenario. To specify the task parameters, go to the task tab. The simulation parameters for all the tasks in the BPMN model are shown. The simulation parameters to define are:
The role pool responsible for performing this task. These are the roles defined in the Roles tab. To learn more about creating a role and assigning to a task, go to Role parameters tab. Please note that we can assign multiple role pools to a task. When this is done, any specified roles can do the task.
The probability distribution of the task duration and the parameters of this distribution (e.g., the mean in the case of an exponential distribution). The task’s duration is the time it takes for a role to execute one instance of a task. Please note that the duration of a task must not include the waiting time before the start of the task. It should only include the processing time.
Fixed cost: A fixed cost may be incurred when performing a task. This can be specified in the Tasks tab.
External delays in arcs: Some tasks may be delayed before they are executed. We can set the external delays that exist in the arc.
Suppose we want to specify that the “Repair (Complex)” task occurs every 2 minutes. We can select the Fixed Duration distribution, set the Value to 2, and the Time unit to Minutes.
Assuming the “Repair (Complex)” task requires external equipment with a fixed lending cost, we can specify the cost in the Fixed cost section. Let’s say this cost is 5 EUR.
We can assign a resource pool for the task. If the Senior Engineer does the “Repair (Complex)” task, we can click the “+” button in the Task roles and select “Senior Engineer” from the Assign task role dropdown.
Note
Before assigning a task to a role, the role must have been created in the Roles tab. To learn about creating roles or role groups, go to Roles parameters tab.
Note
When we assign tasks to a role in the Roles tab, those roles will show up as ‘Task roles’ for those tasks in the Tasks tab. This indicates that the task has been assigned to the role.
Note that we can have multiple role pools for the task. If, for instance, the Engineers’ role group (including both Junior Engineers and Senior Engineers) does the “Repair (Complex)” task, the role group must first be created. We can select Engineers from the Task roles dropdown.
Note
We can precisely define the parameters of a task by clicking the task in the BMPN model. The simulation parameters tab for only the selected task pops up.
Timetables parameters tab
The Timetables tab is used to define time periods where cases may occur differently. For instance, the case scenario on weekdays may be different from those on weekends. In such a situation, weekdays and weekends should be defined as separate timetables.
Note
By default, a timetable called the Arrival timetable is created. This follows the weekday timeslot of Mondays to Fridays from 09:00 to 17:00.
To view the timeslot of a timetable, click on it.
If necessary, we can create a new timetable with a different time slot. Let us say we wish to create a weekend timetable with a timeslot from Saturday to Sunday, 10:00 to 17:00.
To create a new timetable for Weekends, click the + button in Timetables.
Edit the timetable name to Weekends.
We can create the Saturday to Sunday, 09:00 to 17:00 timeslot for this timetable. Change the begin day, end day, begin time, and end time values.
Note
One timetable may consist of many different timeslots. This is very useful when workers (also known as actors/resources) work in shifts.
To create another Timeslot within a Timetable, click on the “+” icon in the Timeslots section and fill in the details accordingly.
Role parameters tab
The role parameter tab is used to define a role or role group used in the process. To create a new resource, go to the Role tab.
Click on the “+” button to create a new role. We can use the slider to create a role or a role group.
A role is a job title assigned to one or more resources that perform specific tasks. For instance, when a “Clerk” does the “Register” task. Edit the Role name to “Clerk”. A clerk works during weekdays. There are three clerks. Each clerk costs 30 euros per hour, and the clerk does the task “Register”. We can define the Resource as shown.
We can add more tasks to a role. If, for instance, the clerk also does the task, “Archive Repair,” we assign this task to the resource by clicking on the “+” button in the Assigned task section.
Select the specific task from the Assign task dropdown. The dropdown is a list of all tasks in the BPMN model.
The selected task will be added to the Assigned tasks dialog box.
On the other hand, we can define a role group. A role group is used when multiple roles do one or more tasks. For example, a ‘Junior Engineer’ and ‘Senior Engineer’ can do the ‘Analyze Defect’ task. In such a case, they should be defined as a role pool.
To specify this role group, we first must define the Junior Engineer and Senior Engineer roles.
We have created two new Roles (Junior Engineer and Senior Engineer). To create the role group, click the “+” in the Roles section. Switch the slider to Role group.
Add the Assigned tasks for the role group, which is “Analyze Defect”.
Add a Group name, and finally, use the “+” button to add the roles to form the Group roles.
Click the “Add role to group” dropdown to add the roles. In our case, we add “Junior Engineer” and “Senior Engineer”.
Role performance handicap
In some cases, a role may take longer to complete an activity than the assigned activity duration. For instance, assume we have two different roles, namely “Junior Engineer” and “Junior Engineer”. Let us assume that both roles can perform the same tasks (e.g., “Test Repair”, “Restart Repair”, etc.). However, the resources for the “Junior” role are 10% slower due to their lack of experience. To capture this difference, we can add a 10% “performance handicap” to the Junior Engineer.
To this end, go to the Roles tab. Add a new “Junior Engineer” role and specify the role timetable, number of resources, cost per hour, and assigned tasks. In Handicap, enter 10. The activity instances that the Junior Engineer performs will be, on average, 10% longer in duration than those performed by the Financial Managers. For instance, a 15-minute activity instance would take 15 + (15 * 10%) = 16.5 minutes to the Junior role.
Role maximum allowed overtime
When we simulate a process model, a resource may sometimes begin an activity instance just before their work shift completes, in such a way that the resource is unable to complete the activity instance within their current shift. For instance, consider the following example. Mark (a Clerk) starts the “Archive Repair” activity, which takes 30 minutes at 4:40 PM. However, his shift ends at 5.00 PM, so he does not complete the activity in the current shift. The following day, Mark continues the activity execution and completes it in 10 minutes (at 9.10 AM). In other words, the default behavior of the simulator is to interrupt an activity instance at the end of a shift and resume it at the beginning of the next shift (e.g., the next work day).
In reality, when faced with such situations, a resource may opt to do a 10-minute overtime to complete the task instead of postponing its completion to the next working day.
We can now capture this behavior by assigning a “maximum allowed overtime” to a role. In the above example, if the Purchase Agent role has a maximum allowed overtime of 10 minutes or more, the simulator will consider that Mark will use overtime to complete the above activity instance within the same work shift where it started.
To specify overtime hours allowed, go to the Roles tab. Add a new role and specify the role name, role timetable, number of resources for that role, and the cost per hour. In Maximum allowed overtime (in minutes), enter the overtime the role can take, say 30 minutes.
In the screenshot above, we defined the Weekdays (Mon-Fri, 9 AM to 5 PM) timetable with a 30-minute maximum allowed overtime. Thus, the simulation engine considers the role to be valid until 5:30 PM if necessary but not beyond.
Gateways parameters tab
Gateways is a BPMN notation used to control how a process flows. Gateways can be exclusive (XOR), meaning that precisely one alternative path can be selected, or inclusive (OR), meaning several paths can be selected. The Gateways tab is used to specify the behavior of the gateways in a process.
There are two ways of defining a gateway:
Through probabilities
Through conditions
Specifying gateways through probabilities
Gateway elements in the BPMN model require execution probabilities for their outgoing sequence flows.
Probability numbers show the percentage of cases following one or another gateway path.
Note
Usually, a smaller probability (for example, 40%) indicates low-value cases, while a larger probability (for example, 60%) shows high-value cases.
To define gateway probabilities, go to the Gateways tab.
The BPMN model contains only 1 forward XOR with the 3 possibilities. This is why the Gateway tab presents three options: Archive Repair, Restart Repair, and Inform User.
To specify the gateway’s behavior as probability, we can enter the probability of each task occurring after the gateway. For example, we can say Restart Repair happens 20% of the time, Inform User happens 60%, and Archive Repair happens 20%.
Note
We can precisely define the parameters of a gateway by clicking the gateway in the BMPN model. The simulation parameters tab for only the selected gateway pops up.
Note
The sum of probabilities must equal 100.
Specifying gateways through conditions
We can also specify a gateway behavior through conditions. To do this, switch the slider to condition.
Create clauses for each of the possible gateway outputs. A clause is simply a condition that must be fulfilled for the task to happen.
To create a new clause, click the “+” sign in the Clauses section. We may rename the clause by double-clicking on the clause name.
Specify the clause details. For the Condition types, we could use a Case attribute or the Cycle time. If we want the Inform User task to be done when the customer type is Loyal Customer, we can use the case attribute to specify this condition.
In the Condition types section, select Case attributes. Select Customer Type as the Attribute. Use the Equal to (=) operation and select Loyal customers as the category.
Note
When using case attributes for conditions, the case attribute must have been defined in the General tab.
We can also use cycle time to define the condition of gateways. If we want the “Restart Repair” to be done when the cycle time is less than 30 minutes, we can add a new clause under the Clauses section. Select Cycle time from the Condition types dropdown.
Set the operator to ‘Cycle time is less than or equal to’. Set the value to 30 minutes.
Note
A task may have more than one clause. We can click the “+” to add more clauses. When multiple clauses are defined, we can set the condition to be satisfied where both clauses are satisfied (using the AND operator) or when one of the clauses is met (using the OR operator).
Waiting time parameters tab
We can specify a delay in sequence flow (arc). Go to the Waiting time tab. The waiting time parameters for all the arcs appear. If the Engineers hypothetically wait for 2 hours before they begin their task, we can specify this in the Waiting time tab. By default, all the waiting times are set to zero. Here is the arc for the waiting time we wish to specify.
To find the waiting time for the arc going to the “Repair (Complex)” task, we look for the Analyze Defect > Repair (Complex) section. We can define the distribution as Fixed, set the value to 2, and the Time unit to hours.
Note
We can precisely define the waiting time of an arc by clicking the arc in the BMPN model. The Waiting time tab for only the selected arc pops up.