Skip to content

Commit f6e4e9b

Browse files
blarghmateyclaude
andcommitted
fix(reporting): fix program_completion_days sign and consolidate with reporting model
marts__combined_program_enrollment_detail computed program_completion_days as start-minus-certificate (negative). program_enrollment_with_user_report independently re-derived the same metric as program_complete_days with the correct direction but re-parsed from the raw certificate timestamp string instead of consuming the mart's field, creating two competing definitions. Swap the date_diff operands in the mart to certificate-minus-start (positive, matching both models' documented description), and have the reporting model select enrollment_detail.program_completion_days directly instead of re-deriving it from a differently-filtered join. Part of #2375 (2026-07 dbt warehouse audit). Witan task: tk-reconcile-fifth-competing-metric-definition-prog-3160aa. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1 parent 50733ae commit f6e4e9b

2 files changed

Lines changed: 2 additions & 12 deletions

File tree

src/ol_dbt/models/marts/combined/marts__combined_program_enrollment_detail.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ select
361361
as capstone_indicator
362362
, date_diff(
363363
'day'
364-
, final_combined_programs.programcertificate_created_on_date
365364
, final_combined_programs.first_courserun_start_on_date
365+
, final_combined_programs.programcertificate_created_on_date
366366
) as program_completion_days
367367
from final_combined_programs

src/ol_dbt/models/reporting/program_enrollment_with_user_report.sql

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,6 @@ with enrollment_detail as (
3333
else 0
3434
end
3535
) as capstone_sum
36-
, min(
37-
case
38-
when course_enrollment_detail.courserunenrollment_enrollment_mode = 'verified'
39-
then cast(substring(course_enrollment_detail.courserun_start_on, 1, 10) as date)
40-
end
41-
) as first_courserun_start_on_date
4236
from courses_in_program
4337
inner join course_enrollment_detail
4438
on courses_in_program.course_readable_id = course_enrollment_detail.course_readable_id
@@ -97,11 +91,7 @@ select
9791
combined_users.user_address_postal_code, combined_users2.user_address_postal_code
9892
) as user_address_postal_code
9993
, case when courses_detail.capstone_sum > 0 then 'Y' else 'N' end as capstone_ind
100-
, date_diff(
101-
'day'
102-
, courses_detail.first_courserun_start_on_date
103-
, cast(substring(enrollment_detail.programcertificate_created_on, 1, 10) as date)
104-
) as program_complete_days
94+
, enrollment_detail.program_completion_days as program_complete_days
10595
from enrollment_detail
10696
left join combined_users
10797
on enrollment_detail.platform_name = '{{ var("edxorg") }}'

0 commit comments

Comments
 (0)