A common question to evaluate the impact of training is to ask how people performed before and after they completed the training. This is simple if the training happened on the same day for everybody, but what if people attended the training, completed the e-learning, watched the video etc. all at completely different times? In that case, you need to compare performance metrics for different time periods for each person. This guide explains how to do that.
- 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. Beginners can use this feature if an expert sets up the measures first.
Create a Range Report
The Range report is designed to show the difference between before and after data, so is an ideal report type to use for this purpose (though you can use other report types if you prefer). Select this from the carousel in the report builder.
Create ‘before’ and ‘after’ accumulation measures
The next step is to create Accumulation measures that look at the data before and after the training. These can be configured in Advanced Configuration using the syntax described in the Measure Editor guide. Here’s two example measures for the course http:/example.com/courses/some-course
and for KPI data stored at result.extensions.[http://example.com/extension/KPI]
.
"measures": [ { "name": "KPI Before Training", "aggregation": { "type": "ACCUMULATION", "eventFilter": { "activityIds": { "ids": [ "http:/example.com/courses/some-course" ] } }, "aggregation": "SUM", "before": "P6M" }, "valueProducer": { "type": "STATEMENT_PROPERTY", "statementProperty": "result.extensions.[http://example.com/extension/KPI]" } }, { "name": "KPI After Training", "aggregation": { "type": "ACCUMULATION", "eventFilter": { "activityIds": { "ids": [ "http:/example.com/courses/some-course" ] } }, "aggregation": "SUM", "after": "P6M" }, "valueProducer": { "type": "STATEMENT_PROPERTY", "statementProperty": "result.extensions.[http://example.com/extension/KPI]" } } ]
Add filters
You may also want to filter the report to only show people who have both accessed the course and have KPI data associated with them. This can be done using a People Filter as shown below:
"filter": { "and": [ { "peopleFilter": { "activityIds": { "ids": [ "http:/example.com/courses/some-course" ] } } }, { "peopleFilter": { "required": "result.extensions.[http://example.com/extension/KPI]" } } ] }
Complete example report configuration
{ "filter": { "and": [ { "peopleFilter": { "activityIds": { "ids": [ "http:/example.com/courses/some-course" ] } } }, { "peopleFilter": { "required": "result.extensions.[http://example.com/extension/KPI]" } } ] }, "dimensions": [ { "type": "STATEMENT_PROPERTY", "statementProperty": "actors.person.id", "caseSensitive": true } ], "measures": [ { "name": "KPI Before Training", "aggregation": { "type": "ACCUMULATION", "eventFilter": { "activityIds": { "ids": [ "http:/example.com/courses/some-course" ] } }, "aggregation": "SUM", "before": "P6M" }, "valueProducer": { "type": "STATEMENT_PROPERTY", "statementProperty": "result.extensions.[http://example.com/extension/KPI]" } }, { "name": "KPI After Training", "aggregation": { "type": "ACCUMULATION", "eventFilter": { "activityIds": { "ids": [ "http:/example.com/courses/some-course" ] } }, "aggregation": "SUM", "after": "P6M" }, "valueProducer": { "type": "STATEMENT_PROPERTY", "statementProperty": "result.extensions.[http://example.com/extension/KPI]" } } ] }