From ab1081282bd8b14c400b237ba5432bfb5dafde46 Mon Sep 17 00:00:00 2001 From: Ziming Date: Wed, 21 Oct 2026 17:10:11 -0400 Subject: [PATCH 01/14] Correct CHIP and Medicaid pregnancy income limit dates from state plan amendments Kentucky's CHIP pregnancy group starts July 1, 2022 at 218% FPL (KY-21-0001, 907 KAR 4:030). West Virginia's CHIP group and 185% Medicaid standard start July 1, 2019 (WV-19-0006, WV-19-0004). Colorado, New Jersey and Rhode Island store the disregard-inclusive CHIP limits from 2018, Colorado's FCEP option starts January 1, 2025, and Rhode Island's Medicaid pregnancy limit stays at 195% FPL. Co-Authored-By: Claude Opus 5.5 --- ...-chip-pregnant-income-limit-dates.fixed.md | 1 + .../gov/hhs/chip/fcep/income_limit.yaml | 8 +- .../gov/hhs/chip/pregnant/income_limit.yaml | 37 +++- .../categories/pregnant/income_limit.yaml | 13 +- .../gov/hhs/chip/is_chip_eligible_fcep.yaml | 36 ++++ ...hip_eligible_standard_pregnant_person.yaml | 194 +++++++++++++++++- .../categories/is_pregnant_for_medicaid.yaml | 21 ++ 7 files changed, 296 insertions(+), 14 deletions(-) create mode 100644 changelog.d/fix-chip-pregnant-income-limit-dates.fixed.md diff --git a/changelog.d/fix-chip-pregnant-income-limit-dates.fixed.md b/changelog.d/fix-chip-pregnant-income-limit-dates.fixed.md new file mode 100644 index 00000000000..f32a39f4927 --- /dev/null +++ b/changelog.d/fix-chip-pregnant-income-limit-dates.fixed.md @@ -0,0 +1 @@ +Correct CHIP pregnancy income limit dates and values from state plan amendments: Kentucky starts July 1, 2022 at 218% FPL, West Virginia CHIP starts July 1, 2019, Colorado, New Jersey and Rhode Island include the 5 percentage point disregard throughout, Colorado's from-conception-to-end-of-pregnancy option starts January 1, 2025, West Virginia's 190% Medicaid pregnancy limit starts July 1, 2019, and Rhode Island's Medicaid pregnancy limit stays at 195% FPL. diff --git a/policyengine_us/parameters/gov/hhs/chip/fcep/income_limit.yaml b/policyengine_us/parameters/gov/hhs/chip/fcep/income_limit.yaml index 8b7a0379c2f..8de0e64f304 100644 --- a/policyengine_us/parameters/gov/hhs/chip/fcep/income_limit.yaml +++ b/policyengine_us/parameters/gov/hhs/chip/fcep/income_limit.yaml @@ -12,6 +12,10 @@ metadata: href: https://www.medicaid.gov/medicaid/national-medicaid-chip-program-information/medicaid-childrens-health-insurance-program-basic-health-program-eligibility-levels - title: MACStats Medicaid and CHIP Data Book, Exhibit 35 | MACPAC href: https://www.macpac.gov/publication/medicaid-and-chip-income-eligibility-levels-as-a-percentage-of-the-federal-poverty-level-for-children-and-pregnant-women-by-state/ + - title: Colorado CHIP State Plan Amendment CO-24-0041, state plan amendment history (Amendment 40) + href: https://www.medicaid.gov/CHIP/Downloads/CO-24-0041.pdf#page=3 + - title: Colorado CHIP State Plan Amendment CO-25-0044, section 3.1.1.1 + href: https://www.medicaid.gov/CHIP/Downloads/CO-25-0044.pdf#page=6 AK: 2018-01-01: -.inf 2019-01-01: -.inf @@ -59,8 +63,8 @@ CO: 2021-01-01: -.inf 2022-01-01: -.inf 2023-01-01: -.inf - 2023-10-30: 2.65 - 2024-01-01: 2.65 + 2024-01-01: -.inf + 2025-01-01: 2.65 CT: 2018-01-01: -.inf 2019-01-01: -.inf diff --git a/policyengine_us/parameters/gov/hhs/chip/pregnant/income_limit.yaml b/policyengine_us/parameters/gov/hhs/chip/pregnant/income_limit.yaml index 453874eb237..bee16c55df6 100644 --- a/policyengine_us/parameters/gov/hhs/chip/pregnant/income_limit.yaml +++ b/policyengine_us/parameters/gov/hhs/chip/pregnant/income_limit.yaml @@ -11,6 +11,26 @@ metadata: href: https://www.medicaid.gov/medicaid/national-medicaid-chip-program-information/medicaid-childrens-health-insurance-program-basic-health-program-eligibility-levels - title: Medicaid and CHIP Eligibility Levels href: https://data.medicaid.gov/dataset/d7e4cccb-1c56-5b5d-acce-5e7744c6d3b4 + - title: Colorado CHIP State Plan Amendment CO-13-0015, CS8 Targeted Low-Income Pregnant Women + href: https://www.medicaid.gov/CHIP/Downloads/CO/CO-13-0015-MC1.pdf#page=8 + - title: 10 CCR 2505-3 § 110.1.F + href: https://www.coloradosos.gov/CCR/GenerateRulePdf.do?ruleVersionId=12687&fileName=10%20CCR%202505-3#page=9 + - title: Colorado Medical Services Board Notice of Proposed Rules, CHP 22-01-06-B (May 13, 2022 meeting) + href: https://www.coloradosos.gov/CCR/Upload/NoticeOfRulemaking/ProposedRuleAttach2022-00181.pdf + - title: "Kentucky CHIP State Plan Amendment KY-21-0001, approval letter and CS8 #page 2,4" + href: https://www.medicaid.gov/CHIP/Downloads/KY-21-0001.pdf#page=2 + - title: "907 KAR 4:030 § 2(1)(e)1 #page 1-2" + href: https://apps.legislature.ky.gov/law/kar/downloads/docs/13741/document.engrossed.pdf#page=1 + - title: New Jersey CHIP State Plan Amendment NJ-13-0018, CS8 Targeted Low-Income Pregnant Women + href: https://www.medicaid.gov/CHIP/Downloads/NJ/NJ-13-0018-MC1.pdf#page=8 + - title: New Jersey FamilyCare Section 1115 Demonstration Amendment Request Public Notice (December 23, 2019) + href: https://www.nj.gov/humanservices/providers/grants/public/publicnoticefiles/Public%20Notice%20Amendment%20Request%20-%20NJ%201115%2012-23-19%20Final.pdf#page=1 + - title: Rhode Island CHIP State Plan Amendment RI-13-023, CS8 Targeted Low-Income Pregnant Women + href: https://www.medicaid.gov/CHIP/Downloads/RI/RI-13-023-MC1.pdf#page=8 + - title: 210-RICR-30-00-1 § 1.5(B) (effective June 7, 2018) + href: https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_9690_20180806185730.pdf#page=6 + - title: "West Virginia CHIP State Plan Amendment WV-19-0006, approval letter and CS8 #page 2,4" + href: https://www.medicaid.gov/CHIP/Downloads/WV/WV-19-0006.pdf#page=2 AK: 2018-01-01: -.inf AL: @@ -22,8 +42,10 @@ AZ: CA: 2018-01-01: -.inf CO: - 2018-01-01: 2.60 - 2023-10-30: 2.65 + # 260% FPL (CO-13-0015, effective 2014) plus the 5% FPL disregard. 10 CCR + # 2505-3 printed 250% until a June 30, 2022 correction that aligned the rule + # with the existing standard, so 2018 to mid-2022 also uses 2.65. + 2018-01-01: 2.65 CT: 2018-01-01: -.inf DC: @@ -48,8 +70,7 @@ KS: 2018-01-01: -.inf KY: 2018-01-01: -.inf - 2021-01-01: 2.13 - 2021-07-01: 2.18 + 2022-07-01: 2.18 LA: 2018-01-01: -.inf MA: @@ -77,8 +98,7 @@ NE: NH: 2018-01-01: -.inf NJ: - 2018-01-01: 2.00 - 2023-12-01: 2.05 + 2018-01-01: 2.05 NM: 2018-01-01: -.inf NV: @@ -94,8 +114,7 @@ OR: PA: 2018-01-01: -.inf RI: - 2018-01-01: 2.53 - 2023-12-01: 2.58 + 2018-01-01: 2.58 SC: 2018-01-01: -.inf SD: @@ -116,6 +135,6 @@ WI: 2018-01-01: -.inf WV: 2018-01-01: -.inf - 2021-01-01: 3.05 + 2019-07-01: 3.05 WY: 2018-01-01: -.inf diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml index 9692fa78886..db6951c3be1 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml @@ -19,6 +19,12 @@ metadata: href: https://www.medicaid.gov/medicaid-spa/2025-05-07/179381 - title: Nevada Medicaid Web Announcement 3748 (200% FPL pregnancy standard) href: https://medicaid.nv.gov/Downloads/provider/web_announcement_3748_20251020.pdf + - title: 210-RICR-30-00-1 § 1.6(A)(2) (effective August 17, 2025) + href: https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_13314_20250728104245127.pdf#page=5 + - title: "Rhode Island Comprehensive Section 1115 Demonstration approval (November 28, 2025), Budget Population 6b #page 3,15" + href: https://www.medicaid.gov/medicaid/section-1115-demonstrations/downloads/ri-comp-demo-appvl-11282025.pdf#page=3 + - title: "West Virginia Medicaid State Plan Amendment WV-19-0004, approval letter and S14 Pregnant Women #page 3,14" + href: https://www.medicaid.gov/State-resource-center/Medicaid-State-Plan-Amendments/Downloads/WV/WV-19-0004.pdf#page=3 AK: 2018-01-01: 2.05 2024-02-01: 2.30 @@ -105,8 +111,11 @@ OR: PA: 2018-01-01: 2.20 RI: + # 190% FPL plus the 5% FPL disregard; separate CHIP covers 190% to 253%. + # Insured pregnant people at 190% to 253% get Medicaid through the section + # 1115 demonstration (Budget Population 6b). The model has no other-coverage + # split, so they count under standard pregnancy CHIP. 2018-01-01: 1.95 - 2023-01-01: 2.58 SC: 2018-01-01: 1.99 SD: @@ -129,6 +138,6 @@ WI: 2018-01-01: 3.06 WV: 2018-01-01: 1.63 - 2021-01-01: 1.90 + 2019-07-01: 1.90 WY: 2018-01-01: 1.59 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_fcep.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_fcep.yaml index 3374ad88144..f83e5d06d09 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_fcep.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_fcep.yaml @@ -514,3 +514,39 @@ is_chip_eligible_standard_pregnant_person: [false, false, false, false, false] is_chip_fcep_eligible_person: [true, true, true, true, true] is_chip_eligible_pregnant: [true, true, true, true, true] + +# Colorado's FCEP population took effect January 1, 2025, up to 260% FPL +# (CO-24-0041 and CO-25-0044), plus the 5 percentage point MAGI disregard. +- name: Case 18, Colorado FCEP does not cover an undocumented pregnant applicant in 2024. + period: 2024 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: UNDOCUMENTED + is_medicaid_eligible: false + medicaid_income_level: 2.3 + households: + household: + members: [person1] + state_code: CO + output: + is_chip_fcep_eligible_person: false + +- name: Case 19, Colorado FCEP covers an undocumented pregnant applicant in 2025. + period: 2025 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: UNDOCUMENTED + is_medicaid_eligible: false + medicaid_income_level: 2.3 + households: + household: + members: [person1] + state_code: CO + output: + is_chip_fcep_eligible_person: true diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml index 2dbfb5117dc..6eee4473094 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml @@ -185,6 +185,198 @@ is_medicaid_eligible: [false, false] is_chip_eligible_standard_pregnant_person: [true, false] # FCEP covers the unborn child, so it has no immigration test; both states - # offer it (Colorado since October 30, 2023). + # offer it (Colorado since January 1, 2025). is_chip_fcep_eligible_person: [true, true] is_chip_eligible_pregnant: [true, true] + +# The CHIP state plans have set these pregnancy bands since before 2018: +# Colorado 260% (CO-13-0015), New Jersey 200% (NJ-13-0018) and Rhode Island +# 253% (RI-13-023), each plus the 5 percentage point MAGI disregard. +# Kentucky's 213% band takes effect July 1, 2022 (KY-21-0001), and this +# YEAR-defined variable reads the January value, so Kentucky has no group in +# 2022. +- name: Case 9, pregnancy bands in Colorado, New Jersey and Rhode Island include the disregard in 2022, before Kentucky's group starts. + period: 2022 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.63 + person2: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.03 + person3: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.55 + person4: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.1 + households: + household1: + members: [person1] + state_code: CO + household2: + members: [person2] + state_code: NJ + household3: + members: [person3] + state_code: RI + household4: + members: [person4] + state_code: KY + output: + is_chip_eligible_standard_pregnant_person: [true, true, true, false] + +# 907 KAR 4:030 Section 2(1)(e)1 sets 213% plus a five percent cushion (218%). +# The limit is inclusive, so income exactly at 218% FPL qualifies. +- name: Case 10, Kentucky pregnancy group covers income up to and including 218% FPL in 2023. + period: 2023 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.1 + person2: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.25 + person3: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.18 + households: + household1: + members: [person1] + state_code: KY + household2: + members: [person2] + state_code: KY + household3: + members: [person3] + state_code: KY + output: + is_chip_eligible_standard_pregnant_person: [true, false, true] + +# West Virginia's group starts July 1, 2019, so the 2019 annual value is still +# -inf. Colorado's 265% limit already applied in 2019. +- name: Case 11, West Virginia pregnancy group does not apply in 2019 and Colorado excludes income above 265% FPL. + period: 2019 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.5 + person2: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.66 + households: + household1: + members: [person1] + state_code: WV + household2: + members: [person2] + state_code: CO + output: + is_chip_eligible_standard_pregnant_person: [false, false] + +# West Virginia's 300% band took effect July 1, 2019 (WV-19-0006), so 2020 is +# the first year the YEAR-defined variable reads it. +- name: Case 12, West Virginia pregnancy group applies in 2020. + period: 2020 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.5 + households: + household: + members: [person1] + state_code: WV + output: + is_chip_eligible_standard_pregnant_person: true + +# The limits are inclusive, so income exactly at 265% (Colorado), 205% (New +# Jersey) and 258% (Rhode Island) qualifies. +- name: Case 13, income exactly at the Colorado, New Jersey and Rhode Island pregnancy limits qualifies in 2022. + period: 2022 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.65 + person2: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.05 + person3: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.58 + households: + household1: + members: [person1] + state_code: CO + household2: + members: [person2] + state_code: NJ + household3: + members: [person3] + state_code: RI + output: + is_chip_eligible_standard_pregnant_person: [true, true, true] + +# Rhode Island's Medicaid pregnancy limit is 190% FPL (195% with the +# disregard) and its separate CHIP covers income above it up to 253% (258%), +# so a pregnant citizen at 230% FPL is in CHIP, not Medicaid. +- name: Case 14, Rhode Island pregnant citizen above the Medicaid limit qualifies for standard CHIP in 2024. + period: 2024 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + medicaid_income_level: 2.3 + households: + household: + members: [person1] + state_code: RI + output: + is_pregnant_for_medicaid: false + is_medicaid_eligible: false + is_chip_eligible_standard_pregnant_person: true diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml index 6f858fba434..fc1c478eb04 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml @@ -135,3 +135,24 @@ output: is_pregnant_for_medicaid_fc: false is_pregnant_for_medicaid: false + +# SPA WV-19-0004 raised the pregnancy standard to 185% FPL (190% with the +# disregard) effective 2019-07-01; the YEAR-defined variable resolves the +# January value, so the change first applies in 2020. +- name: Pregnancy above the pre-July 2019 FPL limit confers ineligibility in WV + period: 2019 + input: + state_code: WV + is_pregnant: true + medicaid_income_level: 1.8 + output: + is_pregnant_for_medicaid: false + +- name: Pregnancy under the 185% FPL standard confers eligibility in WV + period: 2020 + input: + state_code: WV + is_pregnant: true + medicaid_income_level: 1.8 + output: + is_pregnant_for_medicaid: true From 9264d3d2e45c4dd4492cb9e1587bbaf2ad0f47fb Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 22 Oct 2026 16:24:45 -0400 Subject: [PATCH 02/14] Keep Rhode Island pathway changes out of parameter corrections --- ...-chip-pregnant-income-limit-dates.fixed.md | 2 +- .../categories/pregnant/income_limit.yaml | 9 +------- ...hip_eligible_standard_pregnant_person.yaml | 21 ------------------- 3 files changed, 2 insertions(+), 30 deletions(-) diff --git a/changelog.d/fix-chip-pregnant-income-limit-dates.fixed.md b/changelog.d/fix-chip-pregnant-income-limit-dates.fixed.md index f32a39f4927..894fa4a92db 100644 --- a/changelog.d/fix-chip-pregnant-income-limit-dates.fixed.md +++ b/changelog.d/fix-chip-pregnant-income-limit-dates.fixed.md @@ -1 +1 @@ -Correct CHIP pregnancy income limit dates and values from state plan amendments: Kentucky starts July 1, 2022 at 218% FPL, West Virginia CHIP starts July 1, 2019, Colorado, New Jersey and Rhode Island include the 5 percentage point disregard throughout, Colorado's from-conception-to-end-of-pregnancy option starts January 1, 2025, West Virginia's 190% Medicaid pregnancy limit starts July 1, 2019, and Rhode Island's Medicaid pregnancy limit stays at 195% FPL. +Correct CHIP pregnancy income limit dates and values from state plan amendments: Kentucky starts July 1, 2022 at 218% FPL, West Virginia CHIP starts July 1, 2019, Colorado, New Jersey and Rhode Island include the 5 percentage point disregard throughout, Colorado's from-conception-to-end-of-pregnancy option starts January 1, 2025, and West Virginia's 190% Medicaid pregnancy limit starts July 1, 2019. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml index db6951c3be1..93b18dd5ff5 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml @@ -19,10 +19,6 @@ metadata: href: https://www.medicaid.gov/medicaid-spa/2025-05-07/179381 - title: Nevada Medicaid Web Announcement 3748 (200% FPL pregnancy standard) href: https://medicaid.nv.gov/Downloads/provider/web_announcement_3748_20251020.pdf - - title: 210-RICR-30-00-1 § 1.6(A)(2) (effective August 17, 2025) - href: https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_13314_20250728104245127.pdf#page=5 - - title: "Rhode Island Comprehensive Section 1115 Demonstration approval (November 28, 2025), Budget Population 6b #page 3,15" - href: https://www.medicaid.gov/medicaid/section-1115-demonstrations/downloads/ri-comp-demo-appvl-11282025.pdf#page=3 - title: "West Virginia Medicaid State Plan Amendment WV-19-0004, approval letter and S14 Pregnant Women #page 3,14" href: https://www.medicaid.gov/State-resource-center/Medicaid-State-Plan-Amendments/Downloads/WV/WV-19-0004.pdf#page=3 AK: @@ -111,11 +107,8 @@ OR: PA: 2018-01-01: 2.20 RI: - # 190% FPL plus the 5% FPL disregard; separate CHIP covers 190% to 253%. - # Insured pregnant people at 190% to 253% get Medicaid through the section - # 1115 demonstration (Budget Population 6b). The model has no other-coverage - # split, so they count under standard pregnancy CHIP. 2018-01-01: 1.95 + 2023-01-01: 2.58 SC: 2018-01-01: 1.99 SD: diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml index 6eee4473094..5ad2ea4777e 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml @@ -359,24 +359,3 @@ state_code: RI output: is_chip_eligible_standard_pregnant_person: [true, true, true] - -# Rhode Island's Medicaid pregnancy limit is 190% FPL (195% with the -# disregard) and its separate CHIP covers income above it up to 253% (258%), -# so a pregnant citizen at 230% FPL is in CHIP, not Medicaid. -- name: Case 14, Rhode Island pregnant citizen above the Medicaid limit qualifies for standard CHIP in 2024. - period: 2024 - input: - people: - person1: - age: 30 - is_pregnant: true - immigration_status: CITIZEN - medicaid_income_level: 2.3 - households: - household: - members: [person1] - state_code: RI - output: - is_pregnant_for_medicaid: false - is_medicaid_eligible: false - is_chip_eligible_standard_pregnant_person: true From 22e9a0537110afa854f27e27fc73767f34a94441 Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 22 Oct 2026 16:32:14 -0400 Subject: [PATCH 03/14] Correct Rhode Island pregnancy Medicaid routing and postpartum coverage --- ...ix-ri-pregnancy-medicaid-pathways.fixed.md | 1 + .../categories/pregnant/income_limit.yaml | 5 +- .../pregnant/postpartum_coverage.yaml | 5 + .../extended_postpartum_coverage.yaml | 11 + ...hip_eligible_standard_pregnant_person.yaml | 71 +++++ .../categories/is_pregnant_for_medicaid.yaml | 252 ++++++++++++++++++ ..._chip_eligible_standard_pregnant_person.py | 3 + .../pregnant/is_pregnant_for_medicaid_fc.py | 17 ++ .../eligibility/is_medicaid_eligible.py | 13 + .../ri_medicaid_has_third_party_coverage.py | 32 +++ 10 files changed, 409 insertions(+), 1 deletion(-) create mode 100644 changelog.d/fix-ri-pregnancy-medicaid-pathways.fixed.md create mode 100644 policyengine_us/parameters/gov/states/ri/eohhs/medicaid/extended_postpartum_coverage.yaml create mode 100644 policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_has_third_party_coverage.py diff --git a/changelog.d/fix-ri-pregnancy-medicaid-pathways.fixed.md b/changelog.d/fix-ri-pregnancy-medicaid-pathways.fixed.md new file mode 100644 index 00000000000..59e09650acc --- /dev/null +++ b/changelog.d/fix-ri-pregnancy-medicaid-pathways.fixed.md @@ -0,0 +1 @@ +Correct Rhode Island pregnancy Medicaid and CHIP routing for people with third-party health coverage, and model extended postpartum Medicaid, including state-funded coverage, with current-income and 365-day proxies for prior pregnancy eligibility and the statutory twelve-month period. Fixes #10390. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml index 93b18dd5ff5..4b4671b00f7 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml @@ -21,6 +21,8 @@ metadata: href: https://medicaid.nv.gov/Downloads/provider/web_announcement_3748_20251020.pdf - title: "West Virginia Medicaid State Plan Amendment WV-19-0004, approval letter and S14 Pregnant Women #page 3,14" href: https://www.medicaid.gov/State-resource-center/Medicaid-State-Plan-Amendments/Downloads/WV/WV-19-0004.pdf#page=3 + - title: 210-RICR-30-00-1 § 1.6(A)(2)(a) + href: https://rules.sos.ri.gov/regulations/part/210-30-00-1 AK: 2018-01-01: 2.05 2024-02-01: 2.30 @@ -107,8 +109,9 @@ OR: PA: 2018-01-01: 2.20 RI: + # The higher Medicaid ceiling for insured pregnant people is applied in the + # financial-criteria formula using Rhode Island's CHIP pregnancy ceiling. 2018-01-01: 1.95 - 2023-01-01: 2.58 SC: 2018-01-01: 1.99 SD: diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/postpartum_coverage.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/postpartum_coverage.yaml index 61ccb330367..3fbd1d601fe 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/postpartum_coverage.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/postpartum_coverage.yaml @@ -7,6 +7,8 @@ metadata: reference: - title: 42 U.S. Code § 1396a(e)(5) href: https://www.law.cornell.edu/uscode/text/42/1396a#e_5 + - title: R.I. Gen. Laws § 42-12.3-3(g) + href: https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm AK: 2021-01-01: 60 AL: @@ -87,6 +89,9 @@ PA: 2021-01-01: 60 RI: 2021-01-01: 60 + # The annual model approximates the statutory twelve-month period and its + # final month-end with 365 days. + 2022-10-01: 365 SC: 2021-01-01: 60 SD: diff --git a/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/extended_postpartum_coverage.yaml b/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/extended_postpartum_coverage.yaml new file mode 100644 index 00000000000..082b7f32479 --- /dev/null +++ b/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/extended_postpartum_coverage.yaml @@ -0,0 +1,11 @@ +description: Rhode Island provides full Medicaid during its extended postpartum period to people eligible for Medicaid, CHIP, or RIte Start while pregnant, including when federal funding is unavailable. +values: + 0000-01-01: false + 2022-10-01: true +metadata: + unit: bool + period: year + label: Rhode Island extended postpartum Medicaid coverage + reference: + - title: R.I. Gen. Laws § 42-12.3-3(g) + href: https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml index 5ad2ea4777e..c6ea8f7d27f 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml @@ -359,3 +359,74 @@ state_code: RI output: is_chip_eligible_standard_pregnant_person: [true, true, true] + +# 210-RICR-30-00-1 § 1.6(A)(2)(b)(1)-(2) requires the absence of +# third-party insurance for standard pregnancy CHIP in Rhode Island. +# https://rules.sos.ri.gov/regulations/part/210-30-00-1 +# Supply Medicaid ineligibility here to exercise the CHIP insurance gate +# independently; the Medicaid integration cases test the insured pathway. +- name: Case 14, Rhode Island standard pregnancy CHIP excludes third-party coverage independently of Medicaid eligibility. + period: 2024 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_household_size: 2 + medicaid_income_level: 2.3 + has_esi: true + person2: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_household_size: 2 + medicaid_income_level: 2.3 + has_marketplace_health_coverage_at_interview: true + person3: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_household_size: 2 + medicaid_income_level: 2.3 + has_non_marketplace_direct_purchase_health_coverage_at_interview: true + person4: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_household_size: 2 + medicaid_income_level: 2.3 + medicare_enrolled: true + person5: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_household_size: 2 + medicaid_income_level: 2.3 + has_tricare_health_coverage_at_interview: true + person6: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_household_size: 2 + medicaid_income_level: 2.3 + has_champva_health_coverage_at_interview: true + person7: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_household_size: 2 + medicaid_income_level: 2.3 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + state_code: RI + output: + is_chip_eligible_standard_pregnant_person: [false, false, false, false, false, false, true] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml index fc1c478eb04..fc1f18ca45d 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml @@ -156,3 +156,255 @@ medicaid_income_level: 1.8 output: is_pregnant_for_medicaid: true + +# R.I. Gen. Laws § 42-12.3-3(g): from October 1, 2022, people eligible for +# https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm +# Medicaid or CHIP while pregnant keep full Medicaid through the postpartum +# period. The annual model uses current income as a proxy for income during +# pregnancy. $47,000 is about 230% FPL for a household of 2 in 2024 ($20,440). +# Use the mother's underlying indicator so the newborn's postpartum days +# derive as infinity rather than being filled with a zero partial input. +- name: Case 15, Rhode Island postpartum parent and newborn retain their distinct Medicaid categories. + period: 2024 + input: + people: + person1: + age: 28 + is_pregnant: false + under_60_days_postpartum: true + employment_income: 47_000 + person2: + age: 0 + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: RI + output: + is_pregnant_for_medicaid: [true, false] + medicaid_category: [PREGNANT, INFANT] + is_medicaid_eligible: [true, true] + +# While pregnant, the same income is above RI's 190% Medicaid standard (195% +# with the disregard), so an uninsured applicant is in CHIP rather than +# Medicaid (210-RICR-30-00-1 § 1.6(A)(2)(b)(1)). +- name: Case 16, Rhode Island uninsured pregnant applicant at 230 percent FPL receives CHIP. + period: 2024 + input: + people: + person1: + age: 28 + is_pregnant: true + immigration_status: CITIZEN + employment_income: 47_000 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: RI + output: + is_pregnant_for_medicaid: false + is_medicaid_eligible: false + is_chip_eligible_standard_pregnant_person: true + +# 210-RICR-30-00-1 § 1.6(A)(2)(a)(2) covers pregnant applicants with +# https://rules.sos.ri.gov/regulations/part/210-30-00-1 +# third-party insurance through the upper 253% standard (258% with the +# disregard). Employer, individual and Medicare/military coverage are +# independent of Medicaid enrollment, so the eligibility calculation must +# also work without a circular dependency on medicaid_enrolled. +- name: Case 17, Rhode Island pregnancy Medicaid covers applicants with each modeled third-party insurance source. + period: 2024 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + medicaid_household_size: 2 + medicaid_income_level: 2.3 + has_esi: true + person2: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + medicaid_household_size: 2 + medicaid_income_level: 2.3 + has_marketplace_health_coverage_at_interview: true + person3: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + medicaid_household_size: 2 + medicaid_income_level: 2.3 + has_non_marketplace_direct_purchase_health_coverage_at_interview: true + person4: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + medicaid_household_size: 2 + medicaid_income_level: 2.3 + medicare_enrolled: true + person5: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + medicaid_household_size: 2 + medicaid_income_level: 2.3 + has_tricare_health_coverage_at_interview: true + person6: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + medicaid_household_size: 2 + medicaid_income_level: 2.3 + has_champva_health_coverage_at_interview: true + households: + household: + members: [person1, person2, person3, person4, person5, person6] + state_code: RI + output: + is_pregnant_for_medicaid: [true, true, true, true, true, true] + is_medicaid_eligible: [true, true, true, true, true, true] + is_chip_eligible_standard_pregnant_person: [false, false, false, false, false, false] + +# The ordinary standard is 190% plus the five-point disregard; the insured +# standard is 253% plus the disregard. The same insurance does not extend +# another state's ordinary Medicaid pregnancy band. +- name: Case 18, Rhode Island pregnancy income boundaries and state controls preserve the coverage split. + period: 2024 + input: + people: + person1: + age: 30 + is_pregnant: true + medicaid_household_size: 2 + medicaid_income_level: 1.95 + person2: + age: 30 + is_pregnant: true + medicaid_household_size: 2 + medicaid_income_level: 1.96 + person3: + age: 30 + is_pregnant: true + has_esi: true + medicaid_household_size: 2 + medicaid_income_level: 2.58 + person4: + age: 30 + is_pregnant: true + has_esi: true + medicaid_household_size: 2 + medicaid_income_level: 2.59 + person5: + age: 30 + is_pregnant: false + has_esi: true + medicaid_household_size: 2 + medicaid_income_level: 2.3 + person6: + age: 30 + is_pregnant: true + has_esi: true + medicaid_household_size: 2 + medicaid_income_level: 2.3 + households: + household1: + members: [person1, person2, person3, person4, person5] + state_code: RI + household2: + members: [person6] + state_code: CO + output: + is_pregnant_for_medicaid: [true, false, true, false, false, false] + +# R.I. Gen. Laws § 42-12.3-3(g) supplies twelve months of full Medicaid +# from October 1, 2022, including people covered under Title XXI while +# pregnant. Days 300 and 400 are clearly within and beyond that period; +# they avoid asserting an exact month-end anniversary from an elapsed-day +# input. The non-qualified parent receives the state-funded continuation. +- name: Case 19, Rhode Island citizen and undocumented postpartum parents receive coverage within the extended period. + period: 2024 + input: + people: + person1: + age: 30 + is_pregnant: false + immigration_status: CITIZEN + count_days_postpartum: 300 + medicaid_household_size: 2 + medicaid_income_level: 2.3 + person2: + age: 30 + is_pregnant: false + immigration_status: CITIZEN + count_days_postpartum: 400 + medicaid_household_size: 2 + medicaid_income_level: 2.3 + person3: + age: 30 + is_pregnant: false + immigration_status: UNDOCUMENTED + count_days_postpartum: 300 + medicaid_household_size: 2 + medicaid_income_level: 2.3 + person4: + age: 30 + is_pregnant: false + immigration_status: UNDOCUMENTED + count_days_postpartum: 400 + medicaid_household_size: 2 + medicaid_income_level: 2.3 + households: + household: + members: [person1, person2, person3, person4] + state_code: RI + output: + is_pregnant_for_medicaid: [true, false, true, false] + is_medicaid_eligible: [true, false, true, false] + is_chip_eligible_standard_pregnant_person: [false, false, false, false] + +# The YEAR-defined formula reads January 1, so the October 2022 extension +# is reflected in 2023 annual results. The parameter retains its legal date. +- name: Case 20, Rhode Island annual postpartum eligibility reflects the October 2022 extension in 2023. + period: 2023 + input: + state_code: + 2022: RI + 2023: RI + count_days_postpartum: + 2022: 90 + 2023: 90 + medicaid_household_size: + 2022: 2 + 2023: 2 + medicaid_income_level: + 2022: 2.3 + 2023: 2.3 + output: + is_pregnant_for_medicaid: + 2022: false + 2023: true + +# The state-funded postpartum continuation does not change the citizenship +# rules for someone seeking Medicaid during pregnancy. An undocumented +# pregnant applicant instead has the existing unborn-child CHIP pathway. +- name: Case 21, Rhode Island state-funded postpartum coverage does not bypass pregnancy immigration requirements. + period: 2024 + input: + state_code: RI + age: 30 + is_pregnant: true + immigration_status: UNDOCUMENTED + medicaid_household_size: 2 + medicaid_income_level: 1.8 + output: + is_pregnant_for_medicaid: true + is_medicaid_eligible: false + is_chip_eligible_standard_pregnant_person: false + is_chip_fcep_eligible_person: true 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 35bb1bd16ee..45770e838a1 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 @@ -18,6 +18,7 @@ class is_chip_eligible_standard_pregnant_person(Variable): "https://www.law.cornell.edu/cfr/text/45/155.20", "https://www.medicaid.gov/federal-policy-guidance/downloads/sho-12-002.pdf", "https://www.medicaid.gov/federal-policy-guidance/downloads/sho26001.pdf#page=28", + "https://rules.sos.ri.gov/regulations/part/210-30-00-1", ) def formula(person, period, parameters): @@ -45,6 +46,7 @@ def formula(person, period, parameters): income_eligible = medicaid_income_eligible( person, period, parameters, income_limit ) + ri_insurance_eligible = ~person("ri_medicaid_has_third_party_coverage", period) return ( is_pregnant @@ -52,4 +54,5 @@ def formula(person, period, parameters): & immigration_eligible & ~medicaid_eligible & income_eligible + & ri_insurance_eligible ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py index 5f2fc085cf8..14e68d77dde 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py @@ -20,10 +20,27 @@ class is_pregnant_for_medicaid_fc(Variable): # Medi-Cal. The section-level URL returns a version picker; this link # renders the full chapter text. "https://leginfo.legislature.ca.gov/faces/codes_displayText.xhtml?lawCode=WIC&division=9.&title=&part=3.3.&chapter=2.&article=", + # R.I. Gen. Laws § 42-12.3-3(g): people eligible for Medicaid or CHIP + # while pregnant keep full Medicaid through the postpartum period. + "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm", + "https://rules.sos.ri.gov/regulations/part/210-30-00-1", ) def formula(person, period, parameters): ma = parameters(period).gov.hhs.medicaid.eligibility.categories.pregnant state = person.household("state_code_str", period) income_limit = ma.income_limit[state] + ri = parameters(period).gov.states.ri.eohhs.medicaid + postpartum = ~person("is_pregnant", period) & ( + person("count_days_postpartum", period) < ma.postpartum_coverage[state] + ) + # Rhode Island covers insured pregnant people through Medicaid at its + # CHIP pregnancy ceiling. The same ceiling approximates prior pregnancy + # eligibility for extended postpartum coverage using current income. + ri_higher_limit = (state == "RI") & ( + person("ri_medicaid_has_third_party_coverage", period) + | (ri.extended_postpartum_coverage & postpartum) + ) + chip_income_limit = parameters(period).gov.hhs.chip.pregnant.income_limit[state] + income_limit = where(ri_higher_limit, chip_income_limit, income_limit) return medicaid_income_eligible(person, period, parameters, income_limit) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medicaid_eligible.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medicaid_eligible.py index 809e8c79883..568ac542d33 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medicaid_eligible.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medicaid_eligible.py @@ -9,6 +9,7 @@ class is_medicaid_eligible(Variable): reference = ( "https://www.law.cornell.edu/uscode/text/42/1396a#a_10", "https://www.kff.org/racial-equity-and-health-policy/fact-sheet/key-facts-on-health-coverage-of-immigrants", + "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm", ) def formula(person, period, parameters): @@ -19,6 +20,17 @@ def formula(person, period, parameters): ) ca_ffyp_eligible = person("ca_ffyp_eligible", period) il_hbi_eligible = person("il_hbi_eligible", period) + ri = parameters(period).gov.states.ri.eohhs.medicaid + state = person.household("state_code_str", period) + # Rhode Island funds full postpartum coverage even when federal funding + # is unavailable. Pregnancy financial and non-financial criteria proxy + # prior pregnancy eligibility because the model has no coverage history. + ri_postpartum_eligible = ( + (state == "RI") + & ri.extended_postpartum_coverage + & ~person("is_pregnant", period) + & person("is_pregnant_for_medicaid", period) + ) p = parameters(period).gov.hhs.medicaid.eligibility federal_work_requirement_eligible = True @@ -51,4 +63,5 @@ def formula(person, period, parameters): ) | ca_ffyp_eligible | il_hbi_eligible + | ri_postpartum_eligible ) diff --git a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_has_third_party_coverage.py b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_has_third_party_coverage.py new file mode 100644 index 00000000000..ef98fbcdac2 --- /dev/null +++ b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_has_third_party_coverage.py @@ -0,0 +1,32 @@ +from policyengine_us.model_api import * + + +class ri_medicaid_has_third_party_coverage(Variable): + value_type = bool + entity = Person + label = "Rhode Island Medicaid third-party health coverage" + definition_period = YEAR + defined_for = StateCode.RI + reference = ( + "https://rules.sos.ri.gov/regulations/part/210-30-00-1", + "https://eohhs.ri.gov/providers-partners/billing-and-claims/third-party-liability", + "https://tricare.mil/FAQs/General/GEN_OHI_TRICARE", + "https://www.va.gov/resources/champva-care/", + ) + + def formula(person, period, parameters): + return ( + add( + person, + period, + [ + "has_esi", + "has_marketplace_health_coverage_at_interview", + "has_non_marketplace_direct_purchase_health_coverage_at_interview", + "medicare_enrolled", + "has_tricare_health_coverage_at_interview", + "has_champva_health_coverage_at_interview", + ], + ) + > 0 + ) From f0f8add67d96fc5e569887b9aa1649d245f2f750 Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 22 Oct 2026 17:04:40 -0400 Subject: [PATCH 04/14] Preserve Rhode Island postpartum coverage using pregnancy history and calendar dates --- ...ix-ri-pregnancy-medicaid-pathways.fixed.md | 2 +- .../pregnant/postpartum_coverage.yaml | 5 - .../extended_postpartum_coverage.yaml | 11 -- .../medicaid/postpartum_coverage_months.yaml | 11 ++ ...hip_eligible_standard_pregnant_person.yaml | 63 +++++++++ .../costs/medicaid_federal_share.yaml | 47 +++++++ .../categories/is_pregnant_for_medicaid.yaml | 28 +++- .../eligibility/is_medicaid_eligible.yaml | 102 ++++++++++++++ .../gov/hhs/medicaid/medicaid_enrolled.yaml | 42 ++++++ .../ri_medicaid_postpartum_eligible.yaml | 124 ++++++++++++++++++ ..._chip_eligible_standard_pregnant_person.py | 11 +- .../medicaid/costs/medicaid_federal_share.py | 25 +++- .../pregnant/is_pregnant_for_medicaid_fc.py | 20 ++- .../pregnant/is_pregnant_for_medicaid_nfc.py | 9 +- .../eligibility/is_medicaid_eligible.py | 12 +- .../gov/hhs/medicaid/medicaid_enrolled.py | 13 +- .../medicaid/ri_chip_postpartum_eligible.py | 19 +++ .../ri_medicaid_postpartum_eligible.py | 30 +++++ .../ri_medicaid_pregnancy_end_date.py | 11 ++ .../eohhs/medicaid/ri_pregnancy_coverage.py | 24 ++++ 20 files changed, 557 insertions(+), 52 deletions(-) delete mode 100644 policyengine_us/parameters/gov/states/ri/eohhs/medicaid/extended_postpartum_coverage.yaml create mode 100644 policyengine_us/parameters/gov/states/ri/eohhs/medicaid/postpartum_coverage_months.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.yaml create mode 100644 policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_chip_postpartum_eligible.py create mode 100644 policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.py create mode 100644 policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_pregnancy_end_date.py create mode 100644 policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_pregnancy_coverage.py diff --git a/changelog.d/fix-ri-pregnancy-medicaid-pathways.fixed.md b/changelog.d/fix-ri-pregnancy-medicaid-pathways.fixed.md index 59e09650acc..dacc251acb7 100644 --- a/changelog.d/fix-ri-pregnancy-medicaid-pathways.fixed.md +++ b/changelog.d/fix-ri-pregnancy-medicaid-pathways.fixed.md @@ -1 +1 @@ -Correct Rhode Island pregnancy Medicaid and CHIP routing for people with third-party health coverage, and model extended postpartum Medicaid, including state-funded coverage, with current-income and 365-day proxies for prior pregnancy eligibility and the statutory twelve-month period. Fixes #10390. +Correct Rhode Island pregnancy Medicaid and CHIP routing for people with third-party health coverage, and preserve full postpartum Medicaid based on qualifying pregnancy eligibility through the twelve-month anniversary month, including after income changes or another pregnancy. Fixes #10390. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/postpartum_coverage.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/postpartum_coverage.yaml index 3fbd1d601fe..61ccb330367 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/postpartum_coverage.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/postpartum_coverage.yaml @@ -7,8 +7,6 @@ metadata: reference: - title: 42 U.S. Code § 1396a(e)(5) href: https://www.law.cornell.edu/uscode/text/42/1396a#e_5 - - title: R.I. Gen. Laws § 42-12.3-3(g) - href: https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm AK: 2021-01-01: 60 AL: @@ -89,9 +87,6 @@ PA: 2021-01-01: 60 RI: 2021-01-01: 60 - # The annual model approximates the statutory twelve-month period and its - # final month-end with 365 days. - 2022-10-01: 365 SC: 2021-01-01: 60 SD: diff --git a/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/extended_postpartum_coverage.yaml b/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/extended_postpartum_coverage.yaml deleted file mode 100644 index 082b7f32479..00000000000 --- a/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/extended_postpartum_coverage.yaml +++ /dev/null @@ -1,11 +0,0 @@ -description: Rhode Island provides full Medicaid during its extended postpartum period to people eligible for Medicaid, CHIP, or RIte Start while pregnant, including when federal funding is unavailable. -values: - 0000-01-01: false - 2022-10-01: true -metadata: - unit: bool - period: year - label: Rhode Island extended postpartum Medicaid coverage - reference: - - title: R.I. Gen. Laws § 42-12.3-3(g) - href: https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm diff --git a/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/postpartum_coverage_months.yaml b/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/postpartum_coverage_months.yaml new file mode 100644 index 00000000000..1c9553af55d --- /dev/null +++ b/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/postpartum_coverage_months.yaml @@ -0,0 +1,11 @@ +description: Rhode Island provides full Medicaid through the end of this many calendar months after a qualifying pregnancy ends, including when federal funding is unavailable. +values: + 0000-01-01: 0 + 2022-10-01: 12 +metadata: + unit: month + period: month + label: Rhode Island postpartum Medicaid continuation months + reference: + - title: R.I. Gen. Laws § 42-12.3-3(g) + href: https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml index c6ea8f7d27f..44f9e89bcb3 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml @@ -430,3 +430,66 @@ state_code: RI output: is_chip_eligible_standard_pregnant_person: [false, false, false, false, false, false, true] + +# RI-22-0025 CS27 continues the separate CHIP program through the postpartum +# period; the full Medicaid benefit scope does not create duplicate enrollment. +# https://www.medicaid.gov/CHIP/Downloads/RI-22-0025.pdf#page=4 +# R.I. Gen. Laws § 42-12.3-3(g) preserves the entitlement without federal funds. +# https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm +- name: Case 15, Rhode Island retains pregnancy CHIP despite later income insurance pregnancy or immigration changes. + period: 2024 + input: + people: + person1: + age: 30 + is_pregnant: false + immigration_status: CITIZEN + has_esi: false + ri_pregnancy_coverage: CHIP + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + person2: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + has_esi: true + ri_pregnancy_coverage: CHIP + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + person3: + age: 30 + is_pregnant: false + immigration_status: UNDOCUMENTED + has_esi: true + ri_pregnancy_coverage: CHIP + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + person4: + age: 30 + is_pregnant: true + immigration_status: UNDOCUMENTED + has_esi: false + ri_pregnancy_coverage: CHIP + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + person5: + age: 30 + is_pregnant: false + immigration_status: CITIZEN + has_esi: false + ri_pregnancy_coverage: CHIP + ri_medicaid_pregnancy_end_date: "2022-11-27" + medicaid_household_size: 2 + medicaid_income_level: 4 + households: + household: + members: [person1, person2, person3, person4, person5] + state_code: RI + output: + is_chip_eligible_standard_pregnant_person: [true, true, true, true, false] + medicaid_enrolled: [false, false, false, false, false] + chip_enrolled: [true, true, true, true, false] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml index 9e6719c2830..5c924d4df1e 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml @@ -127,3 +127,50 @@ meets_ssi_disability_criteria: true output: medicaid_federal_share: 0.9000 + +# RIte Start/FCEP continuation for undocumented residents has no Title XIX +# Medicaid match. Separate Title XXI HSI funding is outside this cost variable. +# https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm +# https://www.law.cornell.edu/uscode/text/42/1396b#v +# https://www.medicaid.gov/CHIP/Downloads/RI-22-0026.pdf#page=2 +# January 2024 uses Rhode Island's regular FY2024 FMAP of 55.01%. +- name: Rhode Island RIte Start and FCEP continuation has no Title XIX match for undocumented residents while a Medicaid citizen retains regular FMAP. + period: 2024 + input: + people: + person1: + age: 30 + immigration_status: UNDOCUMENTED + ri_pregnancy_coverage: FCEP + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + takes_up_medicaid_if_eligible: true + medicaid_cost: 1_000 + person2: + age: 30 + immigration_status: UNDOCUMENTED + ri_pregnancy_coverage: RITE_START + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + takes_up_medicaid_if_eligible: true + medicaid_cost: 1_000 + person3: + age: 30 + immigration_status: CITIZEN + ri_pregnancy_coverage: MEDICAID + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + takes_up_medicaid_if_eligible: true + medicaid_cost: 1_000 + households: + household: + members: [person1, person2, person3] + state_code: RI + output: + is_medicaid_eligible: [true, true, true] + medicaid_enrolled: [true, true, true] + medicaid_federal_share: [0, 0, 0.5501] + medicaid_federal_cost: [0, 0, 550.1] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml index fc1f18ca45d..f5b647cf918 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml @@ -160,8 +160,7 @@ # R.I. Gen. Laws § 42-12.3-3(g): from October 1, 2022, people eligible for # https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm # Medicaid or CHIP while pregnant keep full Medicaid through the postpartum -# period. The annual model uses current income as a proxy for income during -# pregnancy. $47,000 is about 230% FPL for a household of 2 in 2024 ($20,440). +# period. $47,000 is about 230% FPL for a household of 2 in 2024 ($20,440). # Use the mother's underlying indicator so the newborn's postpartum days # derive as infinity rather than being filled with a zero partial input. - name: Case 15, Rhode Island postpartum parent and newborn retain their distinct Medicaid categories. @@ -172,6 +171,8 @@ age: 28 is_pregnant: false under_60_days_postpartum: true + ri_pregnancy_coverage: CHIP + ri_medicaid_pregnancy_end_date: "2023-12-01" employment_income: 47_000 person2: age: 0 @@ -186,6 +187,9 @@ is_pregnant_for_medicaid: [true, false] medicaid_category: [PREGNANT, INFANT] is_medicaid_eligible: [true, true] + medicaid_enrolled: [false, true] + chip_enrolled: [true, false] + is_chip_eligible_standard_pregnant_person: [true, false] # While pregnant, the same income is above RI's 190% Medicaid standard (195% # with the disregard), so an uninsured applicant is in CHIP rather than @@ -325,9 +329,9 @@ # R.I. Gen. Laws § 42-12.3-3(g) supplies twelve months of full Medicaid # from October 1, 2022, including people covered under Title XXI while -# pregnant. Days 300 and 400 are clearly within and beyond that period; -# they avoid asserting an exact month-end anniversary from an elapsed-day -# input. The non-qualified parent receives the state-funded continuation. +# pregnant. At January 1, 2024, the March 2023 pregnancies are within the +# continuation period and the November 2022 pregnancies have expired. +# The non-qualified parent receives the state-funded continuation. - name: Case 19, Rhode Island citizen and undocumented postpartum parents receive coverage within the extended period. period: 2024 input: @@ -337,6 +341,8 @@ is_pregnant: false immigration_status: CITIZEN count_days_postpartum: 300 + ri_pregnancy_coverage: MEDICAID + ri_medicaid_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 2.3 person2: @@ -344,6 +350,8 @@ is_pregnant: false immigration_status: CITIZEN count_days_postpartum: 400 + ri_pregnancy_coverage: MEDICAID + ri_medicaid_pregnancy_end_date: "2022-11-27" medicaid_household_size: 2 medicaid_income_level: 2.3 person3: @@ -351,6 +359,8 @@ is_pregnant: false immigration_status: UNDOCUMENTED count_days_postpartum: 300 + ri_pregnancy_coverage: MEDICAID + ri_medicaid_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 2.3 person4: @@ -358,6 +368,8 @@ is_pregnant: false immigration_status: UNDOCUMENTED count_days_postpartum: 400 + ri_pregnancy_coverage: MEDICAID + ri_medicaid_pregnancy_end_date: "2022-11-27" medicaid_household_size: 2 medicaid_income_level: 2.3 households: @@ -380,6 +392,12 @@ count_days_postpartum: 2022: 90 2023: 90 + ri_pregnancy_coverage: + 2022: MEDICAID + 2023: MEDICAID + ri_medicaid_pregnancy_end_date: + 2022: "2021-10-03" + 2023: "2022-10-03" medicaid_household_size: 2022: 2 2023: 2 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml index 2fb92c16b1e..e39dbfd782b 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml @@ -314,3 +314,105 @@ medicaid_category: SECTION_1115_MEC_ADULT is_medicaid_work_requirement_applicable_adult: true is_medicaid_eligible: true + +# R.I. Gen. Laws § 42-12.3-3(g) bases continuation on eligibility while +# pregnant, including RIte Start and Title XXI, without requiring federal funds. +# Current income does not replace that history or terminate continuation. +# https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm +- name: Case 17, Rhode Island pregnancy history preserves coverage after income rises and prevents new coverage when income falls. + period: 2024 + input: + people: + person1: + age: 30 + immigration_status: CITIZEN + count_days_postpartum: 300 + ri_pregnancy_coverage: MEDICAID + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + person2: + age: 30 + immigration_status: CITIZEN + count_days_postpartum: 300 + ri_pregnancy_coverage: NONE + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + person3: + age: 30 + immigration_status: UNDOCUMENTED + count_days_postpartum: 300 + ri_pregnancy_coverage: NONE + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 1.8 + person4: + age: 30 + immigration_status: CITIZEN + count_days_postpartum: 300 + ri_pregnancy_coverage: NONE + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 2.3 + person5: + age: 30 + immigration_status: CITIZEN + count_days_postpartum: 30 + ri_pregnancy_coverage: NONE + ri_medicaid_pregnancy_end_date: "2023-12-02" + medicaid_household_size: 2 + medicaid_income_level: 1.8 + households: + household: + members: [person1, person2, person3, person4, person5] + state_code: RI + output: + is_pregnant_for_medicaid: [true, false, false, false, false] + is_medicaid_eligible: [true, false, false, false, false] + +# A new pregnancy does not end the prior pregnancy's continuation period. +# These applicants have income above both current pregnancy ceilings, and +# the state-funded entitlement also protects the undocumented applicant. +- name: Case 18, Rhode Island continuation survives a new pregnancy for citizens and undocumented residents. + period: 2024 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + ri_pregnancy_coverage: MEDICAID + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + person2: + age: 30 + is_pregnant: true + immigration_status: UNDOCUMENTED + ri_pregnancy_coverage: MEDICAID + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + households: + household: + members: [person1, person2] + state_code: RI + output: + is_pregnant_for_medicaid: [true, true] + is_medicaid_eligible: [true, true] + +- name: Case 19, Rhode Island pregnancy history does not confer continuation outside the state. + period: 2024 + input: + age: 30 + immigration_status: CITIZEN + count_days_postpartum: 300 + ri_pregnancy_coverage: MEDICAID + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + state_code: CO + output: + is_pregnant_for_medicaid: false + is_medicaid_eligible: false diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/medicaid_enrolled.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/medicaid_enrolled.yaml index 6efcba2e39e..9a2a9928207 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/medicaid_enrolled.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/medicaid_enrolled.yaml @@ -130,3 +130,45 @@ is_ca_medicaid_immigration_status_eligible: [true] is_medicaid_eligible: [true] medicaid_enrolled: [true] + +# RI-22-0025 CS27 preserves postpartum CHIP and permits voluntary disenrollment. +# Independent take-up inputs must retain a Medicaid enrollee when CHIP is declined. +# https://www.medicaid.gov/CHIP/Downloads/RI-22-0025.pdf#page=4 +- name: Case 6, Rhode Island postpartum enrollment follows independent Medicaid and CHIP take-up choices. + period: 2024 + input: + people: + person1: + age: 30 + immigration_status: CITIZEN + ri_pregnancy_coverage: CHIP + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + takes_up_medicaid_if_eligible: true + takes_up_chip_if_eligible: false + person2: + age: 30 + immigration_status: CITIZEN + ri_pregnancy_coverage: CHIP + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + takes_up_medicaid_if_eligible: true + takes_up_chip_if_eligible: true + person3: + age: 30 + immigration_status: CITIZEN + ri_pregnancy_coverage: CHIP + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + takes_up_medicaid_if_eligible: false + takes_up_chip_if_eligible: false + households: + household: + members: [person1, person2, person3] + state_code: RI + output: + medicaid_enrolled: [true, false, false] + chip_enrolled: [false, true, false] diff --git a/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.yaml new file mode 100644 index 00000000000..0d34089a530 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.yaml @@ -0,0 +1,124 @@ +# R.I. Gen. Laws § 42-12.3-3(g) continues full Medicaid for people eligible +# for RIte Start, Medicaid or CHIP while pregnant, including retroactively, +# through the final day of the month containing their twelve-month anniversary. +# https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm +# CMS approved continuous postpartum coverage effective October 1, 2022. +# https://www.medicaid.gov/medicaid/spa/downloads/RI-22-0024.pdf#page=2 +- name: Case 1, Rhode Island continuation includes the anniversary month and expires the following month. + period: 2024 + input: + state_code: RI + ri_pregnancy_coverage: MEDICAID + ri_medicaid_pregnancy_end_date: "2023-01-01" + output: + ri_medicaid_postpartum_eligible: + 2024-01: true + 2024-02: false + +- name: Case 2, Rhode Island continuation spans a leap year without a 365-day cutoff. + period: 2025 + input: + state_code: RI + ri_pregnancy_coverage: MEDICAID + ri_medicaid_pregnancy_end_date: "2024-01-01" + output: + ri_medicaid_postpartum_eligible: + 2025-01: true + 2025-02: false + +- name: Case 3, a pregnancy ending on leap day retains Rhode Island coverage through the following February. + period: 2025 + input: + state_code: RI + ri_pregnancy_coverage: MEDICAID + ri_medicaid_pregnancy_end_date: "2024-02-29" + output: + ri_medicaid_postpartum_eligible: + 2025-02: true + 2025-03: false + +- name: Case 4, Rhode Island extended postpartum coverage begins in October 2022. + period: 2022 + input: + state_code: RI + ri_pregnancy_coverage: MEDICAID + ri_medicaid_pregnancy_end_date: "2022-03-15" + output: + ri_medicaid_postpartum_eligible: + 2022-09: false + 2022-10: true + +# A monthly test explicitly supplies YEAR inputs for the containing year. +# People 1 and 2 have no qualifying history; person 3 has no end date; +# person 4 reports a future pregnancy end; person 5 is the positive control; +# person 6 has the same qualifying facts outside Rhode Island. +- name: Case 5, continuation requires qualifying history and a completed pregnancy with current Rhode Island residence. + period: 2024-01 + input: + people: + person1: + ri_pregnancy_coverage: + 2024: NONE + ri_medicaid_pregnancy_end_date: + 2024: "2023-03-07" + person2: + ri_medicaid_pregnancy_end_date: + 2024: "2023-03-07" + person3: + ri_pregnancy_coverage: + 2024: MEDICAID + person4: + ri_pregnancy_coverage: + 2024: MEDICAID + ri_medicaid_pregnancy_end_date: + 2024: "2024-02-01" + person5: + ri_pregnancy_coverage: + 2024: MEDICAID + ri_medicaid_pregnancy_end_date: + 2024: "2023-03-07" + person6: + ri_pregnancy_coverage: + 2024: MEDICAID + ri_medicaid_pregnancy_end_date: + 2024: "2023-03-07" + households: + household1: + members: [person1, person2, person3, person4, person5] + state_code: + 2024: RI + household2: + members: [person6] + state_code: + 2024: CO + output: + ri_medicaid_postpartum_eligible: [false, false, false, false, true, false] + +- name: Case 6, each qualifying Rhode Island pregnancy coverage pathway retains postpartum benefits. + period: 2024 + input: + people: + person1: + ri_pregnancy_coverage: MEDICAID + ri_medicaid_pregnancy_end_date: "2023-03-07" + person2: + ri_pregnancy_coverage: CHIP + ri_medicaid_pregnancy_end_date: "2023-03-07" + person3: + ri_pregnancy_coverage: RITE_START + ri_medicaid_pregnancy_end_date: "2023-03-07" + person4: + ri_pregnancy_coverage: FCEP + ri_medicaid_pregnancy_end_date: "2023-03-07" + person5: + ri_pregnancy_coverage: NONE + ri_medicaid_pregnancy_end_date: "2023-03-07" + households: + household: + members: [person1, person2, person3, person4, person5] + state_code: RI + output: + ri_medicaid_postpartum_eligible: + 2024-01: [true, true, true, true, false] + ri_chip_postpartum_eligible: + 2024-01: [false, true, false, false, false] 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 45770e838a1..98645bdb5fb 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 @@ -7,8 +7,12 @@ class is_chip_eligible_standard_pregnant_person(Variable): value_type = bool entity = Person - label = "Pregnant person eligible for standard CHIP" - documentation = "Determines if a pregnant person is eligible for the standard Children's Health Insurance Program" + label = "Pregnant or postpartum person eligible for standard CHIP" + documentation = ( + "Determines standard pregnancy CHIP eligibility, including Rhode " + "Island's continuous postpartum coverage at the annual model's " + "January snapshot." + ) definition_period = YEAR reference = ( "https://www.ssa.gov/OP_Home/ssact/title21/2110.htm", @@ -19,6 +23,7 @@ class is_chip_eligible_standard_pregnant_person(Variable): "https://www.medicaid.gov/federal-policy-guidance/downloads/sho-12-002.pdf", "https://www.medicaid.gov/federal-policy-guidance/downloads/sho26001.pdf#page=28", "https://rules.sos.ri.gov/regulations/part/210-30-00-1", + "https://www.medicaid.gov/CHIP/Downloads/RI-22-0025.pdf#page=4", ) def formula(person, period, parameters): @@ -55,4 +60,4 @@ def formula(person, period, parameters): & ~medicaid_eligible & income_eligible & ri_insurance_eligible - ) + ) | person("ri_chip_postpartum_eligible", period.first_month) diff --git a/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py b/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py index 5e4cb63acae..fd7d28b8c8c 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py +++ b/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py @@ -9,11 +9,18 @@ class medicaid_federal_share(Variable): "Federal medical assistance percentage applied to this enrollee's " "Medicaid expenditures. Uses the ACA expansion FMAP for expansion " "adults (42 U.S.C. 1396d(y)) and the state's regular FMAP for all " - "other enrollment groups (42 U.S.C. 1396d(b))." + "other enrollment groups (42 U.S.C. 1396d(b)). Rhode Island's RIte " + "Start/FCEP postpartum route receives no Title XIX match when the " + "enrollee does not meet Medicaid immigration requirements. Separate " + "Title XXI health services initiative funding is not included here." ) unit = "/1" definition_period = YEAR - reference = "https://www.law.cornell.edu/uscode/text/42/1396d" + reference = ( + "https://www.law.cornell.edu/uscode/text/42/1396d", + "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm", + "https://www.medicaid.gov/CHIP/Downloads/RI-22-0026.pdf#page=2", + ) defined_for = "medicaid_enrolled" def formula(person, period, parameters): @@ -22,11 +29,23 @@ def formula(person, period, parameters): regular_fmap = p.fmap[state] category = person("medicaid_category", period) categories = category.possible_values + pregnancy_coverage = person("ri_pregnancy_coverage", period) + coverage_types = pregnancy_coverage.possible_values + ri_state_supported_pregnancy = ( + pregnancy_coverage == coverage_types.RITE_START + ) | (pregnancy_coverage == coverage_types.FCEP) + no_federal_medicaid_match = ( + (state == StateCode.RI) + & person("ri_medicaid_postpartum_eligible", period.first_month) + & ri_state_supported_pregnancy + & ~person("is_medicaid_immigration_status_eligible", period) + ) return select( [ + no_federal_medicaid_match, category == categories.ADULT, category != categories.NONE, ], - [p.expansion_fmap, regular_fmap], + [0, p.expansion_fmap, regular_fmap], default=0, ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py index 14e68d77dde..ea46aa6c481 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py @@ -30,17 +30,15 @@ def formula(person, period, parameters): ma = parameters(period).gov.hhs.medicaid.eligibility.categories.pregnant state = person.household("state_code_str", period) income_limit = ma.income_limit[state] - ri = parameters(period).gov.states.ri.eohhs.medicaid - postpartum = ~person("is_pregnant", period) & ( - person("count_days_postpartum", period) < ma.postpartum_coverage[state] - ) - # Rhode Island covers insured pregnant people through Medicaid at its - # CHIP pregnancy ceiling. The same ceiling approximates prior pregnancy - # eligibility for extended postpartum coverage using current income. - ri_higher_limit = (state == "RI") & ( - person("ri_medicaid_has_third_party_coverage", period) - | (ri.extended_postpartum_coverage & postpartum) + ri_higher_limit = (state == "RI") & person( + "ri_medicaid_has_third_party_coverage", period ) chip_income_limit = parameters(period).gov.hhs.chip.pregnant.income_limit[state] income_limit = where(ri_higher_limit, chip_income_limit, income_limit) - return medicaid_income_eligible(person, period, parameters, income_limit) + ri_postpartum_eligible = person( + "ri_medicaid_postpartum_eligible", period.first_month + ) + return ( + medicaid_income_eligible(person, period, parameters, income_limit) + | ri_postpartum_eligible + ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py index c122e30b728..cb3a248dfed 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py @@ -13,4 +13,11 @@ def formula(person, period, parameters): days_postpartum = person("count_days_postpartum", period) state = person.household("state_code_str", period) max_postpartum_days = ma.postpartum_coverage[state] - return is_pregnant | (days_postpartum < max_postpartum_days) + ri = parameters(period).gov.states.ri.eohhs.medicaid + ri_continuation_applies = (state == "RI") & (ri.postpartum_coverage_months > 0) + postpartum_eligible = where( + ri_continuation_applies, + person("ri_medicaid_postpartum_eligible", period.first_month), + days_postpartum < max_postpartum_days, + ) + return is_pregnant | postpartum_eligible diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medicaid_eligible.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medicaid_eligible.py index 568ac542d33..2d0fc777faa 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medicaid_eligible.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medicaid_eligible.py @@ -20,16 +20,8 @@ def formula(person, period, parameters): ) ca_ffyp_eligible = person("ca_ffyp_eligible", period) il_hbi_eligible = person("il_hbi_eligible", period) - ri = parameters(period).gov.states.ri.eohhs.medicaid - state = person.household("state_code_str", period) - # Rhode Island funds full postpartum coverage even when federal funding - # is unavailable. Pregnancy financial and non-financial criteria proxy - # prior pregnancy eligibility because the model has no coverage history. - ri_postpartum_eligible = ( - (state == "RI") - & ri.extended_postpartum_coverage - & ~person("is_pregnant", period) - & person("is_pregnant_for_medicaid", period) + ri_postpartum_eligible = person( + "ri_medicaid_postpartum_eligible", period.first_month ) p = parameters(period).gov.hhs.medicaid.eligibility diff --git a/policyengine_us/variables/gov/hhs/medicaid/medicaid_enrolled.py b/policyengine_us/variables/gov/hhs/medicaid/medicaid_enrolled.py index 05b2f752609..bf864de3dc6 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/medicaid_enrolled.py +++ b/policyengine_us/variables/gov/hhs/medicaid/medicaid_enrolled.py @@ -6,6 +6,15 @@ class medicaid_enrolled(Variable): entity = Person label = "Medicaid enrolled" definition_period = YEAR - reference = "https://www.law.cornell.edu/uscode/text/42/1396a" + reference = ( + "https://www.law.cornell.edu/uscode/text/42/1396a", + "https://www.medicaid.gov/CHIP/Downloads/RI-22-0025.pdf#page=4", + ) defined_for = "is_medicaid_eligible" - adds = ["takes_up_medicaid_if_eligible"] + + def formula(person, period, parameters): + takes_up = person("takes_up_medicaid_if_eligible", period) + retained_chip = person( + "ri_chip_postpartum_eligible", period.first_month + ) & person("takes_up_chip_if_eligible", period) + return takes_up & ~retained_chip diff --git a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_chip_postpartum_eligible.py b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_chip_postpartum_eligible.py new file mode 100644 index 00000000000..0918fa035d3 --- /dev/null +++ b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_chip_postpartum_eligible.py @@ -0,0 +1,19 @@ +from policyengine_us.model_api import * + + +class ri_chip_postpartum_eligible(Variable): + value_type = bool + entity = Person + label = "Eligible for Rhode Island postpartum CHIP continuation" + definition_period = MONTH + defined_for = StateCode.RI + reference = ( + "https://www.medicaid.gov/CHIP/Downloads/RI-22-0025.pdf#page=4", + "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm", + ) + + def formula(person, period, parameters): + coverage = person("ri_pregnancy_coverage", period.this_year) + return person("ri_medicaid_postpartum_eligible", period) & ( + coverage == coverage.possible_values.CHIP + ) diff --git a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.py b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.py new file mode 100644 index 00000000000..2dbcdc42e83 --- /dev/null +++ b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.py @@ -0,0 +1,30 @@ +from policyengine_us.model_api import * + + +class ri_medicaid_postpartum_eligible(Variable): + value_type = bool + entity = Person + label = "Eligible for Rhode Island postpartum Medicaid continuation" + definition_period = MONTH + defined_for = StateCode.RI + reference = ( + "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm" + ) + + def formula(person, period, parameters): + p = parameters(period).gov.states.ri.eohhs.medicaid + coverage = person("ri_pregnancy_coverage", period.this_year) + eligible_during_pregnancy = coverage != coverage.possible_values.NONE + pregnancy_end = person("ri_medicaid_pregnancy_end_date", period.this_year) + reference_date = np.datetime64(period.start.date) + # The first day after the anniversary month is an exclusive endpoint. + # Month arithmetic preserves the full final month, including leap years. + first_uncovered_month = ( + pregnancy_end.astype("datetime64[M]") + p.postpartum_coverage_months + 1 + ) + return ( + (p.postpartum_coverage_months > 0) + & eligible_during_pregnancy + & (pregnancy_end <= reference_date) + & (reference_date.astype("datetime64[M]") < first_uncovered_month) + ) diff --git a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_pregnancy_end_date.py b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_pregnancy_end_date.py new file mode 100644 index 00000000000..523671ce0ca --- /dev/null +++ b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_pregnancy_end_date.py @@ -0,0 +1,11 @@ +from policyengine_us.model_api import * + + +class ri_medicaid_pregnancy_end_date(Variable): + value_type = date + entity = Person + label = "End date of the last completed pregnancy for Rhode Island Medicaid" + definition_period = YEAR + reference = ( + "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm" + ) diff --git a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_pregnancy_coverage.py b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_pregnancy_coverage.py new file mode 100644 index 00000000000..dae75e7f165 --- /dev/null +++ b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_pregnancy_coverage.py @@ -0,0 +1,24 @@ +from policyengine_us.model_api import * + + +class RIPregnancyCoverage(Enum): + MEDICAID = "Medicaid" + CHIP = "Separate CHIP" + RITE_START = "RIte Start" + FCEP = "CHIP unborn-child coverage" + NONE = "No established qualifying pregnancy eligibility" + + +class ri_pregnancy_coverage(Variable): + # Eligibility during the last completed pregnancy, including retroactive + # eligibility. Current income and enrollment cannot establish this history. + value_type = Enum + possible_values = RIPregnancyCoverage + default_value = RIPregnancyCoverage.NONE + entity = Person + label = "Qualifying Rhode Island coverage during the last completed pregnancy" + definition_period = YEAR + reference = ( + "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm", + "https://www.medicaid.gov/CHIP/Downloads/RI-22-0025.pdf#page=4", + ) From 300d6bf2cb285023880e525f22965987849112cf Mon Sep 17 00:00:00 2001 From: Ziming Date: Fri, 23 Oct 2026 22:24:31 -0400 Subject: [PATCH 05/14] Fix issues from review: boundary tests, New Jersey and Rhode Island sources - Add boundary cases that pin the corrected WV CHIP, WV Medicaid, NJ, RI, KY and Colorado FCEP limits on both sides, plus KY 2021 and CO 2019. - Replace the dead New Jersey notice link with the medicaid.gov 1115 amendment request and add the current Rhode Island rule version. - State the five percentage point disregard (42 CFR 435.603(d)(4)) in the descriptions, cite the older Colorado rule text and CO-26-0047, and explain the January 1 read and the Colorado FCEP end date. - Assert the Colorado FCEP downstream CHIP result, rename three cases, and give each person in Cases 9-11 and 13 their own units. Co-Authored-By: Claude Opus 5.5 --- .../gov/hhs/chip/fcep/income_limit.yaml | 19 +- .../gov/hhs/chip/pregnant/income_limit.yaml | 44 +++- .../categories/pregnant/income_limit.yaml | 10 +- .../gov/hhs/chip/is_chip_eligible_fcep.yaml | 47 ++++ ...hip_eligible_standard_pregnant_person.yaml | 247 +++++++++++++++++- .../categories/is_pregnant_for_medicaid.yaml | 23 +- 6 files changed, 374 insertions(+), 16 deletions(-) diff --git a/policyengine_us/parameters/gov/hhs/chip/fcep/income_limit.yaml b/policyengine_us/parameters/gov/hhs/chip/fcep/income_limit.yaml index 8de0e64f304..25bdabd38ef 100644 --- a/policyengine_us/parameters/gov/hhs/chip/fcep/income_limit.yaml +++ b/policyengine_us/parameters/gov/hhs/chip/fcep/income_limit.yaml @@ -1,4 +1,4 @@ -description: State governments limit Children's Health Insurance Program from-conception-to-end-of-pregnancy eligibility to these incomes, as a share of the federal poverty line. A value of -inf indicates the state has not adopted the from-conception-to-end-of-pregnancy option. +description: State governments limit Children's Health Insurance Program from-conception-to-end-of-pregnancy eligibility to these incomes, as a share of the federal poverty line, including the five percentage point income disregard of 42 CFR 435.603(d)(4). A value of -inf indicates the state has not adopted the from-conception-to-end-of-pregnancy option. metadata: unit: /1 period: year @@ -6,16 +6,26 @@ metadata: breakdown: - state_code reference: + # KFF's January 2026 table adds the disregard only at each state's highest + # pregnancy level, so lower levels omit it (for example, West Virginia + # Medicaid 185% and Colorado CHIP 260%). 42 CFR 435.603(d)(4) applies the + # disregard in each Title. - title: Medicaid and CHIP Income Eligibility Limits for Pregnant Women as a Percent of the Federal Poverty Level | KFF State Health Facts href: 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/?currentTimeframe=0&sortModel=%7B%22colId%22:%22Location%22,%22sort%22:%22asc%22%7D - title: Medicaid, Children's Health Insurance Program, & Basic Health Program Eligibility Levels | CMS href: https://www.medicaid.gov/medicaid/national-medicaid-chip-program-information/medicaid-childrens-health-insurance-program-basic-health-program-eligibility-levels - title: MACStats Medicaid and CHIP Data Book, Exhibit 35 | MACPAC href: https://www.macpac.gov/publication/medicaid-and-chip-income-eligibility-levels-as-a-percentage-of-the-federal-poverty-level-for-children-and-pregnant-women-by-state/ + - title: 42 CFR 435.603(d)(4), five percentage point MAGI income disregard + href: https://www.law.cornell.edu/cfr/text/42/435.603#d_4 + - title: 42 CFR 457.315(a), MAGI financial methodologies apply to CHIP + href: https://www.law.cornell.edu/cfr/text/42/457.315#a - title: Colorado CHIP State Plan Amendment CO-24-0041, state plan amendment history (Amendment 40) href: https://www.medicaid.gov/CHIP/Downloads/CO-24-0041.pdf#page=3 - - title: Colorado CHIP State Plan Amendment CO-25-0044, section 3.1.1.1 - href: https://www.medicaid.gov/CHIP/Downloads/CO-25-0044.pdf#page=6 + - title: "Colorado CHIP State Plan Amendment CO-25-0044, companion letter and section 3.1.1.1 #page 3,6" + href: https://www.medicaid.gov/CHIP/Downloads/CO-25-0044.pdf#page=3 + - title: Colorado CHIP State Plan Amendment CO-26-0047, superseding pages table (CO-24-0040-0002 CS9, Coverage From Conception to Birth, effective January 1, 2025) + href: https://www.medicaid.gov/CHIP/Downloads/CO-26-0047.pdf#page=5 AK: 2018-01-01: -.inf 2019-01-01: -.inf @@ -57,6 +67,9 @@ CA: 2023-01-01: 3.22 2024-01-01: 3.22 CO: + # FCEP authority is CO-24-0040-0002 (CS9), effective January 1, 2025, with no + # end date. The December 31, 2026 sunset in the CO-25-0044 approval covers only + # the section 5121 pre-release services. 2018-01-01: -.inf 2019-01-01: -.inf 2020-01-01: -.inf diff --git a/policyengine_us/parameters/gov/hhs/chip/pregnant/income_limit.yaml b/policyengine_us/parameters/gov/hhs/chip/pregnant/income_limit.yaml index bee16c55df6..f151f155df4 100644 --- a/policyengine_us/parameters/gov/hhs/chip/pregnant/income_limit.yaml +++ b/policyengine_us/parameters/gov/hhs/chip/pregnant/income_limit.yaml @@ -1,34 +1,50 @@ -description: State governments limit standard Children's Health Insurance Program pregnancy eligibility to these incomes, as a share of the federal poverty line. A value of -inf indicates the state does not operate a standard separate CHIP program for pregnant people; these states cover pregnancy through Medicaid or through the from-conception-to-end-of-pregnancy option, reflected in the Medicaid pregnant and CHIP FCEP income limit parameters. +description: State governments limit standard Children's Health Insurance Program pregnancy eligibility to these incomes, as a share of the federal poverty line, including the five percentage point income disregard of 42 CFR 435.603(d)(4). A value of -inf indicates the state does not operate a standard separate CHIP program for pregnant people; these states cover pregnancy through Medicaid or through the from-conception-to-end-of-pregnancy option, reflected in the Medicaid pregnant and CHIP FCEP income limit parameters. metadata: unit: /1 label: CHIP pregnant income limit breakdown: - state_code reference: + # KFF's January 2026 table adds the disregard only at each state's highest + # pregnancy level, so lower levels omit it (for example, West Virginia + # Medicaid 185% and Colorado CHIP 260%). 42 CFR 435.603(d)(4) applies the + # disregard in each Title. - title: Medicaid and CHIP Income Eligibility Limits for Pregnant Women as a Percent of the Federal Poverty Level | KFF State Health Facts href: 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/?currentTimeframe=0&sortModel=%7B%22colId%22:%22Location%22,%22sort%22:%22asc%22%7D - title: Medicaid, Children's Health Insurance Program, & Basic Health Program Eligibility Levels as of December 2023 | CMS href: https://www.medicaid.gov/medicaid/national-medicaid-chip-program-information/medicaid-childrens-health-insurance-program-basic-health-program-eligibility-levels - title: Medicaid and CHIP Eligibility Levels href: https://data.medicaid.gov/dataset/d7e4cccb-1c56-5b5d-acce-5e7744c6d3b4 + - title: 42 CFR 435.603(d)(4), five percentage point MAGI income disregard + href: https://www.law.cornell.edu/cfr/text/42/435.603#d_4 + - title: 42 CFR 457.315(a), MAGI financial methodologies apply to CHIP + href: https://www.law.cornell.edu/cfr/text/42/457.315#a + - title: Medicaid and CHIP Eligibility, Enrollment, Renewal, and Cost Sharing Policies as of January 2018 | KFF, Table 4 + href: https://files.kff.org/attachment/Report-Medicaid-and-CHIP-Eligibility-Enrollment-Renewal-and-Cost-Sharing-Policies-as-of-January-2018#page=33 + - title: Medicaid and CHIP Eligibility and Enrollment Policies as of January 2022 | KFF, Table 2 + href: https://files.kff.org/attachment/REPORT-Medicaid-and-CHIP-Eligibility-and-Enrollment-Policies-as-of-January-2022.pdf#page=36 - title: Colorado CHIP State Plan Amendment CO-13-0015, CS8 Targeted Low-Income Pregnant Women href: https://www.medicaid.gov/CHIP/Downloads/CO/CO-13-0015-MC1.pdf#page=8 - - title: 10 CCR 2505-3 § 110.1.F + - title: "10 CCR 2505-3 § 110.1.F and editor's notes #page 9,37" href: https://www.coloradosos.gov/CCR/GenerateRulePdf.do?ruleVersionId=12687&fileName=10%20CCR%202505-3#page=9 + - title: 10 CCR 2505-3 § 110.1.F (version effective March 11, 2022, before the June 30, 2022 amendment) + href: https://www.coloradosos.gov/CCR/GenerateRulePdf.do?ruleVersionId=10074&fileName=10%20CCR%202505-3#page=5 - title: Colorado Medical Services Board Notice of Proposed Rules, CHP 22-01-06-B (May 13, 2022 meeting) href: https://www.coloradosos.gov/CCR/Upload/NoticeOfRulemaking/ProposedRuleAttach2022-00181.pdf - title: "Kentucky CHIP State Plan Amendment KY-21-0001, approval letter and CS8 #page 2,4" href: https://www.medicaid.gov/CHIP/Downloads/KY-21-0001.pdf#page=2 - - title: "907 KAR 4:030 § 2(1)(e)1 #page 1-2" + - title: "907 KAR 4:030 § 2(1)(e)1 (version effective January 12, 2023) #page 1-2" href: https://apps.legislature.ky.gov/law/kar/downloads/docs/13741/document.engrossed.pdf#page=1 - title: New Jersey CHIP State Plan Amendment NJ-13-0018, CS8 Targeted Low-Income Pregnant Women href: https://www.medicaid.gov/CHIP/Downloads/NJ/NJ-13-0018-MC1.pdf#page=8 - - title: New Jersey FamilyCare Section 1115 Demonstration Amendment Request Public Notice (December 23, 2019) - href: https://www.nj.gov/humanservices/providers/grants/public/publicnoticefiles/Public%20Notice%20Amendment%20Request%20-%20NJ%201115%2012-23-19%20Final.pdf#page=1 + - title: New Jersey DMAHS Section 1115 Comprehensive Demonstration Amendment Request to CMS (February 27, 2020) + href: https://www.medicaid.gov/medicaid/section-1115-demonstrations/downloads/nj-1115-request-pa.pdf#page=1 - title: Rhode Island CHIP State Plan Amendment RI-13-023, CS8 Targeted Low-Income Pregnant Women href: https://www.medicaid.gov/CHIP/Downloads/RI/RI-13-023-MC1.pdf#page=8 - - title: 210-RICR-30-00-1 § 1.5(B) (effective June 7, 2018) + - title: 210-RICR-30-00-1 § 1.5(B) (version effective June 7, 2018 to January 4, 2022) href: https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_9690_20180806185730.pdf#page=6 + - title: 210-RICR-30-00-1 § 1.6(B) (version effective August 17, 2025) + href: https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_13314_20250728104245127.pdf#page=7 - title: "West Virginia CHIP State Plan Amendment WV-19-0006, approval letter and CS8 #page 2,4" href: https://www.medicaid.gov/CHIP/Downloads/WV/WV-19-0006.pdf#page=2 AK: @@ -42,9 +58,11 @@ AZ: CA: 2018-01-01: -.inf CO: - # 260% FPL (CO-13-0015, effective 2014) plus the 5% FPL disregard. 10 CCR - # 2505-3 printed 250% until a June 30, 2022 correction that aligned the rule - # with the existing standard, so 2018 to mid-2022 also uses 2.65. + # 260% FPL (CO-13-0015, effective 2014) plus the 5 percentage point MAGI + # disregard. Until the amendment effective June 30, 2022, 10 CCR 2505-3 + # § 110.1.F printed "greater than 185% but not exceeding 250%"; the amendment + # aligned the rule with the existing standard, so 2018 to mid-2022 also uses + # 2.65. 2018-01-01: 2.65 CT: 2018-01-01: -.inf @@ -70,6 +88,8 @@ KS: 2018-01-01: -.inf KY: 2018-01-01: -.inf + # Effective July 1, 2022 (KY-21-0001). YEAR-defined formulas read January 1, + # so this value first applies in 2023. 2022-07-01: 2.18 LA: 2018-01-01: -.inf @@ -98,6 +118,8 @@ NE: NH: 2018-01-01: -.inf NJ: + # NJ-13-0018 has applied since January 1, 2014; 2018-01-01 is this file's + # first date. 2018-01-01: 2.05 NM: 2018-01-01: -.inf @@ -114,6 +136,8 @@ OR: PA: 2018-01-01: -.inf RI: + # RI-13-023 has applied since January 1, 2014; 2018-01-01 is this file's + # first date. 2018-01-01: 2.58 SC: 2018-01-01: -.inf @@ -135,6 +159,8 @@ WI: 2018-01-01: -.inf WV: 2018-01-01: -.inf + # Effective July 1, 2019 (WV-19-0006). YEAR-defined formulas read January 1, + # so this value first applies in 2020. 2019-07-01: 3.05 WY: 2018-01-01: -.inf diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml index 93b18dd5ff5..ee303970a80 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml @@ -1,4 +1,4 @@ -description: Maximum family income for pregnant people to qualify for Medicaid. +description: Maximum family income for pregnant people to qualify for Medicaid, as a share of the federal poverty line, including the five percentage point income disregard of 42 CFR 435.603(d)(4). metadata: unit: /1 label: Medicaid pregnant income limit @@ -7,6 +7,10 @@ metadata: reference: - title: Medicaid and CHIP Eligibility and Enrollment Policies as of January 2022 | KFF href: https://files.kff.org/attachment/REPORT-Medicaid-and-CHIP-Eligibility-and-Enrollment-Policies-as-of-January-2022.pdf#page=36 + # KFF's January 2026 table adds the disregard only at each state's highest + # pregnancy level, so lower levels omit it (for example, West Virginia + # Medicaid 185% and Colorado CHIP 260%). 42 CFR 435.603(d)(4) applies the + # disregard in each Title. - title: Medicaid and CHIP Income Eligibility Limits for Pregnant Women as a Percent of the Federal Poverty Level | KFF State Health Facts href: 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/?currentTimeframe=0&sortModel=%7B%22colId%22:%22Location%22,%22sort%22:%22asc%22%7D - title: Medicaid and CHIP Eligibility, Enrollment, Renewal, and Cost Sharing Policies as of January 2018 @@ -15,6 +19,8 @@ metadata: href: https://data.medicaid.gov/dataset/d7e4cccb-1c56-5b5d-acce-5e7744c6d3b4 - title: Medicaid and CHIP Eligibility Levels | CMS Data.Medicaid.gov CSV download (April 1, 2018) href: https://download.medicaid.gov/data/medicaid-and-chip-eligibility-levels.xy8t-auhk.csv + - title: 42 CFR 435.603(d)(4), five percentage point MAGI income disregard + href: https://www.law.cornell.edu/cfr/text/42/435.603#d_4 - title: NV-25-0006, Medicaid State Plan Amendment href: https://www.medicaid.gov/medicaid-spa/2025-05-07/179381 - title: Nevada Medicaid Web Announcement 3748 (200% FPL pregnancy standard) @@ -131,6 +137,8 @@ WI: 2018-01-01: 3.06 WV: 2018-01-01: 1.63 + # Effective July 1, 2019 (WV-19-0004). YEAR-defined formulas read January 1, + # so this value first applies in 2020. 2019-07-01: 1.90 WY: 2018-01-01: 1.59 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_fcep.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_fcep.yaml index f83e5d06d09..c95fa2025c3 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_fcep.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_fcep.yaml @@ -517,6 +517,9 @@ # Colorado's FCEP population took effect January 1, 2025, up to 260% FPL # (CO-24-0041 and CO-25-0044), plus the 5 percentage point MAGI disregard. +# The earlier 2023-10-30 date belonged to CO-24-0041 amendment 41, not to FCEP. +# The applicant is undocumented, so standard pregnancy CHIP does not apply and +# FCEP, which has no immigration test, is the only CHIP pathway. - name: Case 18, Colorado FCEP does not cover an undocumented pregnant applicant in 2024. period: 2024 input: @@ -533,6 +536,9 @@ state_code: CO output: is_chip_fcep_eligible_person: false + is_chip_eligible_pregnant: false + chip_category: NONE + is_chip_eligible: false - name: Case 19, Colorado FCEP covers an undocumented pregnant applicant in 2025. period: 2025 @@ -550,3 +556,44 @@ state_code: CO output: is_chip_fcep_eligible_person: true + is_chip_eligible_pregnant: true + chip_category: PREGNANT_FCEP + is_chip_eligible: true + +# Colorado FCEP covers up to and including 260% FPL (CO-25-0044 section +# 3.1.1.1) plus the 5 percentage point disregard. 2026 household of 2: +# 21,640 x 2.65 / 12 = 4,778.83 -> $4,779, so 265% qualifies and 266% +# ($4,796.87) does not. +- name: Case 20, Colorado FCEP covers an undocumented pregnant applicant at 265% FPL in 2026. + period: 2026 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: UNDOCUMENTED + is_medicaid_eligible: false + medicaid_income_level: 2.65 + households: + household: + members: [person1] + state_code: CO + output: + is_chip_fcep_eligible_person: true + +- name: Case 21, Colorado FCEP excludes an undocumented pregnant applicant at 266% FPL in 2026. + period: 2026 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: UNDOCUMENTED + is_medicaid_eligible: false + medicaid_income_level: 2.66 + households: + household: + members: [person1] + state_code: CO + output: + is_chip_fcep_eligible_person: false diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml index 5ad2ea4777e..b1593ae51b2 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml @@ -195,7 +195,7 @@ # Kentucky's 213% band takes effect July 1, 2022 (KY-21-0001), and this # YEAR-defined variable reads the January value, so Kentucky has no group in # 2022. -- name: Case 9, pregnancy bands in Colorado, New Jersey and Rhode Island include the disregard in 2022, before Kentucky's group starts. +- name: Case 9, pregnancy bands in Colorado, New Jersey and Rhode Island include the disregard, and Kentucky's July 2022 group does not apply in 2022 annual simulations. period: 2022 input: people: @@ -223,6 +223,42 @@ immigration_status: CITIZEN is_medicaid_eligible: false medicaid_income_level: 2.1 + tax_units: + tax_unit1: + members: [person1] + tax_unit2: + members: [person2] + tax_unit3: + members: [person3] + tax_unit4: + members: [person4] + spm_units: + spm_unit1: + members: [person1] + spm_unit2: + members: [person2] + spm_unit3: + members: [person3] + spm_unit4: + members: [person4] + families: + family1: + members: [person1] + family2: + members: [person2] + family3: + members: [person3] + family4: + members: [person4] + marital_units: + marital_unit1: + members: [person1] + marital_unit2: + members: [person2] + marital_unit3: + members: [person3] + marital_unit4: + members: [person4] households: household1: members: [person1] @@ -263,6 +299,34 @@ immigration_status: CITIZEN is_medicaid_eligible: false medicaid_income_level: 2.18 + tax_units: + tax_unit1: + members: [person1] + tax_unit2: + members: [person2] + tax_unit3: + members: [person3] + spm_units: + spm_unit1: + members: [person1] + spm_unit2: + members: [person2] + spm_unit3: + members: [person3] + families: + family1: + members: [person1] + family2: + members: [person2] + family3: + members: [person3] + marital_units: + marital_unit1: + members: [person1] + marital_unit2: + members: [person2] + marital_unit3: + members: [person3] households: household1: members: [person1] @@ -278,7 +342,7 @@ # West Virginia's group starts July 1, 2019, so the 2019 annual value is still # -inf. Colorado's 265% limit already applied in 2019. -- name: Case 11, West Virginia pregnancy group does not apply in 2019 and Colorado excludes income above 265% FPL. +- name: Case 11, West Virginia's July 2019 pregnancy group does not apply in 2019 annual simulations, and Colorado excludes income above 265% FPL. period: 2019 input: people: @@ -294,6 +358,26 @@ immigration_status: CITIZEN is_medicaid_eligible: false medicaid_income_level: 2.66 + tax_units: + tax_unit1: + members: [person1] + tax_unit2: + members: [person2] + spm_units: + spm_unit1: + members: [person1] + spm_unit2: + members: [person2] + families: + family1: + members: [person1] + family2: + members: [person2] + marital_units: + marital_unit1: + members: [person1] + marital_unit2: + members: [person2] households: household1: members: [person1] @@ -347,6 +431,34 @@ immigration_status: CITIZEN is_medicaid_eligible: false medicaid_income_level: 2.58 + tax_units: + tax_unit1: + members: [person1] + tax_unit2: + members: [person2] + tax_unit3: + members: [person3] + spm_units: + spm_unit1: + members: [person1] + spm_unit2: + members: [person2] + spm_unit3: + members: [person3] + families: + family1: + members: [person1] + family2: + members: [person2] + family3: + members: [person3] + marital_units: + marital_unit1: + members: [person1] + marital_unit2: + members: [person2] + marital_unit3: + members: [person3] households: household1: members: [person1] @@ -359,3 +471,134 @@ state_code: RI output: is_chip_eligible_standard_pregnant_person: [true, true, true] + +# West Virginia's band is 300% FPL (WV-19-0006 CS8) plus the 5 percentage point +# disregard. 2026 household of 2 (FPG 21,640): 21,640 x 3.05 / 12 = 5,500.17 +# -> $5,501, so 305% qualifies and 306% ($5,518.20) does not. +- name: Case 14, West Virginia pregnancy group covers income at 305% FPL in 2026. + period: 2026 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 3.05 + households: + household: + members: [person1] + state_code: WV + output: + is_chip_eligible_standard_pregnant_person: true + +- name: Case 15, West Virginia pregnancy group excludes income at 306% FPL in 2026. + period: 2026 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 3.06 + households: + household: + members: [person1] + state_code: WV + output: + is_chip_eligible_standard_pregnant_person: false + +# 2026 household of 2: 21,640 x 2.05 / 12 = 3,696.83 -> $3,697; 2.06 gives +# $3,714.87. +- name: Case 16, New Jersey pregnancy group excludes income at 206% FPL in 2026. + period: 2026 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.06 + households: + household: + members: [person1] + state_code: NJ + output: + is_chip_eligible_standard_pregnant_person: false + +# 2026 household of 2: 21,640 x 2.58 / 12 = 4,652.60 -> $4,653; 2.59 gives +# $4,670.63. +- name: Case 17, Rhode Island pregnancy group excludes income at 259% FPL in 2026. + period: 2026 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.59 + households: + household: + members: [person1] + state_code: RI + output: + is_chip_eligible_standard_pregnant_person: false + +# 2026 household of 2: 21,640 x 2.18 / 12 = 3,931.27 -> $3,932; 2.19 gives +# $3,949.30. +- name: Case 18, Kentucky pregnancy group excludes income at 219% FPL in 2026. + period: 2026 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.19 + households: + household: + members: [person1] + state_code: KY + output: + is_chip_eligible_standard_pregnant_person: false + +# Kentucky's group starts July 1, 2022 (KY-21-0001), so 2021 has no group. +- name: Case 19, Kentucky has no CHIP pregnancy group in 2021. + period: 2021 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.1 + households: + household: + members: [person1] + state_code: KY + output: + is_chip_eligible_standard_pregnant_person: false + +# 2019 household of 2: 16,910 x 2.65 / 12 = 3,734.29 -> $3,735, so 265% +# qualifies (the old 2.60 limit gave $3,664). +- name: Case 20, Colorado pregnancy group covers income at 265% FPL in 2019. + period: 2019 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + is_medicaid_eligible: false + medicaid_income_level: 2.65 + households: + household: + members: [person1] + state_code: CO + output: + is_chip_eligible_standard_pregnant_person: true diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml index fc1c478eb04..dfad37eaf3d 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml @@ -148,7 +148,7 @@ output: is_pregnant_for_medicaid: false -- name: Pregnancy under the 185% FPL standard confers eligibility in WV +- name: Pregnancy under the 190% FPL limit (185% plus the disregard) confers eligibility in WV period: 2020 input: state_code: WV @@ -156,3 +156,24 @@ medicaid_income_level: 1.8 output: is_pregnant_for_medicaid: true + +# WV-19-0004 S14 sets 185% FPL; with the 5 percentage point disregard the +# limit is 190%. 2026 household of 2: 21,640 x 1.90 / 12 = 3,426.33 -> $3,427. +- name: Pregnancy at the 190% FPL limit confers eligibility in WV + period: 2026 + input: + state_code: WV + is_pregnant: true + medicaid_income_level: 1.9 + output: + is_pregnant_for_medicaid: true + +# 21,640 x 1.91 / 12 = $3,444.37 per month, above the $3,427 ceiling. +- name: Pregnancy one point above the 190% FPL limit confers ineligibility in WV + period: 2026 + input: + state_code: WV + is_pregnant: true + medicaid_income_level: 1.91 + output: + is_pregnant_for_medicaid: false From c0d43bcc9284f5b812398c703fc9f851d9d81683 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 26 Oct 2026 16:24:33 -0400 Subject: [PATCH 06/14] Apply approving-review suggestions: West Virginia hand-off pair, description verb, 907 KAR pages Add the West Virginia Medicaid-to-CHIP hand-off pair with computed income (Cases 21-22), give the Medicaid pregnancy limit description a verb, and add file page 3 (the version date) to the 907 KAR 4:030 page list. Co-Authored-By: Claude Opus 5.5 --- .../gov/hhs/chip/pregnant/income_limit.yaml | 2 +- .../categories/pregnant/income_limit.yaml | 2 +- ...hip_eligible_standard_pregnant_person.yaml | 54 +++++++++++++++++++ 3 files changed, 56 insertions(+), 2 deletions(-) diff --git a/policyengine_us/parameters/gov/hhs/chip/pregnant/income_limit.yaml b/policyengine_us/parameters/gov/hhs/chip/pregnant/income_limit.yaml index f151f155df4..5ea4fd1bd86 100644 --- a/policyengine_us/parameters/gov/hhs/chip/pregnant/income_limit.yaml +++ b/policyengine_us/parameters/gov/hhs/chip/pregnant/income_limit.yaml @@ -33,7 +33,7 @@ metadata: href: https://www.coloradosos.gov/CCR/Upload/NoticeOfRulemaking/ProposedRuleAttach2022-00181.pdf - title: "Kentucky CHIP State Plan Amendment KY-21-0001, approval letter and CS8 #page 2,4" href: https://www.medicaid.gov/CHIP/Downloads/KY-21-0001.pdf#page=2 - - title: "907 KAR 4:030 § 2(1)(e)1 (version effective January 12, 2023) #page 1-2" + - title: "907 KAR 4:030 § 2(1)(e)1 (version effective January 12, 2023) #page 1-3" href: https://apps.legislature.ky.gov/law/kar/downloads/docs/13741/document.engrossed.pdf#page=1 - title: New Jersey CHIP State Plan Amendment NJ-13-0018, CS8 Targeted Low-Income Pregnant Women href: https://www.medicaid.gov/CHIP/Downloads/NJ/NJ-13-0018-MC1.pdf#page=8 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml index ee303970a80..a416c7e4519 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml @@ -1,4 +1,4 @@ -description: Maximum family income for pregnant people to qualify for Medicaid, as a share of the federal poverty line, including the five percentage point income disregard of 42 CFR 435.603(d)(4). +description: State governments limit Medicaid pregnancy eligibility to these incomes, as a share of the federal poverty line, including the five percentage point income disregard of 42 CFR 435.603(d)(4). metadata: unit: /1 label: Medicaid pregnant income limit diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml index b1593ae51b2..6b5851d0d88 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml @@ -602,3 +602,57 @@ state_code: CO output: is_chip_eligible_standard_pregnant_person: true + +# West Virginia's Medicaid pregnancy limit is 190% FPL (185% plus the 5 +# percentage point disregard), and its separate CHIP pregnancy band runs above +# it to 305%. Both start July 1, 2019, so 2020 is the first annual year. 2020 +# household of 2 (FPG 17,240): 17,240 x 1.90 / 12 = 2,729.67 -> $2,730 a month +# ($32,760 a year). At $2,730 a month the applicant stays in Medicaid; at +# $2,731 a month ($32,772 a year) she moves to standard pregnancy CHIP. +- name: Case 21, West Virginia pregnant applicant at the $2,730 Medicaid ceiling stays in Medicaid in 2020. + period: 2020 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + employment_income: 32_760 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: WV + output: + medicaid_household_size: 2 + is_pregnant_for_medicaid: true + medicaid_category: PREGNANT + is_medicaid_eligible: true + is_chip_eligible_standard_pregnant_person: false + chip_category: NONE + +- name: Case 22, West Virginia pregnant applicant $1 above the Medicaid ceiling moves to standard pregnancy CHIP in 2020. + period: 2020 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + employment_income: 32_772 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: WV + output: + medicaid_household_size: 2 + is_pregnant_for_medicaid: false + medicaid_category: NONE + is_medicaid_eligible: false + is_chip_eligible_standard_pregnant_person: true + chip_category: PREGNANT_STANDARD From adcd687fdc44f86f08eb51730d6e7a6816e3ce53 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 26 Oct 2026 17:10:35 -0400 Subject: [PATCH 07/14] Fix issues from review: postpartum end month, 60-day route, RIte Start federal share - End Rhode Island's postpartum continuation in the month in which the 12-month period beginning on the last day of pregnancy ends (42 U.S.C. 1396a(e)(16), SPA RI-22-0024), and record the 1115 wording as an unreviewed source-conflict candidate. - Keep the day-count postpartum route in every state and add the Rhode Island continuation on top of it. - Give RIte Start continuations no Title XIX match. - Move the third-party coverage list to a parameter, cast the months parameter, cite the 1115 Budget Population 6b approval, and fix the affected tests. Co-Authored-By: Claude Opus 5.5 --- ...ix-ri-pregnancy-medicaid-pathways.fixed.md | 2 +- .../categories/pregnant/income_limit.yaml | 3 ++ .../medicaid/postpartum_coverage_months.yaml | 2 +- .../eohhs/medicaid/third_party_coverage.yaml | 16 +++++++++ ...hip_eligible_standard_pregnant_person.yaml | 2 +- .../costs/medicaid_federal_share.yaml | 21 ++++++++++++ .../categories/is_pregnant_for_medicaid.yaml | 11 +++--- .../eligibility/is_medicaid_eligible.yaml | 11 ++++-- .../ri_medicaid_postpartum_eligible.yaml | 32 ++++++++++++----- .../medicaid/costs/medicaid_federal_share.py | 19 ++++++----- .../pregnant/is_pregnant_for_medicaid_fc.py | 2 ++ .../pregnant/is_pregnant_for_medicaid_nfc.py | 16 +++++---- .../ri_medicaid_has_third_party_coverage.py | 17 ++-------- .../ri_medicaid_postpartum_eligible.py | 18 ++++++---- source_conflicts/candidates.yaml | 34 +++++++++++++++++++ 15 files changed, 148 insertions(+), 58 deletions(-) create mode 100644 policyengine_us/parameters/gov/states/ri/eohhs/medicaid/third_party_coverage.yaml diff --git a/changelog.d/fix-ri-pregnancy-medicaid-pathways.fixed.md b/changelog.d/fix-ri-pregnancy-medicaid-pathways.fixed.md index dacc251acb7..ded10d458f6 100644 --- a/changelog.d/fix-ri-pregnancy-medicaid-pathways.fixed.md +++ b/changelog.d/fix-ri-pregnancy-medicaid-pathways.fixed.md @@ -1 +1 @@ -Correct Rhode Island pregnancy Medicaid and CHIP routing for people with third-party health coverage, and preserve full postpartum Medicaid based on qualifying pregnancy eligibility through the twelve-month anniversary month, including after income changes or another pregnancy. Fixes #10390. +Correct Rhode Island pregnancy Medicaid and CHIP routing for people with third-party health coverage, and preserve full postpartum Medicaid based on qualifying pregnancy eligibility through the last day of the month in which the 12-month postpartum period ends, including after income changes or another pregnancy. Fixes #10390. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml index 378d79a1bd0..c44e424540f 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml @@ -29,6 +29,8 @@ metadata: href: https://www.medicaid.gov/State-resource-center/Medicaid-State-Plan-Amendments/Downloads/WV/WV-19-0004.pdf#page=3 - title: 210-RICR-30-00-1 § 1.6(A)(2)(a) href: https://rules.sos.ri.gov/regulations/part/210-30-00-1 + - title: "Rhode Island Comprehensive Demonstration section 1115 approval (November 28, 2025), Budget Population 6b insured pregnant women #page 3,15" + href: https://www.medicaid.gov/medicaid/section-1115-demonstrations/downloads/ri-comp-demo-appvl-11282025.pdf#page=3 AK: 2018-01-01: 2.05 2024-02-01: 2.30 @@ -117,6 +119,7 @@ PA: RI: # The higher Medicaid ceiling for insured pregnant people is applied in the # financial-criteria formula using Rhode Island's CHIP pregnancy ceiling. + # Before the August 17, 2025 rule, the insured route rests on 1115 Budget Population 6b (unverified estimates). 2018-01-01: 1.95 SC: 2018-01-01: 1.99 diff --git a/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/postpartum_coverage_months.yaml b/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/postpartum_coverage_months.yaml index 1c9553af55d..b15f9150362 100644 --- a/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/postpartum_coverage_months.yaml +++ b/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/postpartum_coverage_months.yaml @@ -1,4 +1,4 @@ -description: Rhode Island provides full Medicaid through the end of this many calendar months after a qualifying pregnancy ends, including when federal funding is unavailable. +description: Rhode Island provides full Medicaid through the last day of the month in which a postpartum period of this many months, beginning on the last day of pregnancy, ends, including when federal funding is unavailable. values: 0000-01-01: 0 2022-10-01: 12 diff --git a/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/third_party_coverage.yaml b/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/third_party_coverage.yaml new file mode 100644 index 00000000000..c3f8d3f2884 --- /dev/null +++ b/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/third_party_coverage.yaml @@ -0,0 +1,16 @@ +description: Rhode Island uses these coverage sources as third-party liability insurance under the Medicaid program. +values: + 0000-01-01: + - has_esi + - has_marketplace_health_coverage_at_interview + - has_non_marketplace_direct_purchase_health_coverage_at_interview + - medicare_enrolled + - has_tricare_health_coverage_at_interview + - has_champva_health_coverage_at_interview +metadata: + unit: list + period: year + label: Rhode Island Medicaid third-party liability coverage sources + reference: + - title: 210-RICR-30-00-1 §§ 1.6(A)(2)(a)(2), 1.9(B)(1) + href: https://rules.sos.ri.gov/regulations/part/210-30-00-1 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml index b6a31b68837..7c5e69c5f69 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml @@ -733,7 +733,7 @@ # https://www.medicaid.gov/CHIP/Downloads/RI-22-0025.pdf#page=4 # R.I. Gen. Laws § 42-12.3-3(g) preserves the entitlement without federal funds. # https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm -- name: Case 24, Rhode Island retains pregnancy CHIP despite later income insurance pregnancy or immigration changes. +- name: Case 24, Rhode Island retains pregnancy CHIP despite later income, insurance, pregnancy or immigration changes. period: 2024 input: people: diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml index 5c924d4df1e..c4fa286ef4e 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml @@ -174,3 +174,24 @@ medicaid_enrolled: [true, true, true] medicaid_federal_share: [0, 0, 0.5501] medicaid_federal_cost: [0, 0, 550.1] + +# R.I. Gen. Laws § 42-12.3-3(b) limits RIte Start to people not eligible under +# Title XIX or XXI, so its postpartum continuation has no Title XIX match even +# for a citizen. Without the zero-match rule, this citizen's PREGNANT category +# would receive Rhode Island's regular FY2024 FMAP of 55.01%. +# https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm +- name: Rhode Island RIte Start continuation has no Title XIX match for a citizen. + period: 2024 + input: + state_code: RI + age: 30 + immigration_status: CITIZEN + ri_pregnancy_coverage: RITE_START + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + takes_up_medicaid_if_eligible: true + output: + medicaid_category: PREGNANT + medicaid_enrolled: true + medicaid_federal_share: 0 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml index 1d56c568d32..a6bc7736a89 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml @@ -182,8 +182,6 @@ # https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm # Medicaid or CHIP while pregnant keep full Medicaid through the postpartum # period. $47,000 is about 230% FPL for a household of 2 in 2024 ($20,440). -# Use the mother's underlying indicator so the newborn's postpartum days -# derive as infinity rather than being filled with a zero partial input. - name: Case 17, Rhode Island postpartum parent and newborn retain their distinct Medicaid categories. period: 2024 input: @@ -191,7 +189,6 @@ person1: age: 28 is_pregnant: false - under_60_days_postpartum: true ri_pregnancy_coverage: CHIP ri_medicaid_pregnancy_end_date: "2023-12-01" employment_income: 47_000 @@ -352,7 +349,9 @@ # from October 1, 2022, including people covered under Title XXI while # pregnant. At January 1, 2024, the March 2023 pregnancies are within the # continuation period and the November 2022 pregnancies have expired. -# The non-qualified parent receives the state-funded continuation. +# Pregnancy Medicaid requires a qualifying immigration status, so the +# undocumented parents had unborn-child CHIP (FCEP) coverage while pregnant +# (210-RICR-30-00-1 § 1.6(A)(2)(a)). Their continuation is state-funded. - name: Case 21, Rhode Island citizen and undocumented postpartum parents receive coverage within the extended period. period: 2024 input: @@ -380,7 +379,7 @@ is_pregnant: false immigration_status: UNDOCUMENTED count_days_postpartum: 300 - ri_pregnancy_coverage: MEDICAID + ri_pregnancy_coverage: FCEP ri_medicaid_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 2.3 @@ -389,7 +388,7 @@ is_pregnant: false immigration_status: UNDOCUMENTED count_days_postpartum: 400 - ri_pregnancy_coverage: MEDICAID + ri_pregnancy_coverage: FCEP ri_medicaid_pregnancy_end_date: "2022-11-27" medicaid_household_size: 2 medicaid_income_level: 2.3 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml index e39dbfd782b..ef700235450 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml @@ -319,7 +319,12 @@ # pregnant, including RIte Start and Title XXI, without requiring federal funds. # Current income does not replace that history or terminate continuation. # https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm -- name: Case 17, Rhode Island pregnancy history preserves coverage after income rises and prevents new coverage when income falls. +# Without that history, income at or below the pregnancy standard qualifies +# only within the 60-day postpartum period of 42 CFR 435.4: person 5 is 30 +# days postpartum at 180% FPL, while person 3 has the same income 300 days +# after the pregnancy. +# https://www.law.cornell.edu/cfr/text/42/435.4 +- name: Case 17, Rhode Island pregnancy history preserves coverage after income rises, while without it income qualifies only within 60 days postpartum. period: 2024 input: people: @@ -368,8 +373,8 @@ members: [person1, person2, person3, person4, person5] state_code: RI output: - is_pregnant_for_medicaid: [true, false, false, false, false] - is_medicaid_eligible: [true, false, false, false, false] + is_pregnant_for_medicaid: [true, false, false, false, true] + is_medicaid_eligible: [true, false, false, false, true] # A new pregnancy does not end the prior pregnancy's continuation period. # These applicants have income above both current pregnancy ceilings, and diff --git a/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.yaml index 0d34089a530..599d4f96efc 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.yaml @@ -1,26 +1,40 @@ # R.I. Gen. Laws § 42-12.3-3(g) continues full Medicaid for people eligible -# for RIte Start, Medicaid or CHIP while pregnant, including retroactively, -# through the final day of the month containing their twelve-month anniversary. +# for RIte Start, Medicaid or CHIP while pregnant, including retroactively. # https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm +# Coverage runs through the last day of the month in which the 12-month +# postpartum period, beginning on the last day of pregnancy, ends. +# https://www.law.cornell.edu/uscode/text/42/1396a#e_16 # CMS approved continuous postpartum coverage effective October 1, 2022. # https://www.medicaid.gov/medicaid/spa/downloads/RI-22-0024.pdf#page=2 -- name: Case 1, Rhode Island continuation includes the anniversary month and expires the following month. + +# The 12-month period that begins January 1, 2023 ends December 31, 2023. +# YEAR inputs are keyed for both years because the outputs cross a year end. +- name: Case 1, a pregnancy ending on the first of a month keeps Rhode Island coverage through the month before its anniversary. period: 2024 input: - state_code: RI - ri_pregnancy_coverage: MEDICAID - ri_medicaid_pregnancy_end_date: "2023-01-01" + state_code: + 2023: RI + 2024: RI + ri_pregnancy_coverage: + 2023: MEDICAID + 2024: MEDICAID + ri_medicaid_pregnancy_end_date: + 2023: "2023-01-01" + 2024: "2023-01-01" output: ri_medicaid_postpartum_eligible: - 2024-01: true - 2024-02: false + 2023-12: true + 2024-01: false +# The 12-month period that begins January 2, 2024 includes leap day and ends +# January 1, 2025, so January 2025 is covered. A 365-day count would end the +# period on December 31, 2024. - name: Case 2, Rhode Island continuation spans a leap year without a 365-day cutoff. period: 2025 input: state_code: RI ri_pregnancy_coverage: MEDICAID - ri_medicaid_pregnancy_end_date: "2024-01-01" + ri_medicaid_pregnancy_end_date: "2024-01-02" output: ri_medicaid_postpartum_eligible: 2025-01: true diff --git a/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py b/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py index fd7d28b8c8c..9540c51925c 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py +++ b/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py @@ -10,15 +10,18 @@ class medicaid_federal_share(Variable): "Medicaid expenditures. Uses the ACA expansion FMAP for expansion " "adults (42 U.S.C. 1396d(y)) and the state's regular FMAP for all " "other enrollment groups (42 U.S.C. 1396d(b)). Rhode Island's RIte " - "Start/FCEP postpartum route receives no Title XIX match when the " - "enrollee does not meet Medicaid immigration requirements. Separate " - "Title XXI health services initiative funding is not included here." + "Start postpartum route receives no Title XIX match, because RIte " + "Start serves people not eligible under Title XIX or XXI. Its FCEP " + "postpartum route receives no Title XIX match when the enrollee does " + "not meet Medicaid immigration requirements. Separate Title XXI " + "health services initiative funding is not included here." ) unit = "/1" definition_period = YEAR reference = ( "https://www.law.cornell.edu/uscode/text/42/1396d", "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm", + "https://www.medicaid.gov/medicaid/spa/downloads/RI-22-0024.pdf#page=7", "https://www.medicaid.gov/CHIP/Downloads/RI-22-0026.pdf#page=2", ) defined_for = "medicaid_enrolled" @@ -31,14 +34,14 @@ def formula(person, period, parameters): categories = category.possible_values pregnancy_coverage = person("ri_pregnancy_coverage", period) coverage_types = pregnancy_coverage.possible_values - ri_state_supported_pregnancy = ( - pregnancy_coverage == coverage_types.RITE_START - ) | (pregnancy_coverage == coverage_types.FCEP) + rite_start_pregnancy = pregnancy_coverage == coverage_types.RITE_START + fcep_pregnancy_without_medicaid_status = ( + pregnancy_coverage == coverage_types.FCEP + ) & ~person("is_medicaid_immigration_status_eligible", period) no_federal_medicaid_match = ( (state == StateCode.RI) & person("ri_medicaid_postpartum_eligible", period.first_month) - & ri_state_supported_pregnancy - & ~person("is_medicaid_immigration_status_eligible", period) + & (rite_start_pregnancy | fcep_pregnancy_without_medicaid_status) ) return select( [ diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py index ea46aa6c481..3f7823b4a29 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py @@ -24,6 +24,8 @@ class is_pregnant_for_medicaid_fc(Variable): # while pregnant keep full Medicaid through the postpartum period. "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm", "https://rules.sos.ri.gov/regulations/part/210-30-00-1", + # PDF pages 3, 15: 1115 Budget Population 6b, insured pregnant women. + "https://www.medicaid.gov/medicaid/section-1115-demonstrations/downloads/ri-comp-demo-appvl-11282025.pdf#page=3", ) def formula(person, period, parameters): diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py index cb3a248dfed..2d8885d2d91 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py @@ -13,11 +13,13 @@ def formula(person, period, parameters): days_postpartum = person("count_days_postpartum", period) state = person.household("state_code_str", period) max_postpartum_days = ma.postpartum_coverage[state] - ri = parameters(period).gov.states.ri.eohhs.medicaid - ri_continuation_applies = (state == "RI") & (ri.postpartum_coverage_months > 0) - postpartum_eligible = where( - ri_continuation_applies, - person("ri_medicaid_postpartum_eligible", period.first_month), - days_postpartum < max_postpartum_days, + # Rhode Island's 12-month continuation adds to the 60-day postpartum + # period of 42 CFR 435.4; it does not replace it. + ri_postpartum_eligible = person( + "ri_medicaid_postpartum_eligible", period.first_month + ) + return ( + is_pregnant + | (days_postpartum < max_postpartum_days) + | ri_postpartum_eligible ) - return is_pregnant | postpartum_eligible diff --git a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_has_third_party_coverage.py b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_has_third_party_coverage.py index ef98fbcdac2..34471182227 100644 --- a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_has_third_party_coverage.py +++ b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_has_third_party_coverage.py @@ -15,18 +15,5 @@ class ri_medicaid_has_third_party_coverage(Variable): ) def formula(person, period, parameters): - return ( - add( - person, - period, - [ - "has_esi", - "has_marketplace_health_coverage_at_interview", - "has_non_marketplace_direct_purchase_health_coverage_at_interview", - "medicare_enrolled", - "has_tricare_health_coverage_at_interview", - "has_champva_health_coverage_at_interview", - ], - ) - > 0 - ) + p = parameters(period).gov.states.ri.eohhs.medicaid + return add(person, period, p.third_party_coverage) > 0 diff --git a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.py b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.py index 2dbcdc42e83..171d6acb530 100644 --- a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.py +++ b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.py @@ -8,22 +8,26 @@ class ri_medicaid_postpartum_eligible(Variable): definition_period = MONTH defined_for = StateCode.RI reference = ( - "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm" + "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm", + "https://www.law.cornell.edu/uscode/text/42/1396a#e_16", + "https://www.medicaid.gov/medicaid/spa/downloads/RI-22-0024.pdf#page=7", ) def formula(person, period, parameters): p = parameters(period).gov.states.ri.eohhs.medicaid + months = int(p.postpartum_coverage_months) coverage = person("ri_pregnancy_coverage", period.this_year) eligible_during_pregnancy = coverage != coverage.possible_values.NONE pregnancy_end = person("ri_medicaid_pregnancy_end_date", period.this_year) reference_date = np.datetime64(period.start.date) - # The first day after the anniversary month is an exclusive endpoint. - # Month arithmetic preserves the full final month, including leap years. - first_uncovered_month = ( - pregnancy_end.astype("datetime64[M]") + p.postpartum_coverage_months + 1 - ) + # 42 U.S.C. 1396a(e)(16) and SPA RI-22-0024 start the 12-month period on + # the last day of pregnancy, so it ends the day before the same date 12 + # months later, in the month of (end date - 1 day) + 12 months. Coverage + # runs through the last day of that month. + day_before_end = pregnancy_end - np.timedelta64(1, "D") + first_uncovered_month = day_before_end.astype("datetime64[M]") + months + 1 return ( - (p.postpartum_coverage_months > 0) + (months > 0) & eligible_during_pregnancy & (pregnancy_end <= reference_date) & (reference_date.astype("datetime64[M]") < first_uncovered_month) diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index 843ddcbe21c..b6832027f2c 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -5047,6 +5047,40 @@ candidates: state: unreviewed note: 'PE-US follows the manual; verify whether the unchecked insurance category covers these payments. Code not yet on main: ri_liheap countable income.' +- id: us-ri:medicaid-postpartum-end-month + program: medicaid + years: + from: 2022 + type: calendar + question: When a pregnancy ends on the first day of a month, does the 12-month postpartum period begin that day + and end Medicaid in the 11th following month, or does coverage run to the end of the 12th following month? + sources: + - kind: statute + citation: 42 U.S.C. 1396a(e)(16) + url: https://www.law.cornell.edu/uscode/text/42/1396a#e_16 + - kind: plan + citation: Rhode Island Medicaid State Plan Amendment RI-22-0024, section B, page 7 + url: https://www.medicaid.gov/medicaid/spa/downloads/RI-22-0024.pdf#page=7 + - kind: plan + citation: CMS section 1115 approval of the Rhode Island Comprehensive Demonstration (November 28, 2025), expenditure + authorities 1(b)-(c), Budget Populations 6a and 6b + url: https://www.medicaid.gov/medicaid/section-1115-demonstrations/downloads/ri-comp-demo-appvl-11282025.pdf#page=15 + readings: + statute: The 12-month period begins on the last day of pregnancy and coverage runs through the last day of the + month in which that period ends; RI-22-0024 repeats this wording. + other: The 1115 expenditure authorities extend coverage to the end of the 12th month following the end of the + pregnancy. + example: A pregnancy that ends on January 1, 2023 is covered through December 2023 under the statute and through + January 2024 under the 1115 wording; any other end day gives the same last month under both. + pe_us: + follows: statute + code: + - policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.py + prs: + - https://github.com/PolicyEngine/policyengine-us/pull/10391 + state: unreviewed + note: R.I. Gen. Laws 42-12.3-3(g) does not say when the 12-month postpartum period begins. Verify whether the 1115 + wording is meant to differ from the statute for pregnancies ending on the first of a month. - id: us-sd:liheap-2025-published-income-limit program: liheap years: From 4cab49cd24b9e9aacb13bb12109e14b12fa0d728 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 26 Oct 2026 20:25:21 -0400 Subject: [PATCH 08/14] Keep Case 17 stable under either day count, broaden the RI zero federal match, narrow the end-month candidate - Case 17 person 3 is 400 days postpartum (pregnancy ended 2022-11-27), so the case holds whether Rhode Island's postpartum_coverage is 60 or 365 days. - The continuation's day-count comment no longer assumes 60 days. - Rhode Island postpartum continuations get no Title XIX match unless the pregnancy was covered by Medicaid and the enrollee meets Medicaid immigration requirements; add a CHIP-history and an undocumented Medicaid-history case. - Limit the us-ri:medicaid-postpartum-end-month candidate to 1115 Budget Populations 6a and 6b. Co-Authored-By: Claude Opus 5.5 --- .../costs/medicaid_federal_share.yaml | 33 +++++++++++++++++++ .../eligibility/is_medicaid_eligible.yaml | 13 ++++---- .../medicaid/costs/medicaid_federal_share.py | 23 ++++++------- .../pregnant/is_pregnant_for_medicaid_nfc.py | 4 +-- source_conflicts/candidates.yaml | 23 +++++++------ 5 files changed, 67 insertions(+), 29 deletions(-) diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml index c4fa286ef4e..625a0400e3b 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml @@ -195,3 +195,36 @@ medicaid_category: PREGNANT medicaid_enrolled: true medicaid_federal_share: 0 + +# Only a Medicaid-covered pregnancy of someone who meets Medicaid immigration +# requirements keeps the Title XIX match in the continuation. A citizen whose +# pregnancy was covered by CHIP and who now takes up Medicaid instead, and an +# undocumented resident whose pregnancy was covered by Medicaid, both get 0. +- name: Rhode Island CHIP-history and Medicaid-history-without-status continuations have no Title XIX match. + period: 2024 + input: + people: + person1: + age: 30 + immigration_status: CITIZEN + ri_pregnancy_coverage: CHIP + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + takes_up_medicaid_if_eligible: true + takes_up_chip_if_eligible: false + person2: + age: 30 + immigration_status: UNDOCUMENTED + ri_pregnancy_coverage: MEDICAID + ri_medicaid_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 4 + takes_up_medicaid_if_eligible: true + households: + household: + members: [person1, person2] + state_code: RI + output: + medicaid_enrolled: [true, true] + medicaid_federal_share: [0, 0] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml index ef700235450..9e151690134 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml @@ -320,11 +320,12 @@ # Current income does not replace that history or terminate continuation. # https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm # Without that history, income at or below the pregnancy standard qualifies -# only within the 60-day postpartum period of 42 CFR 435.4: person 5 is 30 -# days postpartum at 180% FPL, while person 3 has the same income 300 days -# after the pregnancy. +# only within the state's day-count postpartum period (postpartum_coverage): +# person 5 is 30 days postpartum at 180% FPL, while person 3 has the same +# income 400 days after the pregnancy, beyond that period whether it is 60 or +# 365 days. # https://www.law.cornell.edu/cfr/text/42/435.4 -- name: Case 17, Rhode Island pregnancy history preserves coverage after income rises, while without it income qualifies only within 60 days postpartum. +- name: Case 17, Rhode Island pregnancy history preserves coverage after income rises, while without it income qualifies only within the state's day-count postpartum period. period: 2024 input: people: @@ -347,9 +348,9 @@ person3: age: 30 immigration_status: UNDOCUMENTED - count_days_postpartum: 300 + count_days_postpartum: 400 ri_pregnancy_coverage: NONE - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_medicaid_pregnancy_end_date: "2022-11-27" medicaid_household_size: 2 medicaid_income_level: 1.8 person4: diff --git a/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py b/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py index 9540c51925c..bd56c404564 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py +++ b/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py @@ -9,12 +9,14 @@ class medicaid_federal_share(Variable): "Federal medical assistance percentage applied to this enrollee's " "Medicaid expenditures. Uses the ACA expansion FMAP for expansion " "adults (42 U.S.C. 1396d(y)) and the state's regular FMAP for all " - "other enrollment groups (42 U.S.C. 1396d(b)). Rhode Island's RIte " - "Start postpartum route receives no Title XIX match, because RIte " - "Start serves people not eligible under Title XIX or XXI. Its FCEP " - "postpartum route receives no Title XIX match when the enrollee does " - "not meet Medicaid immigration requirements. Separate Title XXI " - "health services initiative funding is not included here." + "other enrollment groups (42 U.S.C. 1396d(b)). Rhode Island's " + "postpartum continuation receives no Title XIX match unless the " + "pregnancy was covered by Medicaid and the enrollee meets Medicaid " + "immigration requirements: RIte Start serves people not eligible " + "under Title XIX or XXI, and CHIP and FCEP pregnancies are Title XXI " + "coverage. The zero match applies even if the enrollee also meets " + "another federally matched group. Separate Title XXI health services " + "initiative funding is not included here." ) unit = "/1" definition_period = YEAR @@ -34,14 +36,13 @@ def formula(person, period, parameters): categories = category.possible_values pregnancy_coverage = person("ri_pregnancy_coverage", period) coverage_types = pregnancy_coverage.possible_values - rite_start_pregnancy = pregnancy_coverage == coverage_types.RITE_START - fcep_pregnancy_without_medicaid_status = ( - pregnancy_coverage == coverage_types.FCEP - ) & ~person("is_medicaid_immigration_status_eligible", period) + federally_matched_pregnancy = ( + pregnancy_coverage == coverage_types.MEDICAID + ) & person("is_medicaid_immigration_status_eligible", period) no_federal_medicaid_match = ( (state == StateCode.RI) & person("ri_medicaid_postpartum_eligible", period.first_month) - & (rite_start_pregnancy | fcep_pregnancy_without_medicaid_status) + & ~federally_matched_pregnancy ) return select( [ diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py index 2d8885d2d91..3c1cdb76a9c 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py @@ -13,8 +13,8 @@ def formula(person, period, parameters): days_postpartum = person("count_days_postpartum", period) state = person.household("state_code_str", period) max_postpartum_days = ma.postpartum_coverage[state] - # Rhode Island's 12-month continuation adds to the 60-day postpartum - # period of 42 CFR 435.4; it does not replace it. + # Rhode Island's 12-month continuation adds to the state's day-count + # postpartum period (postpartum_coverage); it does not replace it. ri_postpartum_eligible = person( "ri_medicaid_postpartum_eligible", period.first_month ) diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index 5e6828dd0ce..0ad37a20318 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -6236,26 +6236,28 @@ candidates: years: from: 2022 type: calendar - question: When a pregnancy ends on the first day of a month, does the 12-month postpartum period begin that day - and end Medicaid in the 11th following month, or does coverage run to the end of the 12th following month? + question: For Rhode Island's section 1115 Budget Populations 6a and 6b, when a pregnancy ends on the first day of + a month, does the 12-month postpartum period begin that day and end Medicaid in the 11th following month, or does + coverage run to the end of the 12th following month? sources: - kind: statute - citation: 42 U.S.C. 1396a(e)(16) + citation: 42 U.S.C. 1396a(e)(16), which subparagraph (A) applies to state plans and waivers url: https://www.law.cornell.edu/uscode/text/42/1396a#e_16 - kind: plan citation: Rhode Island Medicaid State Plan Amendment RI-22-0024, section B, page 7 url: https://www.medicaid.gov/medicaid/spa/downloads/RI-22-0024.pdf#page=7 - - kind: plan + - kind: policy citation: CMS section 1115 approval of the Rhode Island Comprehensive Demonstration (November 28, 2025), expenditure authorities 1(b)-(c), Budget Populations 6a and 6b url: https://www.medicaid.gov/medicaid/section-1115-demonstrations/downloads/ri-comp-demo-appvl-11282025.pdf#page=15 readings: statute: The 12-month period begins on the last day of pregnancy and coverage runs through the last day of the month in which that period ends; RI-22-0024 repeats this wording. - other: The 1115 expenditure authorities extend coverage to the end of the 12th month following the end of the - pregnancy. - example: A pregnancy that ends on January 1, 2023 is covered through December 2023 under the statute and through - January 2024 under the 1115 wording; any other end day gives the same last month under both. + other: The 1115 expenditure authorities for Budget Populations 6a and 6b extend coverage to the end of the 12th + month following the end of the pregnancy. + example: For a Budget Population 6b enrollee whose pregnancy ends on January 1, 2023, coverage runs through December + 2023 under the statute and through January 2024 under the 1115 wording; any other end day gives the same last month + under both. pe_us: follows: statute code: @@ -6263,8 +6265,9 @@ candidates: prs: - https://github.com/PolicyEngine/policyengine-us/pull/10391 state: unreviewed - note: R.I. Gen. Laws 42-12.3-3(g) does not say when the 12-month postpartum period begins. Verify whether the 1115 - wording is meant to differ from the statute for pregnancies ending on the first of a month. + note: The conflict is limited to the 1115 Budget Populations 6a and 6b. The RI-22-0024 state plan groups, CHIP + (RI-22-0025 CS27), RIte Start and FCEP have no conflicting text. R.I. Gen. Laws 42-12.3-3(g) does not say when + the 12-month period begins. - id: us-ri:ssp-category-d-without-federal-ssi program: ssi-state-supplement years: From f9cab43f595696bddc6a6ded4f584166da6a0a97 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 26 Oct 2026 20:34:23 -0400 Subject: [PATCH 09/14] Record the KCHIP Phase III pregnancy conflict as a candidate 907 KAR 4:030 Section 2(1)(b) limits KCHIP Phase III to lawfully present immigrants, while the KY-21-0001 state plan covers targeted low-income pregnant individuals at 195-213% FPL. The code follows the state plan; the candidate awaits a project sign-off. Co-Authored-By: Claude Opus 5.5 --- source_conflicts/candidates.yaml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index ab0faa5b4ec..843e73f54bd 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -2525,6 +2525,38 @@ candidates: state: open note: A source-choice decision was requested; resolve the incorporated restriction and verify applicability beyond 2025. +- id: us-ky:kchip-phase-iii-pregnant-citizens + program: chip + years: + from: 2023 + type: calendar + question: Does KCHIP Phase III cover pregnant citizens at 195-213% FPL, or only pregnant people who are lawfully + present immigrants? + sources: + - kind: regulation + citation: 907 KAR 4:030 Section 2(1), version effective January 12, 2023, file page 1 + url: https://apps.legislature.ky.gov/law/kar/downloads/docs/13741/document.engrossed.pdf#page=1 + - kind: policy + citation: CMS approval letter for Kentucky CHIP State Plan Amendments KY-21-0001 and KY-21-0002, page 2 + url: https://www.medicaid.gov/CHIP/Downloads/KY-21-0001.pdf#page=2 + readings: + regulation: Eligibility requires all of the listed conditions, including "(b) Is an immigrant who is lawfully + present"; the section gives no route for citizens. + other: The state plan covers "targeted low-income pregnant individuals" in CHIP with income above 195% and up to + 213% FPL and, in addition, elects section 2107(e)(1)(O) to cover otherwise eligible lawfully residing pregnant + individuals. + example: A Kentucky citizen who is pregnant with income at 200% FPL in 2024 is covered under the state plan and not + under the regulation. + pe_us: + follows: conflicting-source + code: + - policyengine_us/parameters/gov/hhs/chip/pregnant/income_limit.yaml + - policyengine_us/variables/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.py + prs: + - https://github.com/PolicyEngine/policyengine-us/pull/10365 + state: unreviewed + note: The code follows the state plan, against the regulation. The statute (KRS 205.6481 and following) was not + checked. A project sign-off on the reading is pending. - id: us-ky:ktap-payment-maximum-2025 program: tanf years: From 1c78751418c3294b236672117bfb4b774a6d352b Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 26 Oct 2026 21:37:07 -0400 Subject: [PATCH 10/14] Renumber the Rhode Island cases in is_pregnant_for_medicaid.yaml Main's #10241 cases now precede the block, so Cases 17-23 become 34-40. Co-Authored-By: Claude Opus 5.5 --- .../categories/is_pregnant_for_medicaid.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml index e943a0b2bc9..2705abb1a75 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml @@ -616,7 +616,7 @@ # https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm # Medicaid or CHIP while pregnant keep full Medicaid through the postpartum # period. $47,000 is about 230% FPL for a household of 2 in 2024 ($20,440). -- name: Case 17, Rhode Island postpartum parent and newborn retain their distinct Medicaid categories. +- name: Case 34, Rhode Island postpartum parent and newborn retain their distinct Medicaid categories. period: 2024 input: people: @@ -646,7 +646,7 @@ # While pregnant, the same income is above RI's 190% Medicaid standard (195% # with the disregard), so an uninsured applicant is in CHIP rather than # Medicaid (210-RICR-30-00-1 § 1.6(A)(2)(b)(1)). -- name: Case 18, Rhode Island uninsured pregnant applicant at 230 percent FPL receives CHIP. +- name: Case 35, Rhode Island uninsured pregnant applicant at 230 percent FPL receives CHIP. period: 2024 input: people: @@ -673,7 +673,7 @@ # disregard). Employer, individual and Medicare/military coverage are # independent of Medicaid enrollment, so the eligibility calculation must # also work without a circular dependency on medicaid_enrolled. -- name: Case 19, Rhode Island pregnancy Medicaid covers applicants with each modeled third-party insurance source. +- name: Case 36, Rhode Island pregnancy Medicaid covers applicants with each modeled third-party insurance source. period: 2024 input: people: @@ -731,7 +731,7 @@ # The ordinary standard is 190% plus the five-point disregard; the insured # standard is 253% plus the disregard. The same insurance does not extend # another state's ordinary Medicaid pregnancy band. -- name: Case 20, Rhode Island pregnancy income boundaries and state controls preserve the coverage split. +- name: Case 37, Rhode Island pregnancy income boundaries and state controls preserve the coverage split. period: 2024 input: people: @@ -786,7 +786,7 @@ # Pregnancy Medicaid requires a qualifying immigration status, so the # undocumented parents had unborn-child CHIP (FCEP) coverage while pregnant # (210-RICR-30-00-1 § 1.6(A)(2)(a)). Their continuation is state-funded. -- name: Case 21, Rhode Island citizen and undocumented postpartum parents receive coverage within the extended period. +- name: Case 38, Rhode Island citizen and undocumented postpartum parents receive coverage within the extended period. period: 2024 input: people: @@ -837,7 +837,7 @@ # The YEAR-defined formula reads January 1, so the October 2022 extension # is reflected in 2023 annual results. The parameter retains its legal date. -- name: Case 22, Rhode Island annual postpartum eligibility reflects the October 2022 extension in 2023. +- name: Case 39, Rhode Island annual postpartum eligibility reflects the October 2022 extension in 2023. period: 2023 input: state_code: @@ -866,7 +866,7 @@ # The state-funded postpartum continuation does not change the citizenship # rules for someone seeking Medicaid during pregnancy. An undocumented # pregnant applicant instead has the existing unborn-child CHIP pathway. -- name: Case 23, Rhode Island state-funded postpartum coverage does not bypass pregnancy immigration requirements. +- name: Case 40, Rhode Island state-funded postpartum coverage does not bypass pregnancy immigration requirements. period: 2024 input: state_code: RI From 2bdcd57d5cc05cc01d1982cd949a196efafcf91e Mon Sep 17 00:00:00 2001 From: Ziming Date: Tue, 27 Oct 2026 14:56:25 -0400 Subject: [PATCH 11/14] Record Pavel's state-plan ruling on the KCHIP Phase III conflict The candidate is now ruled under agency-breaks-ties and follows gap-fill: KRS 205.6485 is silent on immigration status, the children's rule has the same form, and the 2022 impact analysis describes the group by income and implements the state plan amendment. The example moves to 210% FPL, above Kentucky's pregnancy Medicaid limit. Co-Authored-By: Claude Opus 5.5 --- source_conflicts/candidates.yaml | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index 9c562b3dba3..68e0c10f8a7 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -2536,8 +2536,9 @@ candidates: - kind: regulation citation: 907 KAR 4:030 Section 2(1), version effective January 12, 2023, file page 1 url: https://apps.legislature.ky.gov/law/kar/downloads/docs/13741/document.engrossed.pdf#page=1 - - kind: policy - citation: CMS approval letter for Kentucky CHIP State Plan Amendments KY-21-0001 and KY-21-0002, page 2 + - kind: plan + citation: CMS approval letter for Kentucky CHIP State Plan Amendments KY-21-0001 and KY-21-0002, file page 2; CS8, + Eligibility - Targeted Low-Income Pregnant Women, file page 4 url: https://www.medicaid.gov/CHIP/Downloads/KY-21-0001.pdf#page=2 readings: regulation: Eligibility requires all of the listed conditions, including "(b) Is an immigrant who is lawfully @@ -2545,18 +2546,25 @@ candidates: other: The state plan covers "targeted low-income pregnant individuals" in CHIP with income above 195% and up to 213% FPL and, in addition, elects section 2107(e)(1)(O) to cover otherwise eligible lawfully residing pregnant individuals. - example: A Kentucky citizen who is pregnant with income at 200% FPL in 2024 is covered under the state plan and not - under the regulation. + example: A Kentucky citizen who is pregnant with income at 210% FPL in 2024 is covered under the state plan, which + PE-US follows, but not under the regulation's literal text. pe_us: - follows: conflicting-source + follows: gap-fill code: - policyengine_us/parameters/gov/hhs/chip/pregnant/income_limit.yaml - policyengine_us/variables/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.py prs: - https://github.com/PolicyEngine/policyengine-us/pull/10365 - state: unreviewed - note: The code follows the state plan, against the regulation. The statute (KRS 205.6481 and following) was not - checked. A project sign-off on the reading is pending. + state: ruled + note: 'Ruled on 2026-10-27 for the state plan under agency-breaks-ties + (https://github.com/PolicyEngine/policyengine-us/pull/10365#issuecomment-6445848549); the model needs no change. + KRS 205.6485 has the cabinet set KCHIP eligibility by regulation and says nothing about immigration status. 907 + KAR 4:020 Section 2(1)(b), the children''s rule amended in the same 2022 package, has the same form ("Is a + noncitizen who meets the requirement established in 907 KAR 20:005"), and no one reads it to exclude citizen + children. The impact analysis for this amendment (49 Ky.R. 645-647) describes the group by income only and says + the amendment implements a state plan amendment to KCHIP Phase III that extends coverage to pregnant recipients, + which is KY-21-0001. Since the text does not settle the question, the agency''s reading decides. The register + entry and the code marker follow the merge.' - id: us-ky:ktap-payment-maximum-2025 program: tanf years: From 3f130f4200265ee605dfb4bd3540930965ae2d4a Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 29 Oct 2026 13:48:33 -0400 Subject: [PATCH 12/14] Apply Pavel's review: keep federally matched routes ahead of RI's state-funded continuation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - C1: add ri_medicaid_state_funded_postpartum_eligible. Only a Medicaid pregnancy keeps the pregnancy group; other histories, and Medicaid histories without status, get the state-funded continuation unless a new CHIP-band pregnancy is taken up in CHIP (R.I. Gen. Laws 42-12.3-3(g); 210-RICR-30-00-1 § 1.6(A)(2)(b)-(d)). medicaid_federal_share keeps any federally matched group's match. - SA1: cite the in-period 1115 approvals for the insured route. - SA2: Case 26 for coverage outside Rhode Island's third-party list. - SA3: pregnancies ending on the first of the evaluated month. - G1, G3-G7: statute wording, pinned regulation pages, input documentation, ri_pregnancy_end_date rename, a NOTE on the shared limit, and dead clauses removed. Co-Authored-By: Claude Opus 5.5 --- .../categories/pregnant/income_limit.yaml | 16 ++- .../medicaid/postpartum_coverage_months.yaml | 2 + .../eohhs/medicaid/third_party_coverage.yaml | 10 +- ...hip_eligible_standard_pregnant_person.yaml | 108 ++++++++++++++++-- .../costs/medicaid_federal_share.yaml | 72 ++++++++++-- .../categories/is_pregnant_for_medicaid.yaml | 29 ++--- .../eligibility/is_medicaid_eligible.yaml | 33 ++++-- .../gov/hhs/medicaid/medicaid_enrolled.yaml | 6 +- .../ri_medicaid_postpartum_eligible.yaml | 39 ++++--- ...caid_state_funded_postpartum_eligible.yaml | 72 ++++++++++++ ..._chip_eligible_standard_pregnant_person.py | 3 +- .../medicaid/costs/medicaid_federal_share.py | 17 ++- .../pregnant/is_pregnant_for_medicaid_fc.py | 24 +++- .../pregnant/is_pregnant_for_medicaid_nfc.py | 4 +- .../eligibility/is_medicaid_eligible.py | 2 +- .../ri_medicaid_has_third_party_coverage.py | 3 +- .../ri_medicaid_postpartum_eligible.py | 5 +- .../ri_medicaid_pregnancy_end_date.py | 11 -- ...dicaid_state_funded_postpartum_eligible.py | 38 ++++++ .../eohhs/medicaid/ri_pregnancy_coverage.py | 8 +- .../eohhs/medicaid/ri_pregnancy_end_date.py | 19 +++ source_conflicts/candidates.yaml | 11 +- 22 files changed, 433 insertions(+), 99 deletions(-) create mode 100644 policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.yaml delete mode 100644 policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_pregnancy_end_date.py create mode 100644 policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.py create mode 100644 policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_pregnancy_end_date.py diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml index c44e424540f..2d29f612385 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/pregnant/income_limit.yaml @@ -27,9 +27,15 @@ metadata: href: https://medicaid.nv.gov/Downloads/provider/web_announcement_3748_20251020.pdf - title: "West Virginia Medicaid State Plan Amendment WV-19-0004, approval letter and S14 Pregnant Women #page 3,14" href: https://www.medicaid.gov/State-resource-center/Medicaid-State-Plan-Amendments/Downloads/WV/WV-19-0004.pdf#page=3 - - title: 210-RICR-30-00-1 § 1.6(A)(2)(a) - href: https://rules.sos.ri.gov/regulations/part/210-30-00-1 - - title: "Rhode Island Comprehensive Demonstration section 1115 approval (November 28, 2025), Budget Population 6b insured pregnant women #page 3,15" + - title: 210-RICR-30-00-1 § 1.6(A)(2)(a) (version effective August 17, 2025) + href: https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_13314_20250728104245127.pdf#page=5 + - title: "Rhode Island 1115 expenditure authorities (December 23, 2013 to December 31, 2018), Budget Population 6b" + href: https://www.medicaid.gov/Medicaid-CHIP-Program-Information/By-Topics/Waivers/1115/downloads/ri/Comprehensive-Demonstration/ri-global-consumer-choice-compact-expnditure-auth-12232013-12312018.pdf#page=2 + - title: "Rhode Island 1115 amendment approval (March 21, 2024; 2019 to 2024), Budget Population 6b" + href: https://www.medicaid.gov/medicaid/section-1115-demonstrations/downloads/ri-comphnsve-dmnstrtn-aprvl.pdf#page=11 + - title: "Rhode Island 1115 temporary extension (December 12, 2024; through June 30, 2025), Budget Population 6b" + href: https://www.medicaid.gov/medicaid/section-1115-demonstrations/downloads/ri-comphnsve-dmnstrtn-tmp-extn-amndmnt.pdf#page=6 + - title: "Rhode Island 1115 approval (November 28, 2025; 2026 to 2030), Budget Population 6b #page 3,15" href: https://www.medicaid.gov/medicaid/section-1115-demonstrations/downloads/ri-comp-demo-appvl-11282025.pdf#page=3 AK: 2018-01-01: 2.05 @@ -119,7 +125,9 @@ PA: RI: # The higher Medicaid ceiling for insured pregnant people is applied in the # financial-criteria formula using Rhode Island's CHIP pregnancy ceiling. - # Before the August 17, 2025 rule, the insured route rests on 1115 Budget Population 6b (unverified estimates). + # The insured route rests on 1115 Budget Population 6b since 2013 (185-250% + # FPL before MAGI, 190-253% after) and on 210-RICR-30-00-1 § 1.6(A)(2)(a)(2) + # from August 17, 2025. 2018-01-01: 1.95 SC: 2018-01-01: 1.99 diff --git a/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/postpartum_coverage_months.yaml b/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/postpartum_coverage_months.yaml index b15f9150362..a1295803df7 100644 --- a/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/postpartum_coverage_months.yaml +++ b/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/postpartum_coverage_months.yaml @@ -9,3 +9,5 @@ metadata: reference: - title: R.I. Gen. Laws § 42-12.3-3(g) href: https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm + - title: Rhode Island Medicaid State Plan Amendment RI-22-0024, section B (12-month period begins on the last day of pregnancy) + href: https://www.medicaid.gov/medicaid/spa/downloads/RI-22-0024.pdf#page=7 diff --git a/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/third_party_coverage.yaml b/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/third_party_coverage.yaml index c3f8d3f2884..bb4e2031818 100644 --- a/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/third_party_coverage.yaml +++ b/policyengine_us/parameters/gov/states/ri/eohhs/medicaid/third_party_coverage.yaml @@ -12,5 +12,11 @@ metadata: period: year label: Rhode Island Medicaid third-party liability coverage sources reference: - - title: 210-RICR-30-00-1 §§ 1.6(A)(2)(a)(2), 1.9(B)(1) - href: https://rules.sos.ri.gov/regulations/part/210-30-00-1 + - title: "210-RICR-30-00-1 §§ 1.6(A)(2)(a)(2), 1.9(B)(1) (version effective August 17, 2025) #page 5,19" + href: https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_13314_20250728104245127.pdf#page=5 + - title: Rhode Island EOHHS, Third Party Liability + href: https://eohhs.ri.gov/providers-partners/billing-and-claims/third-party-liability + - title: TRICARE, Other Health Insurance FAQ + href: https://tricare.mil/FAQs/General/GEN_OHI_TRICARE + - title: VA, CHAMPVA benefits + href: https://www.va.gov/resources/champva-care/ diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml index 7c5e69c5f69..ff3d9482c34 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/chip/is_chip_eligible_standard_pregnant_person.yaml @@ -659,7 +659,7 @@ # 210-RICR-30-00-1 § 1.6(A)(2)(b)(1)-(2) requires the absence of # third-party insurance for standard pregnancy CHIP in Rhode Island. -# https://rules.sos.ri.gov/regulations/part/210-30-00-1 +# https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_13314_20250728104245127.pdf#page=5 # Supply Medicaid ineligibility here to exercise the CHIP insurance gate # independently; the Medicaid integration cases test the insured pathway. - name: Case 23, Rhode Island standard pregnancy CHIP excludes third-party coverage independently of Medicaid eligibility. @@ -731,7 +731,8 @@ # RI-22-0025 CS27 continues the separate CHIP program through the postpartum # period; the full Medicaid benefit scope does not create duplicate enrollment. # https://www.medicaid.gov/CHIP/Downloads/RI-22-0025.pdf#page=4 -# R.I. Gen. Laws § 42-12.3-3(g) preserves the entitlement without federal funds. +# R.I. Gen. Laws § 42-12.3-3(g) preserves the entitlement "without regard to the +# availability of federal financial participation". # https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm - name: Case 24, Rhode Island retains pregnancy CHIP despite later income, insurance, pregnancy or immigration changes. period: 2024 @@ -743,7 +744,7 @@ immigration_status: CITIZEN has_esi: false ri_pregnancy_coverage: CHIP - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 person2: @@ -752,7 +753,7 @@ immigration_status: CITIZEN has_esi: true ri_pregnancy_coverage: CHIP - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 person3: @@ -761,7 +762,7 @@ immigration_status: UNDOCUMENTED has_esi: true ri_pregnancy_coverage: CHIP - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 person4: @@ -770,7 +771,7 @@ immigration_status: UNDOCUMENTED has_esi: false ri_pregnancy_coverage: CHIP - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 person5: @@ -779,7 +780,7 @@ immigration_status: CITIZEN has_esi: false ri_pregnancy_coverage: CHIP - ri_medicaid_pregnancy_end_date: "2022-11-27" + ri_pregnancy_end_date: "2022-11-27" medicaid_household_size: 2 medicaid_income_level: 4 households: @@ -790,3 +791,96 @@ is_chip_eligible_standard_pregnant_person: [true, true, true, true, false] medicaid_enrolled: [false, false, false, false, false] chip_enrolled: [true, true, true, true, false] + +# 210-RICR-30-00-1 § 1.6(A)(2)(b)(1) and (c) place a new pregnancy in the +# CHIP band in CHIP, and 42 U.S.C. 1397jj(b)(1)(C) bars CHIP only for people +# eligible under Title XIX, which the state-funded continuation is not. +# https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_13314_20250728104245127.pdf#page=5 +# https://www.law.cornell.edu/uscode/text/42/1397jj#b_1_C +- name: Case 25, a new Rhode Island pregnancy in the CHIP band moves a state-funded continuation to CHIP. + period: 2024 + input: + people: + person1: + age: 30 + immigration_status: CITIZEN + is_pregnant: true + ri_pregnancy_coverage: RITE_START + ri_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 2.3 + takes_up_chip_if_eligible: true + person2: + age: 30 + immigration_status: UNDOCUMENTED + is_pregnant: true + ri_pregnancy_coverage: FCEP + ri_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 2.0 + takes_up_chip_if_eligible: true + person3: + age: 30 + immigration_status: CITIZEN + is_pregnant: true + ri_pregnancy_coverage: RITE_START + ri_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 2.3 + takes_up_chip_if_eligible: false + person4: + age: 30 + immigration_status: CITIZEN + is_pregnant: true + ri_pregnancy_coverage: MEDICAID + ri_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 2.3 + takes_up_chip_if_eligible: true + households: + household: + members: [person1, person2, person3, person4] + state_code: RI + output: + is_medicaid_eligible: [false, false, true, true] + is_chip_eligible_standard_pregnant_person: [true, false, false, false] + is_chip_fcep_eligible_person: [true, true, false, false] + chip_enrolled: [true, true, false, false] + +# 210-RICR-30-00-1 § 1.6(A)(2)(a)(2) and (b)(1) pair the routes: Medicaid with +# third-party insurance, CHIP without it. VA coverage, other means-tested +# coverage and the aggregate other-coverage flag are not on Rhode Island's +# third-party list, so these applicants stay in standard CHIP. +# https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_13314_20250728104245127.pdf#page=5 +- name: Case 26, Rhode Island pregnant applicants whose only coverage is outside the third-party list stay in standard CHIP. + period: 2024 + input: + people: + person1: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + medicaid_household_size: 2 + medicaid_income_level: 2.3 + has_va_health_coverage_at_interview: true + person2: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + medicaid_household_size: 2 + medicaid_income_level: 2.3 + has_other_means_tested_health_coverage_at_interview: true + person3: + age: 30 + is_pregnant: true + immigration_status: CITIZEN + medicaid_household_size: 2 + medicaid_income_level: 2.3 + has_health_coverage_other_than_chip: true + households: + household: + members: [person1, person2, person3] + state_code: RI + output: + is_medicaid_eligible: [false, false, false] + is_chip_eligible_standard_pregnant_person: [true, true, true] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml index 625a0400e3b..ee57b302434 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/costs/medicaid_federal_share.yaml @@ -142,7 +142,7 @@ age: 30 immigration_status: UNDOCUMENTED ri_pregnancy_coverage: FCEP - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 takes_up_medicaid_if_eligible: true @@ -151,7 +151,7 @@ age: 30 immigration_status: UNDOCUMENTED ri_pregnancy_coverage: RITE_START - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 takes_up_medicaid_if_eligible: true @@ -160,7 +160,7 @@ age: 30 immigration_status: CITIZEN ri_pregnancy_coverage: MEDICAID - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 takes_up_medicaid_if_eligible: true @@ -177,8 +177,8 @@ # R.I. Gen. Laws § 42-12.3-3(b) limits RIte Start to people not eligible under # Title XIX or XXI, so its postpartum continuation has no Title XIX match even -# for a citizen. Without the zero-match rule, this citizen's PREGNANT category -# would receive Rhode Island's regular FY2024 FMAP of 55.01%. +# for a citizen. Only a Medicaid pregnancy keeps the pregnancy group, and at +# 400% FPL this citizen meets no other Medicaid group. # https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm - name: Rhode Island RIte Start continuation has no Title XIX match for a citizen. period: 2024 @@ -187,12 +187,12 @@ age: 30 immigration_status: CITIZEN ri_pregnancy_coverage: RITE_START - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 takes_up_medicaid_if_eligible: true output: - medicaid_category: PREGNANT + medicaid_category: NONE medicaid_enrolled: true medicaid_federal_share: 0 @@ -208,7 +208,7 @@ age: 30 immigration_status: CITIZEN ri_pregnancy_coverage: CHIP - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 takes_up_medicaid_if_eligible: true @@ -217,7 +217,7 @@ age: 30 immigration_status: UNDOCUMENTED ri_pregnancy_coverage: MEDICAID - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 takes_up_medicaid_if_eligible: true @@ -228,3 +228,57 @@ output: medicaid_enrolled: [true, true] medicaid_federal_share: [0, 0] + +# 210-RICR-30-00-1 § 1.6(A)(2)(d)(1) extends postpartum coverage to people not +# eligible under another Medicaid eligibility category, and § 42-12.3-3(g) +# uses state-only funds only if federal financial participation is not +# available. Each person meets a federally matched group: the adult group at +# 120% FPL, the pregnancy group at 150% FPL, or SSI. +# https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_13314_20250728104245127.pdf#page=6 +- name: Rhode Island non-Medicaid pregnancy histories keep the match of a federally matched group the person meets. + period: 2024 + input: + people: + person1: + age: 30 + immigration_status: CITIZEN + ri_pregnancy_coverage: RITE_START + ri_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 1.2 + takes_up_medicaid_if_eligible: true + person2: + age: 30 + immigration_status: CITIZEN + ri_pregnancy_coverage: FCEP + ri_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 1.2 + takes_up_medicaid_if_eligible: true + person3: + age: 30 + immigration_status: CITIZEN + is_pregnant: true + ri_pregnancy_coverage: RITE_START + ri_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 1.5 + takes_up_medicaid_if_eligible: true + person4: + age: 30 + immigration_status: CITIZEN + ri_pregnancy_coverage: CHIP + ri_pregnancy_end_date: "2023-03-07" + is_ssi_recipient_for_medicaid: true + medicaid_household_size: 2 + medicaid_income_level: 0.5 + takes_up_medicaid_if_eligible: true + takes_up_chip_if_eligible: false + households: + household: + members: [person1, person2, person3, person4] + state_code: RI + output: + medicaid_category: [ADULT, ADULT, PREGNANT, SSI_RECIPIENT] + medicaid_enrolled: [true, true, true, true] + medicaid_federal_share: [0.9, 0.9, 0.5501, 0.5501] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml index 2705abb1a75..ef53fccf73d 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_pregnant_for_medicaid.yaml @@ -613,10 +613,12 @@ is_pregnant_for_medicaid: false # R.I. Gen. Laws § 42-12.3-3(g): from October 1, 2022, people eligible for -# https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm # Medicaid or CHIP while pregnant keep full Medicaid through the postpartum # period. $47,000 is about 230% FPL for a household of 2 in 2024 ($20,440). -- name: Case 34, Rhode Island postpartum parent and newborn retain their distinct Medicaid categories. +# https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm +# Only a Medicaid pregnancy keeps the pregnancy group (SHO 21-007 Q6), so the +# parent, whose pregnancy CHIP covered, stays in CHIP (RI-22-0025 CS27). +- name: Case 34, Rhode Island postpartum parent with a CHIP-covered pregnancy stays in CHIP outside the pregnancy group, and the newborn is an infant. period: 2024 input: people: @@ -624,7 +626,7 @@ age: 28 is_pregnant: false ri_pregnancy_coverage: CHIP - ri_medicaid_pregnancy_end_date: "2023-12-01" + ri_pregnancy_end_date: "2023-12-01" employment_income: 47_000 person2: age: 0 @@ -636,8 +638,8 @@ members: [person1, person2] state_code: RI output: - is_pregnant_for_medicaid: [true, false] - medicaid_category: [PREGNANT, INFANT] + is_pregnant_for_medicaid: [false, false] + medicaid_category: [NONE, INFANT] is_medicaid_eligible: [true, true] medicaid_enrolled: [false, true] chip_enrolled: [true, false] @@ -668,11 +670,11 @@ is_chip_eligible_standard_pregnant_person: true # 210-RICR-30-00-1 § 1.6(A)(2)(a)(2) covers pregnant applicants with -# https://rules.sos.ri.gov/regulations/part/210-30-00-1 # third-party insurance through the upper 253% standard (258% with the # disregard). Employer, individual and Medicare/military coverage are # independent of Medicaid enrollment, so the eligibility calculation must # also work without a circular dependency on medicaid_enrolled. +# https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_13314_20250728104245127.pdf#page=5 - name: Case 36, Rhode Island pregnancy Medicaid covers applicants with each modeled third-party insurance source. period: 2024 input: @@ -785,7 +787,8 @@ # continuation period and the November 2022 pregnancies have expired. # Pregnancy Medicaid requires a qualifying immigration status, so the # undocumented parents had unborn-child CHIP (FCEP) coverage while pregnant -# (210-RICR-30-00-1 § 1.6(A)(2)(a)). Their continuation is state-funded. +# (210-RICR-30-00-1 § 1.6(A)(2)(a)). Their continuation is state-funded and +# outside the pregnancy group. - name: Case 38, Rhode Island citizen and undocumented postpartum parents receive coverage within the extended period. period: 2024 input: @@ -796,7 +799,7 @@ immigration_status: CITIZEN count_days_postpartum: 300 ri_pregnancy_coverage: MEDICAID - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 2.3 person2: @@ -805,7 +808,7 @@ immigration_status: CITIZEN count_days_postpartum: 400 ri_pregnancy_coverage: MEDICAID - ri_medicaid_pregnancy_end_date: "2022-11-27" + ri_pregnancy_end_date: "2022-11-27" medicaid_household_size: 2 medicaid_income_level: 2.3 person3: @@ -814,7 +817,7 @@ immigration_status: UNDOCUMENTED count_days_postpartum: 300 ri_pregnancy_coverage: FCEP - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 2.3 person4: @@ -823,7 +826,7 @@ immigration_status: UNDOCUMENTED count_days_postpartum: 400 ri_pregnancy_coverage: FCEP - ri_medicaid_pregnancy_end_date: "2022-11-27" + ri_pregnancy_end_date: "2022-11-27" medicaid_household_size: 2 medicaid_income_level: 2.3 households: @@ -831,7 +834,7 @@ members: [person1, person2, person3, person4] state_code: RI output: - is_pregnant_for_medicaid: [true, false, true, false] + is_pregnant_for_medicaid: [true, false, false, false] is_medicaid_eligible: [true, false, true, false] is_chip_eligible_standard_pregnant_person: [false, false, false, false] @@ -849,7 +852,7 @@ ri_pregnancy_coverage: 2022: MEDICAID 2023: MEDICAID - ri_medicaid_pregnancy_end_date: + ri_pregnancy_end_date: 2022: "2021-10-03" 2023: "2022-10-03" medicaid_household_size: diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml index 9e151690134..c48e39629ee 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml @@ -334,7 +334,7 @@ immigration_status: CITIZEN count_days_postpartum: 300 ri_pregnancy_coverage: MEDICAID - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 person2: @@ -342,7 +342,7 @@ immigration_status: CITIZEN count_days_postpartum: 300 ri_pregnancy_coverage: NONE - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 person3: @@ -350,7 +350,7 @@ immigration_status: UNDOCUMENTED count_days_postpartum: 400 ri_pregnancy_coverage: NONE - ri_medicaid_pregnancy_end_date: "2022-11-27" + ri_pregnancy_end_date: "2022-11-27" medicaid_household_size: 2 medicaid_income_level: 1.8 person4: @@ -358,7 +358,7 @@ immigration_status: CITIZEN count_days_postpartum: 300 ri_pregnancy_coverage: NONE - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 2.3 person5: @@ -366,7 +366,7 @@ immigration_status: CITIZEN count_days_postpartum: 30 ri_pregnancy_coverage: NONE - ri_medicaid_pregnancy_end_date: "2023-12-02" + ri_pregnancy_end_date: "2023-12-02" medicaid_household_size: 2 medicaid_income_level: 1.8 households: @@ -389,7 +389,7 @@ is_pregnant: true immigration_status: CITIZEN ri_pregnancy_coverage: MEDICAID - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 person2: @@ -397,7 +397,7 @@ is_pregnant: true immigration_status: UNDOCUMENTED ri_pregnancy_coverage: MEDICAID - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 households: @@ -415,10 +415,27 @@ immigration_status: CITIZEN count_days_postpartum: 300 ri_pregnancy_coverage: MEDICAID - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 state_code: CO output: is_pregnant_for_medicaid: false is_medicaid_eligible: false + +# Annual results read January 1, so a pregnancy that ends on January 1 starts +# the continuation in time for that year's result. +- name: Case 20, a Rhode Island pregnancy that ends on January 1 keeps Medicaid in that year's annual result. + period: 2024 + input: + state_code: RI + age: 30 + immigration_status: CITIZEN + is_pregnant: false + ri_pregnancy_coverage: MEDICAID + ri_pregnancy_end_date: "2024-01-01" + medicaid_household_size: 2 + medicaid_income_level: 4 + output: + is_pregnant_for_medicaid: true + is_medicaid_eligible: true diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/medicaid_enrolled.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/medicaid_enrolled.yaml index 9a2a9928207..6cd2b5e2c15 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/medicaid_enrolled.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/medicaid_enrolled.yaml @@ -142,7 +142,7 @@ age: 30 immigration_status: CITIZEN ri_pregnancy_coverage: CHIP - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 takes_up_medicaid_if_eligible: true @@ -151,7 +151,7 @@ age: 30 immigration_status: CITIZEN ri_pregnancy_coverage: CHIP - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 takes_up_medicaid_if_eligible: true @@ -160,7 +160,7 @@ age: 30 immigration_status: CITIZEN ri_pregnancy_coverage: CHIP - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" medicaid_household_size: 2 medicaid_income_level: 4 takes_up_medicaid_if_eligible: false diff --git a/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.yaml index 599d4f96efc..9296b4e0aed 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.yaml @@ -18,7 +18,7 @@ ri_pregnancy_coverage: 2023: MEDICAID 2024: MEDICAID - ri_medicaid_pregnancy_end_date: + ri_pregnancy_end_date: 2023: "2023-01-01" 2024: "2023-01-01" output: @@ -34,7 +34,7 @@ input: state_code: RI ri_pregnancy_coverage: MEDICAID - ri_medicaid_pregnancy_end_date: "2024-01-02" + ri_pregnancy_end_date: "2024-01-02" output: ri_medicaid_postpartum_eligible: 2025-01: true @@ -45,7 +45,7 @@ input: state_code: RI ri_pregnancy_coverage: MEDICAID - ri_medicaid_pregnancy_end_date: "2024-02-29" + ri_pregnancy_end_date: "2024-02-29" output: ri_medicaid_postpartum_eligible: 2025-02: true @@ -56,7 +56,7 @@ input: state_code: RI ri_pregnancy_coverage: MEDICAID - ri_medicaid_pregnancy_end_date: "2022-03-15" + ri_pregnancy_end_date: "2022-03-15" output: ri_medicaid_postpartum_eligible: 2022-09: false @@ -73,10 +73,10 @@ person1: ri_pregnancy_coverage: 2024: NONE - ri_medicaid_pregnancy_end_date: + ri_pregnancy_end_date: 2024: "2023-03-07" person2: - ri_medicaid_pregnancy_end_date: + ri_pregnancy_end_date: 2024: "2023-03-07" person3: ri_pregnancy_coverage: @@ -84,17 +84,17 @@ person4: ri_pregnancy_coverage: 2024: MEDICAID - ri_medicaid_pregnancy_end_date: + ri_pregnancy_end_date: 2024: "2024-02-01" person5: ri_pregnancy_coverage: 2024: MEDICAID - ri_medicaid_pregnancy_end_date: + ri_pregnancy_end_date: 2024: "2023-03-07" person6: ri_pregnancy_coverage: 2024: MEDICAID - ri_medicaid_pregnancy_end_date: + ri_pregnancy_end_date: 2024: "2023-03-07" households: household1: @@ -114,19 +114,19 @@ people: person1: ri_pregnancy_coverage: MEDICAID - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" person2: ri_pregnancy_coverage: CHIP - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" person3: ri_pregnancy_coverage: RITE_START - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" person4: ri_pregnancy_coverage: FCEP - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" person5: ri_pregnancy_coverage: NONE - ri_medicaid_pregnancy_end_date: "2023-03-07" + ri_pregnancy_end_date: "2023-03-07" households: household: members: [person1, person2, person3, person4, person5] @@ -136,3 +136,14 @@ 2024-01: [true, true, true, true, false] ri_chip_postpartum_eligible: 2024-01: [false, true, false, false, false] + +- name: Case 7, a pregnancy ending on the first day of the evaluated month starts the continuation that month. + period: 2024 + input: + state_code: RI + ri_pregnancy_coverage: MEDICAID + ri_pregnancy_end_date: "2024-01-01" + output: + ri_medicaid_postpartum_eligible: + 2024-01: true + 2024-12: true diff --git a/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.yaml new file mode 100644 index 00000000000..5f617487282 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.yaml @@ -0,0 +1,72 @@ +# R.I. Gen. Laws § 42-12.3-3(g) continues postpartum Medicaid with state-only +# funds when federal financial participation is not available. Only a +# Medicaid pregnancy of someone with Medicaid immigration status stays in the +# federally matched pregnancy group. +- name: Case 1, the state-funded continuation covers non-Medicaid histories and Medicaid histories without status. + period: 2024 + input: + people: + person1: + immigration_status: CITIZEN + ri_pregnancy_coverage: RITE_START + ri_pregnancy_end_date: "2023-03-07" + person2: + immigration_status: CITIZEN + ri_pregnancy_coverage: CHIP + ri_pregnancy_end_date: "2023-03-07" + person3: + immigration_status: UNDOCUMENTED + ri_pregnancy_coverage: FCEP + ri_pregnancy_end_date: "2023-03-07" + person4: + immigration_status: UNDOCUMENTED + ri_pregnancy_coverage: MEDICAID + ri_pregnancy_end_date: "2023-03-07" + person5: + immigration_status: CITIZEN + ri_pregnancy_coverage: MEDICAID + ri_pregnancy_end_date: "2023-03-07" + person6: + immigration_status: CITIZEN + ri_pregnancy_coverage: RITE_START + ri_pregnancy_end_date: "2022-11-27" + households: + household: + members: [person1, person2, person3, person4, person5, person6] + state_code: RI + output: + ri_medicaid_state_funded_postpartum_eligible: [true, true, true, true, false, false] + +# 210-RICR-30-00-1 § 1.6(A)(2)(b)(1) and (c): a new pregnancy at or below the +# 258% CHIP limit (253% plus the disregard) qualifies for Title XXI coverage. +- name: Case 2, a new pregnancy in the CHIP band ends the state-funded continuation only when CHIP is taken up. + period: 2024 + input: + people: + person1: + is_pregnant: true + ri_pregnancy_coverage: RITE_START + ri_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 2.58 + takes_up_chip_if_eligible: true + person2: + is_pregnant: true + ri_pregnancy_coverage: RITE_START + ri_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 2.59 + takes_up_chip_if_eligible: true + person3: + is_pregnant: true + ri_pregnancy_coverage: RITE_START + ri_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 2.3 + takes_up_chip_if_eligible: false + households: + household: + members: [person1, person2, person3] + state_code: RI + output: + ri_medicaid_state_funded_postpartum_eligible: [false, true, true] 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 4fb64f2e4a8..3e7ddddd6d7 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 @@ -23,7 +23,8 @@ class is_chip_eligible_standard_pregnant_person(Variable): "https://www.law.cornell.edu/cfr/text/45/155.20", "https://www.medicaid.gov/federal-policy-guidance/downloads/sho-12-002.pdf", "https://www.medicaid.gov/federal-policy-guidance/downloads/sho26001.pdf#page=28", - "https://rules.sos.ri.gov/regulations/part/210-30-00-1", + # 210-RICR-30-00-1 § 1.6(A)(2)(b), version effective August 17, 2025. + "https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_13314_20250728104245127.pdf#page=5", "https://www.medicaid.gov/CHIP/Downloads/RI-22-0025.pdf#page=4", ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py b/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py index bd56c404564..b9bf95ca8d5 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py +++ b/policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_federal_share.py @@ -14,8 +14,8 @@ class medicaid_federal_share(Variable): "pregnancy was covered by Medicaid and the enrollee meets Medicaid " "immigration requirements: RIte Start serves people not eligible " "under Title XIX or XXI, and CHIP and FCEP pregnancies are Title XXI " - "coverage. The zero match applies even if the enrollee also meets " - "another federally matched group. Separate Title XXI health services " + "coverage. An enrollee who also meets a federally matched group keeps " + "that group's match. Separate Title XXI health services " "initiative funding is not included here." ) unit = "/1" @@ -34,15 +34,12 @@ def formula(person, period, parameters): regular_fmap = p.fmap[state] category = person("medicaid_category", period) categories = category.possible_values - pregnancy_coverage = person("ri_pregnancy_coverage", period) - coverage_types = pregnancy_coverage.possible_values - federally_matched_pregnancy = ( - pregnancy_coverage == coverage_types.MEDICAID - ) & person("is_medicaid_immigration_status_eligible", period) + federally_matched_route = (category != categories.NONE) & person( + "is_medicaid_immigration_status_eligible", period + ) no_federal_medicaid_match = ( - (state == StateCode.RI) - & person("ri_medicaid_postpartum_eligible", period.first_month) - & ~federally_matched_pregnancy + person("ri_medicaid_state_funded_postpartum_eligible", period) + & ~federally_matched_route ) return select( [ diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py index 3f7823b4a29..67546245ad7 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_fc.py @@ -23,8 +23,16 @@ class is_pregnant_for_medicaid_fc(Variable): # R.I. Gen. Laws § 42-12.3-3(g): people eligible for Medicaid or CHIP # while pregnant keep full Medicaid through the postpartum period. "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm", - "https://rules.sos.ri.gov/regulations/part/210-30-00-1", - # PDF pages 3, 15: 1115 Budget Population 6b, insured pregnant women. + # 210-RICR-30-00-1 § 1.6(A)(2)(a)(2), insured route from August 17, 2025. + "https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_13314_20250728104245127.pdf#page=5", + # 1115 Budget Population 6b, insured pregnant women, December 23, 2013 + # to December 31, 2018. + "https://www.medicaid.gov/Medicaid-CHIP-Program-Information/By-Topics/Waivers/1115/downloads/ri/Comprehensive-Demonstration/ri-global-consumer-choice-compact-expnditure-auth-12232013-12312018.pdf#page=2", + # 1115 Budget Population 6b, 2019 to 2024 (March 21, 2024 approval). + "https://www.medicaid.gov/medicaid/section-1115-demonstrations/downloads/ri-comphnsve-dmnstrtn-aprvl.pdf#page=11", + # 1115 Budget Population 6b, extended through June 30, 2025. + "https://www.medicaid.gov/medicaid/section-1115-demonstrations/downloads/ri-comphnsve-dmnstrtn-tmp-extn-amndmnt.pdf#page=6", + # PDF pages 3, 15: 1115 Budget Population 6b, 2026 to 2030. "https://www.medicaid.gov/medicaid/section-1115-demonstrations/downloads/ri-comp-demo-appvl-11282025.pdf#page=3", ) @@ -32,14 +40,18 @@ def formula(person, period, parameters): ma = parameters(period).gov.hhs.medicaid.eligibility.categories.pregnant state = person.household("state_code_str", period) income_limit = ma.income_limit[state] - ri_higher_limit = (state == "RI") & person( - "ri_medicaid_has_third_party_coverage", period - ) + ri_higher_limit = person("ri_medicaid_has_third_party_coverage", period) + # NOTE: 210-RICR-30-00-1 § 1.6(B) gives one pregnancy row (253% FPL plus + # the disregard) for insured Medicaid and uninsured CHIP, so this reuses + # the CHIP pregnancy limit. A CHIP-only change to that parameter would + # also move Rhode Island's insured Medicaid route. chip_income_limit = parameters(period).gov.hhs.chip.pregnant.income_limit[state] income_limit = where(ri_higher_limit, chip_income_limit, income_limit) + # Only a Medicaid pregnancy keeps the pregnancy group (SHO 21-007 Q6). + coverage = person("ri_pregnancy_coverage", period) ri_postpartum_eligible = person( "ri_medicaid_postpartum_eligible", period.first_month - ) + ) & (coverage == coverage.possible_values.MEDICAID) return ( medicaid_income_eligible(person, period, parameters, income_limit) | ri_postpartum_eligible diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py index 3c1cdb76a9c..8d48a65ec34 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/pregnant/is_pregnant_for_medicaid_nfc.py @@ -15,9 +15,11 @@ def formula(person, period, parameters): max_postpartum_days = ma.postpartum_coverage[state] # Rhode Island's 12-month continuation adds to the state's day-count # postpartum period (postpartum_coverage); it does not replace it. + # Only a Medicaid pregnancy keeps the pregnancy group (SHO 21-007 Q6). + coverage = person("ri_pregnancy_coverage", period) ri_postpartum_eligible = person( "ri_medicaid_postpartum_eligible", period.first_month - ) + ) & (coverage == coverage.possible_values.MEDICAID) return ( is_pregnant | (days_postpartum < max_postpartum_days) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medicaid_eligible.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medicaid_eligible.py index 2d0fc777faa..89f9c17dee0 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medicaid_eligible.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medicaid_eligible.py @@ -21,7 +21,7 @@ def formula(person, period, parameters): ca_ffyp_eligible = person("ca_ffyp_eligible", period) il_hbi_eligible = person("il_hbi_eligible", period) ri_postpartum_eligible = person( - "ri_medicaid_postpartum_eligible", period.first_month + "ri_medicaid_state_funded_postpartum_eligible", period ) p = parameters(period).gov.hhs.medicaid.eligibility diff --git a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_has_third_party_coverage.py b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_has_third_party_coverage.py index 34471182227..b76be3fa88b 100644 --- a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_has_third_party_coverage.py +++ b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_has_third_party_coverage.py @@ -8,7 +8,8 @@ class ri_medicaid_has_third_party_coverage(Variable): definition_period = YEAR defined_for = StateCode.RI reference = ( - "https://rules.sos.ri.gov/regulations/part/210-30-00-1", + # PDF pages 5, 19: 210-RICR-30-00-1 §§ 1.6(A)(2)(a)(2), 1.9(B)(1). + "https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_13314_20250728104245127.pdf#page=5", "https://eohhs.ri.gov/providers-partners/billing-and-claims/third-party-liability", "https://tricare.mil/FAQs/General/GEN_OHI_TRICARE", "https://www.va.gov/resources/champva-care/", diff --git a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.py b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.py index 171d6acb530..92c3a9e7cb5 100644 --- a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.py +++ b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_postpartum_eligible.py @@ -18,7 +18,7 @@ def formula(person, period, parameters): months = int(p.postpartum_coverage_months) coverage = person("ri_pregnancy_coverage", period.this_year) eligible_during_pregnancy = coverage != coverage.possible_values.NONE - pregnancy_end = person("ri_medicaid_pregnancy_end_date", period.this_year) + pregnancy_end = person("ri_pregnancy_end_date", period.this_year) reference_date = np.datetime64(period.start.date) # 42 U.S.C. 1396a(e)(16) and SPA RI-22-0024 start the 12-month period on # the last day of pregnancy, so it ends the day before the same date 12 @@ -27,8 +27,7 @@ def formula(person, period, parameters): day_before_end = pregnancy_end - np.timedelta64(1, "D") first_uncovered_month = day_before_end.astype("datetime64[M]") + months + 1 return ( - (months > 0) - & eligible_during_pregnancy + eligible_during_pregnancy & (pregnancy_end <= reference_date) & (reference_date.astype("datetime64[M]") < first_uncovered_month) ) diff --git a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_pregnancy_end_date.py b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_pregnancy_end_date.py deleted file mode 100644 index 523671ce0ca..00000000000 --- a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_pregnancy_end_date.py +++ /dev/null @@ -1,11 +0,0 @@ -from policyengine_us.model_api import * - - -class ri_medicaid_pregnancy_end_date(Variable): - value_type = date - entity = Person - label = "End date of the last completed pregnancy for Rhode Island Medicaid" - definition_period = YEAR - reference = ( - "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm" - ) diff --git a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.py b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.py new file mode 100644 index 00000000000..fd032b0d495 --- /dev/null +++ b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.py @@ -0,0 +1,38 @@ +from policyengine_us.model_api import * +from policyengine_us.variables.gov.hhs.medicaid.income.medicaid_income_level import ( + medicaid_income_eligible, +) + + +class ri_medicaid_state_funded_postpartum_eligible(Variable): + value_type = bool + entity = Person + label = "Eligible for Rhode Island postpartum Medicaid outside the pregnancy group" + documentation = ( + "Rhode Island's 12-month postpartum continuation for people whose " + "pregnancy was not covered by Medicaid, or who lack Medicaid " + "immigration status. It does not apply while a new pregnancy " + "qualifies for Title XXI coverage that the person takes up." + ) + definition_period = YEAR + defined_for = StateCode.RI + reference = ( + "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm", + "https://risos-apa-production-public.s3.amazonaws.com/EOHHS/REG_13314_20250728104245127.pdf#page=5", + "https://www.medicaid.gov/CHIP/Downloads/RI-22-0026.pdf#page=2", + ) + + def formula(person, period, parameters): + continuation = person("ri_medicaid_postpartum_eligible", period.first_month) + coverage = person("ri_pregnancy_coverage", period) + pregnancy_group = (coverage == coverage.possible_values.MEDICAID) & person( + "is_medicaid_immigration_status_eligible", period + ) + state = person.household("state_code", period) + chip_limit = parameters(period).gov.hhs.chip.pregnant.income_limit[state] + title_xxi_pregnancy = ( + person("is_pregnant", period) + & medicaid_income_eligible(person, period, parameters, chip_limit) + & person("takes_up_chip_if_eligible", period) + ) + return continuation & ~pregnancy_group & ~title_xxi_pregnancy diff --git a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_pregnancy_coverage.py b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_pregnancy_coverage.py index dae75e7f165..8a2883a6640 100644 --- a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_pregnancy_coverage.py +++ b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_pregnancy_coverage.py @@ -10,13 +10,17 @@ class RIPregnancyCoverage(Enum): class ri_pregnancy_coverage(Variable): - # Eligibility during the last completed pregnancy, including retroactive - # eligibility. Current income and enrollment cannot establish this history. value_type = Enum possible_values = RIPregnancyCoverage default_value = RIPregnancyCoverage.NONE entity = Person label = "Qualifying Rhode Island coverage during the last completed pregnancy" + documentation = ( + "Eligibility during the last completed pregnancy, including retroactive " + "eligibility. Current income and enrollment cannot establish this " + "history. The input is annual: a value entered only for the year the " + "pregnancy ended gives no continuation in later years." + ) definition_period = YEAR reference = ( "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm", diff --git a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_pregnancy_end_date.py b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_pregnancy_end_date.py new file mode 100644 index 00000000000..6c5fee73b9e --- /dev/null +++ b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_pregnancy_end_date.py @@ -0,0 +1,19 @@ +from policyengine_us.model_api import * + + +class ri_pregnancy_end_date(Variable): + value_type = date + entity = Person + label = "End date of the last completed pregnancy for Rhode Island Medicaid" + documentation = ( + "End date of the last completed pregnancy, whether by birth, " + "miscarriage or termination. It describes the same event as " + "count_days_postpartum; if the two disagree, the day-count postpartum " + "route and Rhode Island's calendar continuation are both applied, and " + "either one qualifies. The input is annual: a value entered only for " + "the year the pregnancy ended gives no continuation in later years." + ) + definition_period = YEAR + reference = ( + "https://webserver.rilegislature.gov/Statutes/TITLE42/42-12.3/42-12.3-3.htm" + ) diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index 33c84f1a5b6..93d059e096c 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -7017,6 +7017,10 @@ candidates: - kind: plan citation: Rhode Island Medicaid State Plan Amendment RI-22-0024, section B, page 7 url: https://www.medicaid.gov/medicaid/spa/downloads/RI-22-0024.pdf#page=7 + - kind: policy + citation: CMS section 1115 amendment approval of the Rhode Island Comprehensive Demonstration (March 21, 2024; 2019 + to 2024), expenditure authorities, Budget Populations 6a and 6b, file page 11 + url: https://www.medicaid.gov/medicaid/section-1115-demonstrations/downloads/ri-comphnsve-dmnstrtn-aprvl.pdf#page=11 - kind: policy citation: CMS section 1115 approval of the Rhode Island Comprehensive Demonstration (November 28, 2025), expenditure authorities 1(b)-(c), Budget Populations 6a and 6b @@ -7036,9 +7040,10 @@ candidates: prs: - https://github.com/PolicyEngine/policyengine-us/pull/10391 state: unreviewed - note: The conflict is limited to the 1115 Budget Populations 6a and 6b. The RI-22-0024 state plan groups, CHIP - (RI-22-0025 CS27), RIte Start and FCEP have no conflicting text. R.I. Gen. Laws 42-12.3-3(g) does not say when - the 12-month period begins. + note: The conflict is limited to the 1115 Budget Populations 6a and 6b, whose March 2024 and November 2025 approvals + use the same wording. The RI-22-0024 state plan groups, RIte Start and FCEP have no conflicting text, and CHIP + (RI-22-0025 CS27) ends the period "on the last day of the 12th month consistent with paragraphs (5) and (16) of + section 1902(e)". R.I. Gen. Laws 42-12.3-3(g) does not say when the 12-month period begins. - id: us-ri:ssp-category-d-without-federal-ssi program: ssi-state-supplement years: From c1b83f4868b1589c5454874580c98e548e9aa0a5 Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 29 Oct 2026 14:50:09 -0400 Subject: [PATCH 13/14] Keep RI's state-funded continuation when Title XXI coverage is unavailable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A new pregnancy in the CHIP band ends the state-funded continuation only when the person can take up Title XXI coverage, which excludes third-party coverage (210-RICR-30-00-1 § 1.6(A)(2)(b); 42 CFR 457.310(b)(2)). R.I. Gen. Laws 42-12.3-3(g) provides the continuation without regard to federal funding, so an insured, undocumented person pregnant again keeps it. Co-Authored-By: Claude Opus 5.5 --- ...caid_state_funded_postpartum_eligible.yaml | 37 +++++++++++++++++++ ...dicaid_state_funded_postpartum_eligible.py | 8 +++- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.yaml index 5f617487282..a7cfba3da35 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.yaml @@ -70,3 +70,40 @@ state_code: RI output: ri_medicaid_state_funded_postpartum_eligible: [false, true, true] + +# Title XXI pregnancy coverage requires the absence of third-party insurance +# (210-RICR-30-00-1 § 1.6(A)(2)(b); 42 CFR 457.310(b)(2)), so an insured +# person who is pregnant again cannot take it up and keeps the continuation, +# which R.I. Gen. Laws § 42-12.3-3(g) provides without regard to federal +# funding. Both had unborn-child CHIP while pregnant and are within the +# continuation at January 1, 2024; only person 1 now has employer coverage. +- name: Case 3, an insured new pregnancy in the CHIP band keeps the state-funded continuation. + period: 2024 + input: + people: + person1: + age: 30 + immigration_status: UNDOCUMENTED + is_pregnant: true + has_esi: true + ri_pregnancy_coverage: FCEP + ri_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 2.3 + takes_up_chip_if_eligible: true + person2: + age: 30 + immigration_status: UNDOCUMENTED + is_pregnant: true + ri_pregnancy_coverage: FCEP + ri_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 2.3 + takes_up_chip_if_eligible: true + households: + household: + members: [person1, person2] + state_code: RI + output: + ri_medicaid_state_funded_postpartum_eligible: [true, false] + is_medicaid_eligible: [true, false] diff --git a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.py b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.py index fd032b0d495..9c9470443c5 100644 --- a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.py +++ b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.py @@ -11,8 +11,9 @@ class ri_medicaid_state_funded_postpartum_eligible(Variable): documentation = ( "Rhode Island's 12-month postpartum continuation for people whose " "pregnancy was not covered by Medicaid, or who lack Medicaid " - "immigration status. It does not apply while a new pregnancy " - "qualifies for Title XXI coverage that the person takes up." + "immigration status. It does not apply while the person takes up " + "Title XXI coverage for a new pregnancy, which requires income within " + "the CHIP limit and no third-party coverage." ) definition_period = YEAR defined_for = StateCode.RI @@ -30,9 +31,12 @@ def formula(person, period, parameters): ) state = person.household("state_code", period) chip_limit = parameters(period).gov.hhs.chip.pregnant.income_limit[state] + # Title XXI pregnancy coverage excludes third-party coverage + # (210-RICR-30-00-1 § 1.6(A)(2)(b); 42 CFR 457.310(b)(2)). title_xxi_pregnancy = ( person("is_pregnant", period) & medicaid_income_eligible(person, period, parameters, chip_limit) + & ~person("ri_medicaid_has_third_party_coverage", period) & person("takes_up_chip_if_eligible", period) ) return continuation & ~pregnancy_group & ~title_xxi_pregnancy From 34e547bb7120a23ec8df0e4417cb6c7cd3ddaa2f Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 29 Oct 2026 17:43:20 -0400 Subject: [PATCH 14/14] Keep RI's state-funded continuation when coverage bars unborn-child CHIP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pavel's SA4: a person without CHIP immigration status reaches Title XXI only through unborn-child coverage (210-RICR-30-00-1 § 1.6(A)(2)(c)), which uses the CHIP no-other-coverage test (42 CFR 457.310(b)(2)) without Medicaid enrollment. A new pregnancy ends the state-funded continuation only when that route is open; citizens keep Rhode Island's third-party list. Co-Authored-By: Claude Opus 5.5 --- ...caid_state_funded_postpartum_eligible.yaml | 49 +++++++++++++++++++ ...dicaid_state_funded_postpartum_eligible.py | 33 ++++++++++--- 2 files changed, 76 insertions(+), 6 deletions(-) diff --git a/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.yaml index a7cfba3da35..38d945e9215 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.yaml @@ -107,3 +107,52 @@ output: ri_medicaid_state_funded_postpartum_eligible: [true, false] is_medicaid_eligible: [true, false] + +# 210-RICR-30-00-1 § 1.6(A)(2)(c) bases CHIP for people without CHIP +# immigration status on the unborn child, whom other coverage bars (42 CFR +# 457.310(b)(2)). R.I. Gen. Laws § 42-12.3-3(g) then keeps the continuation +# with state-only funds. The citizen takes standard CHIP, which uses Rhode +# Island's third-party list. +- name: Case 4, coverage that bars unborn-child CHIP keeps the continuation for a person without CHIP immigration status. + period: 2024 + input: + people: + person1: + age: 30 + immigration_status: UNDOCUMENTED + is_pregnant: true + has_other_means_tested_health_coverage_at_interview: true + ri_pregnancy_coverage: FCEP + ri_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 2.3 + takes_up_chip_if_eligible: true + person2: + age: 30 + immigration_status: UNDOCUMENTED + is_pregnant: true + has_health_coverage_other_than_chip: true + ri_pregnancy_coverage: RITE_START + ri_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 2.3 + takes_up_chip_if_eligible: true + person3: + age: 30 + immigration_status: CITIZEN + is_pregnant: true + has_other_means_tested_health_coverage_at_interview: true + ri_pregnancy_coverage: RITE_START + ri_pregnancy_end_date: "2023-03-07" + medicaid_household_size: 2 + medicaid_income_level: 2.3 + takes_up_chip_if_eligible: true + households: + household: + members: [person1, person2, person3] + state_code: RI + output: + ri_medicaid_state_funded_postpartum_eligible: [true, true, false] + is_medicaid_eligible: [true, true, false] + is_chip_fcep_eligible_person: [false, false, false] + chip_enrolled: [false, false, true] diff --git a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.py b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.py index 9c9470443c5..7967e8e9c2a 100644 --- a/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.py +++ b/policyengine_us/variables/gov/states/ri/eohhs/medicaid/ri_medicaid_state_funded_postpartum_eligible.py @@ -13,7 +13,7 @@ class ri_medicaid_state_funded_postpartum_eligible(Variable): "pregnancy was not covered by Medicaid, or who lack Medicaid " "immigration status. It does not apply while the person takes up " "Title XXI coverage for a new pregnancy, which requires income within " - "the CHIP limit and no third-party coverage." + "the CHIP limit and no coverage that bars that CHIP route." ) definition_period = YEAR defined_for = StateCode.RI @@ -30,13 +30,34 @@ def formula(person, period, parameters): "is_medicaid_immigration_status_eligible", period ) state = person.household("state_code", period) - chip_limit = parameters(period).gov.hhs.chip.pregnant.income_limit[state] - # Title XXI pregnancy coverage excludes third-party coverage - # (210-RICR-30-00-1 § 1.6(A)(2)(b); 42 CFR 457.310(b)(2)). + p = parameters(period).gov.hhs.chip + # Standard pregnancy CHIP excludes Rhode Island's third-party list + # (210-RICR-30-00-1 § 1.6(A)(2)(b)). Unborn-child coverage + # (§ 1.6(A)(2)(c)) uses the CHIP no-other-coverage test (42 CFR + # 457.310(b)(2)) without Medicaid enrollment, which is this + # continuation itself. + chip_immigration_eligible = person( + "is_chip_immigration_status_eligible", period + ) + income_limit = where( + chip_immigration_eligible, + p.pregnant.income_limit[state], + p.fcep.income_limit[state], + ) + fcep_coverage_sources = [ + source + for source in p.disqualifying_health_coverage + if source != "medicaid_enrolled" + ] + has_disqualifying_coverage = where( + chip_immigration_eligible, + person("ri_medicaid_has_third_party_coverage", period), + add(person, period, fcep_coverage_sources) > 0, + ) title_xxi_pregnancy = ( person("is_pregnant", period) - & medicaid_income_eligible(person, period, parameters, chip_limit) - & ~person("ri_medicaid_has_third_party_coverage", period) + & medicaid_income_eligible(person, period, parameters, income_limit) + & ~has_disqualifying_coverage & person("takes_up_chip_if_eligible", period) ) return continuation & ~pregnancy_group & ~title_xxi_pregnancy