[Outcomes] An outcomes report for entire class not just individual reports

At Skyline College faculty are required to assess outcomes on a regular basis. We do not look at individuals per se, but instead we look at the class as a whole and gather statistics about what percentage is achieving the outcome or not, etc.


Currently Canvas has only individual reports for outcomes. This means that for a class of 40 students the teacher has to run the report 40 times.


So we need a expedient way of getting the aggregate statistics for the whole class. We anonymize all data, so a report that yields anonymous outcomes results for the class as a whole would be awesome and time saving for us.


Accreditation is now asking for disaggregated data as well (so having this would be an additional level of awesomeness), but even if we can only get an aggregate outcomes report; that would be huge!



If anyone in the development team would like to discuss this in more detail please feel free to contact me.


Thank you for your consideration of this idea.



M. Ricardo Flores

Instructional Design & Technology

Center for Transformative Teaching & Learning

Skyline College


Added to Theme

Instructure Alumni
Instructure Alumni

This idea has moved to the next stage and will be open for voting among the Canvas Community, from Wed. January 6, 2016 - Wed. April 6, 2016.

Check out this doc for additional details about how the voting process works!

Community Contributor

This is huge - Canvas is very weak on analytics despite the presence of interesting data. I would like to see more aggregate reports like this.

Community Novice

Excellent idea, Ricardo. Smiley Happy Voted!

Community Champion

Currently, the only way I've found to do this is by using account or sub-account level outcomes and pulling the report at that level.  It would be really helpful to be able to run some of the same reports that are available at the account level at the course level, and this would be one of the most valuable.  Also, since the function to run this type of report already exists at the account level, I would hope that it would be relatively simple to create the option to run this type of report at the course level.

Community Champion

This is not exactly what you're asking for, but I've spent this week writing a tool that will gather all of the Access Reports (People > student > Access Report for student) for each student within a course and create a single spreadsheet from it. It contains the normal assignment name, number of participations and views, and last date accessed. But the information used to obtain it also includes the first time it was accessed and information that you can use to classify it (type of asset).

Much, if not all, of this information is available in the requests table of Canvas Data, and it might even have more (like the dates/times of the individual accesses). But Canvas Data can be daunting and I'm trying to write something that the instructors could use. Also, the outcomes data isn't in Canvas Data right now.

I've got the first two videos made: how to install GreaseMonkey and how to install the Access Report script. I now need to make some videos that show how to use Excel to work with the data and generate reports that are helpful.

Anyway, the source code is out there but the videos are not yet. Until I get it ready, you can find the source code on my Canvancement site.

Like I said, this isn't exactly what you're asking for, but it sounds really similar as the link that you're using for outcomes is on the same page as the link I'm using for the access report. It shouldn't take much for someone familiar with JavaScript to modify the report to generate all the outcome reports rather than all of the access reports. In fact, the framework would probably work in many such "I want information about all students but I can only get one at a time and not through the API" type circumstances.

Community Champion

Now that I've finished my other report, I've had a little more time to dig into your issue. Unfortunately, the Outcomes page link from the Users page does not have a .json version available, it's only available as HTML. That makes parsing much more difficult. Sorry if I got your hopes up.

However, during the research, I stumbled across the Get Outcome Results API Call. Although the endpoint is listed as Beta and subject to change, you might see if that accomplishes what you need it to do. With all of the includes[] that are available, it generates quite a bit of data and for the entire class in one shot.

It doesn't contain the submission score or attempts that you can find in the report that  @tbunag  mentioned (those would require additional API calls and truthfully may not be necessary), but it has a lot of other stuff not contained in the report. By the way, the course ID and name is included in the report she mentioned, so you might be able to bring it into Excel and run the reports that you need from there. You could use filters to select just the courses you needed. If you're not familiar with the report, you need to be a Canvas Admin, then go to your Managed Accounts and pick your instance. Go to Settings, then Reports, then Outcome Results.

Community Champion

Thank you @James Jones. It is a little bit different than what we need for outcomes, but I'll save this, for it may come in handy in the future for other reporting needs.



Community Champion

This is looking more like it, but not quite there yet. We are schedule to begin our migration in April. As the instructional technologist I will have more permissions than the average user with "Teacher" role, but I don't believe I'll be allowed to get into the API (i'm not the Admin). In any case I'm compiling resources to pass along to our IT Admin for when the time comes. The ideal would be to have the outcomes report (aggregated/disaggregated) as a native tool/function in Canvas.

Thank you @James Jones for putting so much effort trying to help with this!


Community Champion

 @floresr ​,

Unless your institution has disabled it, everyone should have access to the API -- even students. What you can get out of the API is controlled by your permissions, and that's where you might run into issues.

I don't disagree with your assessment that it would be easier to have it built in. Canvas has to balance features vs cost and overall fit with their product and in the meantime, they make tools available to us like the REST API or Canvas Data so that we can get some of the information on our own. Those don't always fit the need, though, and many smaller schools don't have a programmer (or at least not in the Online Learning area) who can get at the information.  That's part of where the Community comes in, so that people can let Canvas know what their needs are, thanks for putting in the feature request to get that process rolling.

Community Novice

College of the Redwoods would love to be able to get this type of frequency counts for students at each level of learning mastery. We have a pilot group who will be linking rubrics to outcomes to meet the new accreditation standard, but this reporting isn't currently meaningful to the faculty because they only get an average score for their class.