Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
73c52c2
DC Medicaid program for immigrants over 21
daphnehanse11 Sep 15, 2025
209864b
made format
daphnehanse11 Sep 15, 2025
33ab61a
DC Medicaid program for immigrants over 21
daphnehanse11 Sep 16, 2025
9e5512d
Refine changelog for DC Medicaid program, consolidating eligibility d…
daphnehanse11 Sep 16, 2025
a6ccb72
DC Medicaid program for immigrants over 21
daphnehanse11 Sep 18, 2025
41fb1f6
Merge branch 'PolicyEngine:master' into daphnehanse11/issue6365
daphnehanse11 Sep 18, 2025
aa353ae
Add DC Medicaid cost calculations and update eligibility checks
daphnehanse11 Sep 18, 2025
202c145
make format
daphnehanse11 Sep 18, 2025
db25282
Merge branch 'master' into daphnehanse11/issue6365
daphnehanse11 Dec 15, 2025
eb83f02
Add DC Medicaid cost variables and update eligibility logic
daphnehanse11 Dec 15, 2025
1c6f40f
Merge branch 'PolicyEngine:main' into daphnehanse11/issue6365
daphnehanse11 Dec 18, 2025
45e597e
Address PR review: fix hard-coded values, references, and add tests
daphnehanse11 Dec 22, 2025
33201ad
Merge upstream main into branch
daphnehanse11 Dec 23, 2025
ad04275
Merge main and upgrade uv.lock
daphnehanse11 Dec 23, 2025
b8c7669
Merge upstream/main and resolve conflicts
daphnehanse11 Dec 29, 2025
b5bd2ad
Regenerate uv.lock
daphnehanse11 Dec 29, 2025
e45cebf
Regenerate uv.lock with uv 0.9.18
daphnehanse11 Dec 29, 2025
b09386c
Update Medicaid eligibility descriptions for clarity and consistency
daphnehanse11 Dec 29, 2025
5682376
Regenerate uv.lock from main
daphnehanse11 Dec 29, 2025
2e0d167
Address review comments: update references and simplify formulas
daphnehanse11 Jan 2, 2026
4ee322c
Extract dc_medicaid_group as separate variable
daphnehanse11 Jan 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions changelog_entry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- bump: minor
changes:
added:
- DC coverage for undocumented immigrants with income and age restrictions.

Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ CO:
CT:
2021-01-01: false
DC:
2021-01-01: true
2021-01-01: false # DC now handles undocumented coverage through dc_medicaid_eligible
DE:
2021-01-01: false
FL:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
description: The District of Columbia limits Medicaid/Alliance for adults (21+) to this percentage of the Federal Poverty Level.
metadata:
unit: /1
period: year
label: DC Medicaid/Alliance income limit for adults
reference:
- title: DC Health Care Alliance and Immigrant Children's Program Changes
href: https://dhcf.dc.gov/node/1809101

values:
2021-01-01: 2.15 # 215% FPL - current Alliance limit
2026-01-01: 1.38 # 138% FPL - new limit effective October 1, 2025 (modeled as 2026)
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
description: The District of Columbia limits Medicaid/Alliance for children (0-20) to this percentage of the Federal Poverty Level.
metadata:
unit: /1
period: year
label: DC Medicaid/Alliance income limit for children
reference:
- title: DC Health Care Alliance and Immigrant Children's Program Changes
href: https://dhcf.dc.gov/node/1809101

values:
2021-01-01: 3.24 # 324% FPL - no change mentioned
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
description: The District of Columbia considers individuals up to this age as children for Medicaid eligibility purposes.
metadata:
unit: year
period: year
label: DC Medicaid maximum age for child eligibility
reference:
- title: DC Health Care Alliance and Immigrant Children's Program Changes
href: https://dhcf.dc.gov/node/1809101

values:
2021-01-01: 20 # Children aged 0-20 are eligible for higher income limits
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
description: The District of Columbia provides Medicaid/Alliance coverage to undocumented immigrants.
metadata:
unit: bool
period: year
label: DC covers undocumented immigrants
reference:
- title: DC Health Care Alliance and Immigrant Children's Program Changes
href: https://dhcf.dc.gov/node/1809101

values:
2021-01-01: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
description: The District of Columbia limits new Medicaid/Alliance applicants (excluding pregnant women) to this maximum age.
metadata:
unit: year
period: year
label: DC Medicaid/Alliance maximum age for new applicants
reference:
- title: DC Health Care Alliance and Immigrant Children's Program Changes
href: https://dhcf.dc.gov/node/1809101

values:
2021-01-01: .inf # No age restriction before October 1, 2025
2026-01-01: 25 # New applicants 26+ not eligible starting October 1, 2025 (modeled as 2026)
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
description: The District of Columbia limits Medicaid/Alliance for pregnant women to this percentage of the Federal Poverty Level.
metadata:
unit: /1
period: year
label: DC Medicaid/Alliance income limit for pregnant women
reference:
- title: DC Health Care Alliance and Immigrant Children's Program Changes
href: https://dhcf.dc.gov/node/1809101

values:
2021-01-01: 3.24 # 324% FPL for pregnant women regardless of immigration status
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
- name: DC Medicaid enrolled adult cost
period: 2024
absolute_error_margin: 0.01
input:
age: 30
dc_medicaid_enrolled: true
state_code: DC
output:
dc_medicaid_cost: 7_472.53 # DC-specific cost for expansion adults

- name: DC Medicaid enrolled child cost
period: 2024
absolute_error_margin: 0.01
input:
age: 10
dc_medicaid_enrolled: true
state_code: DC
output:
dc_medicaid_cost: 4_621.95 # DC-specific cost for children

- name: DC Medicaid enrolled disabled person cost
period: 2024
absolute_error_margin: 0.01
input:
age: 45
is_ssi_recipient_for_medicaid: true
dc_medicaid_enrolled: true
state_code: DC
output:
dc_medicaid_cost: 33_295.08 # DC-specific cost for aged/disabled

- name: Not enrolled - zero cost
period: 2024
input:
age: 30
dc_medicaid_enrolled: false
state_code: DC
output:
dc_medicaid_cost: 0

- name: DC Medicaid enrolled pregnant woman cost
period: 2024
absolute_error_margin: 0.01
input:
age: 25
is_pregnant: true
dc_medicaid_enrolled: true
state_code: DC
output:
dc_medicaid_cost: 7_551.72 # DC-specific cost for non-expansion adults (pregnant)
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
- name: DC Medicaid adult cost if enrolled
period: 2024
absolute_error_margin: 0.01
input:
age: 30
dc_medicaid_enrolled: true
state_code: DC
output:
dc_medicaid_cost_if_enrolled: 7_472.53 # DC-specific cost for expansion adults

- name: DC Medicaid child cost if enrolled
period: 2024
absolute_error_margin: 0.01
input:
age: 8
dc_medicaid_enrolled: true
state_code: DC
output:
dc_medicaid_cost_if_enrolled: 4_621.95 # DC-specific cost for children

- name: DC Medicaid pregnant woman cost if enrolled
period: 2024
absolute_error_margin: 0.01
input:
age: 25
is_pregnant: true
dc_medicaid_enrolled: true
state_code: DC
output:
dc_medicaid_cost_if_enrolled: 7_551.72 # DC-specific cost for non-expansion adults (pregnant)

- name: DC Medicaid elderly person cost if enrolled
period: 2024
absolute_error_margin: 0.01
input:
age: 70
dc_medicaid_enrolled: true
is_ssi_recipient_for_medicaid: true
state_code: DC
output:
dc_medicaid_cost_if_enrolled: 33_295.08 # DC-specific cost for aged/disabled

- name: DC Medicaid young adult cost if enrolled (age 21)
period: 2024
absolute_error_margin: 0.01
input:
age: 21 # Age 21 is adult in DC (child_max_age = 20)
dc_medicaid_enrolled: true
state_code: DC
output:
dc_medicaid_cost_if_enrolled: 7_472.53 # DC-specific cost for expansion adults (21+)

- name: DC Medicaid age 19 cost if enrolled (child in DC)
period: 2024
absolute_error_margin: 0.01
input:
age: 19 # Age 19 is still a child in DC (child_max_age = 20)
dc_medicaid_enrolled: true
state_code: DC
output:
dc_medicaid_cost_if_enrolled: 4_621.95 # DC-specific cost for children (age <= 20)
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Minimal unit tests for age eligibility
- name: Age 25 eligible in 2025
period: 2025
input:
age: 25
is_pregnant: false
dc_medicaid_enrolled: false
state_code: DC
output:
dc_medicaid_age_eligible: true # No age restriction yet

- name: Age 30 eligible in 2025
period: 2025
input:
age: 30
is_pregnant: false
dc_medicaid_enrolled: false
state_code: DC
output:
dc_medicaid_age_eligible: true # No age restriction yet

- name: Age 25 eligible in 2026
period: 2026
input:
age: 25
is_pregnant: false
dc_medicaid_enrolled: false
state_code: DC
output:
dc_medicaid_age_eligible: true # Under 26

- name: Age 30 not eligible in 2026 (new applicant)
period: 2026
input:
age: 30
is_pregnant: false
dc_medicaid_enrolled: false
state_code: DC
output:
dc_medicaid_age_eligible: false # Over 25, not enrolled

- name: Age 30 eligible in 2026 (already enrolled)
period: 2026
input:
age: 30
is_pregnant: false
dc_medicaid_enrolled: true # Grandfathered
state_code: DC
output:
dc_medicaid_age_eligible: true # Grandfathered

- name: Pregnant woman any age eligible
period: 2026
input:
age: 35
is_pregnant: true
dc_medicaid_enrolled: false
state_code: DC
output:
dc_medicaid_age_eligible: true # Pregnant women exempt

# Age boundary tests at 25/26 threshold in 2026

- name: Boundary - Age exactly 26 NOT eligible in 2026 (new applicant)
period: 2026
input:
age: 26
is_pregnant: false
dc_medicaid_enrolled: false
state_code: DC
output:
dc_medicaid_age_eligible: false # Over 25, new applicant

- name: Boundary - Age exactly 26 eligible in 2026 (grandfathered)
period: 2026
input:
age: 26
is_pregnant: false
dc_medicaid_enrolled: true # Grandfathered
state_code: DC
output:
dc_medicaid_age_eligible: true # Grandfathered enrollee

- name: Boundary - Age 0 (newborn) eligible
period: 2026
input:
age: 0
is_pregnant: false
dc_medicaid_enrolled: false
state_code: DC
output:
dc_medicaid_age_eligible: true # Newborn eligible
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# Unit tests for overall DC Medicaid/Alliance eligibility
# DC Alliance is for immigrants not eligible for federal Medicaid

- name: Eligible - undocumented immigrant meeting all criteria
period: 2025
input:
age: 25
is_pregnant: false
dc_medicaid_enrolled: false
immigration_status: UNDOCUMENTED
medicaid_income_level: 1.0 # 100% FPL
state_code: DC
output:
dc_medicaid_eligible: true

- name: Eligible - DACA recipient meeting all criteria
period: 2025
input:
age: 25
is_pregnant: false
dc_medicaid_enrolled: false
immigration_status: DACA
medicaid_income_level: 1.0 # 100% FPL
state_code: DC
output:
dc_medicaid_eligible: true

- name: Not eligible - US citizen (should use federal Medicaid)
period: 2025
input:
age: 25
is_pregnant: false
dc_medicaid_enrolled: false
immigration_status: CITIZEN
medicaid_income_level: 1.0 # 100% FPL
state_code: DC
output:
dc_medicaid_eligible: false

- name: Not eligible - income too high
period: 2025
input:
age: 25
is_pregnant: false
dc_medicaid_enrolled: false
immigration_status: UNDOCUMENTED
medicaid_income_level: 2.5 # 250% FPL (above 215% limit)
state_code: DC
output:
dc_medicaid_eligible: false

- name: Not eligible - age too high in 2026 (new applicant)
period: 2026
input:
age: 30
is_pregnant: false
dc_medicaid_enrolled: false
immigration_status: UNDOCUMENTED
medicaid_income_level: 1.0 # 100% FPL
state_code: DC
output:
dc_medicaid_eligible: false

- name: Eligible - grandfathered by age (existing enrollee)
period: 2026
input:
age: 30
is_pregnant: false
dc_medicaid_enrolled: true # Grandfathered
immigration_status: UNDOCUMENTED
medicaid_income_level: 1.0 # 100% FPL
state_code: DC
output:
dc_medicaid_eligible: true

- name: Not eligible - LPR should use federal Medicaid
period: 2025
input:
age: 25
is_pregnant: false
dc_medicaid_enrolled: false
immigration_status: LEGAL_PERMANENT_RESIDENT
medicaid_income_level: 1.0 # 100% FPL
state_code: DC
output:
dc_medicaid_eligible: false

- name: Eligible - TPS recipient meeting all criteria
period: 2025
input:
age: 25
is_pregnant: false
dc_medicaid_enrolled: false
immigration_status: TPS
medicaid_income_level: 1.0 # 100% FPL
state_code: DC
output:
dc_medicaid_eligible: true
Loading