From d3eedc6fb9908479daf86c6d5f41d1f680a70dd2 Mon Sep 17 00:00:00 2001 From: CalebPena <62856626+CalebPena@users.noreply.github.com> Date: Mon, 21 Oct 2024 13:38:57 -0600 Subject: [PATCH] Pregnant person counted as 2 for Medicaid (and CHP+) (#5249) * change medicaid fpg percent to count pregnant people as 2 for purposes of household size * changelog * format * add documentation for pregant women and medicaid * format * add expected children do be delivered variable * format * current_pregnancies * fomat * add all parameters to test --- changelog_entry.yaml | 4 + .../tax_unit_medicaid_income_level.yaml | 75 +++++++++++++++++++ .../income/tax_unit_medicaid_income_level.py | 19 ++++- .../variables/gov/hhs/tax_unit_fpg.py | 12 ++- .../demographic/person/current_pregnancies.py | 8 ++ .../demographic/person/is_pregnant.py | 1 + 6 files changed, 113 insertions(+), 6 deletions(-) create mode 100644 policyengine_us/tests/policy/baseline/gov/hhs/medicaid/income/tax_unit_medicaid_income_level.yaml create mode 100644 policyengine_us/variables/household/demographic/person/current_pregnancies.py diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb2d..cc4eeb1a6ca 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: patch + changes: + fixed: + - Pregnant people counted as 2 for Medicaid FPG percent diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/income/tax_unit_medicaid_income_level.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/income/tax_unit_medicaid_income_level.yaml new file mode 100644 index 00000000000..7c603549934 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/income/tax_unit_medicaid_income_level.yaml @@ -0,0 +1,75 @@ +- name: Multiple people with income + period: 2024 + input: + people: + head: + current_pregnancies: 0 + spouse: + current_pregnancies: 0 + tax_units: + tax_unit: + medicaid_magi: 20_440 + tax_unit_size: 2 + members: [head, spouse] + households: + household: + state_group_str: CONTIGUOUS_US + output: + tax_unit_medicaid_income_level: 1 + +- name: Multiple people with no income + period: 2024 + input: + people: + head: + current_pregnancies: 0 + spouse: + current_pregnancies: 0 + tax_units: + tax_unit: + medicaid_magi: 0 + tax_unit_size: 2 + members: [head, spouse] + households: + household: + state_group_str: CONTIGUOUS_US + output: + tax_unit_medicaid_income_level: 0 + +- name: Multiple people with income and a pregnant person + period: 2024 + input: + people: + head: + current_pregnancies: 1 + spouse: + current_pregnancies: 0 + tax_units: + tax_unit: + medicaid_magi: 25_820 + tax_unit_size: 2 + members: [head, spouse] + households: + household: + state_group_str: CONTIGUOUS_US + output: + tax_unit_medicaid_income_level: 1 + +- name: Multiple people with income and a pregnant person expecting twins + period: 2024 + input: + people: + head: + current_pregnancies: 2 + spouse: + current_pregnancies: 0 + tax_units: + tax_unit: + medicaid_magi: 31_200 + tax_unit_size: 2 + members: [head, spouse] + households: + household: + state_group_str: CONTIGUOUS_US + output: + tax_unit_medicaid_income_level: 1 diff --git a/policyengine_us/variables/gov/hhs/medicaid/income/tax_unit_medicaid_income_level.py b/policyengine_us/variables/gov/hhs/medicaid/income/tax_unit_medicaid_income_level.py index 93aa23d8d87..1aa7af031a4 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/income/tax_unit_medicaid_income_level.py +++ b/policyengine_us/variables/gov/hhs/medicaid/income/tax_unit_medicaid_income_level.py @@ -1,4 +1,5 @@ from policyengine_us.model_api import * +from policyengine_us.variables.gov.hhs.tax_unit_fpg import fpg class tax_unit_medicaid_income_level(Variable): @@ -10,10 +11,24 @@ class tax_unit_medicaid_income_level(Variable): "Medicaid/CHIP-related MAGI as fraction of federal poverty line." "Documentation: 'Federal poverty level (FPL)' at the following URL:" "URL: https://www.healthcare.gov/glossary/federal-poverty-level-fpl/" + "**Pregnant Women:**" + " * Pregnant women are counted as themselves plus the number of children they are expecting to deliver" + " when determining household size for Medicaid eligibility." + " * Sources:" + " URL: https://www.sos.state.co.us/CCR/GenerateRulePdf.do?ruleVersionId=11618&fileName=10%20CCR%25202505-10%208.100" + " URL: https://www.cms.gov/marketplace/technical-assistance-resources/special-populations-pregnant-women.pdf" ) definition_period = YEAR def formula(tax_unit, period, parameters): income = tax_unit("medicaid_magi", period) - fpg = tax_unit("tax_unit_fpg", period) - return income / fpg + + pregnant_count = add(tax_unit, period, ["current_pregnancies"]) + tax_unit_size = tax_unit("tax_unit_size", period) + state_group = tax_unit.household("state_group_str", period) + + medicaid_fpg = fpg( + pregnant_count + tax_unit_size, state_group, period, parameters + ) + + return income / medicaid_fpg diff --git a/policyengine_us/variables/gov/hhs/tax_unit_fpg.py b/policyengine_us/variables/gov/hhs/tax_unit_fpg.py index d6de9691d90..f492918fcbb 100644 --- a/policyengine_us/variables/gov/hhs/tax_unit_fpg.py +++ b/policyengine_us/variables/gov/hhs/tax_unit_fpg.py @@ -1,6 +1,13 @@ from policyengine_us.model_api import * +def fpg(unit_size, state_group, period, parameters): + p_fpg = parameters(period).gov.hhs.fpg + p1 = p_fpg.first_person[state_group] + pn = p_fpg.additional_person[state_group] + return p1 + pn * (unit_size - 1) + + class tax_unit_fpg(Variable): value_type = float entity = TaxUnit @@ -11,7 +18,4 @@ class tax_unit_fpg(Variable): def formula(tax_unit, period, parameters): n = tax_unit("tax_unit_size", period) state_group = tax_unit.household("state_group_str", period) - p_fpg = parameters(period).gov.hhs.fpg - p1 = p_fpg.first_person[state_group] - pn = p_fpg.additional_person[state_group] - return p1 + pn * (n - 1) + return fpg(n, state_group, period, parameters) diff --git a/policyengine_us/variables/household/demographic/person/current_pregnancies.py b/policyengine_us/variables/household/demographic/person/current_pregnancies.py new file mode 100644 index 00000000000..9af6fa64ce8 --- /dev/null +++ b/policyengine_us/variables/household/demographic/person/current_pregnancies.py @@ -0,0 +1,8 @@ +from policyengine_us.model_api import * + + +class current_pregnancies(Variable): + value_type = int + entity = Person + definition_period = YEAR + label = "The number of children a pregnant person is expecting" diff --git a/policyengine_us/variables/household/demographic/person/is_pregnant.py b/policyengine_us/variables/household/demographic/person/is_pregnant.py index 7d9142f84c6..cb58b94b742 100644 --- a/policyengine_us/variables/household/demographic/person/is_pregnant.py +++ b/policyengine_us/variables/household/demographic/person/is_pregnant.py @@ -6,3 +6,4 @@ class is_pregnant(Variable): entity = Person label = "Is pregnant" definition_period = YEAR + adds = ["current_pregnancies"]