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
Migrate marts__micromasters_dedp_exam_grades to use dimensional layer #2088
Problem: References micromasters and mitxonline proctored exam grade intermediates. Target: use a future tfact_grade or tfact_exam_grade dimensional model.
Acceptance criteria:
Model references only dimensional/, mart, or reporting models
No {{ ref('int__*') }} or {{ ref('stg__*') }} calls remain
This marts table includes proctored exam results for DEDP learners (one row per learner per exam, combining data from MicroMasters and MITxOnline). Two fields that are included in this mart (semester and passing_grade) come from exam run configuration data that only exists for MicroMasters. Neither of those fields exist in any of the current dimensional models (dim_course_run, tfact_grade, etc.).
Where should this exam-run metadata live in the dimensional layer?
Add to dim_course_run: semester and passing_grade are attributes of the exam course run itself, so it makes sense to make these new nullable columns in dim_course_run.
Add to tfact_grade: embed these two fields directly on the grade fact table, only populated for proctored exam rows. Simpler but breaks the convention that fact tables shouldn't carry dimensional attributes.
Semester — which academic term an exam run belongs to (e.g. "Fall 2023") - is a property of the exam run configuration in MicroMasters, not of any individual grade event.
Passing_grade (examrun_passing_grade) — the threshold score required to pass that specific exam run - is set once per exam run, same value for every student who sits it
Neither of these fields vary per student but they do vary per exam run which means dim_course_run is the correct place for this data. A dimension table describes what something is - attributes, configuration, and context - and semester and passing_grade fall neatly into this dimension.
Splitting this out into 2 PRs, the first one that is linked here is just to add semester + passing grade to the dim model. The follow up PR will actually migrate the mart table to use those new fields for micromasters and null for all other sources (sparse attribute).
Activity
quazi-h commentedon Jun 17, 2026
This marts table includes proctored exam results for DEDP learners (one row per learner per exam, combining data from MicroMasters and MITxOnline). Two fields that are included in this mart (semester and passing_grade) come from exam run configuration data that only exists for MicroMasters. Neither of those fields exist in any of the current dimensional models (dim_course_run, tfact_grade, etc.).
Where should this exam-run metadata live in the dimensional layer?
Should I proceed with extending dim_course_run?
quazi-h commentedon Jun 17, 2026
Semester — which academic term an exam run belongs to (e.g. "Fall 2023") - is a property of the exam run configuration in MicroMasters, not of any individual grade event.
Passing_grade (examrun_passing_grade) — the threshold score required to pass that specific exam run - is set once per exam run, same value for every student who sits it
Neither of these fields vary per student but they do vary per exam run which means dim_course_run is the correct place for this data. A dimension table describes what something is - attributes, configuration, and context - and semester and passing_grade fall neatly into this dimension.
quazi-h commentedon Jun 24, 2026
Splitting this out into 2 PRs, the first one that is linked here is just to add semester + passing grade to the dim model. The follow up PR will actually migrate the mart table to use those new fields for micromasters and null for all other sources (sparse attribute).
docs(marts): fix issue reference in comment (#2319, not #2088)
style(dim_course_run): drop incidental reformat, keep original format…
feat(#2088): migrate marts__micromasters_dedp_exam_grades to dim_cour…
docs(marts): fix issue reference in comment (#2319, not #2088)
feat(#2088): migrate marts__micromasters_dedp_exam_grades to dim_cour…
docs(marts): fix issue reference in comment (#2319, not #2088)
fix(dimensional): fall back to courserun_tag for mitxonline semester
fix(dimensional): route dim_course_run's regexp_like through the cros…
feat(#2088): migrate marts__micromasters_dedp_exam_grades to dim_cour…
docs(marts): fix issue reference in comment (#2319, not #2088)
fix(dimensional): fall back to courserun_tag for mitxonline semester
fix(dimensional): route dim_course_run's regexp_like through the cros…
feat(#2088): migrate marts__micromasters_dedp_exam_grades to dim_cour…
docs(marts): fix issue reference in comment (#2319, not #2088)
fix(dimensional): fall back to courserun_tag for mitxonline semester