All data stored in Watershed for reports takes the form of xAPI interaction statements. These record a who-what-when of learner interactions, enabling you to explore the interactions the learner took over time. This is a big advantage over earlier learner data models that might have only stored the latest status for the learner.
But what if the latest status is actually just what you want? How can you get from this stream of interactions to the current and most up to date status for the learner for a given metric? This guide explains how.
- User Roles
- Global Admins, Area Admins, and some Users can use this feature.
- Pricing
- Available on paid plans (Analyst, CLO, and Enterprise).
- Expertise
- Experts can use this feature.
Display the most recent status
You can use a measure with the LAST aggregation to display the most recent status for a given metric. Simply create a measure using the LAST aggregation in measure editor and use it in a report. For example, the configuration below is used to show the most recent score for the Leadership Assessment.
If you’re not familiar with creating and using Measures, take a look at the guide for the report type you are using (e.g. the Bar report) and the Measure Editor guide.
Filter only people with a particular most recent status
Or perhaps you want to filter people based on their most recent status, for example to get a list of people who have registered for a course. This can be done using a Measure Filter in Advanced Configuration.
For example, the filter below will only show data about people whose most recent status in relation to the example course is ‘registered’.
"peopleFilter": { "measureFilter": { "measure": { "name": "Last Verb", "aggregation": { "type": "LAST" }, "valueProducer": { "type": "STATEMENT_PROPERTY", "statementProperty": "verb.id" } }, "equals": { "values": { "ids": ["http://adlnet.gov/expapi/verbs/registered"] } }, "filter": { "activityIds": { "ids": [ "http:/example.com/courses/some-course" ] } } } }
Count the number of people with a particular status
You can use a similar approach and the Last Value Count aggregation to create a measure to count people who have a particular status. The example below will count the number of people whose most recent status for the example course is ‘registered’.
{ "name": "Number of people registered for Some Course", "aggregation": { "type": "LAST_VALUE_COUNT", "lastValueProperty": "verb.id", "testValue": "http://adlnet.gov/expapi/verbs/registered", "regExp": false }, "valueProducer": { "type": "STATEMENT_PROPERTY", "statementProperty": "actors.person.id" }, "filter":{ "activityIds": { "ids": [ "http:/example.com/courses/some-course" ] } } }
Here's an example of how Last Value Count measures might be used in a report.