We are using the View All Grades script created by @James so that our homeroom teachers and support staff can get a better picture of student performance across all courses in Canvas. This has been an extremely helpful tool for us! This year however, our high school has been moving to a mastery-based grading approach (ie. 4, 3, 2, 1 rubrics for every assignment).
This is difficult to communicate through Canvas, primarily because the standard 90 = A, 80 = B, etc., grading scales may no longer apply. For example, our range for B- through B+ actually scales from ~62% to ~87%. We are doing our best to manage this with Grading Schemes, and that works fine at the course level because that new scale shows on the Student View of Grades and in the course Gradebook (see below):
The issue arises when a student, parent, teacher, or support staff looks at the course-wide grades page. Grading schemes do not appear in this page! So, if a user is not aware of the Grading Scheme applied to the course, they could assume the student is actually doing worse than they are (it looks like they have a C, when actually they have a B - see Math 1A below).
Thanks for any help or insight you might have on this!
The grades need to appear here: https://institution.instructure.com/users/12345/grades - this is the grades page for each student
The grade data we wanted added is a Letter Grade, which is communicated through the course grading scheme. I'm not sure what the best way to grab this information would be. It does appear on pages like the course grade for the student - so, for example: https://institution.instructure.com/courses/XXX/grades/12345.
On that specific page the value is here:
I suspected as much. I tinkered with a little hack one day for https://community.canvaslms.com/ideas/11233
We'd probably have to look at making API requests to pull those grades (and grading schema) if possible.
That makes sense. I was looking around at the API earlier and managed to find that letter grades (dictated by the scheme) come from "current_grade" whereas the numeric scores come from "current_score."
Unfortunately I have no idea on how to get that "current_grade" data onto the page.
Which API endpoint? When I try /api/v1/courses/123?include=total_scores
“total_scores”: Optional information to include with each Course. When total_scores is given, any student enrollments will also include the fields 'computed_current_score', 'computed_final_score', 'computed_current_grade', and 'computed_final_grade', as well as (if the user has permission) 'unposted_current_score', 'unposted_final_score', 'unposted_current_grade', and 'unposted_final_grade' (see Enrollment documentation for more information on these fields). This argument is ignored if the course is configured to hide final grades.
But the course I tried didn't return scores.
We had considered your first idea, but our sites and programs are so varied that we really need to give them the freedom to use their own grading schemes. This is another reason why we want to make the scheme more visible to all users - one school might be different from another scheme-wise, so the default percentage that Canvas shows can mean different grades depending on the context of the course.
I was browsing the data returned from: /api/v1/users/:user_id/enrollments
This has all the user grade data for each of their course enrollments, so I was thinking that could be matched up and displayed with their course enrollments listed on: https://institution.instructure.com/users/user_id/grades
The grading scheme is visible in both the "current_grade" and "unposted_current_grade" values.