explain_grade
Recomputes and explains a student's weighted course grade, including assignment group weights, drop rules, and letter grade, with reconciliation against Canvas's displayed score.
Instructions
Recomputes and explains the weighted course grade for a student, including assignment-group weights, drop_lowest / drop_highest / never_drop rules, per-group breakdowns (earned points, dropped assignments, weighted contributions), the mapped letter grade (via the course grading standard when present), and a reconciliation check against Canvas's posted current_score / final_score.
Use this when you need to verify that Canvas's displayed grade matches the rules, or to explain to a student or instructor how their grade was calculated.
Limitations:
V1 computes one student per call. Omit student_id to compute for the authenticated user.
Instructor-applied curves and fudge points are not exposed via the Canvas REST API and cannot be reflected in the computation; a caveat is added when the discrepancy exceeds 0.5 pp.
When the course uses grading periods, reconciliation is against the overall (cross-period) grade.
When CANVAS_PSEUDONYMIZE_STUDENTS is enabled and you are passing a student_id, first call resolve_pseudonym to obtain the real Canvas user_id.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| course_id | Yes | Canvas course ID to compute the grade for. | |
| student_id | No | Canvas user_id of the student to compute the grade for. Omit to compute for the currently authenticated user. Instructors may pass any enrolled student's user_id. When CANVAS_PSEUDONYMIZE_STUDENTS is enabled, pass the numeric Canvas user_id after resolving the pseudonym via resolve_pseudonym. | |
| assignment_group_id | No | Narrow the output to a single assignment group. When omitted all groups are included and the overall course grade is computed. |