Skip to content

Archived in v1.1. Analytics-focused content (engagement reporting, Aspects dashboards) merged into Analytics & Insights. Grading-focused content (grade reports, CSV exports, async Celery report tasks) merged into Grading & Exam Tools.

Course Reporting

Overview

Course Reporting covers the downloadable data reports available to instructors — grade reports, problem grade reports, completion data, survey results, enrollment data, and certificate status. These reports are generated as CSV files and downloaded from the instructor dashboard.

Course Reporting is distinct from analytics dashboards (which are visualization-focused). Reporting is about raw data export for instructors who need to work with spreadsheets or upload data to institutional systems.

Current State (2026)

  • Grade reports: Full learner × assignment grade matrix; generated as CSV; triggered as background Celery tasks
  • Problem grade reports: Per-problem attempt data for all learners
  • Completion report: Block-level completion data
  • Enrollment report: Enrollment counts and mode breakdown
  • Survey results: If survey XBlocks used, results exportable
  • Aspects dashboards: Supplement reports with interactive visualization (Aspects)
  • Report generation: Triggered from instructor dashboard; async; ready for download when complete

Architecture

  • Celery tasks: Reports are generated asynchronously by background workers; triggered via instructor dashboard form submissions
  • Storage: Generated CSV files stored temporarily in S3 (or equivalent); download links emailed or shown in dashboard
  • super-csv: Library for CSV processing with validation and background task integration, used for bulk grade operations
  • edx-platform: Core report generation logic lives in lms/djangoapps/instructor_task/

Relevant Repositories

RepositoryRole in This FeatureActivity LevelNotes
openedx/openedx-platformReport generation, instructor task systemHighinstructor_task/ module
openedx/openedx-aspectsComplementary analytics dashboardsHighVisual reporting
openedx/super-csvCSV processing libraryLowReport infrastructure

Recent Changes

  • Aspects reduces need for raw CSV exports by providing richer dashboards

History

Origin

  • Year introduced: ~2013–2014 (grade report downloads available in early edX)
  • Initial implementation: Background Celery tasks generating CSV files; instructor dashboard form submission pattern
  • Context: Instructors and institutions needed data for their own analysis and record-keeping; exporting data was essential for institutions

Key Milestones

YearMilestoneTeams / People Involved
~2013–2014Grade reports via Celery background tasksUnknown
~2015Additional report types added (problem grades, completion)Unknown
~2023–2024Aspects reduces reliance on manual CSV downloadsUnknown

People Who Shaped This Area

  • Engineering: Unknown — open question for interview
  • Product: Unknown — open question for interview
  • Design: Unknown — open question for interview

Open Questions

  • [ ] What drove the use of Celery + S3 for report generation rather than synchronous downloads?
  • [ ] Which report types were added first, and in what order?
  • [ ] How do institutions typically use the downloaded reports?
  • [ ] What are the known limitations (file size, completion time) of the current report system?

Schema Education — Internal Research