Gradebook & Assessment
Overview
Gradebook & Assessment covers the instructor-facing tools for viewing, managing, and adjusting learner grades — including the gradebook MFE, grade overrides, bulk grade import/export, and grade debugging tools.
Instructors use the gradebook to identify struggling learners, apply grade adjustments for extenuating circumstances, and manage the end-of-course grading process.
Current State (2026)
• Gradebook MFE: `frontend-app-gradebook` provides a filterable, sortable table of all learner grades by subsection
• Grade overrides: Instructors can override individual subsection grades with justification (audit log)
• Bulk grades: `edx-bulk-grades` allows importing/exporting grades via CSV for batch processing
• Grade recalculation: Available via instructor dashboard to recompute grades after policy changes
• Access: Course staff roles (instructor, staff) have gradebook access; learner grades visible per-course only
Architecture
• Frontend: `frontend-app-gradebook` calls the grades REST API in `edx-platform`
• Grades API: `edx-platform` exposes `/api/grades/v*` endpoints for subsection grades, course grades, and overrides
• Grade storage: Subsection grades stored in `PersistentSubsectionGrade`; course grades in `PersistentCourseGrade`; computed by Celery tasks
• Override model: `PersistentSubsectionGradeOverride` stores instructor adjustments with audit trail
• Bulk grades: CSV upload triggers background Celery tasks to update grades; `edx-bulk-grades` handles the CSV parsing and validation
History
Origin
• Year introduced: ~2012 (basic grade display in LMS); persistent grades model is newer (~2017–2018)
• Initial implementation: Grade computation was ephemeral (re-computed on demand); no separate gradebook UI initially
• Context: At scale (thousands of learners per course), computing grades on demand was not feasible; persistent grade storage was a major architectural investment
Key Milestones
Basic grade computation in LMS
Persistent subsection grades model introduced
Grade override feature added
Gradebook MFE (`frontend-app-gradebook`) development
Open Questions
- ?When was the persistent grade model introduced and what architectural challenges did it solve?
- ?What drove the decision to build a dedicated gradebook MFE?
- ?How are grade policies (weighted assignments, passing thresholds) configured and computed?
- ?How does bulk grade import work — what validations are performed?
- ?What are the most common instructor workflows that are painful in the current gradebook?