Edit simulation scenario

Simulation in Apromore allows users to simulate different scenarios within their process and assess the potential impact these changes will have.

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.

../_images/Simula002.png

Note

We can also open a BPMN model by right-clicking and clicking Edit.

This opens the BPMN Editor, with the selected BPMN model. Click on the Simula046 icon in the top-right corner to open the Properties panel.

../_images/Simula003.png

Click on the Simulation tab to specify the simulation scenario.

../_images/Simula004.png

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

  • Tasks

  • Timetables

  • Resources

  • Gateways

  • Waiting time

For convenience, it is recommended to fill it in the following order: Timetables -> General -> Resources -> Tasks -> Waiting time -> Gateways.

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.

To create a timetable, go to the Timetables tab and click the ”+” icon.

../_images/Simula005.png

A new timetable called Timetable is created. We can edit the timetable name by clicking the available field and entering our preferred timetable name. Let’s say we wish to create a timetable called Weekday (Mondays to Fridays from 09:00 to 17:00). We add the Timetable name and define the time range in the timeslot.

../_images/Simula007.png

To create a Timetable for Weekends, we can create another timetable and fill the Timeslot for weekends (Saturday to Sunday, 09:00 to 17:00).

../_images/Simula006.png

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.

../_images/Simula008.png

General parameters tab

The General tab allows us to specify properties that apply universally to the process. Specifically, we can define the inter-arrival time between each case.

Inter-arrival time

The inter-arrival time is the time between each arrival of the process instances. Simply put, it shows how frequently a new case starts.

To specify an arrival time, go to the General tab.

../_images/Simula009.png

Click on the “+” in the Inter arrival time section.

../_images/Simula010.png

To specify an arrival time, we select a timetable from the dropdown. The inter-arrival time will be applied to this timetable.

Note

The timetable must have been created in the Timetables tab. This is why it is advisable first to define the Timetables.

Apromore offers a variety of statistical distributions for the inter-arrival time. Inter-arrival time could be fixed, normal, exponential, uniform, triangular, log-normal, or gamma.

If, for instance, during weekdays, a process starts every 20 minutes, we select the “Weekday” arrival timetable from the dropdown. 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.”

../_images/Simula011.png

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.

Specify the total number of cases. This indicates the number of cases that start in the simulation scenario. If 200 cases occur within our simulation scenario, the total number of cases is 200.

../_images/Simula012.png

We can specify the simulated scenario start date and time to determine when the first process starts. Additionally, we can specify the scenario timezone.

../_images/Simula013.png

We can exclude a certain percentage of statistics from the start and the end of the process instances that fall between the start and the end time of the simulation scenario. This is usually done considering the availability of resources and activities that are handled without any delays.

../_images/Simula014.png

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.

../_images/Simula047.png

For the cost calculations, we may choose a suitable currency from the dropdown list.

../_images/Simula015.png

Multiple inter-arrival timetables

We can specify different inter-arrival times for different periods of the week. For instance, if, during weekends, a process starts every 30 minutes, we can add a new inter-arrival time for the Weekend timetable. To do this, click on the “+” sign by the Inter arrival time section.

../_images/Simula016.png

Select the new Inter arrival time from the Arrival timetable.

../_images/Simula017.png

Specify the distribution the inter-arrival time follows, the value, and the time unit. If a process starts every 30 minutes, we can specify a “Fixed” distribution, a value of 30, and Time unit in minutes.

../_images/Simula018.png

We can also define the number of cases that happen in this timetable. If we want 100 cases generated for weekends, we can specify the Total number of cases as 100.

../_images/Simula019.png

Attributes

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.

../_images/Attrib002.png

Specify whether it is a categorical or numerical attribute and enter the name of the attribute. For example, we can create a categorical attribute called “System” with categories: Guidewire BillingCenter, Guidewire ClaimCenter and iSight, and their respective probabilities.

../_images/Attrib003.png

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 preforming the “Register Claim” and “Analyze Claim” tasks. Click the “+” symbol in the “Tasks updating the selected attribute” section to add these two tasks.

../_images/Attrib004.png

In the Select task dropdown, add the tasks that affect the attribute.

../_images/Attrib005.png

The added tasks are displayed “Tasks updating the selected attribute” section.

../_images/Attrib006.png

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.

../_images/Attrib007.png

However, we can change the probabilities for each category.

../_images/Attrib008.png

The categorical attribute is successfully defined.

Alternatively, attributes can be numerical. This is done by switching the slider to Numerical. 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.

../_images/Attrib009.png

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 “+.”

../_images/Simula025.png

We can add different clauses, the condition, and the corresponding priority. In the following example, we mean that when the attribute of a case is classified as Category 3, the case has a priority 9.

../_images/Simula026.png

Resource parameters tab

The resource parameter tab is used to define a resource or resource group used in the process. To create a new resource, go to the Resource tab.

../_images/Simula027.png

Click on the “+” button to create a new role that would be assigned to one or more resources. We can use the slider to create a Resource or a Resource group.

A resource is used when one role does one or more tasks. For instance, when a “Clerk” does the “Register” task. To create a new resource, click on the “+” sign.

../_images/Simula028.png

For example, we may wish to create a Resource called 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.

../_images/Simula029.png

We can add more tasks to a resource. 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.

../_images/Simula030.png

Select the specific task from the Assign task dropdown. The dropdown is a list of all tasks in the BPMN model.

../_images/Simula048.png

The selected task will be added in the Assigned tasks dialog box.

../_images/Simula031.png

On the other hand, we can define a resource group. A resource 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 resource pool.

To specify this resource group, we first must define the Junior Engineer and Senior Engineer resources.

../_images/Simula032.png

We have created two new Resources (Junior Engineer and Senior Engineer). To create the resource group, click the “+” in the Roles section. Switch the slider to Resource group.

../_images/Simula033.png

Add the Assigned task for the resource group, which is “Analyze Defect”. Add a Group name, and finally, add the resources to form the Group resource.

../_images/Simula034.png

Resource performance handicap

In some cases, a resource may take longer to complete an activity than the assigned activity duration. For instance, assume we have two different roles, namely “Junior Financial Manager” and “Financial Manager”. Let us assume that both roles can perform the same tasks (e.g. “Pay invoice”, “Release supplier’s invoice”, etc.). However, the resources with 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 Financial Manager role.

To this end, go to the Roles tab. Add a new “Junior Financial Manager” 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 Financial Managers perform 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.

../_images/Simula049.png

Resource 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 Purchasing Agent) starts the “Analyze Request for Quotation” activity, which takes 30 minutes at 4:40 pm. But 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 to 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 the overtime to complete the above activity instance within the same workshift where it started.

To specify an allowed overtime, 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.

../_images/Simula050.png

In the screenshot above, we defined a Mon-Fri, 9 am to 5 pm timetable with a 30-minute maximum allowed overtime. Thus, the simulation engine considers the role can work until 5:30 pm if necessary but not beyond.

Task parameters tab

The task tab is used for specifying the behavior of each task in the scenario. To specify the task parameters, go to the task tab. The simulation parameters are shown for all the tasks in the BPMN model. The simulation parameters to define are:

  • The resource pool responsible for performing this task. These are the roles defined in the Resources tab. Please note that we can assign multiple resource 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 resource 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 it is 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.

../_images/Simula035.png

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.

../_images/Simula036.png

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.

../_images/Simula037.png

Note that we can have multiple resource pools for the task. If, for instance, the Engineers (both Junior Engineer and Senior Engineers) do the “Repair (Complex)” task, we can select the Engineers from the Task roles dropdown.

../_images/Simula038.png

Note

The roles must have been defined in the Resources tab.

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.

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.

../_images/Simula039.png

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.

../_images/Simula040.png

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.

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.

../_images/Simula041.png

The BPMN model contains only 1 forward XOR with the 3 possibilities. This is why the Gateway tab presents three options: Inform User, Archive Repair, and Restart Repair.

../_images/Simula042.png

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.

../_images/Simula043.png

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 a 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.

../_images/Simula044.png

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.

../_images/Simula045.png

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 AND operator) or when one of the clauses is met (using the OR operator).