Seamlessly navigating through different reports and uncovering deeper insights is invaluable. This is where Watershed’s linked reports feature comes into play. By linking a parent leaderboard report to a child leaderboard report, you can effortlessly traverse between related data points, gaining a comprehensive understanding of the underlying metrics.
But how does this feature work? Let’s dive in and explore Watershed’s linked reports.
What are linked reports in Watershed?
Watershed’s linked reports feature links a parent leaderboard report to a child leaderboard report through a link in the parent report. The feature enables users to drill down within a report to see finer levels of detail without having to switch between multiple reports.
Users can dig into their data across multiple reports using simple hyperlinks—which include built-in filtering for the specific data points that clients want to investigate further.
You can link reports by adding an additional top-level JSON object within Watershed’s Advanced Configuration so one or more measures in a report can be turned into a link to another report. Clicking the link will pull up that report quick-filtered based on the row clicked from the first report.
For example, a summary report dimensioned by person can show the number of attempts taken for a test. When clicking on that number in the report, you can link out to the specific information for that test as shown below.
Recommended Resources
How to create a child report in Watershed
Use the Report Builder to create a Leaderboard report. You will want this report to show the drilled down information from the parent report. There is no action needed to make this a child report, but you will need the report ID for this child report.
The report ID can be found in the URL of the report: https://watershedlrs.com/app/index.html#/leaderboard/[Report_ID]
Adding a linked report to a parent leaderboard report
Once parent and child leaderboard reports exist, you can add a linked report to the parent report in the Advanced Configuration section of report builder. A reportLinks object should be added to the top level of the report configuration.
Each measure that should link to a child report should have the link URL specified along with how the child report should be filtered in the drill down. The url field will follow the format of "#/leaderboard/######" where ###### is the child report ID.
The filter is how we define what the child report should be filtered to. The filter can be based on the dimension, measure, or report filters in the parent report.
Recommended Resource
Filtering the child report by dimension
The most prevalent use case for linked reports is filtering the child report by the dimension of the parent report.
If a parent report is dimensioned by person, the linked report can be filtered to the specific person with the following syntax:
"reportLinks":{
"m0": {
"url": "#/leaderboard/######",
"filter": {
"personIds": [
"$dimensions"
]
}
}
}
A shorthand syntax can also be used here using dimensionAsFilter. The following syntax behaves identically to the above syntax:
"reportLinks":{
"m0": {
"url": "#/leaderboard/######",
"dimensionAsFilter": "person"
}
}
Any dimension of the parent report can be used to filter the child report with a similar set up to above. If a parent report is dimensioned by activity (object.id), the syntax would be the same as above except for "activity" instead of "person":
"reportLinks":{
"m0": {
"url": "#/leaderboard/######",
"dimensionAsFilter": "activity"
}
}
Filtering the child report by measure
In addition to filtering the child report by dimension, it can also be filtered by configuration in the measure.
For example, if a measure is configured to return a person, the linked report can be filtered to that specific person with the following syntax:
"reportLinks":{
"m0": {
"url": "#/leaderboard/######",
"filter": {
"personIds": [
"$measure"
]
}
}
}
A shorthand syntax (analogous to dimensions) can also be used here using measureAsFilter. The following syntax behaves identically to the above syntax:
"reportLinks":{
"m0": {
"url": "#/leaderboard/######",
"measureAsFilter": "person"
}
}
Filtering the child report by date filters
Date filters from the report filter or measure can also be used in linked report filters.
If the parent report has a date filter that we want to apply to the child report, we can apply this in the filter. This will be applied by looking at the report filter object with attribute dateFilter ($reportFilter.dateFilter).
An example of pulling the date filter from the parent report is as follows:
"reportLinks": {
"m0": {
"url": "#/leaderboard/######",
"filter": {
"dateFilter": {
"dateType": "custom",
"customDateFrom": "$reportFilter.dateFilter.customDateFrom",
"customDateTo": "$reportFilter.dateFilter.customDateTo",
"fieldName": "timestamp"
}
}
}
}
The date filter can also be pulled from a date filter on the measure. For that, you will want to use $measureFilter.dateFilter for the dateFilter as shown:
"reportLinks": {
"m0": {
"url": "#/leaderboard/######",
"filter": {
"dateFilter": "$measureFilter.dateFilter"
}
}
}
About the author
Ismael (a.k.a. “Izzy”) Lara, Director of Implementations at Watershed, has experience not only as an instructor, but also an instructional designer working with faculty to design courses that best enhance the student learning experience. Previously, he has supported the implementation of a learning ecosystem to support K-12 teachers’ professional development and currently advocates for xAPI within the L&D community.
Subscribe to our blog