Best Practices for Designing Dashboards: Difference between revisions

From QPR ProcessAnalyzer Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
This article describes commonly used best practices that should be followed when designing and editing dashboards. Following these best practices make sure that the dashboards are easy to maintain, respond quickly and are understandable and illustrative.
This article describes common best practices that should be followed when working with dashboards. Following these best practices make sure that dashboards are easy to maintain, respond quickly and are understandable and illustrative.
 
== Usability ==
* Use the [[QPR_ProcessAnalyzer_Chart#On-screen_Settings|on-screen settings]] for settings that often users want to change, as they are easier to access than opening the settings dialog. They also guide users to variate and adjust parameters that are relevant for the analysis.
* Limit the shown case and event attributes and event types, if there are some that are not used in the analysis. This will make the dropdown lists shorter making it easier for users to find the relevant selections. The shorter lists don't have performance impact, though.
* Mappings from measures and dimensions to visualization, such as X- and Y-axis can be set freely, so dimensions don't always need to go to the X-axis and measures to the Y-axis. For some special analysis, it might be easier to use the table to first configure the desired measures and dimensions, and then switch to the desired graphical visualization (such as column, bar or line chart) and map the table columns to the chart.
* Use presets as basis when creating charts. The presets contain commonly needed analysis, so in many cases you'll find what you are looking for from the presets. It's easy to create a chart by starting from a preset, and continue modifying the chart settings for your customized needs.
* Avoid the [[QPR_ProcessAnalyzer_Chart#Visual_Settings|Custom Layout json settings]] as their compatibility with future QPR ProcessAnalyzer releases might not be maintained in a stable way. Use the custom layout json only when it's absolutely necessary to achieve the desired visualization.


== Visualization ==
== Visualization ==
* Define a custom title for the chart, if the automatically generated title is not descriptive.
* If the automatically generated title is not descriptive enough, use a [[QPR_ProcessAnalyzer_Chart#Visual_Settings|custom title]]. Also define custom labels for measures and dimensions if they describe the them better. The measure and dimension labels are shown in chart axes, tooltips and table headers. In many measures and dimensions, the automatically generated titles are suitable.
* Define a custom label text if they describe the measures and dimensions better. Still, in many measures and dimensions, the automatically generated title is suitable.
* Check that each measure and dimension has a descriptive unit. For example, the generic process mining terms "cases" and "events" might be replaced with what they actually represent, such as orders, incidents etc.
* Check that each measure and dimension has a descriptive unit. For example, the generic terms "cases" and "events" might not describe the counts best, and cases might be orders, incidents etc.
* Note how the [[Measure, Dimension and Column Settings#Special values|special values]], such as nulls and empty strings, are presented and set descriptive labels for them. For example, when showing duration between events, cases which don't have the events which the duration is calculated from, are shown as nulls. Instead of an empty label, the label can be "Events missing" etc.
* Note also how the [[Measure, Dimension and Column Settings#Special values|special values]] , such as null and empty strings, are presented and set a descriptive label name. For example, when showing duration between events, cases which don't have the events, are shown as nulls. Instead of empty label, the label can be "Events missing".
* Use conditional formatting to improve KPI visualization, especially in [[QPR_ProcessAnalyzer_Table#Conditional_formatting_examples|tables]] where the pure numbers are slow to read. There are variety of visualization options, such as background color, data bar or icons. Colors can be based on predefined traffic lights or continuous color scales.
* Use conditional formattings to improve KPI visualization, especially in tables.
 
== Usability ==
* Use on-screen settings for settings that often users want to change, as they are easier to use than opening the settings. They also guide users to change parameters that might be relevant from the analysis viewpoint.
* Limit the shown case/event attributes and event types, if there are some that are not needed. This will make the dropdown lists shorter making it easier for users to find the important selections. This doesn't have performance impact, though.
* Mappings from measures and dimensions to visualization, such as X-and Y axis can be done freely, so dimensions don't always need to go to the X-axis and measures go to the Y-axis. For some special analysis, it might be easier to use the table to first set the desired measures and dimensions to get the needed data, and then switch to the graphical visualization (such as column, bar or line chart) and map the table columns to the chart.
* Use preset as basis when designing dashboards. The preset contain commonly needed analysis, so in many cases, you'll find what you are looking for from the presets. It's easy to create a chart by taking a preset as a basis, and continue modifying the chart settings for your customized needs.
* Avoid [[QPR_ProcessAnalyzer_Chart#Visual_Settings|Custom Layout json settings]] as their compatibility with future QPR ProcessAnalyzer versions might not be maintained. Use the custom layout json only when it's absolutely necessary to achieve the desired visualization.


== Working with filters ==
== Working with filters ==

Revision as of 00:16, 31 March 2022

This article describes common best practices that should be followed when working with dashboards. Following these best practices make sure that dashboards are easy to maintain, respond quickly and are understandable and illustrative.

Usability

  • Use the on-screen settings for settings that often users want to change, as they are easier to access than opening the settings dialog. They also guide users to variate and adjust parameters that are relevant for the analysis.
  • Limit the shown case and event attributes and event types, if there are some that are not used in the analysis. This will make the dropdown lists shorter making it easier for users to find the relevant selections. The shorter lists don't have performance impact, though.
  • Mappings from measures and dimensions to visualization, such as X- and Y-axis can be set freely, so dimensions don't always need to go to the X-axis and measures to the Y-axis. For some special analysis, it might be easier to use the table to first configure the desired measures and dimensions, and then switch to the desired graphical visualization (such as column, bar or line chart) and map the table columns to the chart.
  • Use presets as basis when creating charts. The presets contain commonly needed analysis, so in many cases you'll find what you are looking for from the presets. It's easy to create a chart by starting from a preset, and continue modifying the chart settings for your customized needs.
  • Avoid the Custom Layout json settings as their compatibility with future QPR ProcessAnalyzer releases might not be maintained in a stable way. Use the custom layout json only when it's absolutely necessary to achieve the desired visualization.

Visualization

  • If the automatically generated title is not descriptive enough, use a custom title. Also define custom labels for measures and dimensions if they describe the them better. The measure and dimension labels are shown in chart axes, tooltips and table headers. In many measures and dimensions, the automatically generated titles are suitable.
  • Check that each measure and dimension has a descriptive unit. For example, the generic process mining terms "cases" and "events" might be replaced with what they actually represent, such as orders, incidents etc.
  • Note how the special values, such as nulls and empty strings, are presented and set descriptive labels for them. For example, when showing duration between events, cases which don't have the events which the duration is calculated from, are shown as nulls. Instead of an empty label, the label can be "Events missing" etc.
  • Use conditional formatting to improve KPI visualization, especially in tables where the pure numbers are slow to read. There are variety of visualization options, such as background color, data bar or icons. Colors can be based on predefined traffic lights or continuous color scales.

Working with filters

  • Filters can be added both to the dashboard level (affecting all charts) and to individual chart level. For filters that will be used by most of the charts, are usually best to set to the dashboard level. For those charts that don't use the common filters, the Chart Follows Dashboards Filters setting can be disabled. Difference between the dashboard and chart level filters, is that the dashboard level filters are all the time visible in the dashboard, and they can also be easily changed by users. From the performance viewpoint, it doesn't matter in which level the filters are defined.
  • The dashboard level filter can either be an Unsaved filter or it can be saved as a separate filter object in the model. The dashboard anyways stores the filter rules, so saving the filter is not necessary. The difference is that the stored filter has a name which is visible below the model name. Also if the dashboard level filter rules are changed, the original filter can be restored by selecting the saved filter in the filters menu.
  • If no meaningful filters can be created from a chart, disable the Create Filters from Chart setting. When filtering is disabled, the cursor indicates that there are no clickable items in the chart.

Performance optimization

  • For the Analyzed objects setting, prefer Cases over Events, as calculating from events is slower than cases, because usually there are more events than cases. Some measures, even though calculated from the event data, can still be calculated from cases. Also Variations, Event types and Flows are generally fast. On the other hand, Flow Occurrences is slow, as there are even more flow occurrence objects than events.
  • The more there are charts in the dashboard, the more it takes to get the dashboard opened and all chart shown. This is because each chart requests a calculation which all need to be done at the same time in the server. If the dashboard opens slowly, charts could be divided into multiple dashboards and links created to navigate between them.
  • Prefer ready-made measures and dimensions, and create custom only when there no ready-made available. This is because the ready-made measures and dimensions have been optimized for performance. When creating a custom measure or dimension, you need to be careful not to write the calculation formula in an inefficient way.
  • For some simple calculations, the Statistical calculations can be used instead of need to write a custom expression. Also the Adjustment expression is useful in avoiding a fully custom expressions in some occasions.
  • Limit number of returned rows by using the Maximum Rows setting. The less there are rows, the better performance as there is less data to calculate, transfer and visualize. In many dashboards, limiting the amount of shown data is also desired for usability, e.g., show only the top-20 most important items.
  • Sorting the data affects performance, so use sorting only when it's relevant for the analysis.
  • Group Rows Exceeding Maximum goes through all rows that otherwise would be left out of the calculation, which has an impact on the performance, so use it only when the information is useful for the analysis.
  • Don't use dimensioning when it's not needed. When desire is to have a row for each root object, dimensioning is unnecessary. For example, Cases as Analyzed objects and dimensioning by case id will lead to a row for each case, but the same result can be achieved by disabling dimensioning.

Advanced performance optimization

  • For slow performing charts, use the Benchmark Performance to experiment which settings provide the best performance. Usually the first thing to do is setting up a working chart, and if the chart shows too slowly, with the benchmark performance you can try to find an alternative and faster way to calculate the same chart.
  • Calculated attributes can improve performance, as they can pre-calculate expressions already in the model loading. For example, event level information can be calculated to case level using calculated case attributes. Calculated attributes cannot be used when there is event type filtering applied, as the calculated attributes are calculated when the model is loaded and thus filtering doesn't affect them. Also, don't use calculated attributes unnecessarily, because they are stored into memory, and thus they consume memory similar to normal attributes.
  • Don't calculate anything from the entire model level in calculated attributes expressions, because it will lead to very slow performance in model loading.
  • Avoid calculating same expressions multiple times in different measures of the same chart. If there are repeating expressions, create a separate measure for the repeating part, and define the measure as a variable, which can then be referenced from other measures.
  • When using custom expressions, and there are parts of the expression that give same result for all measures/dimensions, calculate that part separately in the Additional root expression and store the result to a variable. This way the calculation is done only once improving performance significantly. For example, if creating a measure that makes a comparison to the entire model, such as percentage of the entire model data, the model level part should be calculated in the Additional root expression.
  • Sampling the data improves performance significantly. The idea of sampling is to pick only a portion of the root objects for the dimension and measure calculation to improve performance. Still, in most charts sampling cannot be used, as it affects the analysis results, for example count of cases and events. See more of the Analyzed objects sample size setting.
  • Different models can be used in the same dashboard, and for example filtering still works if the models use same case/event attribute and event type names. This allows to create models optimized for specific charts, which might improve performance.

Exporting data

  • When exporting large amount of data, use the CSV export, as it performs better for large data comparing to the Excel export. Very large datasets (such as over million rows) cannot be exported even with the CSV export in one run. To get the data exported, the dataset can be divided into smaller parts by using the Start at row and Rows to export settings.