Skip to content

Commit 66e1071

Browse files
committed
Relax disease/interaction/hcc-count factor seed joins for institutional model
The CMS-HCC institutional (INS) model uses a single set of coefficients per HCC, without splitting by medicaid_status, dual_status, or orec. The existing joins required exact matches on all dimensions, which incorrectly excluded institutional members whose demographic values didn't match the seed rows. This adds conditional join logic that skips medicaid/dual/orec matching when institutional_status = 'Yes'.
1 parent 4204746 commit 66e1071

3 files changed

Lines changed: 24 additions & 9 deletions

File tree

models/cms_hcc/intermediate/factors/cms_hcc__int_disease_factors.sql

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,12 +109,17 @@ with demographics as (
109109
from demographics_with_hccs
110110
inner join seed_disease_factors
111111
on demographics_with_hccs.enrollment_status = seed_disease_factors.enrollment_status
112-
and demographics_with_hccs.medicaid_status = seed_disease_factors.medicaid_status
113-
and demographics_with_hccs.dual_status = seed_disease_factors.dual_status
114-
and demographics_with_hccs.orec = seed_disease_factors.orec
115112
and demographics_with_hccs.institutional_status = seed_disease_factors.institutional_status
116113
and demographics_with_hccs.hcc_code = seed_disease_factors.hcc_code
117114
and demographics_with_hccs.model_version = seed_disease_factors.model_version
115+
and (
116+
demographics_with_hccs.institutional_status = 'Yes'
117+
or (
118+
demographics_with_hccs.medicaid_status = seed_disease_factors.medicaid_status
119+
and demographics_with_hccs.dual_status = seed_disease_factors.dual_status
120+
and demographics_with_hccs.orec = seed_disease_factors.orec
121+
)
122+
)
118123

119124
)
120125

models/cms_hcc/intermediate/factors/cms_hcc__int_disease_interaction_factors.sql

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,17 @@ with demographics as (
9898
from demographics_with_hccs
9999
inner join seed_interaction_factors as interactions_code_1
100100
on demographics_with_hccs.enrollment_status = interactions_code_1.enrollment_status
101-
and demographics_with_hccs.medicaid_status = interactions_code_1.medicaid_status
102-
and demographics_with_hccs.dual_status = interactions_code_1.dual_status
103-
and demographics_with_hccs.orec = interactions_code_1.orec
104101
and demographics_with_hccs.institutional_status = interactions_code_1.institutional_status
105102
and demographics_with_hccs.hcc_code = interactions_code_1.hcc_code_1
106103
and demographics_with_hccs.model_version = interactions_code_1.model_version
104+
and (
105+
demographics_with_hccs.institutional_status = 'Yes'
106+
or (
107+
demographics_with_hccs.medicaid_status = interactions_code_1.medicaid_status
108+
and demographics_with_hccs.dual_status = interactions_code_1.dual_status
109+
and demographics_with_hccs.orec = interactions_code_1.orec
110+
)
111+
)
107112

108113
)
109114

models/cms_hcc/intermediate/factors/cms_hcc__int_hcc_count_factors.sql

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,12 +126,17 @@ with demographics as (
126126
from hcc_counts_normalized
127127
inner join seed_payment_hcc_count_factors
128128
on hcc_counts_normalized.enrollment_status = seed_payment_hcc_count_factors.enrollment_status
129-
and hcc_counts_normalized.medicaid_status = seed_payment_hcc_count_factors.medicaid_status
130-
and hcc_counts_normalized.dual_status = seed_payment_hcc_count_factors.dual_status
131-
and hcc_counts_normalized.orec = seed_payment_hcc_count_factors.orec
132129
and hcc_counts_normalized.institutional_status = seed_payment_hcc_count_factors.institutional_status
133130
and hcc_counts_normalized.hcc_count_string = seed_payment_hcc_count_factors.payment_hcc_count
134131
and hcc_counts_normalized.model_version = seed_payment_hcc_count_factors.model_version
132+
and (
133+
hcc_counts_normalized.institutional_status = 'Yes'
134+
or (
135+
hcc_counts_normalized.medicaid_status = seed_payment_hcc_count_factors.medicaid_status
136+
and hcc_counts_normalized.dual_status = seed_payment_hcc_count_factors.dual_status
137+
and hcc_counts_normalized.orec = seed_payment_hcc_count_factors.orec
138+
)
139+
)
135140

136141
)
137142

0 commit comments

Comments
 (0)