Grading Systems
Configure grade scales and GPA calculation.
Overview
Grading systems define:
- Available grades
- Quality points for GPA
- Grade policies (Pass/Fail, Incomplete)
Viewing Grading Systems
- Navigate to Admin > Grading Systems
- View configured systems
- Click a system for details
Creating a Grading System
- Click Add Grading System
- Configure:
| Field | Description | Example |
|---|---|---|
| Code | Identifier | STANDARD |
| Name | Display name | Standard Letter Grades |
| Description | Description | Main undergraduate scale |
| Is Default | Default for new courses | Yes/No |
- Click Save
Grade Definitions
Adding Grades
- Open grading system
- Go to Grades tab
- Click Add Grade
- Configure each grade:
| Field | Description | Example |
|---|---|---|
| Grade | Letter grade | A |
| Quality Points | Points per credit | 4.0 |
| Include in GPA | Affects GPA calculation | Yes |
| Passing | Counts as passing | Yes |
| Order | Display sequence | 1 |
Standard Grade Scale
| Grade | Points | GPA | Passing |
|---|---|---|---|
| A | 4.0 | Yes | Yes |
| A- | 3.7 | Yes | Yes |
| B+ | 3.3 | Yes | Yes |
| B | 3.0 | Yes | Yes |
| B- | 2.7 | Yes | Yes |
| C+ | 2.3 | Yes | Yes |
| C | 2.0 | Yes | Yes |
| C- | 1.7 | Yes | Yes |
| D+ | 1.3 | Yes | Yes |
| D | 1.0 | Yes | Yes |
| D- | 0.7 | Yes | Yes |
| F | 0.0 | Yes | No |
Special Grades
| Grade | Meaning | GPA |
|---|---|---|
| P | Pass | No |
| NP | No Pass | No |
| I | Incomplete | No |
| W | Withdrawal | No |
| AU | Audit | No |
| IP | In Progress | No |
| NR | Not Reported | No |
GPA Calculation
Quality Points
GPA = Total Quality Points / Total GPA Hours
Quality Points = Grade Points × Credit Hours
GPA Types
| Type | Description |
|---|---|
| Term GPA | Single term calculation |
| Cumulative GPA | All terms combined |
| Major GPA | Courses in major only |
| Institutional GPA | Excludes transfer credits |
GPA Rules
Configure calculation rules:
- Repeat course policy (replace or average)
- Transfer credit treatment
- Incomplete grade handling
Pass/Fail Grading
Configuration
- Define P/NP grades in system
- Set passing threshold (C or better = P)
- Configure limits:
- Maximum P/NP credits
- Courses allowed for P/NP
- Deadline to elect P/NP
Student Election
Students may elect P/NP:
- During election period
- Subject to restrictions
- Faculty enters letter grade
- System converts based on threshold
Incomplete Grades
Incomplete Policy
Configure incomplete handling:
- Default grade if not completed
- Completion deadline
- Extension procedures
Processing Incompletes
- Faculty assigns I grade
- Enters default grade
- Sets completion deadline
- When completed, grade updated
- If not completed, converts to default
Grade release
A final grade entered by faculty is not automatically publishable outside the SIS.
A grade is publishable when its latest change is Colleague-sourced, or when a registrar release covers it (records.grade_releases, migration 203).
Release gates every faculty grade, not a selection
This is a registrar-controlled gate over faculty grade entry as a whole. Until a release covers them, faculty-entered final grades are held back from external publication — notably from any connected LMS, where grade passback fails closed: if the release gate is not wired at all, passback publishes nothing rather than publishing ungated grades.
Enabling LMS grade passback does not replay history: the first scan for an LMS instance only initialises its watermark, and the release hook enqueues held grades the moment the registrar acts. See LMS Setup.
Withheld grades
A final grade can be withheld (migration 232). A withheld grade is not published, and is distinct from a missing grade.
Grade visibility rules (hold a grade from the student)
Grading → Grade Visibility Rules (GRADING.VISIBILITY, migration 299) hides official grades from the student's own view until a condition is met. The usual case is "complete the course evaluation to see your grade".
This is not grade release
Grade release (above) decides whether a grade is official. A visibility rule only decides whether the student can see it yet:
- A held grade still counts in GPA and standing.
- It still prints on the official transcript.
- It is visible on every staff screen.
The rule also applies to Colleague-imported grades, which is most of them.
Each rule belongs to one term. It narrows to the whole term, one course or one section, and optionally to one academic level. It has one of two conditions:
| Condition | Met when |
|---|---|
| Completion recorded | A completion is recorded for the student. Per section needs one per course evaluation; per term needs one that covers every section. |
| Released by hand only | A registrar releases that student's grade. |
Releasing itself: each rule can set a date when it releases itself, so every grade it holds becomes visible then even if the condition isn't met. If you leave the date empty, grades stay held until the condition is met or a registrar releases them.
Releasing one grade by hand: open a rule's student list, choose Show grade on one student's row, and add a reason if you want. That student sees that one grade, and their other held grades stay hidden. Hide again undoes it.
Recording completions: upload the evaluation system's CSV export.
- The header row must have a student-number column.
student_number,colleague_idandidare all accepted. - A per-section rule also needs
course_codeandsection_code. Ifsection_codeis missing, the course alone is enough when the student is in only one section of it. - An optional
completed_atcolumn records when the student finished. - Extra columns are ignored.
- Re-uploading the same file updates existing rows; it doesn't duplicate them.
- Rows that can't be matched are listed with the reason. Common reasons are an unknown student number or a student who isn't enrolled in that course.
Integrations can post the same data as JSON to POST /grading/visibility/rules/{id}/completions.
What the student sees:
- My Grades: shows Held in place of the grade, with the rule's message and link. The cumulative GPA is replaced by a note until every grade is visible.
- Their own transcript: term and cumulative GPA figures are blanked from the first held term onward, because a held grade could otherwise be worked out from them.
- Grade history: the held grade is blanked.
Not yet covered
The student's degree audit still shows held grades. It also shows grades the registrar has not released yet, which is a separate existing gap. Hiding a grade there needs the audit engine to treat the course as in progress; masking the response would still give the result away through the failed-course list and requirement status.
LMS grade passback ignores visibility rules. If a section passes grades back to Canvas, the student sees the grade there.
How a grading system is chosen
Resolution is section, then course, then the academic-level default (records.academic_level_grading_systems, migration 188). Migration 189 cleared a blanket course-level grading system that was overriding the level default everywhere.
Grade Changes
Change Policy
Configure who can change grades:
- Instructor (within deadline)
- Department chair
- Registrar
- Required approval workflow
Grade Change History
All changes logged:
- Original grade
- New grade
- Who changed
- When changed
- Reason