diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb2d..dfd21d5d07d 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: patch + changes: + fixed: + - Exclude individuals with employer-sponsored insurance (ESI) from CHIP eligibility, per federal CHIP requirements. diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_child.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_child.yaml new file mode 100644 index 00000000000..a4521acbde1 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_child.yaml @@ -0,0 +1,67 @@ +# Tests for is_chip_eligible_child variable +# Children with ESI should not be eligible for CHIP +# Using TX which has CHIP limit of 2.06 (206% FPL) + +- name: Child eligible for CHIP without ESI + period: 2023 + input: + people: + child: + age: 10 + is_medicaid_eligible: false + medicaid_income_level: 2.0 # 200% FPL - above Medicaid, below TX CHIP limit + has_esi: false + households: + household: + state_code: TX + members: [child] + output: + is_chip_eligible_child: true + +- name: Child ineligible for CHIP with ESI + period: 2023 + input: + people: + child: + age: 10 + is_medicaid_eligible: false + medicaid_income_level: 2.0 # 200% FPL - would qualify but has ESI + has_esi: true + households: + household: + state_code: TX + members: [child] + output: + is_chip_eligible_child: false + +- name: Child ineligible - too old + period: 2023 + input: + people: + adult: + age: 20 + is_medicaid_eligible: false + medicaid_income_level: 2.0 + has_esi: false + households: + household: + state_code: TX + members: [adult] + output: + is_chip_eligible_child: false + +- name: Child ineligible - Medicaid eligible + period: 2023 + input: + people: + child: + age: 10 + is_medicaid_eligible: true + medicaid_income_level: 1.0 # 100% FPL - Medicaid eligible + has_esi: false + households: + household: + state_code: TX + members: [child] + output: + is_chip_eligible_child: false diff --git a/policyengine_us/variables/gov/hhs/chip/is_chip_eligible_child.py b/policyengine_us/variables/gov/hhs/chip/is_chip_eligible_child.py index b4a8d37b6d4..603ff220b3a 100644 --- a/policyengine_us/variables/gov/hhs/chip/is_chip_eligible_child.py +++ b/policyengine_us/variables/gov/hhs/chip/is_chip_eligible_child.py @@ -10,6 +10,8 @@ class is_chip_eligible_child(Variable): reference = ( "https://www.ssa.gov/OP_Home/ssact/title21/2110.htm", "https://www.medicaid.gov/medicaid/national-medicaid-chip-program-information/medicaid-childrens-health-insurance-program-basic-health-program-eligibility-levels", + # Must not have other health insurance coverage + "https://www.healthcare.gov/medicaid-chip/childrens-health-insurance-program/", ) def formula(person, period, parameters): @@ -41,10 +43,14 @@ def formula(person, period, parameters): income_ratio = person("medicaid_income_level", period) income_eligible = income_ratio <= income_limit + # Must not have other health insurance coverage to qualify for CHIP + has_esi = person("has_esi", period) + return ( is_age_eligible & state_has_chip & immigration_eligible & ~medicaid_eligible & income_eligible + & ~has_esi ) diff --git a/policyengine_us/variables/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.py b/policyengine_us/variables/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.py index 7a49c63d876..3e339968662 100644 --- a/policyengine_us/variables/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.py +++ b/policyengine_us/variables/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.py @@ -10,6 +10,8 @@ class is_chip_eligible_standard_pregnant_person(Variable): reference = ( "https://www.ssa.gov/OP_Home/ssact/title21/2110.htm", "https://www.medicaid.gov/medicaid/national-medicaid-chip-program-information/medicaid-childrens-health-insurance-program-basic-health-program-eligibility-levels", + # 42 USC 1397ll defines targeted low-income pregnant woman without uninsured requirement + "https://uscode.house.gov/view.xhtml?req=(title:42+section:1397ll+edition:prelim)", ) def formula(person, period, parameters): diff --git a/policyengine_us/variables/gov/hhs/chip/is_chip_fcep_eligible_person.py b/policyengine_us/variables/gov/hhs/chip/is_chip_fcep_eligible_person.py index 07bb00ec318..2673044ec95 100644 --- a/policyengine_us/variables/gov/hhs/chip/is_chip_fcep_eligible_person.py +++ b/policyengine_us/variables/gov/hhs/chip/is_chip_fcep_eligible_person.py @@ -9,6 +9,8 @@ class is_chip_fcep_eligible_person(Variable): definition_period = YEAR reference = ( "https://www.kff.org/affordable-care-act/state-indicator/medicaid-and-chip-income-eligibility-limits-for-pregnant-women-as-a-percent-of-the-federal-poverty-level", + # 42 USC 1397ll defines targeted low-income pregnant woman without uninsured requirement + "https://uscode.house.gov/view.xhtml?req=(title:42+section:1397ll+edition:prelim)", ) def formula(person, period, parameters): diff --git a/uv.lock b/uv.lock index f260826736c..258a9c9c71f 100644 --- a/uv.lock +++ b/uv.lock @@ -1519,7 +1519,7 @@ wheels = [ [[package]] name = "policyengine-us" -version = "1.465.3" +version = "1.465.4" source = { editable = "." } dependencies = [ { name = "microdf-python" },