Types of filter criteria

Apromore allows us to apply various filters to slice and dice an event log in different ways and focus on the filtering results. For example, we can use it to segregate specific process cases that fulfill certain conditions, e.g., all cases that transit via a particular activity or segregate two variants of the same process, e.g., the first variant containing slow cases and the second one containing fast cases.

We can perform log filtering from various places:

  • From Portal: In the Portal, right-click an event log and click on Filter log > Create new filtered log.

../_images/image1.png

After applying the filter, the filtered log will be saved as a new event log. We will be prompted to name the filtered log.

../_images/image2.png
  • From Process Discoverer: In Process Discoverer, click the “Filter” icon Filter056 from the top buttons bar.

../_images/image4.png

After applying the filter, Process Discoverer will display the statistics of the filtered log.

  • From a Dashboard: In the Performance Dashboard, click the “Filter” icon Filter056 on the top-right corner and select the log to apply the filter.

../_images/image5.png

After applying the filter, the Dashboard will display statistics of the filter log.

  • When creating a chart, table, gauge or tile: In the Custom View of the Performance Dashboard, select Advanced and the “Filter log” icon from the Slicing and filtering section.

../_images/image6.png

After applying the filter, the chart, table, gauge or tile being visualized displays the statistics of the filtered log.

Irrespective of where we invoke the filter from, the Filter log window pops up.

../_images/image7.png

Here, we can define and apply various filter criteria.

Case vs. Event

Two main filter types are supported by Apromore: Case Filter and Event Filter. Both filter types allow us to create a filter based on particular conditions in the cases or events.

More specifically:

  • A case filter allows us to “slice” a log, i.e., to retain a subset of the process cases, e.g., those cases that contain a specific activity;

  • An event filter allows us to “dice” a log, i.e., to retain a fragment of the process across multiple cases, e.g., an element containing two specific activities.

For the case and event filters, we can set several filter criteria. Let us take a look at the case filters first.

Case > Attribute filter

To retain or remove all the cases that include a specific attribute, we can use the Attribute filter. For example, we can retain only cases that have the attribute org:group to be A, or B.

For this, click on the Attribute filter. Select the org:group attribute from the drop-down list and tick the specific values to retain. Click on Apply.

../_images/image8.png

Note: For the numerical attributes only, there is an alternative to retain or remove cases by choosing the range of values using the “From”/”To” slider at the bottom of the filter window. We will see the list of values (categories) for categorical attributes like resources or product types and choose which specific values to retain or remove.

We can also retain/remove cases that include a secondary attribute. For instance, we can retain cases where resource group L (Secondary Attribute) performs an activity ER Registration.

../_images/image9.png

Note

We can also filter cases that include a specific case attribute as a primary/secondary attribute.

In addition, the Matching section allows us to set whether cases should be retained that satisfy any of the selected values (default selection) or all the selected values. When “All values” is selected, Apromore counts a case only when all the defined conditions are fulfilled. It can be seen as an AND operator. When “Any values” is selected, Apromore count a case when at least one of the condition is fulfilled. We ca see it as an OR operator.

Case > Case variant filter

We can use the Case variant filter to retain or remove the case variants based on a particular condition by entering the From variant and To variant values or using the time slider at the bottom of the Filter criteria window. For example, we want to retain up to 50 case variants to analyze the process’s most common behavior.

../_images/image10.png

Let us now take a look at the filter criteria for event filters. We can use the Event filter to dice the log, i.e., isolate a specific fragment of the process across all cases. The Event filter allows us to filter by AttributeTimeframe or Between.

Case > Case ID filter

Using the Case ID filter, we can choose to retain or remove cases based on a particular case ID. In the below screenshot, we are retaining those cases with case ID ‘AA’. The result would include the activities performed by the case ID ‘AJ’.

../_images/image11.png

Note

Case identifiers are treated as strings, and sorted alphabetically, even if they consist of numbers.

Case > Timeframe filter

The Timeframe filter allows us to retain or remove those cases that are “active in”, “contained in”, “start in,” or “end in” a particular time period of the log. The containment section is defined as follows:

  • Are contained in: The start and end events of a case fall within the timeframe.

  • Are active in: There exists at least one event of the case falling within the timeframe

  • Start in: The start event of a case falls within the timeframe.

  • End in: The end event of a case falls within the timeframe.

We can set the desired timeframe by entering the Start and End dates or using the time slider at the bottom of the Filter criteria window.

../_images/image12.png

Use the slider to define the time range to filter.

Predefined Timeframes

In addition, we can define a time range filter by setting predefined timeframes—for example, cases within a year or a month. To use predefined timeframes, click the Predefined timeframes dropdown and select the time interval we wish to specify. It could be Year, Semester, Quarter, Month or Week.

../_images/image13.png

Click Intervals. If we had selected Month, this lists all the months in the event log time frame.

A screenshot of a calendar Description automatically generated

We select the months we wish to filter and click OK.

../_images/image15.png

Relative Timeframes

We can specify relative timeframe filters. Relative timeframes are time intervals with respect to the present time. For instance, we can filter cases within the last three months or this year. In other words, as time progresses, the filter is updated.

To use relative timeframes, click the Relative timeframes checkbox. Use the dropdown to select the timeframe to filter by. To select the last three months, we can select Third last and Month from both dropdowns, respectively.

../_images/image16.png

Click OK to apply the filter.

Case > Performance filter

To understand a process, we might want to retain or remove cases that fulfill specific performance requirements, e.g., retain all cases within one month. We can use the “Performance” filter for this purpose. The performance filter can be used to filter the event log based on the following metric:

  • Case duration

  • Case length

  • Processing time (average, maximum, total)

  • Waiting time (average, maximum, total)

  • Case utilization

  • Node duration

  • Arc duration

Case duration

The case duration shows the time to complete each case. We can filter cases based on this duration. For example, we may wish to retain only those cases that last no more than one hour. Go to the Performance tab. Click Retain. Click Case duration from the Performance measure dropdown and adjust the filter to less than or equal to 1 hour.

../_images/image17.png

Click OK. The overview of the log statistics after applying the filter appears.

../_images/image18.png

Click OK to apply it.

Note

Similar to retaining cases that fulfill a filter condition, we may also remove the cases that satisfy a filter condition. When applying the filter in the performance tab, click Remove.

Case length

We can filter out cases based on case length (number of activity instances in the case). To filter by case length, select Case length in the Performance measure dropdown. For example, we may wish to retain all cases with a length of 3 to 10 activity instances.

../_images/image19.png

Click OK to apply the filter.

Processing time (average, maximum, and total)

The processing time is the time it takes to complete an activity. We can filter by processing time (average, maximum, and total) in Apromore. For instance, we may wish to filter cases where the average processing time is less than 5 minutes. To do this, click Average processing time from the Performance measure drop down. Set the filter condition to less than 5 minutes.

../_images/image20.png

We can similarly create filters that retain or remove cases by maximum processing time and total processing time. The maximum processing time is the highest processing time in all the cases. The total processing time is the sum of the processing time for each case.

Waiting time (average, maximum, and total)

Waiting time is the time between two activities. We can filter cases where the average waiting time is within a specified range. For instance, if we want to filter cases where the average time is less than 5 minutes, click Average waiting time from the Performance measure dropdown. Specify the duration condition.

../_images/image21.png

Similarly, we can filter by maximum and total waiting time by clicking the corresponding option from the Performance measure dropdown. The maximum waiting time is the longest waiting time between two adjacent nodes in a case. The total waiting time is the sum of all waiting times in a case.

Case utilization

The case utilization is equal to the ratio of the processing time to the sum of the processing time and waiting time. Mathematically, it is represented as

ProcessingTime / (ProcessingTime + WaitingTime)

Where:

  • ProcessingTime = the sum of the activities duration in the case.

  • WaitingTime = the sum of the waiting time in the case.

For example, consider the following event log, which contains one case:

Cas eID

Activity

Start Time

End Tome

1

Create Purchase Order

2022-09-03 09:00:00

2022-09-03 09:10:00

1

Check Availability of Products

2022-09-03 09:30:00

2022-09-03 09:50:00

1

Approve Purchase Order

2022-09-03 10:00:00

2022-09-03 10:30:00

There are three activities in this case.

The Processing Time of this case = 10 minutes + 20 minutes + 30 minutes = 60 minutes

The Waiting Time of this case = 20 minutes + 10 minutes = 30 minutes (there are 20 minutes of waiting time between the first and the second activity and 10 minutes of waiting time between the second and third activity).

Case Utilization = 60 minutes / (60 minutes + 30 minutes) = 60/90 = 0.67.

In Apromore, case utilization is represented as a percentage. Thus 0.67 is 67%.

If an event log has multiple cases, we calculate the case utilization of each case, and then we compute the average of all the case utilizations.

The case utilization is a number between zero and 100%:

  • A case utilization of 100% means that the workers are working on the case continuously the whole time.

  • A case utilization close to zero means that there is a lot of waiting time in the case. So the case was handled very inefficiently.

If we wish to filter cases where the case utilization is less than 67%, click Case utilization from the Performance measure dropdown. Specify the case utilization range; in our case, 67%.

../_images/image22.png

Click OK to apply the filter.

Node duration

We can select a node duration performance metric to analyze performance by retaining or removing different nodes of type activity, resource, or event attributes.

To apply the node duration filter, click Node duration from the Performance measure drop-down. If we wish to retain cases where the “Analyze Defect” activity took less than 7 minutes, select Activity from the Node type drop-down. In the matching tab, select All node instances in a case.

Note

Since an activity can be performed more than once in a case (e.g., during a ping-pong effect), we may select At least one node instance in a case when we want the filter to match cases where at least only one instance of the node satisfies the filter condition.

Lastly, edit the filter duration to less than 7 minutes.

../_images/image23.png

Click OK to apply the filter.

Arc duration

An arc is the path between two nodes. The arc duration measures the duration of the path between different nodes of type activity, resource, or other event attributes. For instance, we may retain cases where the duration between Analyze defect and Repair (Complex) is less than 20 minutes.

In the performance measure dropdown, click Arc duration.

../_images/image24.png

Select a Node type from the dropdown. In our case, we select Activity.

../_images/image25.png

Finally, we define the arc in the Arc tab. Click Option -> Option. In our example, our arc is between Analyze Defect and Repair (Complex).

../_images/image26.png

Click Close to apply the arc. Set the filter condition to less than or equal to 15 minutes.

../_images/image27.png

Click OK to apply the filter.

Percentile performance filter

We can filter based on a percentile over a performance metric in the performance filter. For example, retrieve all cases in the top-10th percentile of case duration. In other words, the top 10% fastest cases.

To use the percentile performance filter, tick on the Percentiles box, and enter the desired percentiles. For example, to retain the cases in the lower decile of case duration, enter 0 in the From and 10 in the To percentile.

A screenshot of a graph Description automatically generated

Click OK. The slider is updated to reflect that only the bottom-10th percentile is retained.

../_images/image29.png

Case > Path filter

We can use the Path filter to analyze the transitions between the activities performed. This is typically used for conformance checking. For example, it is required that the “ER Registration” activity is done before “ER Triage”. We can check whether this happened in all cases using the Rework filter.

Click on the Path filter. Click Remove. Click Eventually follows. Select “ER Registration” as From and “ER Triage” as To. This simply removes cases where ER Triage eventually follows ER Registration, leaving behind cases that it does not.

../_images/image30.png

We can also ensure the cases filtered have the same or different values of an attribute. This can be done by checking the Require checkbox.

For instance, we can ensure that in cases where ER Triage does not eventually follows ER Registration, the resource performing both activities are from the same group. Select “Same” and select org:group from the drop-down list of the Path filter.

../_images/image31.png

The time between the occurrence of activities can also be captured by using the Lower and Upper bound fields of the Path filter. For example, retain those cases where the time interval between ER Registration and Release A is greater than 2 hours.

../_images/image32.png

Case > Rework filter

In some processes, certain activities are repeated. This is called a rework. Rework in a case could be in three forms:

  • Self-loop: When an activity occurs more than once consecutively.

  • Short loop: When there is a back-and-forth between two activities. This is also called a ping-ping effect.

  • Indirect repetition loop: When several activities are repeated in a sequence.

Rework filter can isolate repetitions so that only those process sequences that contain specific repetitions are retained or removed. We can also set the Lower and Upper bounds for the reworked activities. The lower bound defines the minimum number of times the activity is repeated while the upper bound set the maximum number of times the activity is repeated.

For instance, if we want to determine the number of times the activity “Repair (Simple)” was repeated, we can set the lower bound to 2.

../_images/image33.png

We can also use the Rework filter to determine cases with a rework loop. For instance, we can determine whether there is a rework between “Test Repair” and “Restart Repair” activities. To ascertain there is rework between two activities, the first activity in the process (Test Repair) must occur at least twice. In contrast, the second activity (Restart Repair) occurs at least once.

To do this, set the lower bound of “Test Repair” to 2 and the lower bound of “Restart Repair” to 1. Select “Retain” cases and select “All values” for Matching.

../_images/image34.png

Click OK to apply the filter.

../_images/image35.png

The result shows that in 293 cases, there was a rework loop between “Test Repair” and “Restart Repair”.

Case > Blocks filter

The Blocks filter is a new type of filter that allows us to create filters consisting of multiple conditions in an intuitive manner. We can create multiple filter conditions in one go by dragging and dropping filter blocks.

A Blocks filter consists of one or more block rows. This is the filter criterion that would be applied to the log. The simplest block row consists of the following:

  • A left-hand side consisting of a single attribute or a metric (e.g., case duration)

  • A logical operator (e.g., equal, greater than, etc.)

  • A right-hand side, which may be an attribute, a metric, or a constant value (e.g., 100 or “Japan”)

Multiple block rows are concatenated by either an “AND” logical operator or an “OR” logical operator. If the “AND” logical operator is selected, then the Blocks filter criterion is fulfilled if every one of its conditions (i.e., block row) is true. If the “OR” operator is selected, the Blocks filter criterion is fulfilled if at least one of its conditions is true.

To create a block filter, click the filter icon to open the Filter log window, then click Blocks.

../_images/image36.png

The blocks filter environment is displayed.

../_images/image37.png

The Blocks filter environment contains different sections.

  • Cases (retain or remove): This option determines whether a case that fulfils the Block filter criterion should be retained or removed.

  • Description: This allows us to enter the description of the filter to be created. If no description is added, Apromore uses “User-defined blocks filter” as the default description.

  • Starting blocks: This is the attribute or metric we wish to begin our filter with (the left-hand side of a condition). There are two types of starting blocks.

    1. Attributes: Displays attributes in the log. For instance, if we want to filter an attribute, say cases in AUS, we can add an Attribute starting block and select Country.

    2. Metric: Displays performance metrics that can be derived from the log. If, for instance, we want to filter cases where the Case duration is greater than a value, we can add a Metric starting block and select Case duration.

Note

All block rows must begin with a starting block.

  • Chain blocks: This allows us to complete the filter criterion or continue expanding the block row. We can add multiple chain blocks to create a more complicated filter criterion on a block row. For instance, we can add a block row that filters cases where the discount rate * invoice amount = discount. In this example, there are two chain blocks — the invoice amount and the discount.

There are three types of chain block:

  1. Attribute: Displays attributes in the log.

  2. Metric: Displays performance metric in the log.

  3. Value: Allows us to enter a specific value.

  • Operator: This can be a mathematical operator such as greater than, less than, addition, etc., that defines the operation to be performed on two consecutive blocks. Apromore shows a dropdown of possible operators depending on the data type of the block on the left side. The available operators can be classified into three:

    1. String operators: Appears when the block on the left side is a string data type, e.g., activity. The operators are starts with, ends with, contains, equal to, not equal. All string operators return a boolean.

    2. Numerical operators: Appears when the block on the left side is a numerical data type, e.g., case duration. This can either return a Boolean or non-boolean.

      1. Boolean: The operators are equal, greater than, less than, greater than or equal to, less than or equal to, and not equal.

      2. Non-boolean: The operators are addition, subtraction, division, multiplication, square root, and power.

    3. Timestamp operators: Appears when the block on the left side is of timestamp data type. This can either return a boolean or non-boolean.

      1. Boolean: The operators are equal, greater than, less than, greater than or equal to, less than or equal to, and not equal.

      2. Non-boolean: The operators are addition and subtraction.

Note

A boolean operator must be the last operator on a block row. When a Boolean operator is selected, the block row is considered complete, and we cannot add further chain blocks. Conversely, when a non-boolean operator is selected, the block row is considered incomplete, and another chain block must be added.

  • Logic operators: This determines how the filter criterion is fulfilled. It allows us to concatenate multiple block rows using AND or OR logical operators. There are two logic operators:

    1. AND (A): Filter criterion is fulfilled only when all the filter conditions in the block rows hold true.

    2. OR (O): Filter criterion is fulfilled if at least one of the filter conditions in any of the block rows holds true.

To demonstrate the use of Blocks filter, let’s create a filter that retains cases with the following criteria:

  • Cases in AUS.

  • Cases where the invoice amount + 20% of the invoice amount (assuming VAT) is greater than 100,000 AUD.

  • Cases where the case variant frequency is greater than 5.

Since we have three separate criteria, we will create three block rows and concatenate them with the AND logic operator. For the first block row, add an attribute block. The dropdown contains a list of attributes from the log. Select Country.

../_images/image38.png

To complete the criterion, add a value chain block and select AUS from the dropdown. Ensure the condition is set to equal to (=).

../_images/image39.png

To add the next block row, drag the AND logic block under the first starting block.

../_images/image40.png

If we wish, we can quickly switch from AND to OR by clicking the smaller-sized OR icon.

../_images/image41.png

Next, we add the second block row. Add an attribute starting block and select Invoice_amount. Since we want to retain cases where the invoice amount + 20% of the invoice amounts is greater than 100,000 AUD, drag the attribute chain block and select Invoice_amount. Select the + operator.

../_images/image42.png

Note

The red warning sign indicates that the block row is not complete.

Now let us complete the block row. Add a value chain block and enter 0.2. Select the × operator. Lastly, drag another value chain block and enter 100000. Select the > operator.

../_images/image43.png

Next, the third block row. Drag and drop the AND logic block. We want to retain cases where the case variant frequency is greater than 5. Therefore, we use the Metric starting block. The dropdown contains a list of metrics such as Case duration, case length, case cost, etc. Select Case variant frequency from the dropdown.

../_images/image44.png

Complete the condition by dragging the value chain block. Set the condition to > and enter the value 5.

../_images/image45.png

We can add a description for this filter.

../_images/image46.png

Click OK to apply the filter.

../_images/image47.png

We see 16.32% of the cases fulfil our filter criteria.

Note

We can delete a block at any time by clicking the smaller sized delete icon in the block. We can also delete all blocks by clicking the delete icon in the bottom-right corner.

../_images/image48.png

Event > Attribute filter

The Attribute filter of type Event allows us to retain or remove those events that satisfy the values of a specific event attribute. For example, we may want to remove those events whose activity label is “ER Registration”. This means effectively to dice the log in such a way to exclude all events related to activity “ER Registration”.

../_images/image49.png

Any attribute value can be used to set conditions. For example, to remove all events where the value of “DiagnosticIC” is false, we can select DiagnosticIC from the drop-down list of event attributes and then select the specific value we may want to retain or remove.

../_images/image50.png

Event > Timeframe filter

The second type of event filter criterion allows us to retain or remove events based on a particular timeframe. We can set the desired timeframe by entering the Start and End dates or using the time slider at the bottom of the Filter criteria window.

A screenshot of a graph Description automatically generated

Event > Between filter

The third filter criterion allows us to define a new filter criterion to retain or remove events between the first or last occurrence of a source and target node in the process map.

To do this, select the “start” of the between filter activity from the Source list on the right and the “end” activity from the Target list on the left.

For example, we can retain all events between the first occurrence of the “ER Triage” activity and the last occurrence of the “ER Registration” activity. Click OK.

../_images/image52.png

To include the selected activity and make the between filter interval inclusive, select Include selection.

The example below filters cases between the first ER Triage, including this activity and the last ER Registration, excluding this activity.

../_images/image53.png

Undo/Redo filters

Filters can be applied and removed using the Undo/Redo buttons. To undo a filter criterion, click the Undo filter button.

../_images/image54.png

To reapply the previous filter, click the Redo button.

../_images/image55.png

Clear all filters

To clear all the applied filters, click the Clear all filters button.

../_images/image56.png

Shortcuts

Note

  • Right-click on an arc: remove all cases containing the selected directly-follows relation

  • Shift + right-click on arc: filter cases based on this arc’s duration (from any perspective)

  • CTRL + Right-click on an arc: retain only cases containing the selected directly-follows relation

  • Right-click on a node: remove all cases with an event containing the selected attribute

  • CTRL + Right-click on a node: retain only cases with an event containing the selected attribute

  • Alt (Option) + Right-click on a node: remove all events containing the selected attribute

  • Alt (Option) + CTRL + Right-click on a node: retain only events containing the selected attribute

  • Shift + right-click on a node: filter cases based on this node’s duration (from any perspective)

  • Shift + CTRL+ right-click on a node: filter cases using this node as a primary attribute.

  • CTRL + Z: Undo

  • CTRL + Y: Redo