diff --git a/changelog.d/fixed/5798.md b/changelog.d/fixed/5798.md new file mode 100644 index 00000000000..a4e3d628131 --- /dev/null +++ b/changelog.d/fixed/5798.md @@ -0,0 +1 @@ +Model Virginia Medicaid parent eligibility limits by LIFC locality group. diff --git a/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group1/additional.yaml b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group1/additional.yaml new file mode 100644 index 00000000000..6aa0022ef4a --- /dev/null +++ b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group1/additional.yaml @@ -0,0 +1,10 @@ +description: Virginia adds this amount for each additional person under the Medicaid Low Income Families With Children program. +values: + 2025-07-01: 1_668 +metadata: + unit: currency-USD + period: year + label: Virginia Medicaid LIFC Group I additional-person income limit + reference: + - title: Virginia Medical Assistance Eligibility Manual, Chapter M04, Appendix 3 + href: https://www.dmas.virginia.gov/media/0aynyhxk/m04-1-1-26a.pdf#page=51 diff --git a/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group1/main.yaml b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group1/main.yaml new file mode 100644 index 00000000000..315047d5c86 --- /dev/null +++ b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group1/main.yaml @@ -0,0 +1,28 @@ +description: Virginia limits income to this amount under the Medicaid Low Income Families With Children program. +1: + 2025-07-01: 3_948 +2: + 2025-07-01: 5_940 +3: + 2025-07-01: 7_584 +4: + 2025-07-01: 9_168 +5: + 2025-07-01: 10_752 +6: + 2025-07-01: 12_120 +7: + 2025-07-01: 13_704 +8: + 2025-07-01: 15_312 +metadata: + unit: currency-USD + period: year + label: Virginia Medicaid LIFC Group I income limit + breakdown: + - range(1, 9) + breakdown_label: + - Household size + reference: + - title: Virginia Medical Assistance Eligibility Manual, Chapter M04, Appendix 3 + href: https://www.dmas.virginia.gov/media/0aynyhxk/m04-1-1-26a.pdf#page=51 diff --git a/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group2/additional.yaml b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group2/additional.yaml new file mode 100644 index 00000000000..f939dca61d7 --- /dev/null +++ b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group2/additional.yaml @@ -0,0 +1,10 @@ +description: Virginia adds this amount for each additional person under the Medicaid Low Income Families With Children program. +values: + 2025-07-01: 1_860 +metadata: + unit: currency-USD + period: year + label: Virginia Medicaid LIFC Group II additional-person income limit + reference: + - title: Virginia Medical Assistance Eligibility Manual, Chapter M04, Appendix 3 + href: https://www.dmas.virginia.gov/media/0aynyhxk/m04-1-1-26a.pdf#page=51 diff --git a/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group2/main.yaml b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group2/main.yaml new file mode 100644 index 00000000000..296e9968df1 --- /dev/null +++ b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group2/main.yaml @@ -0,0 +1,28 @@ +description: Virginia limits income to this amount under the Medicaid Low Income Families With Children program. +1: + 2025-07-01: 5_148 +2: + 2025-07-01: 7_308 +3: + 2025-07-01: 9_204 +4: + 2025-07-01: 10_956 +5: + 2025-07-01: 12_900 +6: + 2025-07-01: 14_508 +7: + 2025-07-01: 16_260 +8: + 2025-07-01: 18_120 +metadata: + unit: currency-USD + period: year + label: Virginia Medicaid LIFC Group II income limit + breakdown: + - range(1, 9) + breakdown_label: + - Household size + reference: + - title: Virginia Medical Assistance Eligibility Manual, Chapter M04, Appendix 3 + href: https://www.dmas.virginia.gov/media/0aynyhxk/m04-1-1-26a.pdf#page=51 diff --git a/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group3/additional.yaml b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group3/additional.yaml new file mode 100644 index 00000000000..af6c6e059a4 --- /dev/null +++ b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group3/additional.yaml @@ -0,0 +1,10 @@ +description: Virginia adds this amount for each additional person under the Medicaid Low Income Families With Children program. +values: + 2025-07-01: 2_256 +metadata: + unit: currency-USD + period: year + label: Virginia Medicaid LIFC Group III additional-person income limit + reference: + - title: Virginia Medical Assistance Eligibility Manual, Chapter M04, Appendix 3 + href: https://www.dmas.virginia.gov/media/0aynyhxk/m04-1-1-26a.pdf#page=51 diff --git a/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group3/main.yaml b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group3/main.yaml new file mode 100644 index 00000000000..a94406c8abb --- /dev/null +++ b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/group3/main.yaml @@ -0,0 +1,28 @@ +description: Virginia limits income to this amount under the Medicaid Low Income Families With Children program. +1: + 2025-07-01: 7_704 +2: + 2025-07-01: 10_308 +3: + 2025-07-01: 12_576 +4: + 2025-07-01: 14_712 +5: + 2025-07-01: 17_424 +6: + 2025-07-01: 19_356 +7: + 2025-07-01: 21_516 +8: + 2025-07-01: 23_796 +metadata: + unit: currency-USD + period: year + label: Virginia Medicaid LIFC Group III income limit + breakdown: + - range(1, 9) + breakdown_label: + - Household size + reference: + - title: Virginia Medical Assistance Eligibility Manual, Chapter M04, Appendix 3 + href: https://www.dmas.virginia.gov/media/0aynyhxk/m04-1-1-26a.pdf#page=51 diff --git a/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/max_household_size.yaml b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/max_household_size.yaml new file mode 100644 index 00000000000..66a047ed9d1 --- /dev/null +++ b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/income_limit/max_household_size.yaml @@ -0,0 +1,10 @@ +description: Virginia uses this household-size threshold for listed income limits under the Medicaid Low Income Families With Children program. +values: + 2025-07-01: 8 +metadata: + unit: person + period: year + label: Virginia Medicaid LIFC listed income limit household-size threshold + reference: + - title: Virginia Medical Assistance Eligibility Manual, Chapter M04, Appendix 3 + href: https://www.dmas.virginia.gov/media/0aynyhxk/m04-1-1-26a.pdf#page=51 diff --git a/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/localities/group1.yaml b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/localities/group1.yaml new file mode 100644 index 00000000000..c6a9a3848ec --- /dev/null +++ b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/localities/group1.yaml @@ -0,0 +1,103 @@ +description: Virginia assigns these localities to Group I under the Medicaid Low Income Families With Children program. +values: + 2017-07-01: + # Counties + - ACCOMACK_COUNTY_VA + - ALLEGHANY_COUNTY_VA + - AMELIA_COUNTY_VA + - AMHERST_COUNTY_VA + - APPOMATTOX_COUNTY_VA + - BATH_COUNTY_VA + - BEDFORD_COUNTY_VA + - BLAND_COUNTY_VA + - BOTETOURT_COUNTY_VA + - BRUNSWICK_COUNTY_VA + - BUCHANAN_COUNTY_VA + - BUCKINGHAM_COUNTY_VA + - CAMPBELL_COUNTY_VA + - CAROLINE_COUNTY_VA + - CARROLL_COUNTY_VA + - CHARLES_CITY_COUNTY_VA + - CHARLOTTE_COUNTY_VA + - CLARKE_COUNTY_VA + - CRAIG_COUNTY_VA + - CULPEPER_COUNTY_VA + - CUMBERLAND_COUNTY_VA + - DICKENSON_COUNTY_VA + - DINWIDDIE_COUNTY_VA + - ESSEX_COUNTY_VA + - FAUQUIER_COUNTY_VA + - FLOYD_COUNTY_VA + - FLUVANNA_COUNTY_VA + - FRANKLIN_COUNTY_VA + - FREDERICK_COUNTY_VA + - GILES_COUNTY_VA + - GLOUCESTER_COUNTY_VA + - GOOCHLAND_COUNTY_VA + - GRAYSON_COUNTY_VA + - GREENE_COUNTY_VA + - GREENSVILLE_COUNTY_VA + - HALIFAX_COUNTY_VA + - HANOVER_COUNTY_VA + - HENRY_COUNTY_VA + - HIGHLAND_COUNTY_VA + - ISLE_OF_WIGHT_COUNTY_VA + - JAMES_CITY_COUNTY_VA + - KING_GEORGE_COUNTY_VA + - KING_AND_QUEEN_COUNTY_VA + - KING_WILLIAM_COUNTY_VA + - LANCASTER_COUNTY_VA + - LEE_COUNTY_VA + - LOUISA_COUNTY_VA + - LUNENBURG_COUNTY_VA + - MADISON_COUNTY_VA + - MATHEWS_COUNTY_VA + - MECKLENBURG_COUNTY_VA + - MIDDLESEX_COUNTY_VA + - NELSON_COUNTY_VA + - NEW_KENT_COUNTY_VA + - NORTHAMPTON_COUNTY_VA + - NORTHUMBERLAND_COUNTY_VA + - NOTTOWAY_COUNTY_VA + - ORANGE_COUNTY_VA + - PAGE_COUNTY_VA + - PATRICK_COUNTY_VA + - PITTSYLVANIA_COUNTY_VA + - POWHATAN_COUNTY_VA + - PRINCE_EDWARD_COUNTY_VA + - PRINCE_GEORGE_COUNTY_VA + - PULASKI_COUNTY_VA + - RAPPAHANNOCK_COUNTY_VA + - RICHMOND_COUNTY_VA + - ROCKBRIDGE_COUNTY_VA + - RUSSELL_COUNTY_VA + - SCOTT_COUNTY_VA + - SHENANDOAH_COUNTY_VA + - SMYTH_COUNTY_VA + - SOUTHAMPTON_COUNTY_VA + - SPOTSYLVANIA_COUNTY_VA + - STAFFORD_COUNTY_VA + - SURRY_COUNTY_VA + - SUSSEX_COUNTY_VA + - TAZEWELL_COUNTY_VA + - WASHINGTON_COUNTY_VA + - WESTMORELAND_COUNTY_VA + - WISE_COUNTY_VA + - WYTHE_COUNTY_VA + - YORK_COUNTY_VA + # Cities + - BRISTOL_CITY_VA + - BUENA_VISTA_CITY_VA + - DANVILLE_CITY_VA + - EMPORIA_CITY_VA + - FRANKLIN_CITY_VA + - GALAX_CITY_VA + - NORTON_CITY_VA + - SUFFOLK_CITY_VA +metadata: + unit: list + period: year + label: Virginia Medicaid LIFC Group I localities + reference: + - title: Virginia Medical Assistance Eligibility Manual, Chapter M04, Appendix 4 + href: https://www.dmas.virginia.gov/media/0aynyhxk/m04-1-1-26a.pdf#page=52 diff --git a/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/localities/group2.yaml b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/localities/group2.yaml new file mode 100644 index 00000000000..86df20b422d --- /dev/null +++ b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/localities/group2.yaml @@ -0,0 +1,40 @@ +description: Virginia assigns these localities to Group II under the Medicaid Low Income Families With Children program. +values: + 2017-07-01: + # Counties + - ALBEMARLE_COUNTY_VA + - AUGUSTA_COUNTY_VA + - CHESTERFIELD_COUNTY_VA + - HENRICO_COUNTY_VA + - LOUDOUN_COUNTY_VA + - ROANOKE_COUNTY_VA + - ROCKINGHAM_COUNTY_VA + - WARREN_COUNTY_VA + # Cities + - CHESAPEAKE_CITY_VA + - COVINGTON_CITY_VA + - HARRISONBURG_CITY_VA + - HOPEWELL_CITY_VA + - LEXINGTON_CITY_VA + - LYNCHBURG_CITY_VA + - MARTINSVILLE_CITY_VA + - NEWPORT_NEWS_CITY_VA + - NORFOLK_CITY_VA + - PETERSBURG_CITY_VA + - PORTSMOUTH_CITY_VA + - POQUOSON_CITY_VA + - RADFORD_CITY_VA + - RICHMOND_CITY_VA + - ROANOKE_CITY_VA + - SALEM_CITY_VA + - STAUNTON_CITY_VA + - VIRGINIA_BEACH_CITY_VA + - WILLIAMSBURG_CITY_VA + - WINCHESTER_CITY_VA +metadata: + unit: list + period: year + label: Virginia Medicaid LIFC Group II localities + reference: + - title: Virginia Medical Assistance Eligibility Manual, Chapter M04, Appendix 4 + href: https://www.dmas.virginia.gov/media/0aynyhxk/m04-1-1-26a.pdf#page=52 diff --git a/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/localities/group3.yaml b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/localities/group3.yaml new file mode 100644 index 00000000000..d525fdf7027 --- /dev/null +++ b/policyengine_us/parameters/gov/states/va/dmas/medicaid/lifc/localities/group3.yaml @@ -0,0 +1,25 @@ +description: Virginia assigns these localities to Group III under the Medicaid Low Income Families With Children program. +values: + 2017-07-01: + # Counties + - ARLINGTON_COUNTY_VA + - FAIRFAX_COUNTY_VA + - MONTGOMERY_COUNTY_VA + - PRINCE_WILLIAM_COUNTY_VA + # Cities + - ALEXANDRIA_CITY_VA + - CHARLOTTESVILLE_CITY_VA + - COLONIAL_HEIGHTS_CITY_VA + - FALLS_CHURCH_CITY_VA + - FREDERICKSBURG_CITY_VA + - HAMPTON_CITY_VA + - MANASSAS_CITY_VA + - MANASSAS_PARK_CITY_VA + - WAYNESBORO_CITY_VA +metadata: + unit: list + period: year + label: Virginia Medicaid LIFC Group III localities + reference: + - title: Virginia Medical Assistance Eligibility Manual, Chapter M04, Appendix 4 + href: https://www.dmas.virginia.gov/media/0aynyhxk/m04-1-1-26a.pdf#page=52 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/parent/medicaid_parent_income_limit.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/parent/medicaid_parent_income_limit.yaml new file mode 100644 index 00000000000..fa7926c9eaa --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/parent/medicaid_parent_income_limit.yaml @@ -0,0 +1,30 @@ +- name: Case 1, California uses the national parent Medicaid income limit table. + period: 2026 + input: + people: + person1: + age: 30 + households: + household: + members: [person1] + state_code: CA + output: + medicaid_parent_income_limit: 1.14 + absolute_error_margin: 0.0001 + +- name: Case 2, Virginia Group II uses the regional LIFC income limit. + period: 2026 + input: + people: + person1: + age: 30 + medicaid_household_size: 3 + households: + household: + members: [person1] + state_code: VA + state_group_str: CONTIGUOUS_US + county: HENRICO_COUNTY_VA + output: + medicaid_parent_income_limit: 0.336896 + absolute_error_margin: 0.0001 diff --git a/policyengine_us/tests/policy/baseline/gov/states/va/dmas/medicaid/lifc/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/va/dmas/medicaid/lifc/integration.yaml new file mode 100644 index 00000000000..56bb7ae6086 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/va/dmas/medicaid/lifc/integration.yaml @@ -0,0 +1,152 @@ +- name: Case 1, Group II parent at the LIFC threshold is parent eligible. + period: 2026 + input: + people: + person1: + age: 30 + employment_income: 9_204 + is_tax_unit_head: true + person2: + age: 7 + is_tax_unit_dependent: true + person3: + age: 5 + is_tax_unit_dependent: true + tax_units: + tax_unit: + members: [person1, person2, person3] + tax_unit_count_dependents: 2 + households: + household: + members: [person1, person2, person3] + state_code: VA + state_group_str: CONTIGUOUS_US + county: HENRICO_COUNTY_VA + output: + is_parent_for_medicaid: [true, false, false] + +- name: Case 2, Group II parent above the LIFC threshold is not parent eligible. + period: 2026 + input: + people: + person1: + age: 30 + employment_income: 9_205 + is_tax_unit_head: true + person2: + age: 7 + is_tax_unit_dependent: true + person3: + age: 5 + is_tax_unit_dependent: true + tax_units: + tax_unit: + members: [person1, person2, person3] + tax_unit_count_dependents: 2 + households: + household: + members: [person1, person2, person3] + state_code: VA + state_group_str: CONTIGUOUS_US + county: HENRICO_COUNTY_VA + output: + is_parent_for_medicaid: [false, false, false] + +- name: Case 3, Group III parent qualifies at income above the Group II threshold. + period: 2026 + input: + people: + person1: + age: 30 + employment_income: 12_576 + is_tax_unit_head: true + person2: + age: 7 + is_tax_unit_dependent: true + person3: + age: 5 + is_tax_unit_dependent: true + tax_units: + tax_unit: + members: [person1, person2, person3] + tax_unit_count_dependents: 2 + households: + household: + members: [person1, person2, person3] + state_code: VA + state_group_str: CONTIGUOUS_US + county: ARLINGTON_COUNTY_VA + output: + is_parent_for_medicaid: [true, false, false] + +- name: Case 4, Group I parent with the same income is not parent eligible. + period: 2026 + input: + people: + person1: + age: 30 + employment_income: 12_576 + is_tax_unit_head: true + person2: + age: 7 + is_tax_unit_dependent: true + person3: + age: 5 + is_tax_unit_dependent: true + tax_units: + tax_unit: + members: [person1, person2, person3] + tax_unit_count_dependents: 2 + households: + household: + members: [person1, person2, person3] + state_code: VA + state_group_str: CONTIGUOUS_US + county: ACCOMACK_COUNTY_VA + output: + is_parent_for_medicaid: [false, false, false] + +- name: Case 5, Group III household above the listed table size uses the additional-person amount. + period: 2026 + input: + people: + person1: + age: 30 + employment_income: 26_052 + is_tax_unit_head: true + person2: + age: 7 + is_tax_unit_dependent: true + person3: + age: 6 + is_tax_unit_dependent: true + person4: + age: 5 + is_tax_unit_dependent: true + person5: + age: 4 + is_tax_unit_dependent: true + person6: + age: 3 + is_tax_unit_dependent: true + person7: + age: 2 + is_tax_unit_dependent: true + person8: + age: 1 + is_tax_unit_dependent: true + person9: + age: 0 + is_tax_unit_dependent: true + tax_units: + tax_unit: + members: [person1, person2, person3, person4, person5, person6, person7, person8, person9] + tax_unit_count_dependents: 8 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7, person8, person9] + state_code: VA + state_group_str: CONTIGUOUS_US + county: ARLINGTON_COUNTY_VA + output: + is_parent_for_medicaid: [true, false, false, false, false, false, false, false, false] diff --git a/policyengine_us/tests/policy/baseline/gov/states/va/dmas/medicaid/lifc/va_medicaid_lifc_income_limit.yaml b/policyengine_us/tests/policy/baseline/gov/states/va/dmas/medicaid/lifc/va_medicaid_lifc_income_limit.yaml new file mode 100644 index 00000000000..61efe9d574d --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/va/dmas/medicaid/lifc/va_medicaid_lifc_income_limit.yaml @@ -0,0 +1,71 @@ +- name: Case 1, Group I household of three. + period: 2026 + input: + people: + person1: + age: 30 + medicaid_household_size: 3 + households: + household: + members: [person1] + state_code: VA + state_group_str: CONTIGUOUS_US + county: ACCOMACK_COUNTY_VA + output: + # $7,584 / 2026 FPG for 3 ($27,320). + va_medicaid_lifc_income_limit: 0.277599 + absolute_error_margin: 0.0001 + +- name: Case 2, Group II household of three. + period: 2026 + input: + people: + person1: + age: 30 + medicaid_household_size: 3 + households: + household: + members: [person1] + state_code: VA + state_group_str: CONTIGUOUS_US + county: HENRICO_COUNTY_VA + output: + # $9,204 / 2026 FPG for 3 ($27,320). + va_medicaid_lifc_income_limit: 0.336896 + absolute_error_margin: 0.0001 + +- name: Case 3, Group III household of three. + period: 2026 + input: + people: + person1: + age: 30 + medicaid_household_size: 3 + households: + household: + members: [person1] + state_code: VA + state_group_str: CONTIGUOUS_US + county: ARLINGTON_COUNTY_VA + output: + # $12,576 / 2026 FPG for 3 ($27,320). + va_medicaid_lifc_income_limit: 0.460322 + absolute_error_margin: 0.0001 + +- name: Case 4, Group III household above the listed table size. + period: 2026 + input: + people: + person1: + age: 30 + medicaid_household_size: 9 + households: + household: + members: [person1] + state_code: VA + state_group_str: CONTIGUOUS_US + county: ARLINGTON_COUNTY_VA + output: + # ($23,796 + $2,256) / 2026 FPG for 9 ($61,400). + va_medicaid_lifc_income_limit: 0.4243 + absolute_error_margin: 0.0001 diff --git a/policyengine_us/tests/policy/baseline/gov/states/va/dmas/medicaid/lifc/va_medicaid_lifc_locality_group.yaml b/policyengine_us/tests/policy/baseline/gov/states/va/dmas/medicaid/lifc/va_medicaid_lifc_locality_group.yaml new file mode 100644 index 00000000000..74d840664e7 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/va/dmas/medicaid/lifc/va_medicaid_lifc_locality_group.yaml @@ -0,0 +1,55 @@ +- name: Case 1, Group I county. + period: 2026 + input: + people: + person1: + age: 30 + households: + household: + members: [person1] + state_code: VA + county: ACCOMACK_COUNTY_VA + output: + va_medicaid_lifc_locality_group: GROUP_I + +- name: Case 2, Group II county. + period: 2026 + input: + people: + person1: + age: 30 + households: + household: + members: [person1] + state_code: VA + county: HENRICO_COUNTY_VA + output: + va_medicaid_lifc_locality_group: GROUP_II + +- name: Case 3, Group III county. + period: 2026 + input: + people: + person1: + age: 30 + households: + household: + members: [person1] + state_code: VA + county: ARLINGTON_COUNTY_VA + output: + va_medicaid_lifc_locality_group: GROUP_III + +- name: Case 4, Group III city. + period: 2026 + input: + people: + person1: + age: 30 + households: + household: + members: [person1] + state_code: VA + county: ALEXANDRIA_CITY_VA + output: + va_medicaid_lifc_locality_group: GROUP_III diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/parent/is_parent_for_medicaid_fc.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/parent/is_parent_for_medicaid_fc.py index 55ff04fce80..5ffd84349ab 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/parent/is_parent_for_medicaid_fc.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/parent/is_parent_for_medicaid_fc.py @@ -8,8 +8,6 @@ class is_parent_for_medicaid_fc(Variable): definition_period = YEAR def formula(person, period, parameters): - ma = parameters(period).gov.hhs.medicaid.eligibility.categories.parent income = person("medicaid_income_level", period) - state = person.household("state_code_str", period) - income_limit = ma.income_limit[state] - return income < income_limit + income_limit = person("medicaid_parent_income_limit", period) + return income <= income_limit diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/parent/medicaid_parent_income_limit.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/parent/medicaid_parent_income_limit.py new file mode 100644 index 00000000000..232f100fe54 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/parent/medicaid_parent_income_limit.py @@ -0,0 +1,23 @@ +from policyengine_us.model_api import * + + +class medicaid_parent_income_limit(Variable): + value_type = float + entity = Person + label = "Medicaid parent income limit" + unit = "/1" + definition_period = YEAR + reference = ( + "https://www.law.cornell.edu/cfr/text/42/435.110", + "https://www.dmas.virginia.gov/media/0aynyhxk/m04-1-1-26a.pdf#page=51", + ) + + def formula(person, period, parameters): + p = parameters(period).gov.hhs.medicaid.eligibility.categories.parent + state = person.household("state_code_str", period) + state_code = person.household("state_code", period) + return where( + state_code == StateCode.VA, + person("va_medicaid_lifc_income_limit", period), + p.income_limit[state], + ) diff --git a/policyengine_us/variables/gov/states/va/dmas/medicaid/lifc/va_medicaid_lifc_income_limit.py b/policyengine_us/variables/gov/states/va/dmas/medicaid/lifc/va_medicaid_lifc_income_limit.py new file mode 100644 index 00000000000..49814fc523e --- /dev/null +++ b/policyengine_us/variables/gov/states/va/dmas/medicaid/lifc/va_medicaid_lifc_income_limit.py @@ -0,0 +1,42 @@ +from policyengine_us.model_api import * +from policyengine_us.variables.gov.hhs.tax_unit_fpg import fpg + + +class va_medicaid_lifc_income_limit(Variable): + value_type = float + entity = Person + label = "Virginia Medicaid LIFC income limit" + unit = "/1" + definition_period = YEAR + defined_for = StateCode.VA + reference = "https://www.dmas.virginia.gov/media/0aynyhxk/m04-1-1-26a.pdf#page=51" + + def formula(person, period, parameters): + p = parameters(period).gov.states.va.dmas.medicaid.lifc.income_limit + size = person("medicaid_household_size", period) + capped_size = min_(size, p.max_household_size).astype(int) + additional_people = max_(size - p.max_household_size, 0) + + group1_limit = ( + p.group1.main[capped_size] + additional_people * p.group1.additional + ) + group2_limit = ( + p.group2.main[capped_size] + additional_people * p.group2.additional + ) + group3_limit = ( + p.group3.main[capped_size] + additional_people * p.group3.additional + ) + + locality_group = person.household("va_medicaid_lifc_locality_group", period) + groups = locality_group.possible_values + income_limit = select( + [ + locality_group == groups.GROUP_I, + locality_group == groups.GROUP_II, + locality_group == groups.GROUP_III, + ], + [group1_limit, group2_limit, group3_limit], + default=group1_limit, + ) + state_group = person.household("state_group_str", period) + return income_limit / fpg(size, state_group, period, parameters) diff --git a/policyengine_us/variables/gov/states/va/dmas/medicaid/lifc/va_medicaid_lifc_locality_group.py b/policyengine_us/variables/gov/states/va/dmas/medicaid/lifc/va_medicaid_lifc_locality_group.py new file mode 100644 index 00000000000..f38b8b4f960 --- /dev/null +++ b/policyengine_us/variables/gov/states/va/dmas/medicaid/lifc/va_medicaid_lifc_locality_group.py @@ -0,0 +1,35 @@ +from policyengine_us.model_api import * + + +class VAMedicaidLIFCLocalityGroup(Enum): + GROUP_I = "Group I" + GROUP_II = "Group II" + GROUP_III = "Group III" + + +class va_medicaid_lifc_locality_group(Variable): + value_type = Enum + possible_values = VAMedicaidLIFCLocalityGroup + default_value = VAMedicaidLIFCLocalityGroup.GROUP_I + entity = Household + label = "Virginia Medicaid LIFC locality group" + definition_period = YEAR + defined_for = StateCode.VA + reference = "https://www.dmas.virginia.gov/media/0aynyhxk/m04-1-1-26a.pdf#page=52" + + def formula(household, period, parameters): + county = household("county_str", period) + p = parameters(period).gov.states.va.dmas.medicaid.lifc.localities + return select( + [ + np.isin(county, p.group1), + np.isin(county, p.group2), + np.isin(county, p.group3), + ], + [ + VAMedicaidLIFCLocalityGroup.GROUP_I, + VAMedicaidLIFCLocalityGroup.GROUP_II, + VAMedicaidLIFCLocalityGroup.GROUP_III, + ], + default=VAMedicaidLIFCLocalityGroup.GROUP_I, + )