You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add a proctored exam grade fact (tfact_exam_grade) to the dimensional layer #2741
Proctored exam grades have no home in the dimensional layer. The only place they surface is marts__micromasters_dedp_exam_grades, which still reads three intermediate models. #2319 and #2403 move semester and passing_grade onto dim_course_run, but #2088 can't close until the grades themselves come from a dimensional fact.
tfact_grade isn't a good fit on its own. The exam grades come from three places, and only one of them is in tfact_grade today:
Source
Grain
In tfact_grade?
MicroMasters grades_proctoredexamgrade (joined to exams_examrun)
learner × exam run
No
MITxOnline dedicated exam course runs (course run title ends in "proctored exam", e.g. course-v1:MITxT+14.009PEx+2T2022)
learner × course run grade
Yes, as an ordinary course-run grade with nothing marking it as an exam
MITxOnline exams embedded in a regular course run (subsection titled "proctored exam")
This was flagged in the July warehouse audit (#2375) and listed in dimensional_warehouse_todo.md, but never written up as an issue.
Plan/Design
Check that every exam run with grades has a current dim_course_run row. The fact needs a courserun_fk for each; MicroMasters exam runs that aren't MITxOnline course runs may be missing. If they are, add them to dim_course_run first.
Add tfact_exam_grade: one row per learner per exam attempt, with user_fk, courserun_fk, platform_fk, the grade, the source it came from, and the grade timestamp. semester and passing_grade stay on dim_course_run.
Leave tfact_grade as is. Adding exam rows there would double-count the dedicated exam runs it already holds.
Rebuild marts__micromasters_dedp_exam_grades on tfact_exam_grade, dim_course_run, dim_course and dim_user (which already carries the MicroMasters and MITxOnline emails and usernames), diff it against the current output, and remove it from dimensional_layering_baseline.txt. That closes Migrate marts__micromasters_dedp_exam_grades to use dimensional layer #2088.
Activity
marts__micromasters_dedp_exam_gradesto use dimensional layer #2088