diff --git a/changelog.d/ct-husky-c-per-member-disregard.fixed.md b/changelog.d/ct-husky-c-per-member-disregard.fixed.md new file mode 100644 index 00000000000..606f0251bd6 --- /dev/null +++ b/changelog.d/ct-husky-c-per-member-disregard.fixed.md @@ -0,0 +1 @@ +Connecticut's aged, blind and disabled Medicaid pathway subtracts the unearned income disregard from each spouse's own unearned income (UPM 5030.15 A). diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/income/disregard/applies_per_member.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/income/disregard/applies_per_member.yaml new file mode 100644 index 00000000000..47d15903316 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/income/disregard/applies_per_member.yaml @@ -0,0 +1,115 @@ +description: The state subtracts the individual income disregard from each spouse's own unearned income, instead of subtracting the couple disregard from the couple's combined unearned income, under the optional Medicaid pathway for seniors or people with disabilities, if this is true. +metadata: + unit: bool + period: year + label: Medicaid senior or disabled income disregard applies per member + breakdown: + - state_code + reference: + - title: Connecticut DSS Uniform Policy Manual 5030.15 A - Unearned Income Disregards, AABD and MAABD + href: https://portal.ct.gov/dss/-/media/departments-and-agencies/dss/upms/upm5---treatment-of-income-income-eligibility/5030_15.doc + - title: Connecticut DSS Uniform Policy Manual 5045.10 C and E - Applied Income Calculation Method, AABD and MAABD + href: https://portal.ct.gov/dss/-/media/departments-and-agencies/dss/upms/upm5---treatment-of-income-income-eligibility/5045_10.doc + +AK: + 2015-01-01: false +AL: + 2015-01-01: false +AR: + 2015-01-01: false +AZ: + 2015-01-01: false +CA: + 2015-01-01: false +CO: + 2015-01-01: false +CT: + 2015-01-01: true +DC: + 2015-01-01: false +DE: + 2015-01-01: false +FL: + 2015-01-01: false +GA: + 2015-01-01: false +HI: + 2015-01-01: false +IA: + 2015-01-01: false +ID: + 2015-01-01: false +IL: + 2015-01-01: false +IN: + 2015-01-01: false +KS: + 2015-01-01: false +KY: + 2015-01-01: false +LA: + 2015-01-01: false +MA: + 2015-01-01: false +MD: + 2015-01-01: false +ME: + 2015-01-01: false +MI: + 2015-01-01: false +MN: + 2015-01-01: false +MO: + 2015-01-01: false +MS: + 2015-01-01: false +MT: + 2015-01-01: false +NC: + 2015-01-01: false +ND: + 2015-01-01: false +NE: + 2015-01-01: false +NH: + 2015-01-01: false +NJ: + 2015-01-01: false +NM: + 2015-01-01: false +NV: + 2015-01-01: false +NY: + 2015-01-01: false +OH: + 2015-01-01: false +OK: + 2015-01-01: false +OR: + 2015-01-01: false +PA: + 2015-01-01: false +RI: + 2015-01-01: false +SC: + 2015-01-01: false +SD: + 2015-01-01: false +TN: + 2015-01-01: false +TX: + 2015-01-01: false +UT: + 2015-01-01: false +VA: + 2015-01-01: false +VT: + 2015-01-01: false +WA: + 2015-01-01: false +WI: + 2015-01-01: false +WV: + 2015-01-01: false +WY: + 2015-01-01: false diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/income/medicaid_optional_senior_or_disabled_countable_income.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/income/medicaid_optional_senior_or_disabled_countable_income.yaml index 883b6e7bed9..395433a72df 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/income/medicaid_optional_senior_or_disabled_countable_income.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/income/medicaid_optional_senior_or_disabled_countable_income.yaml @@ -105,3 +105,54 @@ # rounding, 1,131.75 would exceed the $1,131 standard. medicaid_optional_senior_or_disabled_countable_income: 13_572 is_optional_senior_or_disabled_income_eligible: true + +- name: Connecticut couple with each spouse above the individual disregard gets twice the individual disregard. + period: 2025 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + is_tax_unit_head: true + ssi_unearned_income: 15_600 + person2: + age: 68 + is_tax_unit_spouse: true + ssi_unearned_income: 7_800 + marital_units: + marital_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CT + output: + # UPM 5030.15 A: (1,300 - 535) + (650 - 535) = 880 a month. + # 880 x 12 / 2 = 5,280 each. + medicaid_optional_senior_or_disabled_countable_income: [5_280, 5_280] + +- name: Connecticut couple gets the disregard only up to a spouse's own unearned income. + period: 2025 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + is_tax_unit_head: true + ssi_unearned_income: 18_000 + person2: + age: 68 + is_tax_unit_spouse: true + ssi_unearned_income: 3_600 + marital_units: + marital_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CT + output: + # UPM 5030.15 A: (1,500 - 535) + max(300 - 535, 0) = 965 a month. + # 965 x 12 / 2 = 5,790 each. Subtracting the 1,070 couple disregard from + # the combined 1,800 would give 4,380 each. + medicaid_optional_senior_or_disabled_countable_income: [5_790, 5_790] diff --git a/policyengine_us/variables/gov/hhs/medicaid/income/medicaid_optional_senior_or_disabled_countable_income.py b/policyengine_us/variables/gov/hhs/medicaid/income/medicaid_optional_senior_or_disabled_countable_income.py index 044371e7419..289cf21bf79 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/income/medicaid_optional_senior_or_disabled_countable_income.py +++ b/policyengine_us/variables/gov/hhs/medicaid/income/medicaid_optional_senior_or_disabled_countable_income.py @@ -13,6 +13,9 @@ class medicaid_optional_senior_or_disabled_countable_income(Variable): reference = ( "https://www.law.cornell.edu/uscode/text/42/1396a#m", "https://www.kff.org/medicaid/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey/", + # Connecticut unearned income disregard per member + "https://portal.ct.gov/dss/-/media/departments-and-agencies/dss/upms/upm5---treatment-of-income-income-eligibility/5030_15.doc", + "https://portal.ct.gov/dss/-/media/departments-and-agencies/dss/upms/upm5---treatment-of-income-income-eligibility/5045_10.doc", # Missouri MHABD budgeting order and rounding "https://dssmanuals.mo.gov/mo-healthnet-for-the-aged-blind-and-disabled/0805-000-00/0805-015-00/", "https://dssmanuals.mo.gov/mo-healthnet-for-the-aged-blind-and-disabled/0805-000-00/0805-015-00/0805-015-25/", @@ -44,9 +47,20 @@ def formula(person, period, parameters): p = parameters( period ).gov.hhs.medicaid.eligibility.categories.senior_or_disabled.income.disregard + # UPM 5030.15 A subtracts the individual disregard from each member's + # own unearned income, and UPM 5045.10 E sums the members' results, so + # each spouse uses the disregard only up to their own unearned income. + own_unearned_monthly = person("ssi_unearned_income", period) / MONTHS_IN_YEAR + per_member_disregard = person.marital_unit.sum( + min_(own_unearned_monthly, p.individual[state]) + ) + applies_per_member = p.applies_per_member[state].astype(bool) + couple_disregard = where( + applies_per_member, per_member_disregard, p.couple[state] + ) income_disregard = where( couple_computation, - p.couple[state], + couple_disregard, p.individual[state], ) personal_countable = _apply_medicaid_optional_senior_or_disabled_exclusions(