diff --git a/changelog.d/8573.added.md b/changelog.d/8573.added.md new file mode 100644 index 00000000000..08b08c7f813 --- /dev/null +++ b/changelog.d/8573.added.md @@ -0,0 +1 @@ +Added a medically frail or special medical needs input for Medicaid community engagement exclusions. diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/medicaid_work_requirement_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/medicaid_work_requirement_eligible.yaml index bb0c8633d26..26fa290a5b3 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/medicaid_work_requirement_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/medicaid_work_requirement_eligible.yaml @@ -222,3 +222,25 @@ medicaid_community_engagement_pass_through_eligible: false output: medicaid_work_requirement_eligible: false + +- name: Case 25, medically frail adult is excluded from Medicaid community engagement. + period: 2027 + input: + age: 30 + monthly_hours_worked: 0 + is_disabled: false + is_medically_frail_or_has_special_medical_needs_for_medicaid_ce: true + medicaid_community_engagement_pass_through_eligible: false + output: + medicaid_work_requirement_eligible: true + +- name: Case 26, adult remains ineligible without the medically frail exclusion. + period: 2027 + input: + age: 30 + monthly_hours_worked: 0 + is_disabled: false + is_medically_frail_or_has_special_medical_needs_for_medicaid_ce: false + medicaid_community_engagement_pass_through_eligible: false + output: + medicaid_work_requirement_eligible: false diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medically_frail_or_has_special_medical_needs_for_medicaid_ce.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medically_frail_or_has_special_medical_needs_for_medicaid_ce.py new file mode 100644 index 00000000000..cb6f2e4b0bd --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medically_frail_or_has_special_medical_needs_for_medicaid_ce.py @@ -0,0 +1,24 @@ +from policyengine_us.model_api import * + + +class is_medically_frail_or_has_special_medical_needs_for_medicaid_ce(Variable): + value_type = bool + entity = Person + label = ( + "Medically frail or has special medical needs for Medicaid community engagement" + ) + documentation = ( + "Whether this person qualifies for the Medicaid community engagement " + "medically frail or special medical needs exclusion. The full CMS " + "definition depends on state condition lists and case review, so this " + "input lets household situations represent people not captured by " + "narrower disability variables." + ) + definition_period = YEAR + default_value = False + reference = ( + "https://www.congress.gov/119/plaws/publ21/PLAW-119publ21.pdf#page=242", + "https://www.medicaid.gov/federal-policy-guidance/downloads/cib12082025.pdf", + "https://www.govinfo.gov/content/pkg/FR-2026-06-03/pdf/2026-11094.pdf#page=125", + "https://www.govinfo.gov/content/pkg/FR-2026-06-03/pdf/2026-11094.pdf#page=59", + ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/medicaid_work_requirement_eligible.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/medicaid_work_requirement_eligible.py index f55dfdc40d6..b787dcbeaac 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/medicaid_work_requirement_eligible.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/medicaid_work_requirement_eligible.py @@ -64,6 +64,10 @@ def formula(person, period, parameters): is_blind = person("is_blind", period) is_incapable_of_self_care = person("is_incapable_of_self_care", period) eligible_disabled = is_blind | is_disabled | is_incapable_of_self_care + medically_frail = person( + "is_medically_frail_or_has_special_medical_needs_for_medicaid_ce", + period, + ) # Current and recent incarceration exclusions/exceptions. is_incarcerated = person("is_incarcerated", period) was_recently_incarcerated = person( @@ -85,6 +89,7 @@ def formula(person, period, parameters): | has_disabled | eligible_veteran | eligible_disabled + | medically_frail | is_incarcerated | was_recently_incarcerated )