Analytics/Limn/design

This page compiles design information to improve some aspects of Limn. Feel free to provide ideas, questions and comments at the talk page.

Visualisation creation workflow
Limn allows to create visualisations of different kinds of data. Datasources represent a type of data (e.g., number of active editors), and contain more specific metrics that can be added to a visualisation (e.g., active editors from India, active editors from Asia, total of active editors...). Creating a new visualisation involves deciding which metrics to display and making some additional adjustments about the way they are displayed.

Users, goals, and scenarios
A target user for Limn:
 * Lacks analytics knowledge
 * Makes important decisions based on data

The user goal is to get quickly the visualisation they need. Some possible scenarios:
 * I want to view "daily and monthly mobile visits for South America countries" to compare the growth of hose communities (daily and monthly visits being separate datasets).
 * I want to view the number of active editors (on mobile and desktop) for each Spanish-speaking country as separate visualisations that I can share with the Chapter of each country.
 * I want to combine my usual visualisation (which I use to report to a team mnthly), with this new data about rain, to check if users edit more when they stay at home because of the rain.

Current status
Two sessions were organised to observe the current use of Limn regarding the creation of new visualisations. The following observations were made:
 * Metric selection lacked flexibility. Selection of metrics was done in a one step. Users select datasets for which all metrics are added to a common list. the users had little options to filter this list ("remove" or "only" to remove the rest).
 * Cross-concept selection was not supported. Users focusing on information about some countries across different datasets, had to select the same countries again and again for each dataset.
 * Some context information was not provided. there was no easy access to the recent values, or the proportion of a specific value with respect to the total.
 * Not possible to export the data from the visualisation. Once a visualisation is made, it represents a specific view of the data across different datasources. Currently users could not export this view of the data in a tabular form for additional analysis.
 * The tool was perceived as slow. At different points it was not clear whether the system was processing information or not. In addition to the possible performance improvements, there is an opportunity to improve the perceived speed, and to better communicate the status system on waits.

Design principles

 * Allow direct manipulation. Avoid indirection steps that feel as configuration. By affecting directly the visualisation, users will be encouraged to explore since the effects of their actions are clear.
 * Be flexible. We don't know beforehand the kinds of data the user will be dealing with and the ways they want to combine it. The tool needs to provide generic mechanisms to effectively play with data in different forms.
 * Accommodate complexity. Make the creation of simple visualisations simple, and the creation of complex visualisations possible. Supporting complex scenarios should not add additional complexity to the creation of simpler visualisations.

Create visualisation


The creation of new visualisations will be supported by the following elements: With the elements above, '''adding metrics can be an iterative process. '''Users are able to open a panel to add new metrics at any time. The panel allows the user to still view the visualisation, so that when a metric is added (or removed) the result is reflected in the visualisation. More details about the process of adding metrics is provided below.
 * Basic information. Where the user provides name and description for the visualisation.
 * Visualisation ID. Currently visualisations are given an ID by the user. the user is asked to follow a specific format (using underscores instead of spaces). We can ask the user for the name first, and generate automatically an initial ID from it.
 * Visualisation graphic. The visualisation is the central element of the process and it should reflect the user actions (e.g., adding metrics) as they happen.
 * Graphic settings. Adjustments related to the visualisation such as adding notes, adjusting scales, or changing the kind of visualisation.
 * Current metrics. A list of the metrics displayed in the visualisation is provided. this is the place where the user performs actions to the current metrics. This actions include to hide or remove them from the visualisation, change the colour or format in which they are presented, etc. in addition, there is a call to add new metrics that will show the "add metrics panel".
 * Add metrics panel. This allows the user to explore the available datasources and select metrics to display. different aids are provided to facilitate the selection.

Select metrics
Animation showing the use of tags for highlighting similar metrics, and filtering them.


 * The selection of metrics is performed in an expandable panel:
 * The panel is not initially maximised (to keep the visualisation visible so that effects of selection can be viewed immediately.
 * The users can expand the panel t make use of the whole screen for the selection task if needed.
 * Datasources and metrics are presented in a two-column layout so that users can scroll both lists independently. When the user selects a datasource at the left column, all the metrics of this dataset are displayed at the metrics list at the right.
 * Search and category filtering is provided. Users can filter datasets containing a specific text (search) and show only datasources currently used (category).
 * For datasets currently in use, a virtual dataset "All" will be displayed so that all metrics used can be viewed in a single list.
 * Tags are used for facilitating selection. They provide powerful capabilities in a simple way:
 * Tags are associated to metrics to represent connections among metrics of different datasets. For example, the metric "Mobile editors for Wikipedia in Japan" from the "Mobile editors" dataset, may be associated with #wikipedia and #Japan tags.
 * A list of current tags helps user selection since the elements matching the tags will be highlighted. When a metric is selected, their tags are added to the list, as a result the user sees similar elements to the one selected become highlighted.
 * Users can add/remove tags to the list manually. when tags are present in the search field, they are also added to the search list.
 * A quick action to select all highlighted elements is provided. For example, if a user selected metrics corresponding to 12 countries from one dataset, selecting the metrics related to those countries can be done in a single step for a different dataset.
 * Tags can be activated. When a tag is active (in blue in the design document) it acts as a filter. Only the elements matching all active tags are displayed. This allows for filtering the list.
 * When a tag is active it no longer highlights the elements in the list (otherwise all visible elements will be highlighted) so that other tags can be used for highlighting and selection.
 * Some additional controls related to the tag list are considered: remove all tags, activate/deactivate all tags, and avoid tags from being added when selecting metrics (padlock).

Current metrics
The current metrics view provides a list of metrics in use for the current visualisation. It is composed of:
 * Metrics heading. It indicated that the list below contains metrics and acts as an entry point for general actions about metrics:
 * New visualisation for visible metrics. To quickly create a view as a subset of the current one.
 * Export current view as tabular data.
 * Dataset group. Metrics from the same dataset are grouped by dataset.
 * Modify metrics. The "Add metrics panel" is opened with this dataset selected so that users can add/remove metrics form it.
 * Metric. Each metric is displayed. Actions can be triggered for each of them:
 * Hide from the visualisation.
 * Remove from the list.
 * Change the colour used for the visualisation.
 * Tags. Current tags are also displayed so that some actions can be performed to similar metrics across different datasets.
 * Create series of visualisations. To generate several visualisations where only metrics matching the tag change. This allows to create a visualisation per country easily.