Line Report

What is a Line Report?

The Line Report displays learner performance on a line chart. Choose multiple measures and the Line Report will display values with colored lines. It’s ideal for viewing change in measure values over time.linereportexample.png

Who can use this feature?
 User Types
Any user with access to the report builder (Global Admins, Area Admins, and some Users) can edit a Line Report. All users can view a Line Report.
Available on paid plans (AnalystCLO, and Enterprise).
Anybody (both beginners and experts) can use this feature.

Creating and Editing a Line Report

Use the report builder to create new Line Reports and to configure existing Line Reports.

Line Report Filters and Options

Beyond the typical report builder filters and options, the Line Report provides options that are unique to the Line Report.

Line Section

When setting up a new Line Report or configuring an existing Line Report, click Line in the filter menu:choosinglinereportbuilder.png

Below are the different options in the Line section:


On the Organized menu, you’ll choose what you’d like to rank on the Line Report. Just choose an option from the Organized menu and the Line Report will organize data by what you’ve chosen.

For example, if you choose By Month in the Organized menu, your line will be organized by month, and the each measure represented on your line chart will have a point per month that it has data for: bymonthline.png

The Line Report also allows you to specify a second By Month value (also called a "second dimension". If specified, this will create additional lines per measure, for each item in the second dimension you select. We recommend using the second dimension option only with a small number of measures (ideally just one measure) to avoid too many lines. Your reports are clearer if you keep them simple.

In this example, the first dimension in Organized is By Month (like in the example above) and the second dimension in Organized is By Group. 5 measures have been selected (like in the example above), so with each group shown, there will be 5 lines shown. 2 groups are chosen here:bymonthbygrou.png


On the Measures menu, you’ll choose how you’d like to rank what you chose in the Organized menu. You can choose multiple measures for the same Line Report, but we don’t recommending choosing more than 4 to keep your chart clear.

For example, if you choose By Week in the Organized menu and you chose Interaction Count as a measure, the X axis will show the month month and the y axis will show the number of interactions each month:measuresline.png

To add a measure to the Line, choose a measure from the Select a Measure menu and click the Add Measure button next to the menu. You’ll see the measure added to the Line, and the measure will be added to the Measures section. To deselect a measure, click the X next to the Measure in the Measures section:measureselectionline.png

Chart Type

Chart Type determines if the line chart will shade in the area under each line.

  • The Line option will not show any shading under the line
  • The Area option will shade under each line with the same color as the line.
The Area Chart Type is especially useful when you have a pair of related measures where one shows progress towards or a part of another. For example, this Line Report shows a count of times a video was watched at different amounts up until 100%:line.PNG


Charts determines if the report viewer will view all measures on the same line chart or separate measures on different line charts within the Line Report. No matter which option you choose, a single chart is always used on the dashboard view.

  • Single Chart displays all measures on a single line chart.
  • Charts by measure separates measures onto different line charts within the Line Report.


Gaps determines how the report will handle gaps in the data. For example, if a report is organized by day and there was no activity on a certain day, this option determines whether the Line Report  will connect the points either side of the gap, leave a blank space, or fill in the gap with zero values.

  • Connect will draw a line between two points with data if there are gaps between them.
  • Don't connect will not connect two data points with data gaps between them.
  • Fill with zeroes will assume all data gaps should be represented by zeroes on the chart and fill the gaps by making the line go to zero in every instance where there are gaps in the data. Filling with zeros is normally the most appropriate for data based on counts since no data is effectively a count of zero.

Unfiltered Line

Aside from editing the report, Report viewers can filter Line Reports in one of two ways: using Quick Filters at the top of the report, or (for reports with secondary dimensions) using the checkboxes listed at the bottom of the report. By default, when you apply these filters, the Line Report only shows filtered data.

Sometimes, you might want to compare the filtered data against unfiltered data on the same chart. If the Unfiltered Line option is set to Include, when you use Quick Filters or a secondary dimension, the report will show you both the unfiltered data and the filtered data so that you can compare the two.

When using one dimension, the unfiltered line is only visible when using Quick Filters, because without Quick Filters, the main line shows the overall value anyway. With Quick Filters enabled, the report will show a comparison of the filtered data with the unfiltered data. For example, in the screenshot below, you can see a comparison of the overall average score with the average score between a filtered pair of learners.

When using two dimensions, Watershed splits up the data by the 2nd dimension and provides dimension filters below the line chart with checkboxes to compare different items in the dimension. With the Unfiltered Line enabled, Watershed will include an additional item at the top that shows data for all items combined. The can be useful if, for example, you want to compare the overall average score with the average score for a particular learner. In the example below, we can see how Ashley Schmidt’s score compares to the overall average and to the benchmark over time.

Advanced Configuration

 Advanced configuration is designed to be used by expert users who understand JSON and the properties of xAPI statements.

Certain settings unique to the Line Report are configurable in Advanced Configuration.



Example values


If true, the graph will display as a line. If false, it will display a line with the area under the line filled in.



If true, where there is no data for a particular point along the y axis, Watershed will leave a gap to indicate this.

If false, Watershed will join all the dots with a line across the gap.



If true, Watershed will assume points with no data are 0. The value of allowGaps will be ignored.

This is the most appropriate option for count based measures.



If true, the data will be displayed as a single graph; otherwise it will display a graph per measure.



When a second dimension is used, this property defines a list of items that are selected by default and shown on the graph. For reports organized by a dimension that uses an id (most of the default statement property dimensions), use the id of the item rather than what is displayed.

["apple", "orange"]

[12345, 12346]


Adds lines representing events and interventions to the chart. See Event Lines.

 Related: Check out our Advanced Configuration guide for more information on customizing your reports.

Event Lines

Line Reports are a great way of showing changes in metrics over time, or the impact that an event or events have had on those metrics. Whether it’s coaching sessions, training events, or communication campaigns, Event Lines offer a way to visualize these key events on reports.


Event Lines are configured in Advanced Configuration using the eventLines property. This contains an array of object, each configured to filter a specific set of xAPI statements representing the events to display. A separate event line is added for every xAPI statement filtered by the event line settings and positioned on the chart based on that statement’s timestamp property.

Example configuration is shown below:

"eventLines": [
    "filter": {
      "activityIds": {
        "ids": [
    "labelTemplate": "Coaching Intervention",
    "tooltipTemplate": "<div align='center'><b>Coaching Intervention</b></div> <div align='center'>Topic: {{replace (replace result.response '<p>' '') '</p>' ''}}</div> {{ }} on {{substring timestamp 0 10}}",
    "color": "red",
    "width": 2

The table below explains each of the properties shown in the example above.




Filter object to use to select xAPI statements that represent events. See Advanced Data Filters for details of configuring filters.


Represents the text to display on the chart to the right of each event line. This can include some simple html code, and handlebars functions.

This can be left blank if you don’t want to display any text on the chart.


Represents the text to display in a tooltip when the user hovers over the event line. This can include some simple html code, and handlebars functions.

Handlebars functions can include the values of xAPI statement properties, referenced using dot notation e.g. “result.response”.


The color of the event line. This can be a color name (e.g. “red”) or hexadecimal code (e.g. “#ff0000”).


The width of each event line in pixels. We recommend between 2 and 5 pixels, but you can experiment with other values.

The screenshot below shows how tooltips for event lines are displayed.


Event Lines Handlebars Functions

Related: Event Line labels and tooltips can use the same handlebars functions as used for CSV templates. See CSV Templates Functions and Variables

Handlebars functions can include the values of xAPI statement properties, referenced using dot notation e.g. {{result.response}} will insert the value of the xAPI result.response property.

To access xAPI properties that use arrays requires the handlebars {{#each}} function. For example, to get the id of the first parent context activity, use this:

{{#each context.contextActivities.parent}}{{#if @first}}{{}}{{/if}}{{/each}}
Was this article helpful?
1 out of 1 found this helpful

If you can't find what you need or you want to ask a real person a question, please contact customer support.