From f990878fe6721d0395225903e3fe4f74e7d342e0 Mon Sep 17 00:00:00 2001 From: Ziming Date: Wed, 21 Oct 2026 16:30:42 -0400 Subject: [PATCH 01/22] Apply state Medicare Savings Program asset limits and income exclusions - Washington: no MSP asset test from 2023-01-01 (WSR 22-21-043). - California: $130,000 / $195,000 asset limit from 2022-07-01; asset test reinstated from 2026-01-01 (ACWDL 21-31, 22-25, 25-14, 25-27). - Minnesota: $10,000 / $18,000 asset limit, or the federal limit when higher (Minn. Stat. 256B.057 subd. 3). - Illinois $25 and Mississippi $50 general income exclusions in place of the SSI $20. Closes #10359 Co-Authored-By: Claude Opus 5.5 --- .../msp-state-asset-income-rules.fixed.md | 1 + .../eligibility/asset/applies.yaml | 16 ++++- .../eligibility/asset/state_limit/couple.yaml | 25 ++++++++ .../asset/state_limit/individual.yaml | 25 ++++++++ .../income/state_general_exclusion.yaml | 25 ++++++++ .../eligibility/msp_asset_eligible.yaml | 59 +++++++++++++++++++ .../income/msp_countable_income.yaml | 22 +++++++ .../eligibility/msp_asset_eligible.py | 9 ++- .../income/msp_countable_income.py | 14 +++++ 9 files changed, 192 insertions(+), 4 deletions(-) create mode 100644 changelog.d/msp-state-asset-income-rules.fixed.md create mode 100644 policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml create mode 100644 policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml create mode 100644 policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion.yaml diff --git a/changelog.d/msp-state-asset-income-rules.fixed.md b/changelog.d/msp-state-asset-income-rules.fixed.md new file mode 100644 index 00000000000..01ccc68a011 --- /dev/null +++ b/changelog.d/msp-state-asset-income-rules.fixed.md @@ -0,0 +1 @@ +Applied state Medicare Savings Program rules: no asset test in Washington from 2023; California asset limits of $130,000 / $195,000 (July 2022 to 2023, and again from 2026); Minnesota asset limits of $10,000 / $18,000; and general income exclusions of $25 in Illinois and $50 in Mississippi. diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml index 8b833f9b4b4..292704b0d97 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml @@ -14,8 +14,17 @@ metadata: href: https://legislature.maine.gov/statutes/22/title22sec3174-LLL.html - title: MassHealth EOM 24-03, Medicare Savings Programs href: https://www.mass.gov/doc/eom-24-03-medicare-savings-programs-formerly-known-as-masshealth-senior-buy-in-and-masshealth-buy-in-programs-0/download -# Federal MSP rules apply the asset test by default; states that have -# eliminated it in current law are set to false from 2024. + - title: California DHCS All County Welfare Directors Letter 22-25, Elimination of Asset Limits for Non-MAGI Medi-Cal Programs + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/22-25.pdf#page=2 + - title: California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=2 + - title: Washington State Register 22-21-043, amending WAC 182-517-0100 to remove Medicare Savings Program resource limits "#page 1-2" + href: https://lawfilesext.leg.wa.gov/law/wsrpdf/2022/21/22-21-043.pdf#page=1 + - title: Washington Administrative Code 182-517-0100(2)(d) - Federal Medicare savings programs + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-517-0100 +# Federal MSP rules apply the asset test by default. States that have +# eliminated it are set to false from 2024 unless a state source gives +# another date. AL: 0000-01-01: true 2024-01-01: false @@ -31,6 +40,7 @@ AR: CA: 0000-01-01: true 2024-01-01: false + 2026-01-01: true CO: 0000-01-01: true 2024-01-01: true @@ -159,7 +169,7 @@ VA: 2024-01-01: true WA: 0000-01-01: true - 2024-01-01: true + 2023-01-01: false WV: 0000-01-01: true 2024-01-01: true diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml new file mode 100644 index 00000000000..1c65585e696 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml @@ -0,0 +1,25 @@ +description: States limit resources to this amount for a couple under the Medicare Savings Programs when it is higher than the federal limit. +metadata: + unit: currency-USD + period: year + label: MSP state couple asset limit + breakdown: + - state_code + reference: + - title: California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) "#page 2,4" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 + - title: California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs "#page 2,8-9" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=2 + - title: California DHCS All County Welfare Directors Letter 25-27, 2026 Medicare Savings Program Property Limits + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-27.pdf#page=1 + - title: Minnesota Statutes 256B.057, subdivision 3(a)(3) - Qualified Medicare beneficiaries + href: https://www.revisor.mn.gov/statutes/cite/256B.057 + - title: Laws of Minnesota 2000, chapter 488, article 9, section 15 + href: https://www.revisor.mn.gov/laws/2000/0/488/ + +CA: + 0000-01-01: 0 + 2022-07-01: 195_000 +MN: + 0000-01-01: 0 + 2000-10-01: 18_000 diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml new file mode 100644 index 00000000000..1ffc67bfa66 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml @@ -0,0 +1,25 @@ +description: States limit resources to this amount for an individual under the Medicare Savings Programs when it is higher than the federal limit. +metadata: + unit: currency-USD + period: year + label: MSP state individual asset limit + breakdown: + - state_code + reference: + - title: California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) "#page 2,4" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 + - title: California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs "#page 2,8-9" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=2 + - title: California DHCS All County Welfare Directors Letter 25-27, 2026 Medicare Savings Program Property Limits + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-27.pdf#page=1 + - title: Minnesota Statutes 256B.057, subdivision 3(a)(3) - Qualified Medicare beneficiaries + href: https://www.revisor.mn.gov/statutes/cite/256B.057 + - title: Laws of Minnesota 2000, chapter 488, article 9, section 15 + href: https://www.revisor.mn.gov/laws/2000/0/488/ + +CA: + 0000-01-01: 0 + 2022-07-01: 130_000 +MN: + 0000-01-01: 0 + 2000-10-01: 10_000 diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion.yaml new file mode 100644 index 00000000000..e3994e45301 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion.yaml @@ -0,0 +1,25 @@ +description: States exclude this amount of monthly income, in place of the Supplemental Security Income general income exclusion, under the Medicare Savings Programs. +metadata: + unit: currency-USD + period: month + label: MSP state general income exclusion + breakdown: + - state_code + reference: + - title: Illinois Department of Human Services Policy Manual PM 06-12-01-c - Income Exemption + href: https://www.dhs.state.il.us/page.aspx?item=14179 + - title: Illinois Department of Human Services Policy Manual PM 15-04-03-a - Income Disregard + href: https://www.dhs.state.il.us/page.aspx?item=16387 + - title: 89 Illinois Administrative Code 120.335(a)(1) - Exempt Income + href: https://www.ilga.gov/ftp/JCAR/AdminCode/089/089001200H03350R.html + - title: 23 Mississippi Code of Rules 104-1.1(C)(2)(b) - Income Rules + href: https://www.law.cornell.edu/regulations/mississippi/23-Miss-Code-R-SS-104-1-1 + - title: Mississippi Division of Medicaid Eligibility Manual, pages 5400-5401, Countable Income (revised July 1, 1999) + href: https://web.archive.org/web/20140514175849/https://www.medicaid.ms.gov/wp-content/uploads/2014/03/Pages-5400-5401-Countable-Income.pdf#page=2 + +IL: + 0000-01-01: 0 + 1997-03-01: 25 +MS: + 0000-01-01: 0 + 1999-07-01: 50 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml index 6114fffe57d..a9bafd0f700 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml @@ -103,3 +103,62 @@ state_code: MA output: msp_asset_eligible: true + +- name: Case 8, Washington has no MSP asset test from 2023. + period: 2023-01 + input: + age: 67 + bank_account_assets: 100_000 + spm_unit_is_married: false + state_code: WA + output: + msp_asset_eligible: true + +- name: Case 9, California's reinstated 2026 MSP asset limit admits assets at the limit. + period: 2026-01 + input: + age: 67 + bank_account_assets: 130_000 + spm_unit_is_married: false + state_code: CA + output: + msp_asset_eligible: true + +- name: Case 10, California's reinstated 2026 MSP asset limit rejects assets above it. + period: 2026-01 + input: + age: 67 + bank_account_assets: 130_001 + spm_unit_is_married: false + state_code: CA + output: + msp_asset_eligible: false + +- name: Case 11, Minnesota's couple asset limit is above the federal limit. + period: 2026-01 + input: + people: + person1: + age: 70 + bank_account_assets: 9_000 + person2: + age: 68 + bank_account_assets: 9_000 + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_is_married: true + households: + household: + members: [person1, person2] + state_code: MN + output: + # Combined 18,000 is at Minnesota's 18,000 couple limit and above the + # federal 14,910. + msp_asset_eligible: [true, true] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml index 1c823197a3b..1c45f0dfd70 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml @@ -113,3 +113,25 @@ # (12,000 - 2,400 + 24,000 - 3,600) / 12 = 2,500 monthly. # Apply the couple's exclusions once: (2,500 - 20 - 65) / 2 = 1,207.50. msp_countable_income: [1_207.50, 1_207.50] + +- name: Case 6, Illinois exempts the first 25 dollars of income. + period: 2026-01 + absolute_error_margin: 0.01 + input: + age: 70 + social_security_retirement: 12_000 + state_code: IL + output: + # 12,000 / 12 - 25 = 975. + msp_countable_income: 975 + +- name: Case 7, Mississippi raises the general income exclusion to 50 dollars. + period: 2026-01 + absolute_error_margin: 0.01 + input: + age: 70 + social_security_retirement: 12_000 + state_code: MS + output: + # 12,000 / 12 - 50 = 950. + msp_countable_income: 950 diff --git a/policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.py b/policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.py index b662caba728..98455cb905b 100644 --- a/policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.py +++ b/policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.py @@ -13,6 +13,7 @@ class msp_asset_eligible(Variable): "https://www.medicareinteractive.org/understanding-medicare/" "cost-saving-programs/medicare-savings-programs-qmb-slmb-qi/" "medicare-savings-program-income-and-asset-limits", + "https://www.law.cornell.edu/uscode/text/42/1396a#r_2", ) def formula(person, period, parameters): @@ -28,6 +29,12 @@ def formula(person, period, parameters): person.marital_unit.sum(personal_resources), personal_resources, ) - asset_limit = where(married, p.asset.couple, p.asset.individual) + # States may set a higher limit than the federal one, never a lower one. + state_limit = p.asset.state_limit + asset_limit = where( + married, + max_(p.asset.couple, state_limit.couple[state_code]), + max_(p.asset.individual, state_limit.individual[state_code]), + ) meets_asset_test = countable_resources <= asset_limit return where(asset_test_applies, meets_asset_test, True) diff --git a/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py b/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py index 73a0ce26fb3..a4d4388677c 100644 --- a/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py +++ b/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py @@ -15,6 +15,7 @@ class msp_countable_income(Variable): "https://www.law.cornell.edu/cfr/text/20/416.1163", "https://secure.ssa.gov/apps10/poms.nsf/lnx/0501715010", "https://www.medicare.gov/basics/costs/help/medicare-savings-programs", + "https://www.law.cornell.edu/uscode/text/42/1396a#r_2", ) documentation = """ MSP countable income uses SSI methodology per 42 U.S.C. 1396d(p)(1)(B), @@ -29,6 +30,10 @@ class msp_countable_income(Variable): exclusions are applied, and the $20 exclusion is taken once on the combined income. The combined countable income is then compared against the couple FPL in the eligibility variables (is_qmb_eligible, is_slmb_eligible, is_qi_eligible). + + Under 42 U.S.C. 1396a(r)(2) a state may exclude more than the $20 SSI + general income exclusion; Illinois and Mississippi use their larger + exclusion in its place. """ def formula(person, period, parameters): @@ -46,6 +51,12 @@ def formula(person, period, parameters): 0, ) deeming_applies = person("is_ssi_spousal_deeming_applies", year) + state = person.household("state_code_str", period) + p = parameters(period).gov.hhs.medicare.savings_programs.eligibility.income + ssi_exclusions = parameters(period).gov.ssa.ssi.income.exclusions + general_exclusion = max_( + ssi_exclusions.general, p.state_general_exclusion[state] + ) spouse_earned_income = person( "ssi_earned_income_deemed_from_ineligible_spouse", year @@ -58,6 +69,7 @@ def formula(person, period, parameters): unearned_income, parameters, year, + general_exclusion=general_exclusion, ) couple_countable = _apply_ssi_exclusions( @@ -69,6 +81,7 @@ def formula(person, period, parameters): person.marital_unit.sum(unearned_income), parameters, year, + general_exclusion=general_exclusion, ) deemed_countable = _apply_ssi_exclusions( @@ -76,6 +89,7 @@ def formula(person, period, parameters): unearned_income + spouse_unearned_income, parameters, year, + general_exclusion=general_exclusion, ) single_countable = where( From 03b0eeffcfc07b0256e0a732bd7ec1e4ff31393e Mon Sep 17 00:00:00 2001 From: Ziming Date: Wed, 21 Oct 2026 16:45:48 -0400 Subject: [PATCH 02/22] Use the repository's multi-page reference title format Co-Authored-By: Claude Opus 5.5 --- .../medicare/savings_programs/eligibility/asset/applies.yaml | 2 +- .../eligibility/asset/state_limit/couple.yaml | 4 ++-- .../eligibility/asset/state_limit/individual.yaml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml index 292704b0d97..a56b1da0d30 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml @@ -18,7 +18,7 @@ metadata: href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/22-25.pdf#page=2 - title: California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=2 - - title: Washington State Register 22-21-043, amending WAC 182-517-0100 to remove Medicare Savings Program resource limits "#page 1-2" + - title: "Washington State Register 22-21-043, amending WAC 182-517-0100 to remove Medicare Savings Program resource limits #page 1-2" href: https://lawfilesext.leg.wa.gov/law/wsrpdf/2022/21/22-21-043.pdf#page=1 - title: Washington Administrative Code 182-517-0100(2)(d) - Federal Medicare savings programs href: https://app.leg.wa.gov/wac/default.aspx?cite=182-517-0100 diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml index 1c65585e696..fe504f7ed6a 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml @@ -6,9 +6,9 @@ metadata: breakdown: - state_code reference: - - title: California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) "#page 2,4" + - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2,4" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 - - title: California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs "#page 2,8-9" + - title: "California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs #page 2,8-9" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=2 - title: California DHCS All County Welfare Directors Letter 25-27, 2026 Medicare Savings Program Property Limits href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-27.pdf#page=1 diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml index 1ffc67bfa66..936214043cf 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml @@ -6,9 +6,9 @@ metadata: breakdown: - state_code reference: - - title: California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) "#page 2,4" + - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2,4" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 - - title: California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs "#page 2,8-9" + - title: "California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs #page 2,8-9" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=2 - title: California DHCS All County Welfare Directors Letter 25-27, 2026 Medicare Savings Program Property Limits href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-27.pdf#page=1 From c8de3079b60bd197de84321c7425d3d2898d2312 Mon Sep 17 00:00:00 2001 From: Ziming Date: Wed, 21 Oct 2026 17:34:47 -0400 Subject: [PATCH 03/22] Update Medicaid medically needy limits and switch on five states - Switch on the senior and disabled medically needy flags for AR, IA, IL, NJ and ND. - Add medicaid_medically_needy_income_limit, which applies a share of the poverty guideline (IL, MN, ND, NY, UT, WI) or of the SSI federal benefit rate (KS, WA) in place of a dollar limit; Washington applies its one-person limit to couples. - Update dollar limits in CT, DC, NH, RI and NY (2022), and asset limits in CA, IL and NY. Closes #10357 Closes #10358 Co-Authored-By: Claude Opus 5.5 --- .../medicaid-medically-needy-limits.fixed.md | 1 + .../medically_needy/categories/disabled.yaml | 24 +- .../medically_needy/categories/senior.yaml | 24 +- .../medically_needy/limit/assets/couple.yaml | 27 +++ .../limit/assets/individual.yaml | 27 +++ .../medically_needy/limit/income/couple.yaml | 77 ++++++- .../income/couple_uses_individual_limit.yaml | 113 ++++++++++ .../limit/income/fpg_rate.yaml | 62 ++++++ .../limit/income/individual.yaml | 77 ++++++- .../limit/income/ssi_rate.yaml | 22 ++ .../is_medically_needy_for_medicaid.yaml | 112 ++++++++++ ...medicaid_medically_needy_income_limit.yaml | 207 ++++++++++++++++++ ...caid_medically_needy_medical_expenses.yaml | 10 +- .../is_medically_needy_for_medicaid.py | 6 +- .../medicaid_medically_needy_income_limit.py | 46 ++++ 15 files changed, 794 insertions(+), 41 deletions(-) create mode 100644 changelog.d/medicaid-medically-needy-limits.fixed.md create mode 100644 policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple_uses_individual_limit.yaml create mode 100644 policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/fpg_rate.yaml create mode 100644 policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/ssi_rate.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml create mode 100644 policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py diff --git a/changelog.d/medicaid-medically-needy-limits.fixed.md b/changelog.d/medicaid-medically-needy-limits.fixed.md new file mode 100644 index 00000000000..3494371ba71 --- /dev/null +++ b/changelog.d/medicaid-medically-needy-limits.fixed.md @@ -0,0 +1 @@ +Turned on the Medicaid medically needy pathway for aged, blind and disabled people in Arkansas, Iowa, Illinois, New Jersey and North Dakota, and updated medically needy income and asset limits in 13 states, tying them to the poverty guideline or the SSI federal benefit rate where state rules do. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/disabled.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/disabled.yaml index f78bce94897..f074b02c968 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/disabled.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/disabled.yaml @@ -7,13 +7,27 @@ metadata: reference: - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ + - title: KFF, Medicaid Eligibility Levels for Older Adults and People with Disabilities (Non-MAGI) in 2026, Appendix Table 4 + href: https://www.kff.org/medicaid/medicaid-eligibility-levels-for-older-adults-and-people-with-disabilities-non-magi-in-2026/ + - title: Arkansas DHS Division of County Operations, Health Care Eligibility Quick Reference (January 2025), AABD Adult Spend Down + href: https://humanservices.arkansas.gov/wp-content/uploads/Quick-Reference.pdf#page=1 + - title: "Iowa Administrative Code 441-75.8 - Medically needy #page 20,24" + href: https://www.legis.iowa.gov/docs/iac/chapter/441.75.pdf#page=20 + - title: Illinois Department of Human Services Policy Manual PM 15-08-00 - Spenddown + href: https://www.dhs.state.il.us/page.aspx?item=16536 + - title: New Jersey DMAHS, Medically Needy Segment fact sheet + href: https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 + - title: North Dakota Non-ACA Medicaid Manual 510-05-85-40 - Medically needy income levels + href: https://www.nd.gov/dhs/policymanuals/51005/510_05_85_40.htm + - title: North Dakota Administrative Code 75-02-02.1-26(1) - Asset limits, medically needy aged, blind, and disabled + href: https://ndlegis.gov/information/acdata/pdf/75-02-02.1.pdf#page=40 AK: 2015-01-01: false AL: 2015-01-01: false AR: - 2015-01-01: false + 2015-01-01: true AZ: 2015-01-01: true CA: @@ -33,11 +47,11 @@ GA: HI: 2015-01-01: true IA: - 2015-01-01: false + 2015-01-01: true ID: 2015-01-01: true IL: - 2015-01-01: false + 2015-01-01: true IN: 2015-01-01: true KS: @@ -65,13 +79,13 @@ MT: NC: 2015-01-01: true ND: - 2015-01-01: false + 2015-01-01: true NE: 2015-01-01: true NH: 2015-01-01: true NJ: - 2015-01-01: false + 2015-01-01: true NM: 2015-01-01: true NV: diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/senior.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/senior.yaml index 95b66a8b8bf..34e55264c8f 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/senior.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/senior.yaml @@ -7,13 +7,27 @@ metadata: reference: - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ + - title: KFF, Medicaid Eligibility Levels for Older Adults and People with Disabilities (Non-MAGI) in 2026, Appendix Table 4 + href: https://www.kff.org/medicaid/medicaid-eligibility-levels-for-older-adults-and-people-with-disabilities-non-magi-in-2026/ + - title: Arkansas DHS Division of County Operations, Health Care Eligibility Quick Reference (January 2025), AABD Adult Spend Down + href: https://humanservices.arkansas.gov/wp-content/uploads/Quick-Reference.pdf#page=1 + - title: "Iowa Administrative Code 441-75.8 - Medically needy #page 20,24" + href: https://www.legis.iowa.gov/docs/iac/chapter/441.75.pdf#page=20 + - title: Illinois Department of Human Services Policy Manual PM 15-08-00 - Spenddown + href: https://www.dhs.state.il.us/page.aspx?item=16536 + - title: New Jersey DMAHS, Medically Needy Segment fact sheet + href: https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 + - title: North Dakota Non-ACA Medicaid Manual 510-05-85-40 - Medically needy income levels + href: https://www.nd.gov/dhs/policymanuals/51005/510_05_85_40.htm + - title: North Dakota Administrative Code 75-02-02.1-26(1) - Asset limits, medically needy aged, blind, and disabled + href: https://ndlegis.gov/information/acdata/pdf/75-02-02.1.pdf#page=40 AK: 2015-01-01: false AL: 2015-01-01: false AR: - 2015-01-01: false + 2015-01-01: true AZ: 2015-01-01: true CA: @@ -33,11 +47,11 @@ GA: HI: 2015-01-01: true IA: - 2015-01-01: false + 2015-01-01: true ID: 2015-01-01: true IL: - 2015-01-01: false + 2015-01-01: true IN: 2015-01-01: true KS: @@ -65,13 +79,13 @@ MT: NC: 2015-01-01: true ND: - 2015-01-01: false + 2015-01-01: true NE: 2015-01-01: true NH: 2015-01-01: true NJ: - 2015-01-01: false + 2015-01-01: true NM: 2015-01-01: true NV: diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml index 2e95d5e4ff9..c58b38bcbc0 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml @@ -8,6 +8,24 @@ metadata: reference: - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ + - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2-4" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 + - title: "California DHCS All County Welfare Directors Letter 22-25, Elimination of Asset Limits for Non-MAGI Medi-Cal Programs #page 1-2" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/22-25.pdf#page=1 + - title: "California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs #page 1,8-9" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=1 + - title: Illinois Department of Human Services Policy Manual PM 07-02-01 - Asset Limits + href: https://www.dhs.state.il.us/page.aspx?Item=14876 + - title: New York DOH GIS 22 MA/11, 2023 Medicaid Levels and Other Updates + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma11.pdf#page=2 + - title: New York DOH GIS 23 MA/02, Attachment 1, 2023 Income and Resource Standards + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/23ma02_att1.pdf#page=2 + - title: New York DOH GIS 24 MA/01, Attachment 1, 2024 Income and Resource Standards + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/24ma01_att1.pdf#page=2 + - title: New York DOH GIS 25 MA/03, Attachment 1, 2025 Income and Resource Standards + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/25ma03_att1.pdf#page=2 + - title: New York DOH GIS 26 MA/05, Attachment 1, 2026 Income and Resource Standards + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/26ma05_att1.pdf#page=2 AK: 2018-01-01: -.inf @@ -19,6 +37,9 @@ AZ: 2018-01-01: -.inf CA: 2018-01-01: 3_000 + 2022-07-01: 195_000 + 2024-01-01: .inf + 2026-01-01: 195_000 CO: 2018-01-01: -.inf CT: @@ -39,6 +60,7 @@ ID: 2018-01-01: -.inf IL: 2018-01-01: 3_000 + 2023-05-12: 17_500 IN: 2018-01-01: -.inf KS: @@ -79,6 +101,11 @@ NV: 2018-01-01: -.inf NY: 2018-01-01: 22_200 + 2022-01-01: 24_600 + 2023-01-01: 40_821 + 2024-01-01: 42_312 + 2025-01-01: 43_781 + 2026-01-01: 44_796 OH: 2018-01-01: -.inf OK: diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml index c4a1ae47ba1..ff51210eb6b 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml @@ -8,6 +8,24 @@ metadata: reference: - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ + - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2-4" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 + - title: "California DHCS All County Welfare Directors Letter 22-25, Elimination of Asset Limits for Non-MAGI Medi-Cal Programs #page 1-2" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/22-25.pdf#page=1 + - title: "California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs #page 1,8-9" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=1 + - title: Illinois Department of Human Services Policy Manual PM 07-02-01 - Asset Limits + href: https://www.dhs.state.il.us/page.aspx?Item=14876 + - title: New York DOH GIS 22 MA/11, 2023 Medicaid Levels and Other Updates + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma11.pdf#page=2 + - title: New York DOH GIS 23 MA/02, Attachment 1, 2023 Income and Resource Standards + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/23ma02_att1.pdf#page=2 + - title: New York DOH GIS 24 MA/01, Attachment 1, 2024 Income and Resource Standards + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/24ma01_att1.pdf#page=2 + - title: New York DOH GIS 25 MA/03, Attachment 1, 2025 Income and Resource Standards + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/25ma03_att1.pdf#page=2 + - title: New York DOH GIS 26 MA/05, Attachment 1, 2026 Income and Resource Standards + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/26ma05_att1.pdf#page=2 AK: 2018-01-01: -.inf @@ -19,6 +37,9 @@ AZ: 2018-01-01: -.inf CA: 2018-01-01: 2_000 + 2022-07-01: 130_000 + 2024-01-01: .inf + 2026-01-01: 130_000 CO: 2018-01-01: -.inf CT: @@ -39,6 +60,7 @@ ID: 2018-01-01: -.inf IL: 2018-01-01: 2_000 + 2023-05-12: 17_500 IN: 2018-01-01: -.inf KS: @@ -79,6 +101,11 @@ NV: 2018-01-01: -.inf NY: 2018-01-01: 15_150 + 2022-01-01: 16_800 + 2023-01-01: 30_182 + 2024-01-01: 31_175 + 2025-01-01: 32_396 + 2026-01-01: 33_038 OH: 2018-01-01: -.inf OK: diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml index 9f31964c2e0..06603c1f8db 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml @@ -1,4 +1,4 @@ -description: Maximum income for a couple to qualify for Medicaid under the 'medically needy' pathway. +description: Maximum income for a couple to qualify for Medicaid under the 'medically needy' pathway. States whose limit is a share of the poverty guideline or the SSI federal benefit rate (fpg_rate, ssi_rate) are omitted here from the date that rule applies. metadata: label: Medicaid medically needy pathway for couples income limit breakdown: @@ -8,6 +8,50 @@ metadata: reference: - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ + - title: Connecticut State Plan Amendment CT-22-0031, Medically Needy Income Level (effective July 1, 2022) + href: https://www.medicaid.gov/medicaid/spa/downloads/CT-22-0031.pdf#page=7 + - title: Connecticut State Plan Amendment CT-24-0003, Medically Needy Income Level (effective January 1, 2024) + href: https://www.medicaid.gov/medicaid/spa/downloads/CT-24-0003.pdf#page=7 + - title: Connecticut State Plan Amendment CT-24-0006, Medically Needy Income Level (effective March 1, 2024) + href: https://www.medicaid.gov/medicaid/spa/downloads/CT-24-0006.pdf#page=7 + - title: Connecticut State Plan Amendment CT-25-0013, Medically Needy Income Level (effective March 1, 2025) + href: https://www.medicaid.gov/medicaid/spa/downloads/CT-25-0013.pdf#page=7 + - title: Connecticut State Plan Amendment CT-26-0006, Medically Needy Income Level (effective March 1, 2026) + href: https://www.medicaid.gov/medicaid/spa/downloads/CT-26-0006.pdf#page=7 + - title: Connecticut DSS Program Standards Chart (effective March 1, 2026), HUSKY C Medically Needy Income Limit + href: https://portal.ct.gov/dss/-/media/departments-and-agencies/dss/fact-sheets-and-issue-briefs/fact-sheets/dss-program-standards-chart-effective-030126.pdf + - title: "District of Columbia Municipal Regulations 29-901.1, Medically Needy Income Levels (50 DCR 8467, October 10, 2003) #page 1-2" + href: https://dbh.dc.gov/sites/default/files/dc/sites/dmh/publication/attachments/GrievanceFinalRulemaking.pdf#page=1 + - title: District of Columbia DHCF Non-MAGI Spend Down Notice (2023 Medically Needy Income Limit) + href: https://dhcf.dc.gov/sites/default/files/dc/sites/dhcf/documents/%2316%20Non%20MAGI%20Spend%20Down%20Notice.pdf#page=2 + - title: District of Columbia DHCF Spend Down Fact Sheet (revised September 2024) + href: https://dhcf.dc.gov/sites/default/files/dc/sites/dhcf/service_content/attachments/Spend_Down_Fact_Sheet.pdf#page=2 + - title: KFF, Medicaid Eligibility Levels for Older Adults and People with Disabilities (Non-MAGI) in 2026, Appendix Table 4 + href: https://www.kff.org/medicaid/medicaid-eligibility-levels-for-older-adults-and-people-with-disabilities-non-magi-in-2026/ + - title: New Hampshire State Plan Amendment NH-23-0029, Medically Needy Income Level (effective January 1, 2023) + href: https://www.medicaid.gov/medicaid/spa/downloads/NH-23-0029.pdf#page=7 + - title: New Hampshire State Plan Amendment NH-25-0012, Medically Needy Income Level (effective January 1, 2025) + href: https://www.medicaid.gov/medicaid/spa/downloads/NH-25-0012.pdf#page=7 + - title: New Hampshire State Plan Amendment NH-25-0019, Medically Needy Income Level (effective July 1, 2025) + href: https://www.medicaid.gov/medicaid/spa/downloads/NH-25-0019.pdf#page=7 + - title: New York DOH GIS 22 MA/11, 2023 Medicaid Levels and Other Updates + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma11.pdf#page=1 + - title: Rhode Island 210-RICR-40-00-3, Medicaid Affordable Care Coverage Groups (version effective January 1, 2020) + href: https://rules.sos.ri.gov/Regulations/part/210-40-00-3?reg_id=10945 + - title: Rhode Island 210-RICR-40-00-3, section 3.2(A)(8), Medically Needy Income Limit + href: https://rules.sos.ri.gov/regulations/part/210-40-00-3 + - title: Rhode Island State Plan Amendment RI-21-0004, Medically Needy Income Level (effective January 1, 2021) + href: https://www.medicaid.gov/medicaid/spa/downloads/RI-21-0004.pdf#page=4 + - title: Rhode Island State Plan Amendment RI-22-0003, Medically Needy Income Level (effective January 1, 2022) + href: https://www.medicaid.gov/medicaid/spa/downloads/RI-22-0003.pdf#page=7 + - title: Rhode Island State Plan Amendment RI-23-0005, Medically Needy Income Level (effective January 1, 2023) + href: https://www.medicaid.gov/medicaid/spa/downloads/RI-23-0005.pdf#page=7 + - title: Rhode Island State Plan Amendment RI-24-0003, Medically Needy Income Level (effective January 1, 2024) + href: https://www.medicaid.gov/medicaid/spa/downloads/RI-24-0003.pdf#page=7 + - title: Rhode Island State Plan Amendment RI-25-0003, Medically Needy Income Level (effective January 1, 2025) + href: https://www.medicaid.gov/medicaid/spa/downloads/RI-25-0003.pdf#page=7 + - title: Rhode Island State Plan Amendment RI-26-0001, Medically Needy Income Level (effective January 1, 2026) + href: https://www.medicaid.gov/medicaid/spa/downloads/RI-26-0001.pdf#page=7 AK: 2018-01-01: -.inf @@ -23,8 +67,17 @@ CO: 2018-01-01: -.inf CT: 2018-01-01: 696 + 2022-07-01: 879 + 2024-01-01: 946 + 2024-03-01: 980 + 2025-03-01: 1_128 + 2026-03-01: 1_153 DC: 2018-01-01: 652 + 2023-01-01: 821.67 + 2024-01-01: 851.67 + 2025-01-01: 881.25 + 2026-01-01: 901.67 DE: 2018-01-01: -.inf FL: @@ -37,8 +90,6 @@ IA: 2018-01-01: 483 ID: 2018-01-01: -.inf -IL: - 2018-01-01: 1_372 IN: 2018-01-01: -.inf KS: @@ -55,8 +106,6 @@ ME: 2018-01-01: 341 MI: 2018-01-01: 1_372 -MN: - 2018-01-01: 1_098 MO: 2018-01-01: -.inf MS: @@ -65,12 +114,13 @@ MT: 2018-01-01: 525 NC: 2018-01-01: 317 -ND: - 2018-01-01: 1_139 NE: 2018-01-01: 392 NH: 2018-01-01: 675 + 2023-01-01: 1_033 + 2025-01-01: 1_066 + 2025-07-01: 1_093 NJ: 2018-01-01: 434 NM: @@ -79,6 +129,7 @@ NV: 2018-01-01: -.inf NY: 2018-01-01: 1_233 + 2022-01-01: 1_367 OH: 2018-01-01: -.inf OK: @@ -89,6 +140,14 @@ PA: 2018-01-01: 442 RI: 2018-01-01: 947 + 2019-01-01: 958 + 2020-01-01: 975 + 2021-01-01: 992 + 2022-01-01: 1_050 + 2023-01-01: 1_133 + 2024-01-01: 1_175 + 2025-01-01: 1_208 + 2026-01-01: 1_242 SC: 2018-01-01: -.inf SD: @@ -97,14 +156,10 @@ TN: 2018-01-01: 258 TX: 2018-01-01: 216 -UT: - 2018-01-01: 1_372 VA: 2018-01-01: 659 VT: 2018-01-01: 1_041 -WA: - 2018-01-01: 750 WV: 2018-01-01: 275 WI: diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple_uses_individual_limit.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple_uses_individual_limit.yaml new file mode 100644 index 00000000000..ca50470a3d5 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple_uses_individual_limit.yaml @@ -0,0 +1,113 @@ +description: The state applies its individual medically needy income limit to a couple, if this is true. +metadata: + unit: bool + period: year + label: Medicaid medically needy couple uses the individual income limit + breakdown: + - state_code + reference: + - title: Washington Administrative Code 182-519-0050(5) - Monthly income and countable resource standards for medically needy (MN) + href: https://app.leg.wa.gov/WAC/default.aspx?cite=182-519-0050 + +AK: + 2018-01-01: false +AL: + 2018-01-01: false +AR: + 2018-01-01: false +AZ: + 2018-01-01: false +CA: + 2018-01-01: false +CO: + 2018-01-01: false +CT: + 2018-01-01: false +DC: + 2018-01-01: false +DE: + 2018-01-01: false +FL: + 2018-01-01: false +GA: + 2018-01-01: false +HI: + 2018-01-01: false +IA: + 2018-01-01: false +ID: + 2018-01-01: false +IL: + 2018-01-01: false +IN: + 2018-01-01: false +KS: + 2018-01-01: false +KY: + 2018-01-01: false +LA: + 2018-01-01: false +MA: + 2018-01-01: false +MD: + 2018-01-01: false +ME: + 2018-01-01: false +MI: + 2018-01-01: false +MN: + 2018-01-01: false +MO: + 2018-01-01: false +MS: + 2018-01-01: false +MT: + 2018-01-01: false +NC: + 2018-01-01: false +ND: + 2018-01-01: false +NE: + 2018-01-01: false +NH: + 2018-01-01: false +NJ: + 2018-01-01: false +NM: + 2018-01-01: false +NV: + 2018-01-01: false +NY: + 2018-01-01: false +OH: + 2018-01-01: false +OK: + 2018-01-01: false +OR: + 2018-01-01: false +PA: + 2018-01-01: false +RI: + 2018-01-01: false +SC: + 2018-01-01: false +SD: + 2018-01-01: false +TN: + 2018-01-01: false +TX: + 2018-01-01: false +UT: + 2018-01-01: false +VA: + 2018-01-01: false +VT: + 2018-01-01: false +WA: + 2018-01-01: true +WI: + 2018-01-01: false +WV: + 2018-01-01: false +WY: + 2018-01-01: false diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/fpg_rate.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/fpg_rate.yaml new file mode 100644 index 00000000000..999d34492a8 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/fpg_rate.yaml @@ -0,0 +1,62 @@ +description: States set the medically needy income limit at this share of the federal poverty guideline for a household of one or two under the Medicaid program. States not listed, or with a share of zero, use the dollar limits. +metadata: + unit: /1 + period: year + label: Medicaid medically needy income limit as a share of the poverty guideline + breakdown: + - state_code + reference: + - title: Illinois Department of Human Services Policy Manual PM 15-06-02-a - Community Standard + href: https://www.dhs.state.il.us/page.aspx?item=16507 + - title: Illinois Department of Human Services Policy Manual PM 15-06-02-c - Standard for a client living with a spouse + href: https://www.dhs.state.il.us/page.aspx?item=16512 + - title: Illinois Department of Human Services Policy Manual PM 15-08-00 - Spenddown + href: https://www.dhs.state.il.us/page.aspx?item=16536 + - title: 89 Illinois Administrative Code 120.20(a) - Need standard, aged, blind, or disabled + href: https://www.ilga.gov/ftp/JCAR/AdminCode/089/089001200B00200R.html + - title: Minnesota Statutes 256B.056, subdivisions 1c(a), 4(a) and 5c(b) + href: https://www.revisor.mn.gov/statutes/cite/256B.056 + - title: Laws of Minnesota 2017, 1st Special Session, chapter 6, article 4, section 20 + href: https://www.revisor.mn.gov/laws/2017/1/Session+Law/Chapter/6/ + - title: Laws of Minnesota 2019, 1st Special Session, chapter 9, article 7, section 21 + href: https://www.revisor.mn.gov/laws/2019/1/Session+Law/Chapter/9/ + - title: Minnesota DHS Eligibility Policy Manual 2.3.3.4 - Spenddown standards + href: https://hcopub.dhs.state.mn.us/epm/2_3_3_4.htm + - title: North Dakota Non-ACA Medicaid Manual 510-05-85-40 - Medically needy income levels + href: https://www.nd.gov/dhs/policymanuals/51005/510_05_85_40.htm + - title: North Dakota Manual Letter 3702, Federal Poverty Level Updates (April 1, 2023) + href: https://www.nd.gov/dhs/policymanuals/51003/Content/ML/2023/ML%203702%20Federal%20Poverty%20Level%20Updates%2004-01-2023.pdf#page=6 + - title: North Dakota State Plan Amendment ND-23-0034 (effective January 1, 2024) + href: https://www.medicaid.gov/medicaid/spa/downloads/ND-23-0034.pdf#page=2 + - title: New York DOH GIS 22 MA/11, 2023 Medicaid Levels and Other Updates + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma11.pdf#page=1 + - title: New York State Plan Amendment NY-23-0001 (effective January 1, 2023) + href: https://www.medicaid.gov/medicaid/spa/downloads/NY-23-0001.pdf#page=5 + - title: Utah Administrative Code R414-304-9(2) - Income Deductions + href: https://www.law.cornell.edu/regulations/utah/Utah-Admin-Code-R414-304-9 + - title: Utah Code 26B-3-108(9)(b) + href: https://le.utah.gov/xcode/Title26B/Chapter3/26B-3-S108.html + - title: Wisconsin Statutes 49.47(4)(c)1 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/iv/47/4/c + - title: Wisconsin DHS Operations Memo 19-26, SSI-Related Medicaid Medically Needy Income Limit Increase + href: https://www.dhs.wisconsin.gov/dms/memos/ops/dms-ops-2019-26.pdf#page=2 + - title: Wisconsin Medicaid Eligibility Handbook (EBD) 39.4.1 - Elderly, Blind, or Disabled Assets and Income Table + href: https://www.emhandbooks.wisconsin.gov/meh-ebd/policy_files/39/39.4.htm + +IL: + 2018-01-01: 1 +MN: + 2018-01-01: 0.8 + 2019-06-01: 0.81 + 2022-07-01: 1 +ND: + 2018-01-01: 0.83 + 2024-01-01: 0.9 +NY: + 2018-01-01: 0 + 2023-01-01: 1.38 +UT: + 2018-01-01: 1 +WI: + 2018-01-01: 0 + 2019-09-01: 1 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml index 031fbb3c93c..dbb1f78cb85 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml @@ -1,4 +1,4 @@ -description: Maximum income for an individual to qualify for Medicaid under the 'medically needy' pathway. +description: Maximum income for an individual to qualify for Medicaid under the 'medically needy' pathway. States whose limit is a share of the poverty guideline or the SSI federal benefit rate (fpg_rate, ssi_rate) are omitted here from the date that rule applies. metadata: label: Medicaid medically needy pathway for individuals income limit breakdown: @@ -8,6 +8,50 @@ metadata: reference: - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ + - title: Connecticut State Plan Amendment CT-22-0031, Medically Needy Income Level (effective July 1, 2022) + href: https://www.medicaid.gov/medicaid/spa/downloads/CT-22-0031.pdf#page=7 + - title: Connecticut State Plan Amendment CT-24-0003, Medically Needy Income Level (effective January 1, 2024) + href: https://www.medicaid.gov/medicaid/spa/downloads/CT-24-0003.pdf#page=7 + - title: Connecticut State Plan Amendment CT-24-0006, Medically Needy Income Level (effective March 1, 2024) + href: https://www.medicaid.gov/medicaid/spa/downloads/CT-24-0006.pdf#page=7 + - title: Connecticut State Plan Amendment CT-25-0013, Medically Needy Income Level (effective March 1, 2025) + href: https://www.medicaid.gov/medicaid/spa/downloads/CT-25-0013.pdf#page=7 + - title: Connecticut State Plan Amendment CT-26-0006, Medically Needy Income Level (effective March 1, 2026) + href: https://www.medicaid.gov/medicaid/spa/downloads/CT-26-0006.pdf#page=7 + - title: Connecticut DSS Program Standards Chart (effective March 1, 2026), HUSKY C Medically Needy Income Limit + href: https://portal.ct.gov/dss/-/media/departments-and-agencies/dss/fact-sheets-and-issue-briefs/fact-sheets/dss-program-standards-chart-effective-030126.pdf + - title: "District of Columbia Municipal Regulations 29-901.1, Medically Needy Income Levels (50 DCR 8467, October 10, 2003) #page 1-2" + href: https://dbh.dc.gov/sites/default/files/dc/sites/dmh/publication/attachments/GrievanceFinalRulemaking.pdf#page=1 + - title: District of Columbia DHCF Non-MAGI Spend Down Notice (2023 Medically Needy Income Limit) + href: https://dhcf.dc.gov/sites/default/files/dc/sites/dhcf/documents/%2316%20Non%20MAGI%20Spend%20Down%20Notice.pdf#page=2 + - title: District of Columbia DHCF Spend Down Fact Sheet (revised September 2024) + href: https://dhcf.dc.gov/sites/default/files/dc/sites/dhcf/service_content/attachments/Spend_Down_Fact_Sheet.pdf#page=2 + - title: KFF, Medicaid Eligibility Levels for Older Adults and People with Disabilities (Non-MAGI) in 2026, Appendix Table 4 + href: https://www.kff.org/medicaid/medicaid-eligibility-levels-for-older-adults-and-people-with-disabilities-non-magi-in-2026/ + - title: New Hampshire State Plan Amendment NH-23-0029, Medically Needy Income Level (effective January 1, 2023) + href: https://www.medicaid.gov/medicaid/spa/downloads/NH-23-0029.pdf#page=7 + - title: New Hampshire State Plan Amendment NH-25-0012, Medically Needy Income Level (effective January 1, 2025) + href: https://www.medicaid.gov/medicaid/spa/downloads/NH-25-0012.pdf#page=7 + - title: New Hampshire State Plan Amendment NH-25-0019, Medically Needy Income Level (effective July 1, 2025) + href: https://www.medicaid.gov/medicaid/spa/downloads/NH-25-0019.pdf#page=7 + - title: New York DOH GIS 22 MA/11, 2023 Medicaid Levels and Other Updates + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma11.pdf#page=1 + - title: Rhode Island 210-RICR-40-00-3, Medicaid Affordable Care Coverage Groups (version effective January 1, 2020) + href: https://rules.sos.ri.gov/Regulations/part/210-40-00-3?reg_id=10945 + - title: Rhode Island 210-RICR-40-00-3, section 3.2(A)(8), Medically Needy Income Limit + href: https://rules.sos.ri.gov/regulations/part/210-40-00-3 + - title: Rhode Island State Plan Amendment RI-21-0004, Medically Needy Income Level (effective January 1, 2021) + href: https://www.medicaid.gov/medicaid/spa/downloads/RI-21-0004.pdf#page=4 + - title: Rhode Island State Plan Amendment RI-22-0003, Medically Needy Income Level (effective January 1, 2022) + href: https://www.medicaid.gov/medicaid/spa/downloads/RI-22-0003.pdf#page=7 + - title: Rhode Island State Plan Amendment RI-23-0005, Medically Needy Income Level (effective January 1, 2023) + href: https://www.medicaid.gov/medicaid/spa/downloads/RI-23-0005.pdf#page=7 + - title: Rhode Island State Plan Amendment RI-24-0003, Medically Needy Income Level (effective January 1, 2024) + href: https://www.medicaid.gov/medicaid/spa/downloads/RI-24-0003.pdf#page=7 + - title: Rhode Island State Plan Amendment RI-25-0003, Medically Needy Income Level (effective January 1, 2025) + href: https://www.medicaid.gov/medicaid/spa/downloads/RI-25-0003.pdf#page=7 + - title: Rhode Island State Plan Amendment RI-26-0001, Medically Needy Income Level (effective January 1, 2026) + href: https://www.medicaid.gov/medicaid/spa/downloads/RI-26-0001.pdf#page=7 AK: 2018-01-01: -.inf @@ -23,8 +67,17 @@ CO: 2018-01-01: -.inf CT: 2018-01-01: 523 + 2022-07-01: 653 + 2024-01-01: 700 + 2024-03-01: 723 + 2025-03-01: 835 + 2026-03-01: 851 DC: 2018-01-01: 652 + 2023-01-01: 780.58 + 2024-01-01: 809.08 + 2025-01-01: 837.19 + 2026-01-01: 856.58 DE: 2018-01-01: -.inf FL: @@ -37,8 +90,6 @@ IA: 2018-01-01: 483 ID: 2018-01-01: -.inf -IL: - 2018-01-01: 1_012 IN: 2018-01-01: -.inf KS: @@ -55,8 +106,6 @@ ME: 2018-01-01: 315 MI: 2018-01-01: 1_012 -MN: - 2018-01-01: 810 MO: 2018-01-01: -.inf MS: @@ -65,12 +114,13 @@ MT: 2018-01-01: 525 NC: 2018-01-01: 242 -ND: - 2018-01-01: 840 NE: 2018-01-01: 392 NH: 2018-01-01: 591 + 2023-01-01: 888 + 2025-01-01: 916 + 2025-07-01: 939 NJ: 2018-01-01: 367 NM: @@ -79,6 +129,7 @@ NV: 2018-01-01: -.inf NY: 2018-01-01: 842 + 2022-01-01: 934 OH: 2018-01-01: -.inf OK: @@ -89,6 +140,14 @@ PA: 2018-01-01: 425 RI: 2018-01-01: 903 + 2019-01-01: 917 + 2020-01-01: 933 + 2021-01-01: 950 + 2022-01-01: 1_008 + 2023-01-01: 1_092 + 2024-01-01: 1_133 + 2025-01-01: 1_167 + 2026-01-01: 1_200 SC: 2018-01-01: -.inf SD: @@ -97,14 +156,10 @@ TN: 2018-01-01: 241 TX: 2018-01-01: 104 -UT: - 2018-01-01: 1_012 VA: 2018-01-01: 493 VT: 2018-01-01: 1_041 -WA: - 2018-01-01: 750 WV: 2018-01-01: 200 WI: diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/ssi_rate.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/ssi_rate.yaml new file mode 100644 index 00000000000..d53e8a792ee --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/ssi_rate.yaml @@ -0,0 +1,22 @@ +description: States set the medically needy income limit at this share of the Supplemental Security Income federal benefit rate under the Medicaid program. States not listed, or with a share of zero, use the dollar limits. +metadata: + unit: /1 + period: year + label: Medicaid medically needy income limit as a share of the SSI federal benefit rate + breakdown: + - state_code + reference: + - title: "CMS approval of Kansas State Plan Amendment KS-25-0019, medically needy income disregard to the SSI federal benefit rate #page 2,46" + href: https://www.medicaid.gov/medicaid/spa/downloads/KS-25-0019.pdf#page=2 + - title: Kansas Medical Assistance Standards, KEESM Appendix F-8 (January 2026), Income Standards for Independent Living + href: https://www.kancare.ks.gov/home/showpublisheddocument/6204/639013856776770000 + - title: Washington Administrative Code 182-519-0050(5) - Monthly income and countable resource standards for medically needy (MN) + href: https://app.leg.wa.gov/WAC/default.aspx?cite=182-519-0050 + - title: Washington State Register 12-20-001, amending WAC 182-519-0050 + href: https://lawfilesext.leg.wa.gov/law/wsr/2012/20/12-20-001.htm + +KS: + 2018-01-01: 0 + 2025-07-01: 1 +WA: + 2018-01-01: 1 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml index 4c889ee6e99..a735f81df04 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml @@ -50,3 +50,115 @@ state_code: MA output: is_medically_needy_for_medicaid: false + +- name: Case 3, Arkansas senior qualifies after medical spenddown. + period: 2026 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 14_160 + medicaid_medically_needy_medical_expenses: 13_000 + ssi_countable_resources: 1_500 + state_code: AR + output: + # Limit 108 x 12 = 1,296. 14,160 is over it; 14,160 - 13,000 = 1,160 is not. + is_in_medicaid_medically_needy_category: true + is_medically_needy_for_medicaid: true + +- name: Case 4, Iowa senior qualifies after medical spenddown. + period: 2026 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 14_160 + medicaid_medically_needy_medical_expenses: 9_000 + ssi_countable_resources: 8_000 + state_code: IA + output: + # Limit 483 x 12 = 5,796. 14,160 - 9,000 = 5,160; assets 8,000 are under 10,000. + is_in_medicaid_medically_needy_category: true + is_medically_needy_for_medicaid: true + +- name: Case 5, New Jersey senior qualifies after medical spenddown. + period: 2026 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 14_160 + medicaid_medically_needy_medical_expenses: 10_000 + ssi_countable_resources: 3_500 + state_code: NJ + output: + # Limit 367 x 12 = 4,404. 14,160 - 10,000 = 4,160; assets 3,500 are under 4,000. + is_in_medicaid_medically_needy_category: true + is_medically_needy_for_medicaid: true + +- name: Case 6, Illinois senior qualifies after medical spenddown. + period: 2026 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 20_000 + medicaid_medically_needy_medical_expenses: 5_000 + ssi_countable_resources: 10_000 + state_code: IL + output: + # Limit 15,960 (100% FPG). 20,000 - 5,000 = 15,000; assets 10,000 are under 17,500. + is_in_medicaid_medically_needy_category: true + is_medically_needy_for_medicaid: true + +- name: Case 7, North Dakota senior qualifies after medical spenddown. + period: 2026 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 18_000 + medicaid_medically_needy_medical_expenses: 4_000 + ssi_countable_resources: 2_500 + state_code: ND + output: + # Limit 0.9 x 15,960 = 14,364. 18,000 - 4,000 = 14,000; assets 2,500 are under 3,000. + is_in_medicaid_medically_needy_category: true + is_medically_needy_for_medicaid: true + +- name: Case 8, California senior with assets under the reinstated 2026 limit qualifies. + period: 2026 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 9_000 + medicaid_medically_needy_medical_expenses: 2_000 + ssi_countable_resources: 120_000 + state_code: CA + output: + # Limit 600 x 12 = 7,200. 9,000 - 2,000 = 7,000; assets 120,000 are under 130,000. + is_in_medicaid_medically_needy_category: true + is_medically_needy_for_medicaid: true + +- name: Case 9, New York senior with assets under the 2026 resource level qualifies. + period: 2026 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 25_000 + medicaid_medically_needy_medical_expenses: 5_000 + ssi_countable_resources: 30_000 + state_code: NY + output: + # Limit 1.38 x 15,960 = 22,024.80. 25,000 - 5,000 = 20,000; assets 30,000 are under 33,038. + is_in_medicaid_medically_needy_category: true + is_medically_needy_for_medicaid: true diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml new file mode 100644 index 00000000000..2f6c1a11737 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml @@ -0,0 +1,207 @@ +- name: Case 1, Connecticut uses its March 2026 dollar limit from 2027. + period: 2027 + absolute_error_margin: 0.01 + input: + age: 70 + state_code: CT + output: + # 851 x 12 = 10,212. + medicaid_medically_needy_income_limit: 10_212 + +- name: Case 2, District of Columbia couple uses its 2026 dollar limit. + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + person2: + age: 68 + marital_units: + marital_unit: + members: [person1, person2] + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: DC + output: + # 901.67 x 12 = 10,820.04. + medicaid_medically_needy_income_limit: [10_820.04, 10_820.04] + +- name: Case 3, Kansas uses its dollar limit before July 2025. + period: 2025 + absolute_error_margin: 0.01 + input: + age: 70 + state_code: KS + output: + # 475 x 12 = 5,700. + medicaid_medically_needy_income_limit: 5_700 + +- name: Case 4, Kansas couple uses the SSI couple rate from July 2025. + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + person2: + age: 68 + marital_units: + marital_unit: + members: [person1, person2] + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: KS + output: + # 1,491 x 12 = 17,892. + medicaid_medically_needy_income_limit: [17_892, 17_892] + +- name: Case 5, Minnesota uses 100 percent of the poverty guideline. + period: 2026 + absolute_error_margin: 0.01 + input: + age: 70 + state_code: MN + output: + # 1.00 x 15,960 = 15,960. + medicaid_medically_needy_income_limit: 15_960 + +- name: Case 6, New Hampshire uses its July 2025 dollar limit. + period: 2026 + absolute_error_margin: 0.01 + input: + age: 70 + state_code: NH + output: + # 939 x 12 = 11,268. + medicaid_medically_needy_income_limit: 11_268 + +- name: Case 7, New York couple uses 138 percent of the poverty guideline. + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + person2: + age: 68 + marital_units: + marital_unit: + members: [person1, person2] + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: NY + output: + # 1.38 x 21,640 = 29,863.20. + medicaid_medically_needy_income_limit: [29_863.2, 29_863.2] + +- name: Case 8, Rhode Island uses its 2026 dollar limit. + period: 2026 + absolute_error_margin: 0.01 + input: + age: 70 + state_code: RI + output: + # 1,200 x 12 = 14,400. + medicaid_medically_needy_income_limit: 14_400 + +- name: Case 9, Utah couple uses 100 percent of the two-person poverty guideline. + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + person2: + age: 68 + marital_units: + marital_unit: + members: [person1, person2] + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: UT + output: + # 1.00 x 21,640 = 21,640. + medicaid_medically_needy_income_limit: [21_640, 21_640] + +- name: Case 10, Washington couple uses the one-person SSI rate. + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + person2: + age: 68 + marital_units: + marital_unit: + members: [person1, person2] + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WA + output: + # 994 x 12 = 11,928. + medicaid_medically_needy_income_limit: [11_928, 11_928] + +- name: Case 11, Wisconsin uses 100 percent of the poverty guideline. + period: 2026 + absolute_error_margin: 0.01 + input: + age: 70 + state_code: WI + output: + # 1.00 x 15,960 = 15,960. + medicaid_medically_needy_income_limit: 15_960 + +- name: Case 12, Illinois couple uses 100 percent of the two-person poverty guideline. + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + person2: + age: 68 + marital_units: + marital_unit: + members: [person1, person2] + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: IL + output: + # 1.00 x 21,640 = 21,640. + medicaid_medically_needy_income_limit: [21_640, 21_640] + +- name: Case 13, North Dakota uses 90 percent of the poverty guideline. + period: 2026 + absolute_error_margin: 0.01 + input: + age: 70 + state_code: ND + output: + # 0.9 x 15,960 = 14,364. + medicaid_medically_needy_income_limit: 14_364 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_medical_expenses.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_medical_expenses.yaml index 4cf3c9c0b0f..dd7d9a1821c 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_medical_expenses.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_medical_expenses.yaml @@ -28,17 +28,19 @@ is_optional_senior_or_disabled_for_medicaid: false # Isolate spenddown from the separate SSI-recipient Medicaid pathway. is_ssi_recipient_for_medicaid: false - employment_income: 27_020 + employment_income: 35_020 ssi_countable_resources: 1_000 state_code: KS health_insurance_premiums: 2_000 pre_tax_health_insurance_premiums: 4_000 medicare_enrolled: false output: - # (27,020 - 4,000 - 12 * (20 + 65)) / 2 = 11,000. + # (35,020 - 4,000 - 12 * (20 + 65)) / 2 = 15,000. + # 15,000 - 2,000 = 13,000 is over the 2026 limit of 12 * 994 = 11,928; + # deducting the 4,000 pretax premium again would pass at 9,000. is_ssi_aged_blind_disabled: true - ssi_earned_income: 23_020 - ssi_countable_income: 11_000 + ssi_earned_income: 31_020 + ssi_countable_income: 15_000 medicaid_medically_needy_medical_expenses: 2_000 is_ssi_recipient_for_medicaid: false is_medically_needy_for_medicaid: false diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.py index cbf50d31400..e9068c67706 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.py @@ -30,11 +30,7 @@ def formula(person, period, parameters): mn = ma.eligibility.categories.medically_needy is_joint = person.tax_unit("tax_unit_is_joint", period) state = person.household("state_code_str", period) - income_limit = MONTHS_IN_YEAR * where( - is_joint, - mn.limit.income.couple[state], - mn.limit.income.individual[state], - ) + income_limit = person("medicaid_medically_needy_income_limit", period) asset_limit = where( is_joint, mn.limit.assets.couple[state], diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py new file mode 100644 index 00000000000..5b2f823e17c --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py @@ -0,0 +1,46 @@ +from policyengine_us.model_api import * +from policyengine_us.variables.gov.hhs.tax_unit_fpg import fpg + + +class medicaid_medically_needy_income_limit(Variable): + value_type = float + entity = Person + label = "Medicaid medically needy income limit" + documentation = ( + "Annual medically needy income limit for an individual or a married " + "couple. States set it as a dollar amount, a share of the federal " + "poverty guideline, or a share of the SSI federal benefit rate." + ) + unit = USD + definition_period = YEAR + reference = ( + "https://www.ecfr.gov/current/title-42/section-435.811", + "https://www.ecfr.gov/current/title-42/section-435.602", + ) + + def formula(person, period, parameters): + p = parameters( + period + ).gov.hhs.medicaid.eligibility.categories.medically_needy.limit.income + state = person.household("state_code_str", period) + # SSI financial responsibility rules (42 CFR 435.602): the unit is + # the individual or the married couple, not the tax filing unit. + is_couple = person.marital_unit.nb_persons() == 2 + # Washington applies its one-person limit to a couple. + same_limit = p.couple_uses_individual_limit[state].astype(bool) + uses_couple_limit = is_couple & ~same_limit + dollar_limit = where(uses_couple_limit, p.couple[state], p.individual[state]) + state_group = person.household("state_group_str", period) + unit_fpg = fpg(where(uses_couple_limit, 2, 1), state_group, period, parameters) + ssi = parameters(period).gov.ssa.ssi.amount + fbr = where(uses_couple_limit, ssi.couple, ssi.individual) + fpg_rate = p.fpg_rate[state] + ssi_rate = p.ssi_rate[state] + return select( + [fpg_rate > 0, ssi_rate > 0], + [ + fpg_rate * unit_fpg, + ssi_rate * fbr * MONTHS_IN_YEAR, + ], + default=dollar_limit * MONTHS_IN_YEAR, + ) From 0ca586c1d9c45fcebea717c82ea28bd0d896f800 Mon Sep 17 00:00:00 2001 From: Ziming Date: Wed, 21 Oct 2026 17:46:06 -0400 Subject: [PATCH 04/22] Lower California's non-MAGI Medi-Cal asset limit on July 1, 2027 SB 164 (Stats. 2026, ch. 27) sec. 69 sets the non-MAGI resource limit at $21,000 for one person and $31,000 for two from July 1, 2027, and sec. 71 ties the Medicare Savings Program resource limit to it. Apply the cut to the aged, blind and disabled, medically needy and MSP California limits, with tests. Co-Authored-By: Claude Opus 5.5 --- .../ca-medi-cal-asset-limit-2027.fixed.md | 1 + .../medically_needy/limit/assets/couple.yaml | 3 ++ .../limit/assets/individual.yaml | 3 ++ .../assets/limit/couple.yaml | 3 ++ .../assets/limit/individual.yaml | 3 ++ .../eligibility/asset/state_limit/couple.yaml | 3 ++ .../asset/state_limit/individual.yaml | 3 ++ ...nal_senior_or_disabled_asset_eligible.yaml | 35 ++++++++++++ .../is_medically_needy_for_medicaid.yaml | 54 +++++++++++++++++++ .../eligibility/msp_asset_eligible.yaml | 45 ++++++++++++++++ 10 files changed, 153 insertions(+) create mode 100644 changelog.d/ca-medi-cal-asset-limit-2027.fixed.md diff --git a/changelog.d/ca-medi-cal-asset-limit-2027.fixed.md b/changelog.d/ca-medi-cal-asset-limit-2027.fixed.md new file mode 100644 index 00000000000..ee5aacbc32c --- /dev/null +++ b/changelog.d/ca-medi-cal-asset-limit-2027.fixed.md @@ -0,0 +1 @@ +California's non-MAGI Medi-Cal asset limit falls to $21,000 for one person and $31,000 for a couple on July 1, 2027 (SB 164), for the aged, blind and disabled, medically needy, and Medicare Savings Program pathways. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml index c58b38bcbc0..58450c6033b 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml @@ -14,6 +14,8 @@ metadata: href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/22-25.pdf#page=1 - title: "California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs #page 1,8-9" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=1 + - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Section 69 - Welfare and Institutions Code 14005.62(a), operative July 1, 2027 + href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 - title: Illinois Department of Human Services Policy Manual PM 07-02-01 - Asset Limits href: https://www.dhs.state.il.us/page.aspx?Item=14876 - title: New York DOH GIS 22 MA/11, 2023 Medicaid Levels and Other Updates @@ -40,6 +42,7 @@ CA: 2022-07-01: 195_000 2024-01-01: .inf 2026-01-01: 195_000 + 2027-07-01: 31_000 CO: 2018-01-01: -.inf CT: diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml index ff51210eb6b..3ba9cfdef33 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml @@ -14,6 +14,8 @@ metadata: href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/22-25.pdf#page=1 - title: "California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs #page 1,8-9" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=1 + - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Section 69 - Welfare and Institutions Code 14005.62(a), operative July 1, 2027 + href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 - title: Illinois Department of Human Services Policy Manual PM 07-02-01 - Asset Limits href: https://www.dhs.state.il.us/page.aspx?Item=14876 - title: New York DOH GIS 22 MA/11, 2023 Medicaid Levels and Other Updates @@ -40,6 +42,7 @@ CA: 2022-07-01: 130_000 2024-01-01: .inf 2026-01-01: 130_000 + 2027-07-01: 21_000 CO: 2018-01-01: -.inf CT: diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml index d221c7a2ad5..3d5f31ff3cb 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml @@ -10,6 +10,8 @@ metadata: href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ - title: "Asset Limit Changes for Non-MAGI Medi-Cal | California DHCS (asset limit reinstated at $130,000 plus $65,000 per additional household member effective January 1, 2026)" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/Pages/Asset-Limit-Changes-for-Non-MAGI-Medi-Cal.aspx + - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Section 69 - Welfare and Institutions Code 14005.62(a), operative July 1, 2027 + href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 - title: "California DHCS All County Welfare Directors Letter 25-14 (reinstatement of the non-MAGI Medi-Cal asset limit)" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf @@ -26,6 +28,7 @@ CA: 2015-01-01: 3_000 2024-01-01: .inf 2026-01-01: 195_000 + 2027-07-01: 31_000 CO: 2015-01-01: 3_000 CT: diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml index 0e9ad620691..4f065cbb625 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml @@ -10,6 +10,8 @@ metadata: href: https://www.kff.org/report-section/medicaid-eligibility-and-enrollment-policies-for-seniors-and-people-with-disabilities-non-magi-during-the-unwinding-appendix/ - title: "Asset Limit Changes for Non-MAGI Medi-Cal | California DHCS (asset limit reinstated at $130,000 for an individual effective January 1, 2026)" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/Pages/Asset-Limit-Changes-for-Non-MAGI-Medi-Cal.aspx + - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Section 69 - Welfare and Institutions Code 14005.62(a), operative July 1, 2027 + href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 - title: "California DHCS All County Welfare Directors Letter 25-14 (reinstatement of the non-MAGI Medi-Cal asset limit)" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf @@ -26,6 +28,7 @@ CA: 2015-01-01: 2_000 2024-01-01: .inf 2026-01-01: 130_000 + 2027-07-01: 21_000 CO: 2015-01-01: 2_000 CT: diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml index fe504f7ed6a..1ea4cea693b 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml @@ -12,6 +12,8 @@ metadata: href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=2 - title: California DHCS All County Welfare Directors Letter 25-27, 2026 Medicare Savings Program Property Limits href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-27.pdf#page=1 + - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Sections 69 and 71 - Welfare and Institutions Code 14005.62(a) and 14005.11(a), operative July 1, 2027 + href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 - title: Minnesota Statutes 256B.057, subdivision 3(a)(3) - Qualified Medicare beneficiaries href: https://www.revisor.mn.gov/statutes/cite/256B.057 - title: Laws of Minnesota 2000, chapter 488, article 9, section 15 @@ -20,6 +22,7 @@ metadata: CA: 0000-01-01: 0 2022-07-01: 195_000 + 2027-07-01: 31_000 MN: 0000-01-01: 0 2000-10-01: 18_000 diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml index 936214043cf..046c1525e8a 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml @@ -12,6 +12,8 @@ metadata: href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=2 - title: California DHCS All County Welfare Directors Letter 25-27, 2026 Medicare Savings Program Property Limits href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-27.pdf#page=1 + - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Sections 69 and 71 - Welfare and Institutions Code 14005.62(a) and 14005.11(a), operative July 1, 2027 + href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 - title: Minnesota Statutes 256B.057, subdivision 3(a)(3) - Qualified Medicare beneficiaries href: https://www.revisor.mn.gov/statutes/cite/256B.057 - title: Laws of Minnesota 2000, chapter 488, article 9, section 15 @@ -20,6 +22,7 @@ metadata: CA: 0000-01-01: 0 2022-07-01: 130_000 + 2027-07-01: 21_000 MN: 0000-01-01: 0 2000-10-01: 10_000 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml index ac7e535b194..8509e40ccef 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml @@ -145,3 +145,38 @@ output: # 11,452 combined is not under the 11,452 couple limit. is_optional_senior_or_disabled_asset_eligible: [false, false] + +# California's limit falls to 21,000 for one person and 31,000 for two on +# July 1, 2027. This annual variable reads the January 1 value, so the lower +# limits first apply in 2028. +- name: assets above the July 2027 CA limit in 2028, ineligible + period: 2028 + input: + ssi_countable_resources: 21_001 + state_code: CA + output: + is_optional_senior_or_disabled_asset_eligible: false + +# Each spouse is under the 21,000 individual limit; combined resources of +# 31,001 are over the 31,000 couple limit. +- name: joint filers above the July 2027 CA couple limit in 2028, ineligible + period: 2028 + input: + people: + person1: + ssi_countable_resources: 15_500 + person2: + ssi_countable_resources: 15_501 + marital_units: + marital_unit1: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CA + tax_units: + tax_unit: + members: [person1, person2] + tax_unit_is_joint: true + output: + is_optional_senior_or_disabled_asset_eligible: [false, false] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml index a735f81df04..dfb5e430a8c 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml @@ -162,3 +162,57 @@ # Limit 1.38 x 15,960 = 22,024.80. 25,000 - 5,000 = 20,000; assets 30,000 are under 33,038. is_in_medicaid_medically_needy_category: true is_medically_needy_for_medicaid: true + +- name: Case 10, California senior with assets above the July 2027 limit is ineligible in 2028. + period: 2028 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 9_000 + medicaid_medically_needy_medical_expenses: 2_000 + ssi_countable_resources: 21_001 + state_code: CA + output: + # Limit 600 x 12 = 7,200. 9,000 - 2,000 = 7,000 is under it, but assets + # of 21,001 are over the 21,000 limit that applies from July 2027. + is_in_medicaid_medically_needy_category: true + is_medically_needy_for_medicaid: false + +- name: Case 11, California senior couple with assets above the July 2027 couple limit is ineligible in 2028. + period: 2028 + input: + people: + person1: + age: 72 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 9_000 + medicaid_medically_needy_medical_expenses: 4_000 + ssi_countable_resources: 15_500 + person2: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 9_000 + medicaid_medically_needy_medical_expenses: 4_000 + ssi_countable_resources: 15_501 + tax_units: + tax_unit: + members: [person1, person2] + tax_unit_is_joint: true + marital_units: + marital_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CA + output: + # Limit 934 x 12 = 11,208. (9,000 - 4,000) x 2 = 10,000 is under it, but + # combined assets of 31,001 are over the 31,000 couple limit. + is_in_medicaid_medically_needy_category: [true, true] + is_medically_needy_for_medicaid: [false, false] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml index a9bafd0f700..fe55b032c36 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml @@ -162,3 +162,48 @@ # Combined 18,000 is at Minnesota's 18,000 couple limit and above the # federal 14,910. msp_asset_eligible: [true, true] + +- name: Case 12, California's MSP individual asset limit falls to 21,000 in July 2027. + period: 2027 + input: + age: 67 + bank_account_assets: 21_001 + spm_unit_is_married: false + state_code: CA + output: + # 21,001 is under 130,000 in June and over 21,000 from July; the federal + # limit is lower than both. + msp_asset_eligible: + 2027-06: true + 2027-07: false + +- name: Case 13, California's MSP couple asset limit falls to 31,000 in July 2027. + period: 2027 + input: + people: + person1: + age: 70 + bank_account_assets: 15_500 + person2: + age: 68 + bank_account_assets: 15_501 + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_is_married: true + households: + household: + members: [person1, person2] + state_code: CA + output: + # Combined 31,001 is under 195,000 in June and over 31,000 from July; the + # federal couple limit is lower than both. + msp_asset_eligible: + 2027-06: [true, true] + 2027-07: [false, false] From a0ac0c2658f3ac1d5395cecbb20be12522210712 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 26 Oct 2026 16:43:25 -0400 Subject: [PATCH 05/22] Fix issues from review: cut the Working Disabled Program asset limit and pin the new limits WIC 14007.9(a)(1)(C) caps 250% Working Disabled Program resources at the WIC 14005.62(a) levels, so SB 164's July 1, 2027 schedule applies there too: $21,000 for one person, $31,000 for two and $1,550 for each person beyond two. Add a two_people parameter, make additional_person the amount beyond two, and use them in ca_wdp_asset_eligible; limits before July 2027 are unchanged. Add eligible-side cases at or under the new limits, WDP cases for one, two and three people, and January 1 timing comments on the July 2027 rows read by annual variables. Co-Authored-By: Claude Opus 5.5 --- .../ca-medi-cal-asset-limit-2027.fixed.md | 2 +- .../medically_needy/limit/assets/couple.yaml | 1 + .../limit/assets/individual.yaml | 1 + .../assets/limit/couple.yaml | 1 + .../assets/limit/individual.yaml | 1 + .../eligibility/asset/additional_person.yaml | 10 +- .../ca/chhs/wdp/eligibility/asset/base.yaml | 6 + .../wdp/eligibility/asset/two_people.yaml | 25 +++ ...nal_senior_or_disabled_asset_eligible.yaml | 32 ++++ .../is_medically_needy_for_medicaid.yaml | 56 +++++++ .../eligibility/msp_asset_eligible.yaml | 43 +++++ .../eligibility/ca_wdp_asset_eligible.yaml | 148 ++++++++++++++++++ .../wdp/eligibility/ca_wdp_asset_eligible.py | 12 +- 13 files changed, 333 insertions(+), 5 deletions(-) create mode 100644 policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/two_people.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.yaml diff --git a/changelog.d/ca-medi-cal-asset-limit-2027.fixed.md b/changelog.d/ca-medi-cal-asset-limit-2027.fixed.md index ee5aacbc32c..8ef1392b9b2 100644 --- a/changelog.d/ca-medi-cal-asset-limit-2027.fixed.md +++ b/changelog.d/ca-medi-cal-asset-limit-2027.fixed.md @@ -1 +1 @@ -California's non-MAGI Medi-Cal asset limit falls to $21,000 for one person and $31,000 for a couple on July 1, 2027 (SB 164), for the aged, blind and disabled, medically needy, and Medicare Savings Program pathways. +California's non-MAGI Medi-Cal asset limit falls to $21,000 for one person and $31,000 for two on July 1, 2027 (SB 164) in the aged, blind and disabled, medically needy, Medicare Savings Program and 250% Working Disabled Program limits; the Working Disabled Program also adds $1,550 for each person beyond two. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml index 58450c6033b..77ec030d533 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml @@ -42,6 +42,7 @@ CA: 2022-07-01: 195_000 2024-01-01: .inf 2026-01-01: 195_000 + # Annual calculations read parameters on January 1, so the July 1, 2027 value first applies in 2028. 2027-07-01: 31_000 CO: 2018-01-01: -.inf diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml index 3ba9cfdef33..1ece459a8dd 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml @@ -42,6 +42,7 @@ CA: 2022-07-01: 130_000 2024-01-01: .inf 2026-01-01: 130_000 + # Annual calculations read parameters on January 1, so the July 1, 2027 value first applies in 2028. 2027-07-01: 21_000 CO: 2018-01-01: -.inf diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml index 3d5f31ff3cb..805213da166 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml @@ -28,6 +28,7 @@ CA: 2015-01-01: 3_000 2024-01-01: .inf 2026-01-01: 195_000 + # Annual calculations read parameters on January 1, so the July 1, 2027 value first applies in 2028. 2027-07-01: 31_000 CO: 2015-01-01: 3_000 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml index 4f065cbb625..eac3cda8d87 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml @@ -28,6 +28,7 @@ CA: 2015-01-01: 2_000 2024-01-01: .inf 2026-01-01: 130_000 + # Annual calculations read parameters on January 1, so the July 1, 2027 value first applies in 2028. 2027-07-01: 21_000 CO: 2015-01-01: 2_000 diff --git a/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/additional_person.yaml b/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/additional_person.yaml index da5c8f9244b..82cc31c42d9 100644 --- a/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/additional_person.yaml +++ b/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/additional_person.yaml @@ -1,11 +1,17 @@ -description: California increases the asset limit by this amount for each additional person under the Medi-Cal 250 Percent Working Disabled Program. +description: California increases the asset limit by this amount for each person beyond two under the Medi-Cal 250 Percent Working Disabled Program. values: 2022-07-01: 65_000 + # Annual calculations read parameters on January 1, so the July 1, 2027 value first applies in 2028. + 2027-07-01: 1_550 metadata: unit: currency-USD period: year - label: California 250 Percent Working Disabled Program additional-person asset limit + label: California 250 Percent Working Disabled Program asset limit for each person beyond two reference: - title: Working Disabled Program | Department of Health Care Services href: https://www.dhcs.ca.gov/services/working-disabled-program/ + - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Section 69 - Welfare and Institutions Code 14005.62(a), operative July 1, 2027 + href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 + - title: California Welfare and Institutions Code 14007.9(a)(1)(C) + href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?sectionNum=14007.9.&lawCode=WIC diff --git a/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/base.yaml b/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/base.yaml index 78b43af2edb..a9bc8c44119 100644 --- a/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/base.yaml +++ b/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/base.yaml @@ -3,6 +3,8 @@ values: 2022-07-01: 130_000 2024-01-01: .inf 2026-01-01: 130_000 + # Annual calculations read parameters on January 1, so the July 1, 2027 value first applies in 2028. + 2027-07-01: 21_000 metadata: unit: currency-USD @@ -15,3 +17,7 @@ metadata: href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/Documents/Eligibility-and-Enrollment-Plan-Asset-Test-Changes-for-Non-MAGI-MC.pdf - title: Medi-Cal Program Changes 2026-2028 | Department of Health Care Services href: https://www.dhcs.ca.gov/medi-cal/help/medi-cal-changes/ + - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Section 69 - Welfare and Institutions Code 14005.62(a), operative July 1, 2027 + href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 + - title: California Welfare and Institutions Code 14007.9(a)(1)(C) + href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?sectionNum=14007.9.&lawCode=WIC diff --git a/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/two_people.yaml b/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/two_people.yaml new file mode 100644 index 00000000000..1fdb50038b9 --- /dev/null +++ b/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/two_people.yaml @@ -0,0 +1,25 @@ +description: California limits assets to this amount for two people under the Medi-Cal 250 Percent Working Disabled Program. +values: + 2022-07-01: 195_000 + 2024-01-01: .inf + 2026-01-01: 195_000 + # Annual calculations read parameters on January 1, so the July 1, 2027 value first applies in 2028. + 2027-07-01: 31_000 + +metadata: + unit: currency-USD + period: year + label: California 250 Percent Working Disabled Program two-person asset limit + reference: + - title: Working Disabled Program | Department of Health Care Services + href: https://www.dhcs.ca.gov/services/working-disabled-program/ + - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2,4" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 + - title: California DHCS All County Welfare Directors Letter 22-25, Elimination of Asset Limits for Non-MAGI Medi-Cal Programs + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/22-25.pdf#page=2 + - title: "California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs #page 2,8-9" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=2 + - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Section 69 - Welfare and Institutions Code 14005.62(a), operative July 1, 2027 + href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 + - title: California Welfare and Institutions Code 14007.9(a)(1)(C) + href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?sectionNum=14007.9.&lawCode=WIC diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml index 8509e40ccef..537fab96c6e 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml @@ -180,3 +180,35 @@ tax_unit_is_joint: true output: is_optional_senior_or_disabled_asset_eligible: [false, false] + +- name: assets below the July 2027 CA limit in 2028, eligible + period: 2028 + input: + ssi_countable_resources: 20_000 + state_code: CA + output: + # 20,000 is under the 21,000 limit that applies from July 2027. + is_optional_senior_or_disabled_asset_eligible: true + +- name: joint filers below the July 2027 CA couple limit in 2028, eligible + period: 2028 + input: + people: + person1: + ssi_countable_resources: 15_000 + person2: + ssi_countable_resources: 15_000 + marital_units: + marital_unit1: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CA + tax_units: + tax_unit: + members: [person1, person2] + tax_unit_is_joint: true + output: + # 15,000 + 15,000 = 30,000 is under the 31,000 couple limit. + is_optional_senior_or_disabled_asset_eligible: [true, true] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml index dfb5e430a8c..4fcf7de79a2 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml @@ -216,3 +216,59 @@ # combined assets of 31,001 are over the 31,000 couple limit. is_in_medicaid_medically_needy_category: [true, true] is_medically_needy_for_medicaid: [false, false] + +- name: Case 12, California senior with assets at the July 2027 limit is eligible in 2028. + period: 2028 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 9_000 + medicaid_medically_needy_medical_expenses: 2_000 + ssi_countable_resources: 21_000 + state_code: CA + output: + # Limit 600 x 12 = 7,200. 9,000 - 2,000 = 7,000 is under it, and assets + # of 21,000 are at the 21,000 limit that applies from July 2027; resources + # may not exceed it. + is_in_medicaid_medically_needy_category: true + is_medically_needy_for_medicaid: true + +- name: Case 13, California senior couple with assets at the July 2027 couple limit is eligible in 2028. + period: 2028 + input: + people: + person1: + age: 72 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 9_000 + medicaid_medically_needy_medical_expenses: 4_000 + ssi_countable_resources: 15_500 + person2: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 9_000 + medicaid_medically_needy_medical_expenses: 4_000 + ssi_countable_resources: 15_500 + tax_units: + tax_unit: + members: [person1, person2] + tax_unit_is_joint: true + marital_units: + marital_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CA + output: + # Limit 934 x 12 = 11,208. (9,000 - 4,000) x 2 = 10,000 is under it, and + # combined assets of 15,500 + 15,500 = 31,000 are at the 31,000 couple + # limit; resources may not exceed it. + is_in_medicaid_medically_needy_category: [true, true] + is_medically_needy_for_medicaid: [true, true] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml index fe55b032c36..4c8e0f5c418 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml @@ -207,3 +207,46 @@ msp_asset_eligible: 2027-06: [true, true] 2027-07: [false, false] + +- name: Case 14, California's MSP individual asset limit admits assets at 21,000 in July 2027. + period: 2027 + input: + age: 67 + bank_account_assets: 21_000 + spm_unit_is_married: false + state_code: CA + output: + # 21,000 is at the 21,000 limit that applies from July 2027; resources may + # not exceed it. + msp_asset_eligible: + 2027-07: true + +- name: Case 15, California's MSP couple asset limit admits combined assets at 31,000 in July 2027. + period: 2027 + input: + people: + person1: + age: 70 + bank_account_assets: 15_500 + person2: + age: 68 + bank_account_assets: 15_500 + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_is_married: true + households: + household: + members: [person1, person2] + state_code: CA + output: + # 15,500 + 15,500 = 31,000 is at the 31,000 couple limit that applies from + # July 2027; resources may not exceed it. + msp_asset_eligible: + 2027-07: [true, true] diff --git a/policyengine_us/tests/policy/baseline/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.yaml new file mode 100644 index 00000000000..4a3a1f01084 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.yaml @@ -0,0 +1,148 @@ +- name: Case 1, two-person tax unit at the 2026 two-person limit is eligible. + period: 2026 + input: + people: + person1: + age: 45 + ssi_countable_resources: 100_000 + person2: + age: 43 + ssi_countable_resources: 95_000 + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CA + output: + # 100,000 + 95,000 = 195,000 is at the 195,000 two-person limit; resources + # may not exceed it. + ca_wdp_asset_eligible: [true, true] + +- name: Case 2, one person at the July 2027 one-person limit is eligible in 2028. + period: 2028 + input: + people: + person1: + age: 45 + ssi_countable_resources: 21_000 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: CA + output: + # 21,000 is at the 21,000 limit; resources may not exceed it. + ca_wdp_asset_eligible: true + +- name: Case 3, one person above the July 2027 one-person limit is ineligible in 2028. + period: 2028 + input: + people: + person1: + age: 45 + ssi_countable_resources: 21_001 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: CA + output: + # 21,001 is over the 21,000 limit. + ca_wdp_asset_eligible: false + +- name: Case 4, two-person tax unit at the July 2027 two-person limit is eligible in 2028. + period: 2028 + input: + people: + person1: + age: 45 + ssi_countable_resources: 15_500 + person2: + age: 43 + ssi_countable_resources: 15_500 + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CA + output: + # 15,500 + 15,500 = 31,000 is at the 31,000 two-person limit; resources + # may not exceed it. + ca_wdp_asset_eligible: [true, true] + +- name: Case 5, two-person tax unit above the July 2027 two-person limit is ineligible in 2028. + period: 2028 + input: + people: + person1: + age: 45 + ssi_countable_resources: 15_500 + person2: + age: 43 + ssi_countable_resources: 15_501 + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CA + output: + # 15,500 + 15,501 = 31,001 is over the 31,000 two-person limit. + ca_wdp_asset_eligible: [false, false] + +- name: Case 6, three-person tax unit at the July 2027 three-person limit is eligible in 2028. + period: 2028 + input: + people: + person1: + age: 45 + ssi_countable_resources: 16_000 + person2: + age: 43 + ssi_countable_resources: 16_550 + person3: + age: 10 + tax_units: + tax_unit: + members: [person1, person2, person3] + households: + household: + members: [person1, person2, person3] + state_code: CA + output: + # Limit 31,000 + 1 x 1,550 = 32,550. 16,000 + 16,550 + 0 = 32,550 is at + # it; resources may not exceed it. + ca_wdp_asset_eligible: [true, true, true] + +- name: Case 7, three-person tax unit above the July 2027 three-person limit is ineligible in 2028. + period: 2028 + input: + people: + person1: + age: 45 + ssi_countable_resources: 16_000 + person2: + age: 43 + ssi_countable_resources: 16_551 + person3: + age: 10 + tax_units: + tax_unit: + members: [person1, person2, person3] + households: + household: + members: [person1, person2, person3] + state_code: CA + output: + # Limit 31,000 + 1 x 1,550 = 32,550. 16,000 + 16,551 + 0 = 32,551 is over + # it. + ca_wdp_asset_eligible: [false, false, false] diff --git a/policyengine_us/variables/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.py b/policyengine_us/variables/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.py index 9ad8d1ec58f..7caa118bc6e 100644 --- a/policyengine_us/variables/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.py +++ b/policyengine_us/variables/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.py @@ -6,7 +6,11 @@ class ca_wdp_asset_eligible(Variable): entity = Person label = "California 250 Percent Working Disabled Program asset eligible" definition_period = YEAR - reference = "https://www.dhcs.ca.gov/services/working-disabled-program/" + reference = ( + "https://www.dhcs.ca.gov/services/working-disabled-program/", + "https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?sectionNum=14007.9.&lawCode=WIC", + "https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164", + ) defined_for = StateCode.CA def formula(person, period, parameters): @@ -16,5 +20,9 @@ def formula(person, period, parameters): ) tax_unit_size = person.tax_unit("tax_unit_size", period) capped_size = min_(tax_unit_size, p.max_people) - asset_limit = p.base + max_(capped_size - 1, 0) * p.additional_person + asset_limit = where( + capped_size >= 2, + p.two_people + max_(capped_size - 2, 0) * p.additional_person, + p.base, + ) return countable_resources <= asset_limit From e65ab54a502f8c35f34462820bb05ec4e357a4ea Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 26 Oct 2026 16:49:57 -0400 Subject: [PATCH 06/22] Apply local review: Illinois $25 per spouse, date and limit tests, statute references - Illinois gives each applying spouse with income their own $25 exemption (PM 15-04-03-a, 89 Ill. Adm. Code 120.335(a)(1)); new by-state flag state_general_exclusion_per_spouse, used only in the couple path. - Tests pin Washington before 2023, California July 2022 and December 2025, California's couple limit, and Minnesota's individual and couple limits from above. - Cite Welf. & Inst. Code 14005.62, Laws of Washington 2022 ch. 297 and the official Mississippi rules; label the Illinois and Mississippi start dates as in-effect-by dates. Co-Authored-By: Claude Opus 5.5 --- .../msp-state-asset-income-rules.fixed.md | 2 +- .../eligibility/asset/applies.yaml | 4 + .../eligibility/asset/state_limit/couple.yaml | 6 +- .../asset/state_limit/individual.yaml | 6 +- .../income/state_general_exclusion.yaml | 18 ++- .../state_general_exclusion_per_spouse.yaml | 24 +++ .../eligibility/msp_asset_eligible.yaml | 142 ++++++++++++++++++ .../income/msp_countable_income.yaml | 89 +++++++++++ .../income/msp_countable_income.py | 19 ++- 9 files changed, 297 insertions(+), 13 deletions(-) create mode 100644 policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_per_spouse.yaml diff --git a/changelog.d/msp-state-asset-income-rules.fixed.md b/changelog.d/msp-state-asset-income-rules.fixed.md index 01ccc68a011..ba61f5fe5f7 100644 --- a/changelog.d/msp-state-asset-income-rules.fixed.md +++ b/changelog.d/msp-state-asset-income-rules.fixed.md @@ -1 +1 @@ -Applied state Medicare Savings Program rules: no asset test in Washington from 2023; California asset limits of $130,000 / $195,000 (July 2022 to 2023, and again from 2026); Minnesota asset limits of $10,000 / $18,000; and general income exclusions of $25 in Illinois and $50 in Mississippi. +Applied state Medicare Savings Program rules: no asset test in Washington from 2023; California asset limits of $130,000 / $195,000 (July 2022 to 2023, and again from 2026); Minnesota asset limits of $10,000 / $18,000; and general income exclusions of $25 in Illinois (one for each spouse with income) and $50 in Mississippi (once for a couple). diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml index a56b1da0d30..cd3711b1fd4 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml @@ -22,6 +22,10 @@ metadata: href: https://lawfilesext.leg.wa.gov/law/wsrpdf/2022/21/22-21-043.pdf#page=1 - title: Washington Administrative Code 182-517-0100(2)(d) - Federal Medicare savings programs href: https://app.leg.wa.gov/wac/default.aspx?cite=182-517-0100 + - title: "Laws of Washington 2022, chapter 297, sections 205(26) and 211(79) #page 274,312" + href: https://lawfilesext.leg.wa.gov/biennium/2021-22/Pdf/Bills/Session%20Laws/Senate/5693-S.SL.pdf#page=274 + - title: California Welfare and Institutions Code 14005.62(a), (c), (d) + href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=WIC§ionNum=14005.62 # Federal MSP rules apply the asset test by default. States that have # eliminated it are set to false from 2024 unless a state source gives # another date. diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml index fe504f7ed6a..ba50ca04278 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml @@ -12,10 +12,12 @@ metadata: href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=2 - title: California DHCS All County Welfare Directors Letter 25-27, 2026 Medicare Savings Program Property Limits href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-27.pdf#page=1 + - title: California Welfare and Institutions Code 14005.62(a), (c), (d) + href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=WIC§ionNum=14005.62 - title: Minnesota Statutes 256B.057, subdivision 3(a)(3) - Qualified Medicare beneficiaries - href: https://www.revisor.mn.gov/statutes/cite/256B.057 + href: https://www.revisor.mn.gov/statutes/cite/256B.057#stat.256B.057.3 - title: Laws of Minnesota 2000, chapter 488, article 9, section 15 - href: https://www.revisor.mn.gov/laws/2000/0/488/ + href: https://www.revisor.mn.gov/laws/2000/0/488/#a9 CA: 0000-01-01: 0 diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml index 936214043cf..4952f821caa 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml @@ -12,10 +12,12 @@ metadata: href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=2 - title: California DHCS All County Welfare Directors Letter 25-27, 2026 Medicare Savings Program Property Limits href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-27.pdf#page=1 + - title: California Welfare and Institutions Code 14005.62(a), (c), (d) + href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=WIC§ionNum=14005.62 - title: Minnesota Statutes 256B.057, subdivision 3(a)(3) - Qualified Medicare beneficiaries - href: https://www.revisor.mn.gov/statutes/cite/256B.057 + href: https://www.revisor.mn.gov/statutes/cite/256B.057#stat.256B.057.3 - title: Laws of Minnesota 2000, chapter 488, article 9, section 15 - href: https://www.revisor.mn.gov/laws/2000/0/488/ + href: https://www.revisor.mn.gov/laws/2000/0/488/#a9 CA: 0000-01-01: 0 diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion.yaml index e3994e45301..799d87852d4 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion.yaml @@ -8,18 +8,24 @@ metadata: reference: - title: Illinois Department of Human Services Policy Manual PM 06-12-01-c - Income Exemption href: https://www.dhs.state.il.us/page.aspx?item=14179 - - title: Illinois Department of Human Services Policy Manual PM 15-04-03-a - Income Disregard + - title: Illinois Department of Human Services Policy Manual PM 15-04-03-a - AABD Income Disregard (Community Cases) href: https://www.dhs.state.il.us/page.aspx?item=16387 - - title: 89 Illinois Administrative Code 120.335(a)(1) - Exempt Income + - title: Illinois Department of Human Services Policy Manual PM 06-13-01-b - SLIB Income Limit + href: https://www.dhs.state.il.us/page.aspx?item=14218 + - title: Illinois Department of Human Services Policy Manual PM 06-14-01-b - QI-1 Income Limit + href: https://www.dhs.state.il.us/page.aspx?item=14250 + - title: 89 Illinois Administrative Code 120.335(a)(1) - Exempt Unearned Income href: https://www.ilga.gov/ftp/JCAR/AdminCode/089/089001200H03350R.html - - title: 23 Mississippi Code of Rules 104-1.1(C)(2)(b) - Income Rules - href: https://www.law.cornell.edu/regulations/mississippi/23-Miss-Code-R-SS-104-1-1 - - title: Mississippi Division of Medicaid Eligibility Manual, pages 5400-5401, Countable Income (revised July 1, 1999) - href: https://web.archive.org/web/20140514175849/https://www.medicaid.ms.gov/wp-content/uploads/2014/03/Pages-5400-5401-Countable-Income.pdf#page=2 + - title: "23 Mississippi Administrative Code Part 104, Rules 1.1(C)(2)(b) and 4.2 - Income Rules and General Income Exclusion #page 9,21-22" + href: https://www.sos.ms.gov/adminsearch/ACCode/00000278c.pdf#page=9 + - title: Mississippi Division of Medicaid Eligibility Manual Volume III, Countable Income (revised July 1, 1999) + href: https://web.archive.org/web/20140514175849id_/https://www.medicaid.ms.gov/wp-content/uploads/2014/03/Pages-5400-5401-Countable-Income.pdf#page=2 IL: 0000-01-01: 0 + # PM 06-12-01-c revision date; the exemption is in effect no later than this. 1997-03-01: 25 MS: 0000-01-01: 0 + # Eligibility Manual p. 5401 sets the break-even point at FPL + 50 from this date. 1999-07-01: 50 diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_per_spouse.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_per_spouse.yaml new file mode 100644 index 00000000000..b146dccf853 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_per_spouse.yaml @@ -0,0 +1,24 @@ +description: States apply the general income exclusion to each applying spouse's own income, instead of once to the couple's combined income, under the Medicare Savings Programs, if this is true. +metadata: + unit: bool + period: year + label: MSP state general income exclusion per spouse + breakdown: + - state_code + reference: + - title: Illinois Department of Human Services Policy Manual PM 15-04-03-a - AABD Income Disregard (Community Cases) + href: https://www.dhs.state.il.us/page.aspx?item=16387 + - title: Illinois Department of Human Services Policy Manual PM 06-12-01-c - Income Exemption + href: https://www.dhs.state.il.us/page.aspx?item=14179 + - title: 89 Illinois Administrative Code 120.335(a)(1) - Exempt Unearned Income + href: https://www.ilga.gov/ftp/JCAR/AdminCode/089/089001200H03350R.html + - title: 23 Mississippi Administrative Code Part 104, Rule 4.2(C)(2) - General Income Exclusion + href: https://www.sos.ms.gov/adminsearch/ACCode/00000278c.pdf#page=22 + +IL: + 0000-01-01: false + # PM 06-12-01-c revision date; the exemption is in effect no later than this. + 1997-03-01: true +MS: + # Rule 4.2(C)(2): one general exclusion for a couple's combined income. + 0000-01-01: false diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml index a9bafd0f700..46194ff3bf7 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml @@ -162,3 +162,145 @@ # Combined 18,000 is at Minnesota's 18,000 couple limit and above the # federal 14,910. msp_asset_eligible: [true, true] + +- name: Case 12, Washington applied the MSP asset test through December 2022. + period: 2022 + input: + age: 67 + bank_account_assets: 100_000 + spm_unit_is_married: false + state_code: WA + output: + # WSR 22-21-043 removed the resource test effective January 1, 2023. + msp_asset_eligible: + 2022-12: false + +- name: Case 13, California raised the MSP asset limit to 130,000 dollars in July 2022. + period: 2022 + input: + age: 67 + bank_account_assets: 100_000 + spm_unit_is_married: false + state_code: CA + output: + # Federal 2022 limit 8,400 through June; ACWDL 21-31 limit 130,000 from July 1, 2022. + msp_asset_eligible: + 2022-06: false + 2022-07: true + +- name: Case 14, California had no MSP asset test in December 2025. + period: 2025 + input: + age: 67 + bank_account_assets: 130_001 + spm_unit_is_married: false + state_code: CA + output: + # ACWDL 25-27: no MSP asset limit from January 1, 2024, through December 31, 2025. + msp_asset_eligible: + 2025-12: true + +- name: Case 15, California's 2026 couple MSP asset limit admits assets at the limit. + period: 2026-01 + input: + people: + person1: + age: 70 + bank_account_assets: 97_500 + person2: + age: 68 + bank_account_assets: 97_500 + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_is_married: true + households: + household: + members: [person1, person2] + state_code: CA + output: + # Combined 195,000 equals the ACWDL 25-14 two-person limit. + msp_asset_eligible: [true, true] + +- name: Case 16, California's 2026 couple MSP asset limit rejects assets above it. + period: 2026-01 + input: + people: + person1: + age: 70 + bank_account_assets: 97_500 + person2: + age: 68 + bank_account_assets: 97_501 + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_is_married: true + households: + household: + members: [person1, person2] + state_code: CA + output: + # Combined 195,001 exceeds the 195,000 two-person limit. + msp_asset_eligible: [false, false] + +- name: Case 17, Minnesota's individual MSP asset limit admits 10,000 dollars. + period: 2026-01 + input: + age: 67 + bank_account_assets: 10_000 + spm_unit_is_married: false + state_code: MN + output: + # Minn. Stat. 256B.057, subd. 3(a)(3): 10,000, above the federal 9,950. + msp_asset_eligible: true + +- name: Case 18, Minnesota's individual MSP asset limit rejects assets above 10,000 dollars. + period: 2026-01 + input: + age: 67 + bank_account_assets: 10_001 + spm_unit_is_married: false + state_code: MN + output: + msp_asset_eligible: false + +- name: Case 19, Minnesota's couple MSP asset limit rejects assets above 18,000 dollars. + period: 2026-01 + input: + people: + person1: + age: 70 + bank_account_assets: 9_000 + person2: + age: 68 + bank_account_assets: 9_001 + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_is_married: true + households: + household: + members: [person1, person2] + state_code: MN + output: + # Combined 18,001 exceeds Minnesota's 18,000 couple limit. + msp_asset_eligible: [false, false] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml index 1c45f0dfd70..0edc2e14d15 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml @@ -135,3 +135,92 @@ output: # 12,000 / 12 - 50 = 950. msp_countable_income: 950 + +- name: Case 8, Illinois gives each Medicare spouse with income a 25 dollar exemption. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 72 + social_security_retirement: 13_200 + person2: + age: 70 + social_security_retirement: 8_880 + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_is_married: true + households: + household: + members: [person1, person2] + state_code: IL + output: + # PM 15-04-03-a: both spouses apply and both have income, so two exemptions. + # (13,200 + 8,880) / 12 - 2 x 25 = 1,790. + msp_countable_income: [1_790, 1_790] + +- name: Case 9, Illinois allows one exemption when only one Medicare spouse has income. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 72 + social_security_retirement: 13_200 + person2: + age: 70 + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_is_married: true + households: + household: + members: [person1, person2] + state_code: IL + output: + # PM 15-04-03-a: one exemption if only one person has income. + # 13,200 / 12 - 25 = 1,075. + msp_countable_income: [1_075, 1_075] + +- name: Case 10, Mississippi applies one 50 dollar exclusion to a couple's combined income. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 72 + social_security_retirement: 12_000 + person2: + age: 70 + social_security_retirement: 9_600 + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_is_married: true + households: + household: + members: [person1, person2] + state_code: MS + output: + # 23 Miss. Admin. Code Part 104, Rule 4.2(C)(2): one general exclusion per couple. + # (12,000 + 9,600) / 12 - 50 = 1,750. + msp_countable_income: [1_750, 1_750] diff --git a/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py b/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py index a4d4388677c..337fed4d11a 100644 --- a/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py +++ b/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py @@ -16,6 +16,7 @@ class msp_countable_income(Variable): "https://secure.ssa.gov/apps10/poms.nsf/lnx/0501715010", "https://www.medicare.gov/basics/costs/help/medicare-savings-programs", "https://www.law.cornell.edu/uscode/text/42/1396a#r_2", + "https://www.dhs.state.il.us/page.aspx?item=16387", ) documentation = """ MSP countable income uses SSI methodology per 42 U.S.C. 1396d(p)(1)(B), @@ -33,7 +34,9 @@ class msp_countable_income(Variable): Under 42 U.S.C. 1396a(r)(2) a state may exclude more than the $20 SSI general income exclusion; Illinois and Mississippi use their larger - exclusion in its place. + exclusion in its place. Mississippi takes it once from a couple's + combined income; Illinois gives each applying spouse with income their + own exclusion, up to that spouse's income. """ def formula(person, period, parameters): @@ -57,6 +60,18 @@ def formula(person, period, parameters): general_exclusion = max_( ssi_exclusions.general, p.state_general_exclusion[state] ) + # Illinois gives each applying spouse one exemption on their own + # non-SSI income (PM 15-04-03-a); SSI and Mississippi allow one per + # couple. + own_monthly_income = add( + person, period, ["ssi_earned_income", "ssi_unearned_income"] + ) + per_spouse = p.state_general_exclusion_per_spouse[state].astype(bool) + couple_general_exclusion = where( + per_spouse, + person.marital_unit.sum(min_(general_exclusion, own_monthly_income)), + general_exclusion, + ) spouse_earned_income = person( "ssi_earned_income_deemed_from_ineligible_spouse", year @@ -81,7 +96,7 @@ def formula(person, period, parameters): person.marital_unit.sum(unearned_income), parameters, year, - general_exclusion=general_exclusion, + general_exclusion=couple_general_exclusion, ) deemed_countable = _apply_ssi_exclusions( From 55d67322b26069a445aa960d56244c6355b7e624 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 26 Oct 2026 16:54:59 -0400 Subject: [PATCH 07/22] Apply local review: pin dated limits, test limit boundaries, fix references - Year-keyed cases pin every dated CT, DC, NH, RI, NY, MN, ND and WI income limit; cases sit exactly at the IL, ND, CA and NY limits, with CA one dollar over, CA 2024 without a limit, and couples at the NY, CA and IL couple asset limits. - NJ and CA cases use incomes above the optional ABD pathway. - Disabled adults in AR, IA, IL, ND and NJ are in a medically needy category. - Arkansas spend down in cents (108.33 / 216.66, DHS quick reference). - Fix NY GIS 22 MA/11 and RI 210-RICR-40-00-3 titles, the RI section, the KS F-8 page; cite 305 ILCS 5/5-2 and Welf. & Inst. Code 14005.62. Co-Authored-By: Claude Opus 5.5 --- .../medically_needy/limit/assets/couple.yaml | 4 +- .../limit/assets/individual.yaml | 4 +- .../medically_needy/limit/income/couple.yaml | 12 +- .../income/couple_uses_individual_limit.yaml | 2 +- .../limit/income/fpg_rate.yaml | 4 +- .../limit/income/individual.yaml | 12 +- .../limit/income/ssi_rate.yaml | 2 +- ..._in_medicaid_medically_needy_category.yaml | 41 +++ .../is_medically_needy_for_medicaid.yaml | 198 +++++++++++-- ...medicaid_medically_needy_income_limit.yaml | 271 ++++++++++++++++-- .../medicaid_medically_needy_income_limit.py | 5 - 11 files changed, 494 insertions(+), 61 deletions(-) diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml index c58b38bcbc0..9dfb6fb3630 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml @@ -8,6 +8,8 @@ metadata: reference: - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ + - title: California Welfare and Institutions Code 14005.62(a), (c), (d) + href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=WIC§ionNum=14005.62 - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2-4" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 - title: "California DHCS All County Welfare Directors Letter 22-25, Elimination of Asset Limits for Non-MAGI Medi-Cal Programs #page 1-2" @@ -16,7 +18,7 @@ metadata: href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=1 - title: Illinois Department of Human Services Policy Manual PM 07-02-01 - Asset Limits href: https://www.dhs.state.il.us/page.aspx?Item=14876 - - title: New York DOH GIS 22 MA/11, 2023 Medicaid Levels and Other Updates + - title: New York DOH GIS 22 MA/11, Increase of Medicaid Medically Needy Income Level to 138% of the Federal Poverty Level href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma11.pdf#page=2 - title: New York DOH GIS 23 MA/02, Attachment 1, 2023 Income and Resource Standards href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/23ma02_att1.pdf#page=2 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml index ff51210eb6b..c49a71f390b 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml @@ -8,6 +8,8 @@ metadata: reference: - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ + - title: California Welfare and Institutions Code 14005.62(a), (c), (d) + href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=WIC§ionNum=14005.62 - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2-4" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 - title: "California DHCS All County Welfare Directors Letter 22-25, Elimination of Asset Limits for Non-MAGI Medi-Cal Programs #page 1-2" @@ -16,7 +18,7 @@ metadata: href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=1 - title: Illinois Department of Human Services Policy Manual PM 07-02-01 - Asset Limits href: https://www.dhs.state.il.us/page.aspx?Item=14876 - - title: New York DOH GIS 22 MA/11, 2023 Medicaid Levels and Other Updates + - title: New York DOH GIS 22 MA/11, Increase of Medicaid Medically Needy Income Level to 138% of the Federal Poverty Level href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma11.pdf#page=2 - title: New York DOH GIS 23 MA/02, Attachment 1, 2023 Income and Resource Standards href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/23ma02_att1.pdf#page=2 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml index 06603c1f8db..98d1181ad7e 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml @@ -1,4 +1,4 @@ -description: Maximum income for a couple to qualify for Medicaid under the 'medically needy' pathway. States whose limit is a share of the poverty guideline or the SSI federal benefit rate (fpg_rate, ssi_rate) are omitted here from the date that rule applies. +description: States limit income for a couple to this monthly amount under the Medicaid medically needy pathway; from the date a state's fpg_rate or ssi_rate is positive, the formula uses that rate instead. metadata: label: Medicaid medically needy pathway for couples income limit breakdown: @@ -6,6 +6,8 @@ metadata: unit: currency-USD period: month reference: + - title: Arkansas DHS Division of County Operations, Health Care Eligibility Quick Reference (January 2025), AABD Adult Spend Down + href: https://humanservices.arkansas.gov/wp-content/uploads/Quick-Reference.pdf#page=1 - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ - title: Connecticut State Plan Amendment CT-22-0031, Medically Needy Income Level (effective July 1, 2022) @@ -34,11 +36,11 @@ metadata: href: https://www.medicaid.gov/medicaid/spa/downloads/NH-25-0012.pdf#page=7 - title: New Hampshire State Plan Amendment NH-25-0019, Medically Needy Income Level (effective July 1, 2025) href: https://www.medicaid.gov/medicaid/spa/downloads/NH-25-0019.pdf#page=7 - - title: New York DOH GIS 22 MA/11, 2023 Medicaid Levels and Other Updates + - title: New York DOH GIS 22 MA/11, Increase of Medicaid Medically Needy Income Level to 138% of the Federal Poverty Level href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma11.pdf#page=1 - - title: Rhode Island 210-RICR-40-00-3, Medicaid Affordable Care Coverage Groups (version effective January 1, 2020) + - title: Rhode Island 210-RICR-40-00-3, Medicaid Integrated Health Care Coverage, SSI Financial Eligibility Determinations (version effective January 1, 2020) href: https://rules.sos.ri.gov/Regulations/part/210-40-00-3?reg_id=10945 - - title: Rhode Island 210-RICR-40-00-3, section 3.2(A)(8), Medically Needy Income Limit + - title: Rhode Island 210-RICR-40-00-3, section 3.2.8(A)(8), Medically Needy Income Limit href: https://rules.sos.ri.gov/regulations/part/210-40-00-3 - title: Rhode Island State Plan Amendment RI-21-0004, Medically Needy Income Level (effective January 1, 2021) href: https://www.medicaid.gov/medicaid/spa/downloads/RI-21-0004.pdf#page=4 @@ -58,7 +60,7 @@ AK: AL: 2018-01-01: -.inf AR: - 2018-01-01: 217 + 2018-01-01: 216.66 AZ: 2018-01-01: -.inf CA: diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple_uses_individual_limit.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple_uses_individual_limit.yaml index ca50470a3d5..f77c9f8f5ea 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple_uses_individual_limit.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple_uses_individual_limit.yaml @@ -1,4 +1,4 @@ -description: The state applies its individual medically needy income limit to a couple, if this is true. +description: States apply the one-person medically needy income limit to a married couple under the Medicaid program, if this is true. metadata: unit: bool period: year diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/fpg_rate.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/fpg_rate.yaml index 999d34492a8..35e3524b029 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/fpg_rate.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/fpg_rate.yaml @@ -6,6 +6,8 @@ metadata: breakdown: - state_code reference: + - title: Illinois Public Aid Code, 305 ILCS 5/5-2(2)(a)(ii) - Classes of persons eligible + href: https://www.ilga.gov/Documents/legislation/ilcs/documents/030500050K5-2.htm - title: Illinois Department of Human Services Policy Manual PM 15-06-02-a - Community Standard href: https://www.dhs.state.il.us/page.aspx?item=16507 - title: Illinois Department of Human Services Policy Manual PM 15-06-02-c - Standard for a client living with a spouse @@ -28,7 +30,7 @@ metadata: href: https://www.nd.gov/dhs/policymanuals/51003/Content/ML/2023/ML%203702%20Federal%20Poverty%20Level%20Updates%2004-01-2023.pdf#page=6 - title: North Dakota State Plan Amendment ND-23-0034 (effective January 1, 2024) href: https://www.medicaid.gov/medicaid/spa/downloads/ND-23-0034.pdf#page=2 - - title: New York DOH GIS 22 MA/11, 2023 Medicaid Levels and Other Updates + - title: New York DOH GIS 22 MA/11, Increase of Medicaid Medically Needy Income Level to 138% of the Federal Poverty Level href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma11.pdf#page=1 - title: New York State Plan Amendment NY-23-0001 (effective January 1, 2023) href: https://www.medicaid.gov/medicaid/spa/downloads/NY-23-0001.pdf#page=5 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml index dbb1f78cb85..3755f3f6a79 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml @@ -1,4 +1,4 @@ -description: Maximum income for an individual to qualify for Medicaid under the 'medically needy' pathway. States whose limit is a share of the poverty guideline or the SSI federal benefit rate (fpg_rate, ssi_rate) are omitted here from the date that rule applies. +description: States limit income for an individual to this monthly amount under the Medicaid medically needy pathway; from the date a state's fpg_rate or ssi_rate is positive, the formula uses that rate instead. metadata: label: Medicaid medically needy pathway for individuals income limit breakdown: @@ -6,6 +6,8 @@ metadata: unit: currency-USD period: month reference: + - title: Arkansas DHS Division of County Operations, Health Care Eligibility Quick Reference (January 2025), AABD Adult Spend Down + href: https://humanservices.arkansas.gov/wp-content/uploads/Quick-Reference.pdf#page=1 - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ - title: Connecticut State Plan Amendment CT-22-0031, Medically Needy Income Level (effective July 1, 2022) @@ -34,11 +36,11 @@ metadata: href: https://www.medicaid.gov/medicaid/spa/downloads/NH-25-0012.pdf#page=7 - title: New Hampshire State Plan Amendment NH-25-0019, Medically Needy Income Level (effective July 1, 2025) href: https://www.medicaid.gov/medicaid/spa/downloads/NH-25-0019.pdf#page=7 - - title: New York DOH GIS 22 MA/11, 2023 Medicaid Levels and Other Updates + - title: New York DOH GIS 22 MA/11, Increase of Medicaid Medically Needy Income Level to 138% of the Federal Poverty Level href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma11.pdf#page=1 - - title: Rhode Island 210-RICR-40-00-3, Medicaid Affordable Care Coverage Groups (version effective January 1, 2020) + - title: Rhode Island 210-RICR-40-00-3, Medicaid Integrated Health Care Coverage, SSI Financial Eligibility Determinations (version effective January 1, 2020) href: https://rules.sos.ri.gov/Regulations/part/210-40-00-3?reg_id=10945 - - title: Rhode Island 210-RICR-40-00-3, section 3.2(A)(8), Medically Needy Income Limit + - title: Rhode Island 210-RICR-40-00-3, section 3.2.8(A)(8), Medically Needy Income Limit href: https://rules.sos.ri.gov/regulations/part/210-40-00-3 - title: Rhode Island State Plan Amendment RI-21-0004, Medically Needy Income Level (effective January 1, 2021) href: https://www.medicaid.gov/medicaid/spa/downloads/RI-21-0004.pdf#page=4 @@ -58,7 +60,7 @@ AK: AL: 2018-01-01: -.inf AR: - 2018-01-01: 108 + 2018-01-01: 108.33 AZ: 2018-01-01: -.inf CA: diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/ssi_rate.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/ssi_rate.yaml index d53e8a792ee..eb3784d907f 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/ssi_rate.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/ssi_rate.yaml @@ -9,7 +9,7 @@ metadata: - title: "CMS approval of Kansas State Plan Amendment KS-25-0019, medically needy income disregard to the SSI federal benefit rate #page 2,46" href: https://www.medicaid.gov/medicaid/spa/downloads/KS-25-0019.pdf#page=2 - title: Kansas Medical Assistance Standards, KEESM Appendix F-8 (January 2026), Income Standards for Independent Living - href: https://www.kancare.ks.gov/home/showpublisheddocument/6204/639013856776770000 + href: https://www.kancare.ks.gov/home/showpublisheddocument/6204/639013856776770000#page=3 - title: Washington Administrative Code 182-519-0050(5) - Monthly income and countable resource standards for medically needy (MN) href: https://app.leg.wa.gov/WAC/default.aspx?cite=182-519-0050 - title: Washington State Register 12-20-001, amending WAC 182-519-0050 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_in_medicaid_medically_needy_category.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_in_medicaid_medically_needy_category.yaml index 001b939bc35..32e41686e95 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_in_medicaid_medically_needy_category.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_in_medicaid_medically_needy_category.yaml @@ -13,3 +13,44 @@ state_code: MA output: is_in_medicaid_medically_needy_category: false + +- name: Disabled adults in Arkansas, Iowa, Illinois, North Dakota and New Jersey are in a medically needy category. + period: 2026 + input: + people: + person1: + age: 50 + meets_ssi_disability_criteria: true + person2: + age: 50 + meets_ssi_disability_criteria: true + person3: + age: 50 + meets_ssi_disability_criteria: true + person4: + age: 50 + meets_ssi_disability_criteria: true + person5: + age: 50 + meets_ssi_disability_criteria: true + households: + household1: + members: [person1] + state_code: AR + household2: + members: [person2] + state_code: IA + household3: + members: [person3] + state_code: IL + household4: + members: [person4] + state_code: ND + household5: + members: [person5] + state_code: NJ + output: + # Iowa 441-75.8(2)"c" (SSI-related persons), the NJ fact sheet (blind or + # disabled), NDAC 75-02-02.1-26(1) (aged, blind and disabled groups), the + # AR AABD spend down and IL PM 15-06-02-c cover disabled people. + is_in_medicaid_medically_needy_category: [true, true, true, true, true] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml index a735f81df04..caebe8f22c2 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml @@ -63,7 +63,7 @@ ssi_countable_resources: 1_500 state_code: AR output: - # Limit 108 x 12 = 1,296. 14,160 is over it; 14,160 - 13,000 = 1,160 is not. + # Limit 108.33 x 12 = 1,299.96. 14,160 is over it; 14,160 - 13,000 = 1,160 is not. is_in_medicaid_medically_needy_category: true is_medically_needy_for_medicaid: true @@ -83,19 +83,20 @@ is_in_medicaid_medically_needy_category: true is_medically_needy_for_medicaid: true -- name: Case 5, New Jersey senior qualifies after medical spenddown. +- name: Case 5, New Jersey senior above the optional aged, blind and disabled limit qualifies after medical spenddown. period: 2026 input: age: 70 is_adult_for_medicaid: false is_optional_senior_or_disabled_for_medicaid: false is_ssi_recipient_for_medicaid: false - ssi_countable_income: 14_160 - medicaid_medically_needy_medical_expenses: 10_000 - ssi_countable_resources: 3_500 + ssi_countable_income: 18_000 + medicaid_medically_needy_medical_expenses: 14_000 + ssi_countable_resources: 4_000 state_code: NJ output: - # Limit 367 x 12 = 4,404. 14,160 - 10,000 = 4,160; assets 3,500 are under 4,000. + # 18,000 is over NJ's 100% FPL optional limit (15,960) and the SSI rate (11,928). + # Limit 367 x 12 = 4,404; 18,000 - 14,000 = 4,000. Assets 4,000 equal the limit. is_in_medicaid_medically_needy_category: true is_medically_needy_for_medicaid: true @@ -108,10 +109,10 @@ is_ssi_recipient_for_medicaid: false ssi_countable_income: 20_000 medicaid_medically_needy_medical_expenses: 5_000 - ssi_countable_resources: 10_000 + ssi_countable_resources: 17_500 state_code: IL output: - # Limit 15,960 (100% FPG). 20,000 - 5,000 = 15,000; assets 10,000 are under 17,500. + # Limit 15,960 (100% FPG). 20,000 - 5,000 = 15,000; assets 17,500 equal the limit. is_in_medicaid_medically_needy_category: true is_medically_needy_for_medicaid: true @@ -122,32 +123,35 @@ is_adult_for_medicaid: false is_optional_senior_or_disabled_for_medicaid: false is_ssi_recipient_for_medicaid: false - ssi_countable_income: 18_000 + ssi_countable_income: 18_364 medicaid_medically_needy_medical_expenses: 4_000 ssi_countable_resources: 2_500 state_code: ND output: - # Limit 0.9 x 15,960 = 14,364. 18,000 - 4,000 = 14,000; assets 2,500 are under 3,000. + # Limit 0.9 x 15,960 = 14,364. 18,364 - 4,000 = 14,364, equal to the limit; + # assets 2,500 are under 3,000. is_in_medicaid_medically_needy_category: true is_medically_needy_for_medicaid: true -- name: Case 8, California senior with assets under the reinstated 2026 limit qualifies. +- name: Case 8, California senior with assets exactly at the reinstated 2026 limit qualifies. period: 2026 input: age: 70 is_adult_for_medicaid: false is_optional_senior_or_disabled_for_medicaid: false is_ssi_recipient_for_medicaid: false - ssi_countable_income: 9_000 - medicaid_medically_needy_medical_expenses: 2_000 - ssi_countable_resources: 120_000 + ssi_countable_income: 26_400 + medicaid_medically_needy_medical_expenses: 19_500 + ssi_countable_resources: 130_000 state_code: CA output: - # Limit 600 x 12 = 7,200. 9,000 - 2,000 = 7,000; assets 120,000 are under 130,000. + # 26,400 is over the Aged and Disabled FPL limit (138% FPL, 22,024.80) and the + # SSI and SSP payment level. Limit 600 x 12 = 7,200; 26,400 - 19,500 = 6,900. + # Assets equal the 130,000 limit. is_in_medicaid_medically_needy_category: true is_medically_needy_for_medicaid: true -- name: Case 9, New York senior with assets under the 2026 resource level qualifies. +- name: Case 9, New York senior with assets at the 2026 resource level qualifies. period: 2026 input: age: 70 @@ -156,9 +160,167 @@ is_ssi_recipient_for_medicaid: false ssi_countable_income: 25_000 medicaid_medically_needy_medical_expenses: 5_000 - ssi_countable_resources: 30_000 + ssi_countable_resources: 33_038 state_code: NY output: - # Limit 1.38 x 15,960 = 22,024.80. 25,000 - 5,000 = 20,000; assets 30,000 are under 33,038. + # Limit 1.38 x 15,960 = 22,024.80. 25,000 - 5,000 = 20,000; assets 33,038 equal + # the 2026 resource level. is_in_medicaid_medically_needy_category: true is_medically_needy_for_medicaid: true + +- name: Case 10, California senior one dollar over the reinstated 2026 asset limit is ineligible. + period: 2026 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 26_400 + medicaid_medically_needy_medical_expenses: 19_500 + ssi_countable_resources: 130_001 + state_code: CA + output: + # Income passes (6,900 <= 7,200); assets 130,001 exceed 130,000. + is_medically_needy_for_medicaid: false + +- name: Case 11, California senior with large assets qualifies in 2024, when non-MAGI asset limits did not apply. + period: 2024 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 26_400 + medicaid_medically_needy_medical_expenses: 19_500 + ssi_countable_resources: 1_000_000 + state_code: CA + output: + # ACWDL 22-25: no asset limit from January 1, 2024. Limit 600 x 12 = 7,200; + # 26,400 - 19,500 = 6,900. + is_medically_needy_for_medicaid: true + +- name: Case 12, New York senior with resources exactly at each year's level qualifies. + period: 2026 + input: + people: + person1: + age: {2022: 70, 2023: 71, 2024: 72, 2025: 73, 2026: 74} + is_adult_for_medicaid: {2022: false, 2023: false, 2024: false, 2025: false, 2026: false} + is_optional_senior_or_disabled_for_medicaid: {2022: false, 2023: false, 2024: false, 2025: false, 2026: false} + is_ssi_recipient_for_medicaid: {2022: false, 2023: false, 2024: false, 2025: false, 2026: false} + ssi_countable_income: {2022: 25_000, 2023: 25_000, 2024: 25_000, 2025: 25_000, 2026: 25_000} + medicaid_medically_needy_medical_expenses: {2022: 15_000, 2023: 5_000, 2024: 5_000, 2025: 5_000, 2026: 5_000} + ssi_countable_resources: {2022: 16_800, 2023: 30_182, 2024: 31_175, 2025: 32_396, 2026: 33_038} + households: + household: + members: [person1] + state_code: {2022: NY, 2023: NY, 2024: NY, 2025: NY, 2026: NY} + output: + # 2022: 25,000 - 15,000 = 10,000 <= 934 x 12 = 11,208. + # 2023-2026: 20,000 <= 1.38 x FPG (20,120.40, 20,782.80, 21,597, 22,024.80). + # Resources equal each year's level (GIS 22 MA/11 p2; the 2023-2026 GIS + # attachments). + is_medically_needy_for_medicaid: + 2022: true + 2023: true + 2024: true + 2025: true + 2026: true + +- name: Case 13, New York, California and Illinois couples with resources exactly at the 2026 couple limits qualify. + period: 2026 + input: + people: + person1: + age: 70 + is_tax_unit_head: true + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 20_000 + medicaid_medically_needy_medical_expenses: 6_000 + ssi_countable_resources: 22_398 + person2: + age: 68 + is_tax_unit_spouse: true + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 20_000 + medicaid_medically_needy_medical_expenses: 6_000 + ssi_countable_resources: 22_398 + person3: + age: 72 + is_tax_unit_head: true + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 18_000 + medicaid_medically_needy_medical_expenses: 12_500 + ssi_countable_resources: 97_500 + person4: + age: 70 + is_tax_unit_spouse: true + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 18_000 + medicaid_medically_needy_medical_expenses: 12_500 + ssi_countable_resources: 97_500 + person5: + age: 71 + is_tax_unit_head: true + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 14_000 + medicaid_medically_needy_medical_expenses: 3_500 + ssi_countable_resources: 8_750 + person6: + age: 69 + is_tax_unit_spouse: true + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 14_000 + medicaid_medically_needy_medical_expenses: 3_500 + ssi_countable_resources: 8_750 + marital_units: + marital_unit1: + members: [person1, person2] + marital_unit2: + members: [person3, person4] + marital_unit3: + members: [person5, person6] + tax_units: + tax_unit1: + members: [person1, person2] + tax_unit_is_joint: true + tax_unit2: + members: [person3, person4] + tax_unit_is_joint: true + tax_unit3: + members: [person5, person6] + tax_unit_is_joint: true + spm_units: + spm_unit1: + members: [person1, person2] + spm_unit2: + members: [person3, person4] + spm_unit3: + members: [person5, person6] + households: + household1: + members: [person1, person2] + state_code: NY + household2: + members: [person3, person4] + state_code: CA + household3: + members: [person5, person6] + state_code: IL + output: + # NY: 40,000 - 12,000 = 28,000 <= 1.38 x 21,640 = 29,863.20; assets 44,796. + # CA: 36,000 - 25,000 = 11,000 <= 934 x 12 = 11,208; assets 195,000. + # IL: 28,000 - 7,000 = 21,000 <= 21,640; assets 17,500 (PM 07-02-01). + is_medically_needy_for_medicaid: [true, true, true, true, true, true] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml index 2f6c1a11737..2df42a91a6b 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml @@ -1,14 +1,41 @@ -- name: Case 1, Connecticut uses its March 2026 dollar limit from 2027. +- name: Case 1, Connecticut couple and individual dollar limits from 2023 to 2027. period: 2027 absolute_error_margin: 0.01 input: - age: 70 - state_code: CT + people: + person1: + age: 70 + person2: + age: 68 + person3: + age: 74 + marital_units: + marital_unit1: + members: [person1, person2] + marital_unit2: + members: [person3] + tax_units: + tax_unit1: + members: [person1, person2] + tax_unit2: + members: [person3] + households: + household: + members: [person1, person2, person3] + state_code: {2023: CT, 2024: CT, 2025: CT, 2026: CT, 2027: CT} output: - # 851 x 12 = 10,212. - medicaid_medically_needy_income_limit: 10_212 + # Outputs are [couple, couple, individual]. The annual variable reads the + # amount in force on January 1, times 12: 2023 879 / 653 (2022-07-01); + # 2024 946 / 700 (2024-01-01); 2025 980 / 723 (2024-03-01); + # 2026 1,128 / 835 (2025-03-01); 2027 1,153 / 851 (2026-03-01). + medicaid_medically_needy_income_limit: + 2023: [10_548, 10_548, 7_836] + 2024: [11_352, 11_352, 8_400] + 2025: [11_760, 11_760, 8_676] + 2026: [13_536, 13_536, 10_020] + 2027: [13_836, 13_836, 10_212] -- name: Case 2, District of Columbia couple uses its 2026 dollar limit. +- name: Case 2, District of Columbia couple and individual dollar limits from 2023 to 2026. period: 2026 absolute_error_margin: 0.01 input: @@ -17,21 +44,32 @@ age: 70 person2: age: 68 + person3: + age: 74 marital_units: - marital_unit: + marital_unit1: members: [person1, person2] + marital_unit2: + members: [person3] tax_units: - tax_unit: + tax_unit1: members: [person1, person2] + tax_unit2: + members: [person3] households: household: - members: [person1, person2] - state_code: DC + members: [person1, person2, person3] + state_code: {2023: DC, 2024: DC, 2025: DC, 2026: DC} output: - # 901.67 x 12 = 10,820.04. - medicaid_medically_needy_income_limit: [10_820.04, 10_820.04] + # Outputs are [couple, couple, individual]: 821.67 / 780.58, 851.67 / 809.08, + # 881.25 / 837.19 and 901.67 / 856.58, each times 12. + medicaid_medically_needy_income_limit: + 2023: [9_860.04, 9_860.04, 9_366.96] + 2024: [10_220.04, 10_220.04, 9_708.96] + 2025: [10_575, 10_575, 10_046.28] + 2026: [10_820.04, 10_820.04, 10_278.96] -- name: Case 3, Kansas uses its dollar limit before July 2025. +- name: Case 3, Kansas uses its 475-dollar limit for 2025; the July 2025 switch to the SSI rate applies from 2026 in this annual variable. period: 2025 absolute_error_margin: 0.01 input: @@ -41,6 +79,7 @@ # 475 x 12 = 5,700. medicaid_medically_needy_income_limit: 5_700 + - name: Case 4, Kansas couple uses the SSI couple rate from July 2025. period: 2026 absolute_error_margin: 0.01 @@ -64,6 +103,7 @@ # 1,491 x 12 = 17,892. medicaid_medically_needy_income_limit: [17_892, 17_892] + - name: Case 5, Minnesota uses 100 percent of the poverty guideline. period: 2026 absolute_error_margin: 0.01 @@ -74,15 +114,40 @@ # 1.00 x 15,960 = 15,960. medicaid_medically_needy_income_limit: 15_960 -- name: Case 6, New Hampshire uses its July 2025 dollar limit. + +- name: Case 6, New Hampshire couple and individual dollar limits in 2023, 2025 and 2026. period: 2026 absolute_error_margin: 0.01 input: - age: 70 - state_code: NH + people: + person1: + age: 70 + person2: + age: 68 + person3: + age: 74 + marital_units: + marital_unit1: + members: [person1, person2] + marital_unit2: + members: [person3] + tax_units: + tax_unit1: + members: [person1, person2] + tax_unit2: + members: [person3] + households: + household: + members: [person1, person2, person3] + state_code: {2023: NH, 2025: NH, 2026: NH} output: - # 939 x 12 = 11,268. - medicaid_medically_needy_income_limit: 11_268 + # Outputs are [couple, couple, individual]: 1,033 / 888 (2023-01-01), + # 1,066 / 916 (2025-01-01) and 1,093 / 939 (2025-07-01, first read in 2026), + # each times 12. + medicaid_medically_needy_income_limit: + 2023: [12_396, 12_396, 10_656] + 2025: [12_792, 12_792, 10_992] + 2026: [13_116, 13_116, 11_268] - name: Case 7, New York couple uses 138 percent of the poverty guideline. period: 2026 @@ -107,15 +172,44 @@ # 1.38 x 21,640 = 29,863.20. medicaid_medically_needy_income_limit: [29_863.2, 29_863.2] -- name: Case 8, Rhode Island uses its 2026 dollar limit. + +- name: Case 8, Rhode Island couple and individual dollar limits from 2019 to 2026. period: 2026 absolute_error_margin: 0.01 input: - age: 70 - state_code: RI + people: + person1: + age: 70 + person2: + age: 68 + person3: + age: 74 + marital_units: + marital_unit1: + members: [person1, person2] + marital_unit2: + members: [person3] + tax_units: + tax_unit1: + members: [person1, person2] + tax_unit2: + members: [person3] + households: + household: + members: [person1, person2, person3] + state_code: {2019: RI, 2020: RI, 2021: RI, 2022: RI, 2023: RI, 2024: RI, 2025: RI, 2026: RI} output: - # 1,200 x 12 = 14,400. - medicaid_medically_needy_income_limit: 14_400 + # Outputs are [couple, couple, individual]: the MNIL updated each January 1, + # times 12 (958 / 917 in 2019 up to 1,242 / 1,200 in 2026). + medicaid_medically_needy_income_limit: + 2019: [11_496, 11_496, 11_004] + 2020: [11_700, 11_700, 11_196] + 2021: [11_904, 11_904, 11_400] + 2022: [12_600, 12_600, 12_096] + 2023: [13_596, 13_596, 13_104] + 2024: [14_100, 14_100, 13_596] + 2025: [14_496, 14_496, 14_004] + 2026: [14_904, 14_904, 14_400] - name: Case 9, Utah couple uses 100 percent of the two-person poverty guideline. period: 2026 @@ -140,6 +234,7 @@ # 1.00 x 21,640 = 21,640. medicaid_medically_needy_income_limit: [21_640, 21_640] + - name: Case 10, Washington couple uses the one-person SSI rate. period: 2026 absolute_error_margin: 0.01 @@ -163,6 +258,7 @@ # 994 x 12 = 11,928. medicaid_medically_needy_income_limit: [11_928, 11_928] + - name: Case 11, Wisconsin uses 100 percent of the poverty guideline. period: 2026 absolute_error_margin: 0.01 @@ -173,6 +269,7 @@ # 1.00 x 15,960 = 15,960. medicaid_medically_needy_income_limit: 15_960 + - name: Case 12, Illinois couple uses 100 percent of the two-person poverty guideline. period: 2026 absolute_error_margin: 0.01 @@ -196,6 +293,7 @@ # 1.00 x 21,640 = 21,640. medicaid_medically_needy_income_limit: [21_640, 21_640] + - name: Case 13, North Dakota uses 90 percent of the poverty guideline. period: 2026 absolute_error_margin: 0.01 @@ -205,3 +303,130 @@ output: # 0.9 x 15,960 = 14,364. medicaid_medically_needy_income_limit: 14_364 + +- name: Case 14, New York uses its dollar limit in 2022 and 138 percent of the poverty guideline from 2023. + period: 2023 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + person2: + age: 68 + person3: + age: 74 + marital_units: + marital_unit1: + members: [person1, person2] + marital_unit2: + members: [person3] + tax_units: + tax_unit1: + members: [person1, person2] + tax_unit2: + members: [person3] + households: + household: + members: [person1, person2, person3] + state_code: {2022: NY, 2023: NY} + output: + # Outputs are [couple, couple, individual]. 2022: 1,367 / 934 times 12. + # 2023: 1.38 x 19,720 and 1.38 x 14,580. + medicaid_medically_needy_income_limit: + 2022: [16_404, 16_404, 11_208] + 2023: [27_213.6, 27_213.6, 20_120.4] + +- name: Case 15, Minnesota uses 80 percent of the poverty guideline in 2019 and 81 percent in 2020. + period: 2020 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + person2: + age: 68 + person3: + age: 74 + marital_units: + marital_unit1: + members: [person1, person2] + marital_unit2: + members: [person3] + tax_units: + tax_unit1: + members: [person1, person2] + tax_unit2: + members: [person3] + households: + household: + members: [person1, person2, person3] + state_code: {2019: MN, 2020: MN} + output: + # Outputs are [couple, couple, individual]. 2019: 0.8 x 16,910 and + # 0.8 x 12,490. The June 2019 rate of 0.81 is first read in 2020: + # 0.81 x 17,240 and 0.81 x 12,760. + medicaid_medically_needy_income_limit: + 2019: [13_528, 13_528, 9_992] + 2020: [13_964.4, 13_964.4, 10_335.6] + +- name: Case 16, North Dakota uses 83 percent of the poverty guideline in 2023. + period: 2023 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + person2: + age: 68 + person3: + age: 74 + marital_units: + marital_unit1: + members: [person1, person2] + marital_unit2: + members: [person3] + tax_units: + tax_unit1: + members: [person1, person2] + tax_unit2: + members: [person3] + households: + household: + members: [person1, person2, person3] + state_code: {2023: ND} + output: + # Outputs are [couple, couple, individual]: 0.83 x 19,720 and 0.83 x 14,580. + medicaid_medically_needy_income_limit: + 2023: [16_367.6, 16_367.6, 12_101.4] + +- name: Case 17, Wisconsin uses its dollar limit in 2019 and 100 percent of the poverty guideline from 2020. + period: 2020 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + person2: + age: 68 + person3: + age: 74 + marital_units: + marital_unit1: + members: [person1, person2] + marital_unit2: + members: [person3] + tax_units: + tax_unit1: + members: [person1, person2] + tax_unit2: + members: [person3] + households: + household: + members: [person1, person2, person3] + state_code: {2019: WI, 2020: WI} + output: + # Outputs are [couple, couple, individual]. 2019: 592 for one or two + # people, times 12. The September 2019 rate is first read in 2020. + medicaid_medically_needy_income_limit: + 2019: [7_104, 7_104, 7_104] + 2020: [17_240, 17_240, 12_760] diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py index 5b2f823e17c..c40af6acf41 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py @@ -6,11 +6,6 @@ class medicaid_medically_needy_income_limit(Variable): value_type = float entity = Person label = "Medicaid medically needy income limit" - documentation = ( - "Annual medically needy income limit for an individual or a married " - "couple. States set it as a dollar amount, a share of the federal " - "poverty guideline, or a share of the SSI federal benefit rate." - ) unit = USD definition_period = YEAR reference = ( From 9705eae0b4ad02b99ff9a5c0013d503486029db9 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 26 Oct 2026 17:21:46 -0400 Subject: [PATCH 08/22] Add California's July 2022 ABD asset step and timing tests ACWDL 21-31 raised the non-MAGI limit, including the ABD FPL program, to $130,000 for one person and $195,000 for two on July 1, 2022; the CA ABD rows jumped from $2,000 / $3,000 straight to no limit in 2024. Add the 2022 rows with the 21-31 reference and a 2023 case. Add 2027 cases showing the annual variables still read $130,000, WDP cases at the 2026 three-person limit and at the ten-person cap, and the page lists in the two_people reference titles. Co-Authored-By: Claude Opus 5.5 --- .../ca-medi-cal-asset-limit-2027.fixed.md | 2 +- .../assets/limit/couple.yaml | 4 + .../assets/limit/individual.yaml | 4 + .../wdp/eligibility/asset/two_people.yaml | 4 +- ...nal_senior_or_disabled_asset_eligible.yaml | 21 +++ .../is_medically_needy_for_medicaid.yaml | 17 +++ .../eligibility/ca_wdp_asset_eligible.yaml | 122 ++++++++++++++++++ 7 files changed, 171 insertions(+), 3 deletions(-) diff --git a/changelog.d/ca-medi-cal-asset-limit-2027.fixed.md b/changelog.d/ca-medi-cal-asset-limit-2027.fixed.md index 8ef1392b9b2..1e3c971cef6 100644 --- a/changelog.d/ca-medi-cal-asset-limit-2027.fixed.md +++ b/changelog.d/ca-medi-cal-asset-limit-2027.fixed.md @@ -1 +1 @@ -California's non-MAGI Medi-Cal asset limit falls to $21,000 for one person and $31,000 for two on July 1, 2027 (SB 164) in the aged, blind and disabled, medically needy, Medicare Savings Program and 250% Working Disabled Program limits; the Working Disabled Program also adds $1,550 for each person beyond two. +California's non-MAGI Medi-Cal asset limit falls to $21,000 for one person and $31,000 for two on July 1, 2027 (SB 164) in the aged, blind and disabled, medically needy, Medicare Savings Program and 250% Working Disabled Program limits; the Working Disabled Program also adds $1,550 for each person beyond two. The aged, blind and disabled limit also gains its missing July 1, 2022 step to $130,000 / $195,000. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml index 805213da166..c8a36b3b26e 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml @@ -10,6 +10,8 @@ metadata: href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ - title: "Asset Limit Changes for Non-MAGI Medi-Cal | California DHCS (asset limit reinstated at $130,000 plus $65,000 per additional household member effective January 1, 2026)" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/Pages/Asset-Limit-Changes-for-Non-MAGI-Medi-Cal.aspx + - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2-4" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Section 69 - Welfare and Institutions Code 14005.62(a), operative July 1, 2027 href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 - title: "California DHCS All County Welfare Directors Letter 25-14 (reinstatement of the non-MAGI Medi-Cal asset limit)" @@ -26,6 +28,8 @@ AR: 2024-01-01: 14_130 CA: 2015-01-01: 3_000 + # Annual calculations read parameters on January 1, so the July 1, 2022 value first applies in 2023. + 2022-07-01: 195_000 2024-01-01: .inf 2026-01-01: 195_000 # Annual calculations read parameters on January 1, so the July 1, 2027 value first applies in 2028. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml index eac3cda8d87..539ad98dd8f 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml @@ -10,6 +10,8 @@ metadata: href: https://www.kff.org/report-section/medicaid-eligibility-and-enrollment-policies-for-seniors-and-people-with-disabilities-non-magi-during-the-unwinding-appendix/ - title: "Asset Limit Changes for Non-MAGI Medi-Cal | California DHCS (asset limit reinstated at $130,000 for an individual effective January 1, 2026)" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/Pages/Asset-Limit-Changes-for-Non-MAGI-Medi-Cal.aspx + - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2-4" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Section 69 - Welfare and Institutions Code 14005.62(a), operative July 1, 2027 href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 - title: "California DHCS All County Welfare Directors Letter 25-14 (reinstatement of the non-MAGI Medi-Cal asset limit)" @@ -26,6 +28,8 @@ AR: 2024-01-01: 9_430 CA: 2015-01-01: 2_000 + # Annual calculations read parameters on January 1, so the July 1, 2022 value first applies in 2023. + 2022-07-01: 130_000 2024-01-01: .inf 2026-01-01: 130_000 # Annual calculations read parameters on January 1, so the July 1, 2027 value first applies in 2028. diff --git a/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/two_people.yaml b/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/two_people.yaml index 1fdb50038b9..33580f9430e 100644 --- a/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/two_people.yaml +++ b/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/two_people.yaml @@ -13,9 +13,9 @@ metadata: reference: - title: Working Disabled Program | Department of Health Care Services href: https://www.dhcs.ca.gov/services/working-disabled-program/ - - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2,4" + - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2-4" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 - - title: California DHCS All County Welfare Directors Letter 22-25, Elimination of Asset Limits for Non-MAGI Medi-Cal Programs + - title: "California DHCS All County Welfare Directors Letter 22-25, Elimination of Asset Limits for Non-MAGI Medi-Cal Programs #page 2,5" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/22-25.pdf#page=2 - title: "California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs #page 2,8-9" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=2 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml index 537fab96c6e..ddb9f91f71b 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml @@ -212,3 +212,24 @@ output: # 15,000 + 15,000 = 30,000 is under the 31,000 couple limit. is_optional_senior_or_disabled_asset_eligible: [true, true] + +# ACWDL 21-31 raised California's limit to 130,000 for one person on +# July 1, 2022. This annual variable reads the January 1 value, so 2023 is +# the first year it applies. +- name: assets below the July 2022 CA limit in 2023, eligible + period: 2023 + input: + ssi_countable_resources: 100_000 + state_code: CA + output: + # 100,000 is under the 130,000 limit; the old 2,000 limit would fail. + is_optional_senior_or_disabled_asset_eligible: true + +- name: assets above the July 2027 CA limit in 2027, still eligible + period: 2027 + input: + ssi_countable_resources: 21_001 + state_code: CA + output: + # January 1, 2027 still reads the 130,000 limit; 21,000 first applies in 2028. + is_optional_senior_or_disabled_asset_eligible: true diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml index 4fcf7de79a2..4c6b6e3ae52 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml @@ -272,3 +272,20 @@ # limit; resources may not exceed it. is_in_medicaid_medically_needy_category: [true, true] is_medically_needy_for_medicaid: [true, true] + +- name: Case 14, California senior with assets above the July 2027 limit is still eligible in 2027. + period: 2027 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 9_000 + medicaid_medically_needy_medical_expenses: 2_000 + ssi_countable_resources: 21_001 + state_code: CA + output: + # Limit 600 x 12 = 7,200. 9,000 - 2,000 = 7,000 is under it. January 1, + # 2027 still reads the 130,000 asset limit; 21,000 first applies in 2028. + is_in_medicaid_medically_needy_category: true + is_medically_needy_for_medicaid: true diff --git a/policyengine_us/tests/policy/baseline/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.yaml index 4a3a1f01084..6c2c742d1e1 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.yaml @@ -146,3 +146,125 @@ # Limit 31,000 + 1 x 1,550 = 32,550. 16,000 + 16,551 + 0 = 32,551 is over # it. ca_wdp_asset_eligible: [false, false, false] + +- name: Case 8, one person above the July 2027 one-person limit is still eligible in 2027. + period: 2027 + input: + people: + person1: + age: 45 + ssi_countable_resources: 21_001 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: CA + output: + # January 1, 2027 still reads the 130,000 limit; 21,000 first applies in 2028. + ca_wdp_asset_eligible: true + +- name: Case 9, three-person tax unit at the 2026 three-person limit is eligible. + period: 2026 + input: + people: + person1: + age: 45 + ssi_countable_resources: 130_000 + person2: + age: 43 + ssi_countable_resources: 130_000 + person3: + age: 10 + tax_units: + tax_unit: + members: [person1, person2, person3] + households: + household: + members: [person1, person2, person3] + state_code: CA + output: + # Limit 195,000 + 1 x 65,000 = 260,000. 130,000 + 130,000 + 0 = 260,000 is + # at it; resources may not exceed it. + ca_wdp_asset_eligible: [true, true, true] + +- name: Case 10, eleven-person tax unit at the ten-person cap limit is eligible in 2028. + period: 2028 + input: + people: + person1: + age: 45 + ssi_countable_resources: 21_700 + person2: + age: 43 + ssi_countable_resources: 21_700 + person3: + age: 17 + person4: + age: 16 + person5: + age: 15 + person6: + age: 14 + person7: + age: 12 + person8: + age: 10 + person9: + age: 8 + person10: + age: 6 + person11: + age: 3 + tax_units: + tax_unit: + members: [person1, person2, person3, person4, person5, person6, person7, person8, person9, person10, person11] + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7, person8, person9, person10, person11] + state_code: CA + output: + # Size is capped at 10: 31,000 + 8 x 1,550 = 43,400. 21,700 + 21,700 = + # 43,400 is at it; resources may not exceed it. + ca_wdp_asset_eligible: [true, true, true, true, true, true, true, true, true, true, true] + +- name: Case 11, eleven-person tax unit above the ten-person cap limit is ineligible in 2028. + period: 2028 + input: + people: + person1: + age: 45 + ssi_countable_resources: 21_700 + person2: + age: 43 + ssi_countable_resources: 21_701 + person3: + age: 17 + person4: + age: 16 + person5: + age: 15 + person6: + age: 14 + person7: + age: 12 + person8: + age: 10 + person9: + age: 8 + person10: + age: 6 + person11: + age: 3 + tax_units: + tax_unit: + members: [person1, person2, person3, person4, person5, person6, person7, person8, person9, person10, person11] + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7, person8, person9, person10, person11] + state_code: CA + output: + # Size is capped at 10: 31,000 + 8 x 1,550 = 43,400. 21,700 + 21,701 = + # 43,401 is over it. + ca_wdp_asset_eligible: [false, false, false, false, false, false, false, false, false, false, false] From 3097223aeb8bbf95d34b5d1218b518c45113aaf9 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 26 Oct 2026 17:25:50 -0400 Subject: [PATCH 09/22] Encode Vermont's medically needy protected income level, 2018-2026 The PIL outside Chittenden County, the same for one and two people, each January 1 (HBEE 8.06(b), 29.14; DCF B17-26; DVHA charts 2020-2026). No 2019 PIL was found, so 2018's value stays in force through 2019. The higher Chittenden PIL is not modeled. Co-Authored-By: Claude Opus 5.5 --- .../medicaid-medically-needy-limits.fixed.md | 2 +- .../medically_needy/limit/income/couple.yaml | 31 ++++++++++++++ .../limit/income/individual.yaml | 31 ++++++++++++++ .../is_medically_needy_for_medicaid.yaml | 31 ++++++++++++++ ...medicaid_medically_needy_income_limit.yaml | 40 +++++++++++++++++++ 5 files changed, 134 insertions(+), 1 deletion(-) diff --git a/changelog.d/medicaid-medically-needy-limits.fixed.md b/changelog.d/medicaid-medically-needy-limits.fixed.md index 3494371ba71..48e30e0ab9a 100644 --- a/changelog.d/medicaid-medically-needy-limits.fixed.md +++ b/changelog.d/medicaid-medically-needy-limits.fixed.md @@ -1 +1 @@ -Turned on the Medicaid medically needy pathway for aged, blind and disabled people in Arkansas, Iowa, Illinois, New Jersey and North Dakota, and updated medically needy income and asset limits in 13 states, tying them to the poverty guideline or the SSI federal benefit rate where state rules do. +Turned on the Medicaid medically needy pathway for aged, blind and disabled people in Arkansas, Iowa, Illinois, New Jersey and North Dakota, and updated medically needy income and asset limits in 14 states, including Vermont's protected income level, tying them to the poverty guideline or the SSI federal benefit rate where state rules do. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml index 98d1181ad7e..7790f38e39c 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml @@ -54,6 +54,26 @@ metadata: href: https://www.medicaid.gov/medicaid/spa/downloads/RI-25-0003.pdf#page=7 - title: Rhode Island State Plan Amendment RI-26-0001, Medically Needy Income Level (effective January 1, 2026) href: https://www.medicaid.gov/medicaid/spa/downloads/RI-26-0001.pdf#page=7 + - title: Vermont Health Benefits Eligibility and Enrollment Rule, Part 2, section 8.06 - Medically-needy coverage group + href: https://humanservices.vermont.gov/sites/ahsnew/files/documents/HBEE-Part-2-Eligibility-Standards.pdf#page=19 + - title: "Vermont Health Benefits Eligibility and Enrollment Rule, Part 5, section 29.14 - Determination of countable income #page 51-52" + href: https://humanservices.vermont.gov/sites/ahsnew/files/documents/HBEE-Part-5-Financial-Methodologies.pdf#page=51 + - title: Vermont DCF Bulletin 17-26, P-2420 Eligibility maximums for MABD, effective 1/1/18 + href: https://outside.vermont.gov/dept/DCF/Shared%20Documents/ESD/Rules-Adopted/B17-26.pdf#page=3 + - title: Vermont DVHA 2020 MABD PIL FPL Income Chart, effective 1/1/2020 + href: https://dvha.vermont.gov/sites/dvha/files/doc_library/2020%20MABD%20PIL%20Chart%20FINAL.pdf + - title: Vermont DVHA 2021 Standards Change for Healthcare + href: https://dvha.vermont.gov/sites/dvha/files/doc_library/2021%20Standards%20Change%20for%20Healthcare%20Updated%201.14.21.pdf#page=1 + - title: Vermont DVHA 2022 Standards Change for Healthcare + href: https://dvha.vermont.gov/sites/dvha/files/doc_library/2022%20Standards%20Change%20for%20Healthcare%20Draft%20FINAL%20V.2%20corrected.pdf#page=1 + - title: Vermont DVHA 2023 Standards Change for Healthcare + href: https://dvha.vermont.gov/sites/dvha/files/documents/2023%20Standards%20Change%20for%20Healthcare%20FINAL%20%28with%2010-1-23%20DR%20Numbers%29%20%28003%29.pdf#page=1 + - title: Vermont DVHA 2024 Standards Change for Healthcare + href: https://dvha.vermont.gov/sites/dvha/files/documents/2024%20Standards%20Change%20for%20Healthcare%20FINAL%20Corrected%2012.19.pdf#page=1 + - title: Vermont DVHA 2025 Standards Change for Healthcare + href: https://dvha.vermont.gov/sites/dvha/files/documents/2025%20Standards%20Change%20for%20Healthcare%20FINAL.pdf#page=1 + - title: Vermont DVHA 2026 Standards Change for Healthcare + href: https://dvha.vermont.gov/sites/dvha/files/documents/Standards_Change_for_Healthcare_2026.pdf#page=1 AK: 2018-01-01: -.inf @@ -161,7 +181,18 @@ TX: VA: 2018-01-01: 659 VT: + # The protected income level (PIL) outside Chittenden County, the same for + # one and two people (HBEE 8.06(b), 29.14). The higher PIL inside Chittenden + # County is not modeled. No 2019 PIL was found, so 2018's value stays in + # force through 2019. 2018-01-01: 1_041 + 2020-01-01: 1_091 + 2021-01-01: 1_100 + 2022-01-01: 1_166 + 2023-01-01: 1_258 + 2024-01-01: 1_300 + 2025-01-01: 1_333 + 2026-01-01: 1_375 WV: 2018-01-01: 275 WI: diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml index 3755f3f6a79..876d9dfa73b 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml @@ -54,6 +54,26 @@ metadata: href: https://www.medicaid.gov/medicaid/spa/downloads/RI-25-0003.pdf#page=7 - title: Rhode Island State Plan Amendment RI-26-0001, Medically Needy Income Level (effective January 1, 2026) href: https://www.medicaid.gov/medicaid/spa/downloads/RI-26-0001.pdf#page=7 + - title: Vermont Health Benefits Eligibility and Enrollment Rule, Part 2, section 8.06 - Medically-needy coverage group + href: https://humanservices.vermont.gov/sites/ahsnew/files/documents/HBEE-Part-2-Eligibility-Standards.pdf#page=19 + - title: "Vermont Health Benefits Eligibility and Enrollment Rule, Part 5, section 29.14 - Determination of countable income #page 51-52" + href: https://humanservices.vermont.gov/sites/ahsnew/files/documents/HBEE-Part-5-Financial-Methodologies.pdf#page=51 + - title: Vermont DCF Bulletin 17-26, P-2420 Eligibility maximums for MABD, effective 1/1/18 + href: https://outside.vermont.gov/dept/DCF/Shared%20Documents/ESD/Rules-Adopted/B17-26.pdf#page=3 + - title: Vermont DVHA 2020 MABD PIL FPL Income Chart, effective 1/1/2020 + href: https://dvha.vermont.gov/sites/dvha/files/doc_library/2020%20MABD%20PIL%20Chart%20FINAL.pdf + - title: Vermont DVHA 2021 Standards Change for Healthcare + href: https://dvha.vermont.gov/sites/dvha/files/doc_library/2021%20Standards%20Change%20for%20Healthcare%20Updated%201.14.21.pdf#page=1 + - title: Vermont DVHA 2022 Standards Change for Healthcare + href: https://dvha.vermont.gov/sites/dvha/files/doc_library/2022%20Standards%20Change%20for%20Healthcare%20Draft%20FINAL%20V.2%20corrected.pdf#page=1 + - title: Vermont DVHA 2023 Standards Change for Healthcare + href: https://dvha.vermont.gov/sites/dvha/files/documents/2023%20Standards%20Change%20for%20Healthcare%20FINAL%20%28with%2010-1-23%20DR%20Numbers%29%20%28003%29.pdf#page=1 + - title: Vermont DVHA 2024 Standards Change for Healthcare + href: https://dvha.vermont.gov/sites/dvha/files/documents/2024%20Standards%20Change%20for%20Healthcare%20FINAL%20Corrected%2012.19.pdf#page=1 + - title: Vermont DVHA 2025 Standards Change for Healthcare + href: https://dvha.vermont.gov/sites/dvha/files/documents/2025%20Standards%20Change%20for%20Healthcare%20FINAL.pdf#page=1 + - title: Vermont DVHA 2026 Standards Change for Healthcare + href: https://dvha.vermont.gov/sites/dvha/files/documents/Standards_Change_for_Healthcare_2026.pdf#page=1 AK: 2018-01-01: -.inf @@ -161,7 +181,18 @@ TX: VA: 2018-01-01: 493 VT: + # The protected income level (PIL) outside Chittenden County, the same for + # one and two people (HBEE 8.06(b), 29.14). The higher PIL inside Chittenden + # County is not modeled. No 2019 PIL was found, so 2018's value stays in + # force through 2019. 2018-01-01: 1_041 + 2020-01-01: 1_091 + 2021-01-01: 1_100 + 2022-01-01: 1_166 + 2023-01-01: 1_258 + 2024-01-01: 1_300 + 2025-01-01: 1_333 + 2026-01-01: 1_375 WV: 2018-01-01: 200 WI: diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml index caebe8f22c2..41c4f6cecd1 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml @@ -324,3 +324,34 @@ # CA: 36,000 - 25,000 = 11,000 <= 934 x 12 = 11,208; assets 195,000. # IL: 28,000 - 7,000 = 21,000 <= 21,640; assets 17,500 (PM 07-02-01). is_medically_needy_for_medicaid: [true, true, true, true, true, true] + +- name: Case 14, Vermont senior with income after medical expenses at the 2026 protected income level qualifies. + period: 2026 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 20_000 + medicaid_medically_needy_medical_expenses: 3_500 + ssi_countable_resources: 1_500 + state_code: VT + output: + # HBEE 8.06(b): income at or below the PIL. 1,375 x 12 = 16,500; + # 20,000 - 3,500 = 16,500, equal to the limit. + is_medically_needy_for_medicaid: true + +- name: Case 15, Vermont senior with income after medical expenses one dollar a month over the 2026 protected income level is ineligible. + period: 2026 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 20_000 + medicaid_medically_needy_medical_expenses: 3_488 + ssi_countable_resources: 1_500 + state_code: VT + output: + # 20,000 - 3,488 = 16,512, or 1,376 a month, over 1,375. + is_medically_needy_for_medicaid: false diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml index 2df42a91a6b..c42c21cc37a 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml @@ -430,3 +430,43 @@ medicaid_medically_needy_income_limit: 2019: [7_104, 7_104, 7_104] 2020: [17_240, 17_240, 12_760] + +- name: Case 18, Vermont uses its protected income level outside Chittenden County from 2018 to 2026. + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + person2: + age: 68 + person3: + age: 74 + marital_units: + marital_unit1: + members: [person1, person2] + marital_unit2: + members: [person3] + tax_units: + tax_unit1: + members: [person1, person2] + tax_unit2: + members: [person3] + households: + household: + members: [person1, person2, person3] + state_code: {2018: VT, 2019: VT, 2020: VT, 2021: VT, 2022: VT, 2023: VT, 2024: VT, 2025: VT, 2026: VT} + output: + # Outputs are [couple, couple, individual]. The PIL is the same for one and + # two people, effective each January 1, times 12: 1,041 (2018, kept in + # 2019), 1,091, 1,100, 1,166, 1,258, 1,300, 1,333 and 1,375. + medicaid_medically_needy_income_limit: + 2018: [12_492, 12_492, 12_492] + 2019: [12_492, 12_492, 12_492] + 2020: [13_092, 13_092, 13_092] + 2021: [13_200, 13_200, 13_200] + 2022: [13_992, 13_992, 13_992] + 2023: [15_096, 15_096, 15_096] + 2024: [15_600, 15_600, 15_600] + 2025: [15_996, 15_996, 15_996] + 2026: [16_500, 16_500, 16_500] From 4d2fb9d24c8f09035b002d2a62bc05b288c13c99 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 26 Oct 2026 17:26:33 -0400 Subject: [PATCH 10/22] Cite the Arkansas policy manual for the medically needy income levels Co-Authored-By: Claude Opus 5.5 --- .../categories/medically_needy/limit/income/couple.yaml | 2 ++ .../categories/medically_needy/limit/income/individual.yaml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml index 7790f38e39c..29cd31db478 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml @@ -8,6 +8,8 @@ metadata: reference: - title: Arkansas DHS Division of County Operations, Health Care Eligibility Quick Reference (January 2025), AABD Adult Spend Down href: https://humanservices.arkansas.gov/wp-content/uploads/Quick-Reference.pdf#page=1 + - title: Arkansas DHS Medical Services Policy Manual (September 2026), O-710 Medically Needy Income Levels + href: https://humanservices.arkansas.gov/wp-content/uploads/MS-Policy-9.26-New.pdf#page=435 - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ - title: Connecticut State Plan Amendment CT-22-0031, Medically Needy Income Level (effective July 1, 2022) diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml index 876d9dfa73b..275f9e95ef9 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml @@ -8,6 +8,8 @@ metadata: reference: - title: Arkansas DHS Division of County Operations, Health Care Eligibility Quick Reference (January 2025), AABD Adult Spend Down href: https://humanservices.arkansas.gov/wp-content/uploads/Quick-Reference.pdf#page=1 + - title: Arkansas DHS Medical Services Policy Manual (September 2026), O-710 Medically Needy Income Levels + href: https://humanservices.arkansas.gov/wp-content/uploads/MS-Policy-9.26-New.pdf#page=435 - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ - title: Connecticut State Plan Amendment CT-22-0031, Medically Needy Income Level (effective July 1, 2022) From 35b23f9de743a9d8a5e009336700da3eabd02340 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 26 Oct 2026 17:28:02 -0400 Subject: [PATCH 11/22] Drop the July 2022 ABD step, which #10364 carries #10364 adds the same California 2022-07-01 rows, ACWDL 21-31 reference and 2023 case to the senior_or_disabled asset files. Remove them here to avoid duplicate edits; keep the 2027 January 1 case. Co-Authored-By: Claude Opus 5.5 --- changelog.d/ca-medi-cal-asset-limit-2027.fixed.md | 2 +- .../senior_or_disabled/assets/limit/couple.yaml | 4 ---- .../senior_or_disabled/assets/limit/individual.yaml | 4 ---- ...s_optional_senior_or_disabled_asset_eligible.yaml | 12 ------------ 4 files changed, 1 insertion(+), 21 deletions(-) diff --git a/changelog.d/ca-medi-cal-asset-limit-2027.fixed.md b/changelog.d/ca-medi-cal-asset-limit-2027.fixed.md index 1e3c971cef6..8ef1392b9b2 100644 --- a/changelog.d/ca-medi-cal-asset-limit-2027.fixed.md +++ b/changelog.d/ca-medi-cal-asset-limit-2027.fixed.md @@ -1 +1 @@ -California's non-MAGI Medi-Cal asset limit falls to $21,000 for one person and $31,000 for two on July 1, 2027 (SB 164) in the aged, blind and disabled, medically needy, Medicare Savings Program and 250% Working Disabled Program limits; the Working Disabled Program also adds $1,550 for each person beyond two. The aged, blind and disabled limit also gains its missing July 1, 2022 step to $130,000 / $195,000. +California's non-MAGI Medi-Cal asset limit falls to $21,000 for one person and $31,000 for two on July 1, 2027 (SB 164) in the aged, blind and disabled, medically needy, Medicare Savings Program and 250% Working Disabled Program limits; the Working Disabled Program also adds $1,550 for each person beyond two. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml index c8a36b3b26e..805213da166 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/couple.yaml @@ -10,8 +10,6 @@ metadata: href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ - title: "Asset Limit Changes for Non-MAGI Medi-Cal | California DHCS (asset limit reinstated at $130,000 plus $65,000 per additional household member effective January 1, 2026)" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/Pages/Asset-Limit-Changes-for-Non-MAGI-Medi-Cal.aspx - - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2-4" - href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Section 69 - Welfare and Institutions Code 14005.62(a), operative July 1, 2027 href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 - title: "California DHCS All County Welfare Directors Letter 25-14 (reinstatement of the non-MAGI Medi-Cal asset limit)" @@ -28,8 +26,6 @@ AR: 2024-01-01: 14_130 CA: 2015-01-01: 3_000 - # Annual calculations read parameters on January 1, so the July 1, 2022 value first applies in 2023. - 2022-07-01: 195_000 2024-01-01: .inf 2026-01-01: 195_000 # Annual calculations read parameters on January 1, so the July 1, 2027 value first applies in 2028. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml index 539ad98dd8f..eac3cda8d87 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/individual.yaml @@ -10,8 +10,6 @@ metadata: href: https://www.kff.org/report-section/medicaid-eligibility-and-enrollment-policies-for-seniors-and-people-with-disabilities-non-magi-during-the-unwinding-appendix/ - title: "Asset Limit Changes for Non-MAGI Medi-Cal | California DHCS (asset limit reinstated at $130,000 for an individual effective January 1, 2026)" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/Pages/Asset-Limit-Changes-for-Non-MAGI-Medi-Cal.aspx - - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2-4" - href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Section 69 - Welfare and Institutions Code 14005.62(a), operative July 1, 2027 href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 - title: "California DHCS All County Welfare Directors Letter 25-14 (reinstatement of the non-MAGI Medi-Cal asset limit)" @@ -28,8 +26,6 @@ AR: 2024-01-01: 9_430 CA: 2015-01-01: 2_000 - # Annual calculations read parameters on January 1, so the July 1, 2022 value first applies in 2023. - 2022-07-01: 130_000 2024-01-01: .inf 2026-01-01: 130_000 # Annual calculations read parameters on January 1, so the July 1, 2027 value first applies in 2028. diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml index ddb9f91f71b..d3d60b3d6f3 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml @@ -213,18 +213,6 @@ # 15,000 + 15,000 = 30,000 is under the 31,000 couple limit. is_optional_senior_or_disabled_asset_eligible: [true, true] -# ACWDL 21-31 raised California's limit to 130,000 for one person on -# July 1, 2022. This annual variable reads the January 1 value, so 2023 is -# the first year it applies. -- name: assets below the July 2022 CA limit in 2023, eligible - period: 2023 - input: - ssi_countable_resources: 100_000 - state_code: CA - output: - # 100,000 is under the 130,000 limit; the old 2,000 limit would fail. - is_optional_senior_or_disabled_asset_eligible: true - - name: assets above the July 2027 CA limit in 2027, still eligible period: 2027 input: From 7ff36144ad22172f5e0d32f284dba89251d5118d Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 26 Oct 2026 20:06:55 -0400 Subject: [PATCH 12/22] Switch off ABD medically needy in AZ, ID, IN, NM and NV; archive NJ link KFF 2018 and 2026 list no medically needy program for aged, blind or disabled people in these five states; the flags had been swapped with AR, IL, IA, NJ and ND. Their -inf limits meant no result changes. The NJ DMAHS fact sheet now 404s, so cite the 2026-05-14 Wayback copy. Co-Authored-By: Claude Opus 5.5 --- .../medicaid-medically-needy-limits.fixed.md | 2 +- .../medically_needy/categories/disabled.yaml | 17 +++++++++++------ .../medically_needy/categories/senior.yaml | 17 +++++++++++------ ...s_in_medicaid_medically_needy_category.yaml | 18 ++++++++++++++++++ 4 files changed, 41 insertions(+), 13 deletions(-) diff --git a/changelog.d/medicaid-medically-needy-limits.fixed.md b/changelog.d/medicaid-medically-needy-limits.fixed.md index 48e30e0ab9a..fe86f4a3d72 100644 --- a/changelog.d/medicaid-medically-needy-limits.fixed.md +++ b/changelog.d/medicaid-medically-needy-limits.fixed.md @@ -1 +1 @@ -Turned on the Medicaid medically needy pathway for aged, blind and disabled people in Arkansas, Iowa, Illinois, New Jersey and North Dakota, and updated medically needy income and asset limits in 14 states, including Vermont's protected income level, tying them to the poverty guideline or the SSI federal benefit rate where state rules do. +Turned on the Medicaid medically needy pathway for aged, blind and disabled people in Arkansas, Iowa, Illinois, New Jersey and North Dakota, turned it off in Arizona, Idaho, Indiana, New Mexico and Nevada, which have no such program, and updated medically needy income and asset limits in 14 states, including Vermont's protected income level, tying them to the poverty guideline or the SSI federal benefit rate where state rules do. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/disabled.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/disabled.yaml index f074b02c968..5b83ab01de3 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/disabled.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/disabled.yaml @@ -16,7 +16,7 @@ metadata: - title: Illinois Department of Human Services Policy Manual PM 15-08-00 - Spenddown href: https://www.dhs.state.il.us/page.aspx?item=16536 - title: New Jersey DMAHS, Medically Needy Segment fact sheet - href: https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 + href: https://web.archive.org/web/20260514003440id_/https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 - title: North Dakota Non-ACA Medicaid Manual 510-05-85-40 - Medically needy income levels href: https://www.nd.gov/dhs/policymanuals/51005/510_05_85_40.htm - title: North Dakota Administrative Code 75-02-02.1-26(1) - Asset limits, medically needy aged, blind, and disabled @@ -29,7 +29,8 @@ AL: AR: 2015-01-01: true AZ: - 2015-01-01: true + # No medically needy pathway for aged, blind or disabled people (KFF 2018, 2026). + 2015-01-01: false CA: 2015-01-01: true CO: @@ -49,11 +50,13 @@ HI: IA: 2015-01-01: true ID: - 2015-01-01: true + # No medically needy pathway for aged, blind or disabled people (KFF 2018, 2026). + 2015-01-01: false IL: 2015-01-01: true IN: - 2015-01-01: true + # No medically needy pathway for aged, blind or disabled people (KFF 2018, 2026). + 2015-01-01: false KS: 2015-01-01: true KY: @@ -87,9 +90,11 @@ NH: NJ: 2015-01-01: true NM: - 2015-01-01: true + # No medically needy pathway for aged, blind or disabled people (KFF 2018, 2026). + 2015-01-01: false NV: - 2015-01-01: true + # No medically needy pathway for aged, blind or disabled people (KFF 2018, 2026). + 2015-01-01: false NY: 2015-01-01: true OH: diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/senior.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/senior.yaml index 34e55264c8f..65a4049496a 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/senior.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/senior.yaml @@ -16,7 +16,7 @@ metadata: - title: Illinois Department of Human Services Policy Manual PM 15-08-00 - Spenddown href: https://www.dhs.state.il.us/page.aspx?item=16536 - title: New Jersey DMAHS, Medically Needy Segment fact sheet - href: https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 + href: https://web.archive.org/web/20260514003440id_/https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 - title: North Dakota Non-ACA Medicaid Manual 510-05-85-40 - Medically needy income levels href: https://www.nd.gov/dhs/policymanuals/51005/510_05_85_40.htm - title: North Dakota Administrative Code 75-02-02.1-26(1) - Asset limits, medically needy aged, blind, and disabled @@ -29,7 +29,8 @@ AL: AR: 2015-01-01: true AZ: - 2015-01-01: true + # No medically needy pathway for aged, blind or disabled people (KFF 2018, 2026). + 2015-01-01: false CA: 2015-01-01: true CO: @@ -49,11 +50,13 @@ HI: IA: 2015-01-01: true ID: - 2015-01-01: true + # No medically needy pathway for aged, blind or disabled people (KFF 2018, 2026). + 2015-01-01: false IL: 2015-01-01: true IN: - 2015-01-01: true + # No medically needy pathway for aged, blind or disabled people (KFF 2018, 2026). + 2015-01-01: false KS: 2015-01-01: true KY: @@ -87,9 +90,11 @@ NH: NJ: 2015-01-01: true NM: - 2015-01-01: true + # No medically needy pathway for aged, blind or disabled people (KFF 2018, 2026). + 2015-01-01: false NV: - 2015-01-01: true + # No medically needy pathway for aged, blind or disabled people (KFF 2018, 2026). + 2015-01-01: false NY: 2015-01-01: true OH: diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_in_medicaid_medically_needy_category.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_in_medicaid_medically_needy_category.yaml index 32e41686e95..707eb316a5b 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_in_medicaid_medically_needy_category.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_in_medicaid_medically_needy_category.yaml @@ -54,3 +54,21 @@ # disabled), NDAC 75-02-02.1-26(1) (aged, blind and disabled groups), the # AR AABD spend down and IL PM 15-06-02-c cover disabled people. is_in_medicaid_medically_needy_category: [true, true, true, true, true] + +- name: Senior and disabled adult in Arizona, which has no medically needy pathway for them, are not in a medically needy category. + period: 2026 + input: + people: + person1: + age: 70 + person2: + age: 40 + meets_ssi_disability_criteria: true + households: + household: + members: [person1, person2] + state_code: AZ + output: + # KFF 2026 lists no medically needy pathway for older adults or people + # with disabilities in Arizona (likewise ID, IN, NM and NV). + is_in_medicaid_medically_needy_category: [false, false] From af3e256ab5e30ec0c74265bb30330f669e943e56 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 26 Oct 2026 20:50:30 -0400 Subject: [PATCH 13/22] Floor Illinois per-spouse income; end Mississippi's MSP asset test in 1999 - A spouse's own income for the Illinois $25 exemption floors earned and unearned income separately, so a self-employment loss earns no exemption and does not raise countable income. - Mississippi's MSP asset test ended 1999-07-01 (Eligibility Manual page 7220; 23 Miss. Code R. 103-1.8(A)(1)), not 2024. Co-Authored-By: Claude Opus 5.5 --- .../msp-state-asset-income-rules.fixed.md | 2 +- .../eligibility/asset/applies.yaml | 11 +++++-- .../eligibility/msp_asset_eligible.yaml | 14 +++++++++ .../income/msp_countable_income.yaml | 31 +++++++++++++++++++ .../income/msp_countable_income.py | 6 ++-- 5 files changed, 58 insertions(+), 6 deletions(-) diff --git a/changelog.d/msp-state-asset-income-rules.fixed.md b/changelog.d/msp-state-asset-income-rules.fixed.md index ba61f5fe5f7..db5bb08774a 100644 --- a/changelog.d/msp-state-asset-income-rules.fixed.md +++ b/changelog.d/msp-state-asset-income-rules.fixed.md @@ -1 +1 @@ -Applied state Medicare Savings Program rules: no asset test in Washington from 2023; California asset limits of $130,000 / $195,000 (July 2022 to 2023, and again from 2026); Minnesota asset limits of $10,000 / $18,000; and general income exclusions of $25 in Illinois (one for each spouse with income) and $50 in Mississippi (once for a couple). +Applied state Medicare Savings Program rules: no asset test in Washington from 2023 or in Mississippi from July 1999; California asset limits of $130,000 / $195,000 (July 2022 to 2023, and again from 2026); Minnesota asset limits of $10,000 / $18,000; and general income exclusions of $25 in Illinois (one for each spouse with income) and $50 in Mississippi (once for a couple). diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml index cd3711b1fd4..c9ef5e164df 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml @@ -22,13 +22,17 @@ metadata: href: https://lawfilesext.leg.wa.gov/law/wsrpdf/2022/21/22-21-043.pdf#page=1 - title: Washington Administrative Code 182-517-0100(2)(d) - Federal Medicare savings programs href: https://app.leg.wa.gov/wac/default.aspx?cite=182-517-0100 + - title: Mississippi Division of Medicaid Eligibility Manual Volume III, page 7220, Qualified Medicare Beneficiaries (revised July 1, 1999) + href: https://web.archive.org/web/20140514180548id_/https://www.medicaid.ms.gov/wp-content/uploads/2014/03/Pages-7220-7223-Qualified-Medicare-Beneficiaries.pdf#page=1 + - title: 23 Mississippi Administrative Code Part 103, Rule 1.8(A)(1) - Reduced Coverage Groups + href: https://www.law.cornell.edu/regulations/mississippi/23-Miss-Code-R-SS-103-1-8 - title: "Laws of Washington 2022, chapter 297, sections 205(26) and 211(79) #page 274,312" href: https://lawfilesext.leg.wa.gov/biennium/2021-22/Pdf/Bills/Session%20Laws/Senate/5693-S.SL.pdf#page=274 - title: California Welfare and Institutions Code 14005.62(a), (c), (d) href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=WIC§ionNum=14005.62 # Federal MSP rules apply the asset test by default. States that have -# eliminated it are set to false from 2024 unless a state source gives -# another date. +# eliminated it are set to false from 2024 where no state source dates the +# change; WA, CA and MS follow their own sources. AL: 0000-01-01: true 2024-01-01: false @@ -104,7 +108,8 @@ MN: 2024-01-01: true MS: 0000-01-01: true - 2024-01-01: false + # Eligibility Manual page 7220 (revised 07-01-99); 23 Miss. Code R. 103-1.8(A)(1). + 1999-07-01: false MO: 0000-01-01: true 2024-01-01: true diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml index 46194ff3bf7..287aa27dbb2 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml @@ -304,3 +304,17 @@ output: # Combined 18,001 exceeds Minnesota's 18,000 couple limit. msp_asset_eligible: [false, false] + +- name: Case 20, Mississippi ended the MSP asset test in July 1999. + period: 1999 + input: + age: 67 + bank_account_assets: 10_000 + spm_unit_is_married: false + state_code: MS + output: + # Eligibility Manual page 7220: "Effective 07-01-99, there will be no + # resource test." 10,000 is over the federal limit in June. + msp_asset_eligible: + 1999-06: false + 1999-07: true diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml index 0edc2e14d15..87084238dad 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml @@ -224,3 +224,34 @@ # 23 Miss. Admin. Code Part 104, Rule 4.2(C)(2): one general exclusion per couple. # (12,000 + 9,600) / 12 - 50 = 1,750. msp_countable_income: [1_750, 1_750] + +- name: Case 11, Illinois allows no exemption for a spouse whose only income is a self-employment loss. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 72 + social_security_retirement: 18_000 + person2: + age: 70 + self_employment_income_before_lsr: -6_000 + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_is_married: true + households: + household: + members: [person1, person2] + state_code: IL + output: + # PM 15-04-03-a: only person1 has income other than SSI, so one $25. + # The loss neither earns an exemption nor offsets unearned income: + # 18,000 / 12 - 25 = 1,475. + msp_countable_income: [1_475, 1_475] diff --git a/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py b/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py index 337fed4d11a..37e21548dac 100644 --- a/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py +++ b/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py @@ -63,8 +63,10 @@ def formula(person, period, parameters): # Illinois gives each applying spouse one exemption on their own # non-SSI income (PM 15-04-03-a); SSI and Mississippi allow one per # couple. - own_monthly_income = add( - person, period, ["ssi_earned_income", "ssi_unearned_income"] + # Floor each kind of income: a self-employment loss earns no exemption + # and does not offset unearned income. + own_monthly_income = max_(person("ssi_earned_income", period), 0) + max_( + person("ssi_unearned_income", period), 0 ) per_spouse = p.state_general_exclusion_per_spouse[state].astype(bool) couple_general_exclusion = where( From c1b120a6ed76235c3a485eadb88849ed90545a66 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 26 Oct 2026 20:52:15 -0400 Subject: [PATCH 14/22] Cite state sources for IA, NJ and KS limits; fix VT pages; number cases - Iowa 441-75.8(7) and (5)"a", the NJ fact sheet (archived) and SPA KS-25-0019 page 7 for the $475 standard, alongside KFF. - HBEE 29.14 cited from file page 50. - Number the two category cases 3 and 4, after PR 10370's Cases 1-2. Co-Authored-By: Claude Opus 5.5 --- .../medically_needy/limit/assets/couple.yaml | 4 ++++ .../medically_needy/limit/assets/individual.yaml | 4 ++++ .../medically_needy/limit/income/couple.yaml | 10 ++++++++-- .../medically_needy/limit/income/individual.yaml | 10 ++++++++-- .../is_in_medicaid_medically_needy_category.yaml | 4 ++-- 5 files changed, 26 insertions(+), 6 deletions(-) diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml index 9dfb6fb3630..f957dc45bd3 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml @@ -6,6 +6,10 @@ metadata: unit: currency-USD period: month reference: + - title: Iowa Administrative Code 441-75.8(5)"a" - Medically needy resource limit + href: https://www.legis.iowa.gov/docs/iac/chapter/441.75.pdf#page=22 + - title: New Jersey DMAHS, Medically Needy Segment fact sheet + href: https://web.archive.org/web/20260514003440id_/https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ - title: California Welfare and Institutions Code 14005.62(a), (c), (d) diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml index c49a71f390b..c318ddca22f 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml @@ -6,6 +6,10 @@ metadata: unit: currency-USD period: month reference: + - title: Iowa Administrative Code 441-75.8(5)"a" - Medically needy resource limit + href: https://www.legis.iowa.gov/docs/iac/chapter/441.75.pdf#page=22 + - title: New Jersey DMAHS, Medically Needy Segment fact sheet + href: https://web.archive.org/web/20260514003440id_/https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ - title: California Welfare and Institutions Code 14005.62(a), (c), (d) diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml index 29cd31db478..7ed00c292ef 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml @@ -6,6 +6,12 @@ metadata: unit: currency-USD period: month reference: + - title: Iowa Administrative Code 441-75.8(7) - Medically needy income level + href: https://www.legis.iowa.gov/docs/iac/chapter/441.75.pdf#page=24 + - title: New Jersey DMAHS, Medically Needy Segment fact sheet + href: https://web.archive.org/web/20260514003440id_/https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 + - title: CMS approval of Kansas State Plan Amendment KS-25-0019, medically needy income level + href: https://www.medicaid.gov/medicaid/spa/downloads/KS-25-0019.pdf#page=7 - title: Arkansas DHS Division of County Operations, Health Care Eligibility Quick Reference (January 2025), AABD Adult Spend Down href: https://humanservices.arkansas.gov/wp-content/uploads/Quick-Reference.pdf#page=1 - title: Arkansas DHS Medical Services Policy Manual (September 2026), O-710 Medically Needy Income Levels @@ -58,8 +64,8 @@ metadata: href: https://www.medicaid.gov/medicaid/spa/downloads/RI-26-0001.pdf#page=7 - title: Vermont Health Benefits Eligibility and Enrollment Rule, Part 2, section 8.06 - Medically-needy coverage group href: https://humanservices.vermont.gov/sites/ahsnew/files/documents/HBEE-Part-2-Eligibility-Standards.pdf#page=19 - - title: "Vermont Health Benefits Eligibility and Enrollment Rule, Part 5, section 29.14 - Determination of countable income #page 51-52" - href: https://humanservices.vermont.gov/sites/ahsnew/files/documents/HBEE-Part-5-Financial-Methodologies.pdf#page=51 + - title: "Vermont Health Benefits Eligibility and Enrollment Rule, Part 5, section 29.14 - Determination of countable income #page 50-52" + href: https://humanservices.vermont.gov/sites/ahsnew/files/documents/HBEE-Part-5-Financial-Methodologies.pdf#page=50 - title: Vermont DCF Bulletin 17-26, P-2420 Eligibility maximums for MABD, effective 1/1/18 href: https://outside.vermont.gov/dept/DCF/Shared%20Documents/ESD/Rules-Adopted/B17-26.pdf#page=3 - title: Vermont DVHA 2020 MABD PIL FPL Income Chart, effective 1/1/2020 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml index 275f9e95ef9..c535b4b49dc 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml @@ -6,6 +6,12 @@ metadata: unit: currency-USD period: month reference: + - title: Iowa Administrative Code 441-75.8(7) - Medically needy income level + href: https://www.legis.iowa.gov/docs/iac/chapter/441.75.pdf#page=24 + - title: New Jersey DMAHS, Medically Needy Segment fact sheet + href: https://web.archive.org/web/20260514003440id_/https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 + - title: CMS approval of Kansas State Plan Amendment KS-25-0019, medically needy income level + href: https://www.medicaid.gov/medicaid/spa/downloads/KS-25-0019.pdf#page=7 - title: Arkansas DHS Division of County Operations, Health Care Eligibility Quick Reference (January 2025), AABD Adult Spend Down href: https://humanservices.arkansas.gov/wp-content/uploads/Quick-Reference.pdf#page=1 - title: Arkansas DHS Medical Services Policy Manual (September 2026), O-710 Medically Needy Income Levels @@ -58,8 +64,8 @@ metadata: href: https://www.medicaid.gov/medicaid/spa/downloads/RI-26-0001.pdf#page=7 - title: Vermont Health Benefits Eligibility and Enrollment Rule, Part 2, section 8.06 - Medically-needy coverage group href: https://humanservices.vermont.gov/sites/ahsnew/files/documents/HBEE-Part-2-Eligibility-Standards.pdf#page=19 - - title: "Vermont Health Benefits Eligibility and Enrollment Rule, Part 5, section 29.14 - Determination of countable income #page 51-52" - href: https://humanservices.vermont.gov/sites/ahsnew/files/documents/HBEE-Part-5-Financial-Methodologies.pdf#page=51 + - title: "Vermont Health Benefits Eligibility and Enrollment Rule, Part 5, section 29.14 - Determination of countable income #page 50-52" + href: https://humanservices.vermont.gov/sites/ahsnew/files/documents/HBEE-Part-5-Financial-Methodologies.pdf#page=50 - title: Vermont DCF Bulletin 17-26, P-2420 Eligibility maximums for MABD, effective 1/1/18 href: https://outside.vermont.gov/dept/DCF/Shared%20Documents/ESD/Rules-Adopted/B17-26.pdf#page=3 - title: Vermont DVHA 2020 MABD PIL FPL Income Chart, effective 1/1/2020 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_in_medicaid_medically_needy_category.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_in_medicaid_medically_needy_category.yaml index 707eb316a5b..75097873646 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_in_medicaid_medically_needy_category.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_in_medicaid_medically_needy_category.yaml @@ -14,7 +14,7 @@ output: is_in_medicaid_medically_needy_category: false -- name: Disabled adults in Arkansas, Iowa, Illinois, North Dakota and New Jersey are in a medically needy category. +- name: Case 3, disabled adults in Arkansas, Iowa, Illinois, North Dakota and New Jersey are in a medically needy category. period: 2026 input: people: @@ -55,7 +55,7 @@ # AR AABD spend down and IL PM 15-06-02-c cover disabled people. is_in_medicaid_medically_needy_category: [true, true, true, true, true] -- name: Senior and disabled adult in Arizona, which has no medically needy pathway for them, are not in a medically needy category. +- name: Case 4, a senior and a disabled adult in Arizona, which has no medically needy pathway for them, are not in a medically needy category. period: 2026 input: people: From 84ad7b540afa5c64c74344b92673a99c5c4c690c Mon Sep 17 00:00:00 2001 From: Ziming Date: Tue, 27 Oct 2026 14:58:33 -0400 Subject: [PATCH 15/22] Exclude contributions from Illinois's MSP income exemption; add review tests Illinois's $25 exemption applies only to income other than SSI and contributions (PM 15-04-03-a; 89 Ill. Adm. Code 120.335(a)(1)), with the $20 SSI exclusion as the floor. Adds the deemed-spouse, per-spouse cap and Mississippi and California start-date cases, and fixes two reference titles. Co-Authored-By: Claude Opus 5.5 --- .../eligibility/asset/state_limit/couple.yaml | 2 +- .../asset/state_limit/individual.yaml | 2 +- .../income/contribution_sources.yaml | 16 +++ .../income/state_general_exclusion.yaml | 2 + ...eral_exclusion_excludes_contributions.yaml | 23 ++++ .../eligibility/msp_asset_eligible.yaml | 31 +++++ .../income/msp_countable_income.yaml | 129 ++++++++++++++++++ .../income/msp_countable_income.py | 41 ++++-- 8 files changed, 234 insertions(+), 12 deletions(-) create mode 100644 policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/contribution_sources.yaml create mode 100644 policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_excludes_contributions.yaml diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml index ba50ca04278..287c32e9b49 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml @@ -6,7 +6,7 @@ metadata: breakdown: - state_code reference: - - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2,4" + - title: "California DHCS All County Welfare Directors Letter 21-31, Increases to the Asset Limits for Non-Modified Adjusted Gross Income Medi-Cal Programs #page 2,4" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 - title: "California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs #page 2,8-9" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=2 diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml index 4952f821caa..64d882e884b 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml @@ -6,7 +6,7 @@ metadata: breakdown: - state_code reference: - - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2,4" + - title: "California DHCS All County Welfare Directors Letter 21-31, Increases to the Asset Limits for Non-Modified Adjusted Gross Income Medi-Cal Programs #page 2,4" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 - title: "California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs #page 2,8-9" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=2 diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/contribution_sources.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/contribution_sources.yaml new file mode 100644 index 00000000000..fc7d5e8acbe --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/contribution_sources.yaml @@ -0,0 +1,16 @@ +description: The Medicare Savings Programs treat these income sources as contributions, which are income from a person outside the medical unit, when a state excludes contributions from its general income exclusion. +values: + # Same start as the SSI unearned income source list these come from. + 1975-01-01: + - alimony_income + - child_support_received + - financial_assistance +metadata: + unit: list + period: year + label: MSP contribution income sources + reference: + - title: Illinois Department of Human Services Policy Manual PM 15-04-03-a - AABD Income Disregard (Community Cases) + href: https://www.dhs.state.il.us/page.aspx?item=16387 + - title: 89 Illinois Administrative Code 120.335(a)(1) - Exempt Unearned Income + href: https://www.ilga.gov/ftp/JCAR/AdminCode/089/089001200H03350R.html diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion.yaml index 799d87852d4..9c3bf26443b 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion.yaml @@ -10,6 +10,8 @@ metadata: href: https://www.dhs.state.il.us/page.aspx?item=14179 - title: Illinois Department of Human Services Policy Manual PM 15-04-03-a - AABD Income Disregard (Community Cases) href: https://www.dhs.state.il.us/page.aspx?item=16387 + - title: Illinois Department of Human Services Policy Manual PM 15-05-03 - AABD Community + href: https://www.dhs.state.il.us/page.aspx?item=16446 - title: Illinois Department of Human Services Policy Manual PM 06-13-01-b - SLIB Income Limit href: https://www.dhs.state.il.us/page.aspx?item=14218 - title: Illinois Department of Human Services Policy Manual PM 06-14-01-b - QI-1 Income Limit diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_excludes_contributions.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_excludes_contributions.yaml new file mode 100644 index 00000000000..6c182b27698 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_excludes_contributions.yaml @@ -0,0 +1,23 @@ +description: States exclude contributions from the income that the state general income exclusion applies to under the Medicare Savings Programs, if this is true. +metadata: + unit: bool + period: year + label: MSP state general income exclusion excludes contributions + breakdown: + - state_code + reference: + - title: Illinois Department of Human Services Policy Manual PM 15-04-03-a - AABD Income Disregard (Community Cases) + href: https://www.dhs.state.il.us/page.aspx?item=16387 + - title: Illinois Department of Human Services Policy Manual PM 06-12-01-b - QMB Income Limit + href: https://www.dhs.state.il.us/page.aspx?item=14177 + - title: Illinois Department of Human Services Policy Manual PM 15-05-03 - AABD Community + href: https://www.dhs.state.il.us/page.aspx?item=16446 + - title: 89 Illinois Administrative Code 120.74 - Qualified Medicare Beneficiary (QMB) Income Standard + href: https://www.ilga.gov/ftp/JCAR/AdminCode/089/089001200D00740R.html + - title: 89 Illinois Administrative Code 120.335(a)(1) - Exempt Unearned Income + href: https://www.ilga.gov/ftp/JCAR/AdminCode/089/089001200H03350R.html + +IL: + 0000-01-01: false + # Same start as state_general_exclusion. + 1997-03-01: true diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml index 287aa27dbb2..8d1555c36b1 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml @@ -318,3 +318,34 @@ msp_asset_eligible: 1999-06: false 1999-07: true + +- name: Case 21, California's couple MSP asset limit starts in July 2022. + period: 2022 + input: + people: + person1: + age: 70 + bank_account_assets: 75_000 + person2: + age: 68 + bank_account_assets: 75_000 + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_is_married: true + households: + household: + members: [person1, person2] + state_code: CA + output: + # Federal 2022 couple limit 12,600 through June; ACWDL 21-31 limit 195,000 + # from July 1, 2022. + msp_asset_eligible: + 2022-06: [false, false] + 2022-07: [true, true] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml index 87084238dad..8ec1679488b 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml @@ -255,3 +255,132 @@ # The loss neither earns an exemption nor offsets unearned income: # 18,000 / 12 - 25 = 1,475. msp_countable_income: [1_475, 1_475] + +- name: Case 12, Illinois allows no exemption for a spouse whose only income is a contribution. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 72 + social_security_retirement: 15_600 + person2: + age: 70 + alimony_income: 6_480 + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_is_married: true + households: + household: + members: [person1, person2] + state_code: IL + output: + # PM 15-04-03-a: a contribution (alimony) earns no exemption, so one $25. + # (15,600 + 6,480) / 12 - 25 = 1,815, above the 1,803.33 QMB couple limit. + msp_countable_income: [1_815, 1_815] + is_qmb_eligible: [false, false] + +- name: Case 13, Illinois single person whose only income is a contribution keeps the SSI 20 dollar floor. + period: 2026-01 + absolute_error_margin: 0.01 + input: + age: 70 + alimony_income: 12_000 + state_code: IL + output: + # 89 Ill. Adm. Code 120.335(a)(1): no $25 on contributions. + # 42 U.S.C. 1396a(r)(2) keeps the SSI $20: 12,000 / 12 - 20 = 980. + msp_countable_income: 980 + +- name: Case 14, Illinois exemption on Social Security is unchanged when the person also has alimony. + period: 2026-01 + absolute_error_margin: 0.01 + input: + age: 70 + social_security_retirement: 6_000 + alimony_income: 6_000 + state_code: IL + output: + # 500 + 500 = 1,000; Social Security alone exceeds $25: 1,000 - 25 = 975. + msp_countable_income: 975 + +- name: Case 15, Illinois applies one 25 dollar exemption when income is deemed from an ineligible spouse. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + social_security_retirement: 7_200 + person2: + age: 50 + employment_income: 30_000 + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_is_married: true + households: + household: + members: [person1, person2] + state_code: IL + output: + # PM 15-04-03-a: one applicant, so one $25. Deemed: unearned 600 - 25 = 575; + # earned (2,500 - 65) / 2 = 1,217.50; 575 + 1,217.50 = 1,792.50. + # The spouse without Medicare: (2,500 - 25 - 65) / 2 = 1,205. + msp_countable_income: [1_792.5, 1_205] + +- name: Case 16, Illinois caps a spouse's 25 dollar exemption at that spouse's income. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 72 + social_security_retirement: 13_200 + person2: + age: 70 + interest_income: 120 + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_is_married: true + households: + household: + members: [person1, person2] + state_code: IL + output: + # PM 15-04-03-a: "If total income is less than $25, exempt the actual amount." + # (13,200 + 120) / 12 = 1,110; exemptions 25 + 10 = 35; 1,110 - 35 = 1,075. + msp_countable_income: [1_075, 1_075] + +- name: Case 17, Mississippi's 50 dollar exclusion starts in July 1999. + period: 1999 + absolute_error_margin: 0.01 + input: + age: 70 + social_security_retirement: 6_000 + state_code: MS + output: + # 500 - 20 = 480 in June; 500 - 50 = 450 from July. + msp_countable_income: + 1999-06: 480 + 1999-07: 450 diff --git a/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py b/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py index 37e21548dac..99b10f12989 100644 --- a/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py +++ b/policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py @@ -17,6 +17,7 @@ class msp_countable_income(Variable): "https://www.medicare.gov/basics/costs/help/medicare-savings-programs", "https://www.law.cornell.edu/uscode/text/42/1396a#r_2", "https://www.dhs.state.il.us/page.aspx?item=16387", + "https://www.ilga.gov/ftp/JCAR/AdminCode/089/089001200H03350R.html", ) documentation = """ MSP countable income uses SSI methodology per 42 U.S.C. 1396d(p)(1)(B), @@ -36,7 +37,9 @@ class msp_countable_income(Variable): general income exclusion; Illinois and Mississippi use their larger exclusion in its place. Mississippi takes it once from a couple's combined income; Illinois gives each applying spouse with income their - own exclusion, up to that spouse's income. + own exclusion, up to that spouse's income. Illinois gives its $25 only on + income other than SSI and contributions (alimony, child support, outside + cash help); the $20 SSI exclusion stays the floor. """ def formula(person, period, parameters): @@ -56,22 +59,40 @@ def formula(person, period, parameters): deeming_applies = person("is_ssi_spousal_deeming_applies", year) state = person.household("state_code_str", period) p = parameters(period).gov.hhs.medicare.savings_programs.eligibility.income - ssi_exclusions = parameters(period).gov.ssa.ssi.income.exclusions - general_exclusion = max_( - ssi_exclusions.general, p.state_general_exclusion[state] - ) - # Illinois gives each applying spouse one exemption on their own - # non-SSI income (PM 15-04-03-a); SSI and Mississippi allow one per - # couple. + ssi_general = parameters(period).gov.ssa.ssi.income.exclusions.general + state_exclusion = p.state_general_exclusion[state] + general_exclusion = max_(ssi_general, state_exclusion) + # Illinois exempts the first $25 of income other than SSI and + # contributions such as alimony and child support, and gives each + # applying spouse their own exemption (PM 15-04-03-a; 89 Ill. Adm. + # Code 120.335(a)(1)); SSI and Mississippi allow one per couple. # Floor each kind of income: a self-employment loss earns no exemption # and does not offset unearned income. own_monthly_income = max_(person("ssi_earned_income", period), 0) + max_( person("ssi_unearned_income", period), 0 ) + excludes_contributions = p.state_general_exclusion_excludes_contributions[ + state + ].astype(bool) + contributions = add(person, period, p.contribution_sources) + qualifying_income = where( + excludes_contributions, + max_(own_monthly_income - contributions, 0), + own_monthly_income, + ) + # The SSI general exclusion stays the floor (42 U.S.C. 1396a(r)(2)). + own_general_exclusion = where( + excludes_contributions, + max_(ssi_general, min_(state_exclusion, qualifying_income)), + general_exclusion, + ) per_spouse = p.state_general_exclusion_per_spouse[state].astype(bool) couple_general_exclusion = where( per_spouse, - person.marital_unit.sum(min_(general_exclusion, own_monthly_income)), + max_( + ssi_general, + person.marital_unit.sum(min_(state_exclusion, qualifying_income)), + ), general_exclusion, ) @@ -86,7 +107,7 @@ def formula(person, period, parameters): unearned_income, parameters, year, - general_exclusion=general_exclusion, + general_exclusion=own_general_exclusion, ) couple_countable = _apply_ssi_exclusions( From be43df1b6d7006b6c5f66869f45e399efa5db61e Mon Sep 17 00:00:00 2001 From: Ziming Date: Tue, 27 Oct 2026 14:59:35 -0400 Subject: [PATCH 16/22] Record Illinois MSP contributions candidate; update changelog Co-Authored-By: Claude Opus 5.5 --- .../msp-state-asset-income-rules.fixed.md | 2 +- source_conflicts/candidates.yaml | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/changelog.d/msp-state-asset-income-rules.fixed.md b/changelog.d/msp-state-asset-income-rules.fixed.md index db5bb08774a..a82c0692342 100644 --- a/changelog.d/msp-state-asset-income-rules.fixed.md +++ b/changelog.d/msp-state-asset-income-rules.fixed.md @@ -1 +1 @@ -Applied state Medicare Savings Program rules: no asset test in Washington from 2023 or in Mississippi from July 1999; California asset limits of $130,000 / $195,000 (July 2022 to 2023, and again from 2026); Minnesota asset limits of $10,000 / $18,000; and general income exclusions of $25 in Illinois (one for each spouse with income) and $50 in Mississippi (once for a couple). +Applied state Medicare Savings Program rules: no asset test in Washington from 2023 or in Mississippi from July 1999; California asset limits of $130,000 / $195,000 (July 2022 to 2023, and again from 2026); Minnesota asset limits of $10,000 / $18,000; and general income exclusions of $25 in Illinois (one for each spouse with income other than SSI and contributions such as alimony and child support) and $50 in Mississippi (once for a couple). diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index e06355446bb..5047cc53d16 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -2191,6 +2191,43 @@ candidates: state: ruled note: Ruled statute-first in October 2026; verify the incorporated dependency bar and annual questionnaire routing, including the 2026 draft. +- id: us-il:msp-income-exemption-contributions + program: medicare-savings-programs + years: + from: 2026 + type: calendar + question: Does Illinois's $25 income exemption for QMB, SLIB and QI-1 apply to contributions such as alimony and + child support? + sources: + - kind: regulation + citation: 89 Ill. Adm. Code 120.335(a)(1); 120.74 (QMB countable income under Parts 112, 113 and 120) + url: https://www.ilga.gov/ftp/JCAR/AdminCode/089/089001200H03350R.html + - kind: manual + citation: IDHS Policy Manual PM 15-04-03-a, reached from PM 06-12-01-b through PM 15-05-03 + url: https://www.dhs.state.il.us/page.aspx?item=16387 + - kind: manual + citation: IDHS Policy Manual PM 06-12-01-c + url: https://www.dhs.state.il.us/page.aspx?item=14179 + readings: + statute: No statute is supplied; the regulation exempts the first $25 of income other than SSI income or contributions + from a spouse or other individual, and PM 15-04-03-a exempts income other than SSI income and contributions. + other: PM 06-12-01-c exempts the first $25 of earned or unearned income other than SSI income and names no + exception for contributions. + example: An Illinois QMB applicant whose only income is $1,000 a month of alimony counts $980 under the regulation, + which leaves the $20 SSI exclusion, and $975 under PM 06-12-01-c. + pe_us: + follows: unknown + code: + - policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py + - policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_excludes_contributions.yaml + - policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/contribution_sources.yaml + prs: + - https://github.com/PolicyEngine/policyengine-us/pull/10360 + state: unreviewed + note: 'PE-US follows the regulation and PM 15-04-03-a: Illinois''s $25 applies only to income other than SSI and contributions + (alimony, child support and outside cash help), and the $20 SSI exclusion stays the floor (msp_countable_income.py, + state_general_exclusion_excludes_contributions.yaml, contribution_sources.yaml). Verify whether PM 06-12-01-c''s + silence on contributions reflects QMB policy.' - id: us-il:personal-exemption-claimed-vs-claimable program: income-tax years: From 7291aa771386606c03e87ce736fd07007da6350a Mon Sep 17 00:00:00 2001 From: Ziming Date: Tue, 27 Oct 2026 17:17:00 -0400 Subject: [PATCH 17/22] Add Mississippi to the MSP contributions-exclusion parameter Mississippi's general exclusion applies to all of the applicant's own income (23 Miss. Admin. Code Part 104, Rule 4.2(C)(1)), so it does not exclude contributions. Listing it also satisfies the guard against single-member breakdown parameters. Results are unchanged. Co-Authored-By: Claude Opus 5.5 --- .../state_general_exclusion_excludes_contributions.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_excludes_contributions.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_excludes_contributions.yaml index 6c182b27698..3c8cf26fe38 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_excludes_contributions.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_excludes_contributions.yaml @@ -16,8 +16,14 @@ metadata: href: https://www.ilga.gov/ftp/JCAR/AdminCode/089/089001200D00740R.html - title: 89 Illinois Administrative Code 120.335(a)(1) - Exempt Unearned Income href: https://www.ilga.gov/ftp/JCAR/AdminCode/089/089001200H03350R.html + - title: 23 Mississippi Administrative Code Part 104, Rule 4.2(C)(1) - General Income Exclusion + href: https://www.sos.ms.gov/adminsearch/ACCode/00000278c.pdf#page=22 IL: 0000-01-01: false # Same start as state_general_exclusion. 1997-03-01: true +MS: + # Rule 4.2(C)(1): the exclusion applies to the applicant's own income, + # contributions included. + 0000-01-01: false From 5bb5a500e08a2716468dc24bed0a80f324e9316d Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 29 Oct 2026 13:38:26 -0400 Subject: [PATCH 18/22] Test the Illinois couple $20 floor; cite Mississippi Rule 4.2(C)(5) Co-Authored-By: Claude Opus 5.5 --- ...eral_exclusion_excludes_contributions.yaml | 6 +-- .../income/msp_countable_income.yaml | 43 +++++++++++++++++++ 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_excludes_contributions.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_excludes_contributions.yaml index 3c8cf26fe38..942064352e1 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_excludes_contributions.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/state_general_exclusion_excludes_contributions.yaml @@ -16,7 +16,7 @@ metadata: href: https://www.ilga.gov/ftp/JCAR/AdminCode/089/089001200D00740R.html - title: 89 Illinois Administrative Code 120.335(a)(1) - Exempt Unearned Income href: https://www.ilga.gov/ftp/JCAR/AdminCode/089/089001200H03350R.html - - title: 23 Mississippi Administrative Code Part 104, Rule 4.2(C)(1) - General Income Exclusion + - title: "23 Mississippi Administrative Code Part 104, Rule 4.2(C)(1) and (C)(5) - General Income Exclusion #page 22-23" href: https://www.sos.ms.gov/adminsearch/ACCode/00000278c.pdf#page=22 IL: @@ -24,6 +24,6 @@ IL: # Same start as state_general_exclusion. 1997-03-01: true MS: - # Rule 4.2(C)(1): the exclusion applies to the applicant's own income, - # contributions included. + # Rule 4.2(C)(5) withholds the exclusion only from income based on need, + # so alimony and other contributions keep it. 0000-01-01: false diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml index 8ec1679488b..df9c65a5611 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml @@ -384,3 +384,46 @@ msp_countable_income: 1999-06: 480 1999-07: 450 + +- name: Case 18, Illinois couple whose exemptions total less than 20 dollars keeps the SSI 20 dollar floor. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 72 + alimony_income: 12_000 + person2: + age: 70 + interest_income: 120 + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_is_married: true + households: + household: + members: [person1, person2] + state_code: IL + output: + # PM 15-04-03-a: alimony earns no exemption; the $10 of interest earns $10. + # 42 U.S.C. 1396a(r)(2) keeps the SSI $20 for the couple: + # (12,000 + 120) / 12 = 1,010; 1,010 - 20 = 990. + msp_countable_income: [990, 990] + +- name: Case 19, Mississippi applies its 50 dollar exclusion to alimony. + period: 2026-01 + absolute_error_margin: 0.01 + input: + age: 70 + alimony_income: 12_000 + state_code: MS + output: + # Rule 4.2(C)(5) withholds the exclusion only from income based on need: + # 12,000 / 12 - 50 = 950. + msp_countable_income: 950 From f51df391f565d3605613f42a5d6c7bd1d133e06b Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 29 Oct 2026 13:39:47 -0400 Subject: [PATCH 19/22] Apply Pavel's round-1 review: pin the new limits and switch dates SA1: test the 2028 aged, blind and disabled limits one dollar below $21,000 and $31,000. SA2: add 2027 couple and multi-person cases for the January 1 read and a 2025 WDP case for the eliminated limit. G2: drop a max_ that cannot bind. G3/G4: correct the ACWDL 21-31 title and cite ACWDLs 21-31 and 25-14 for additional_person. G5: cite AB 173 sec. 16 in the MSP state limit files. Co-Authored-By: Claude Opus 5.5 --- .../eligibility/asset/state_limit/couple.yaml | 2 + .../asset/state_limit/individual.yaml | 2 + .../eligibility/asset/additional_person.yaml | 4 ++ .../wdp/eligibility/asset/two_people.yaml | 2 +- ...nal_senior_or_disabled_asset_eligible.yaml | 37 ++++++++-- .../is_medically_needy_for_medicaid.yaml | 37 ++++++++++ .../eligibility/ca_wdp_asset_eligible.yaml | 68 +++++++++++++++++++ .../wdp/eligibility/ca_wdp_asset_eligible.py | 2 +- 8 files changed, 145 insertions(+), 9 deletions(-) diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml index ffbac1540c3..a62b14160a3 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml @@ -16,6 +16,8 @@ metadata: href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=WIC§ionNum=14005.62 - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Sections 69 and 71 - Welfare and Institutions Code 14005.62(a) and 14005.11(a), operative July 1, 2027 href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 + - title: California Assembly Bill 173 (Statutes of 2026, Chapter 252), Section 16 - Welfare and Institutions Code 14005.11(h), inoperative July 1, 2027 + href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260AB173 - title: Minnesota Statutes 256B.057, subdivision 3(a)(3) - Qualified Medicare beneficiaries href: https://www.revisor.mn.gov/statutes/cite/256B.057#stat.256B.057.3 - title: Laws of Minnesota 2000, chapter 488, article 9, section 15 diff --git a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml index 8d1d117210d..e6a435be82f 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml @@ -16,6 +16,8 @@ metadata: href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=WIC§ionNum=14005.62 - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Sections 69 and 71 - Welfare and Institutions Code 14005.62(a) and 14005.11(a), operative July 1, 2027 href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 + - title: California Assembly Bill 173 (Statutes of 2026, Chapter 252), Section 16 - Welfare and Institutions Code 14005.11(h), inoperative July 1, 2027 + href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260AB173 - title: Minnesota Statutes 256B.057, subdivision 3(a)(3) - Qualified Medicare beneficiaries href: https://www.revisor.mn.gov/statutes/cite/256B.057#stat.256B.057.3 - title: Laws of Minnesota 2000, chapter 488, article 9, section 15 diff --git a/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/additional_person.yaml b/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/additional_person.yaml index 82cc31c42d9..95796e49d44 100644 --- a/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/additional_person.yaml +++ b/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/additional_person.yaml @@ -11,6 +11,10 @@ metadata: reference: - title: Working Disabled Program | Department of Health Care Services href: https://www.dhcs.ca.gov/services/working-disabled-program/ + - title: "California DHCS All County Welfare Directors Letter 21-31, Increases to the Asset Limits for Non-Modified Adjusted Gross Income Medi-Cal Programs #page 2,4" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 + - title: "California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs #page 1,9" + href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=1 - title: California Senate Bill 164 (Statutes of 2026, Chapter 27), Section 69 - Welfare and Institutions Code 14005.62(a), operative July 1, 2027 href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164 - title: California Welfare and Institutions Code 14007.9(a)(1)(C) diff --git a/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/two_people.yaml b/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/two_people.yaml index 33580f9430e..68d98ea4d55 100644 --- a/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/two_people.yaml +++ b/policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/two_people.yaml @@ -13,7 +13,7 @@ metadata: reference: - title: Working Disabled Program | Department of Health Care Services href: https://www.dhcs.ca.gov/services/working-disabled-program/ - - title: "California DHCS All County Welfare Directors Letter 21-31, Asset Limit Changes for Non-MAGI Medi-Cal (Phase I) #page 2-4" + - title: "California DHCS All County Welfare Directors Letter 21-31, Increases to the Asset Limits for Non-Modified Adjusted Gross Income Medi-Cal Programs #page 2-4" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2 - title: "California DHCS All County Welfare Directors Letter 22-25, Elimination of Asset Limits for Non-MAGI Medi-Cal Programs #page 2,5" href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/22-25.pdf#page=2 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml index d3d60b3d6f3..f33aadf0b16 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml @@ -181,23 +181,23 @@ output: is_optional_senior_or_disabled_asset_eligible: [false, false] -- name: assets below the July 2027 CA limit in 2028, eligible +- name: assets one dollar below the July 2027 CA limit in 2028, eligible period: 2028 input: - ssi_countable_resources: 20_000 + ssi_countable_resources: 20_999 state_code: CA output: - # 20,000 is under the 21,000 limit that applies from July 2027. + # 20,999 is under the 21,000 limit that applies from July 2027. is_optional_senior_or_disabled_asset_eligible: true -- name: joint filers below the July 2027 CA couple limit in 2028, eligible +- name: joint filers one dollar below the July 2027 CA couple limit in 2028, eligible period: 2028 input: people: person1: - ssi_countable_resources: 15_000 + ssi_countable_resources: 15_499 person2: - ssi_countable_resources: 15_000 + ssi_countable_resources: 15_500 marital_units: marital_unit1: members: [person1, person2] @@ -210,7 +210,7 @@ members: [person1, person2] tax_unit_is_joint: true output: - # 15,000 + 15,000 = 30,000 is under the 31,000 couple limit. + # 15,499 + 15,500 = 30,999 is under the 31,000 couple limit. is_optional_senior_or_disabled_asset_eligible: [true, true] - name: assets above the July 2027 CA limit in 2027, still eligible @@ -221,3 +221,26 @@ output: # January 1, 2027 still reads the 130,000 limit; 21,000 first applies in 2028. is_optional_senior_or_disabled_asset_eligible: true + +- name: joint filers above the July 2027 CA couple limit in 2027, still eligible + period: 2027 + input: + people: + person1: + ssi_countable_resources: 15_500 + person2: + ssi_countable_resources: 15_501 + marital_units: + marital_unit1: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CA + tax_units: + tax_unit: + members: [person1, person2] + tax_unit_is_joint: true + output: + # January 1, 2027 still reads the 195,000 couple limit; 31,000 first applies in 2028. + is_optional_senior_or_disabled_asset_eligible: [true, true] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml index d03f7f10bf1..d1f52a0d092 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml @@ -482,3 +482,40 @@ # 2027 still reads the 130,000 asset limit; 21,000 first applies in 2028. is_in_medicaid_medically_needy_category: true is_medically_needy_for_medicaid: true + +- name: Case 21, California senior couple with assets above the July 2027 couple limit is still eligible in 2027. + period: 2027 + input: + people: + person1: + age: 72 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 9_000 + medicaid_medically_needy_medical_expenses: 4_000 + ssi_countable_resources: 15_500 + person2: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 9_000 + medicaid_medically_needy_medical_expenses: 4_000 + ssi_countable_resources: 15_501 + tax_units: + tax_unit: + members: [person1, person2] + tax_unit_is_joint: true + marital_units: + marital_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CA + output: + # Limit 934 x 12 = 11,208. (9,000 - 4,000) x 2 = 10,000 is under it. January 1, + # 2027 still reads the 195,000 couple limit; 31,000 first applies in 2028. + is_in_medicaid_medically_needy_category: [true, true] + is_medically_needy_for_medicaid: [true, true] diff --git a/policyengine_us/tests/policy/baseline/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.yaml index 6c2c742d1e1..17efb758a5e 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.yaml @@ -268,3 +268,71 @@ # Size is capped at 10: 31,000 + 8 x 1,550 = 43,400. 21,700 + 21,701 = # 43,401 is over it. ca_wdp_asset_eligible: [false, false, false, false, false, false, false, false, false, false, false] + +- name: Case 12, two-person tax unit above the July 2027 two-person limit is still eligible in 2027. + period: 2027 + input: + people: + person1: + age: 45 + ssi_countable_resources: 15_500 + person2: + age: 43 + ssi_countable_resources: 15_501 + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CA + output: + # January 1, 2027 still reads the 195,000 two-person limit; 31,000 first + # applies in 2028. + ca_wdp_asset_eligible: [true, true] + +- name: Case 13, three-person tax unit at the 2027 three-person limit is eligible. + period: 2027 + input: + people: + person1: + age: 45 + ssi_countable_resources: 130_000 + person2: + age: 43 + ssi_countable_resources: 130_000 + person3: + age: 10 + tax_units: + tax_unit: + members: [person1, person2, person3] + households: + household: + members: [person1, person2, person3] + state_code: CA + output: + # January 1, 2027 reads 195,000 + 1 x 65,000 = 260,000. 130,000 + 130,000 + # + 0 = 260,000 is at it; resources may not exceed it. + ca_wdp_asset_eligible: [true, true, true] + +- name: Case 14, two-person tax unit with large assets is eligible in 2025, when no asset limit applied. + period: 2025 + input: + people: + person1: + age: 45 + ssi_countable_resources: 500_000 + person2: + age: 43 + ssi_countable_resources: 500_000 + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CA + output: + # ACWDL 22-25 eliminated the limit from January 1, 2024; ACWDL 25-14 + # reinstated it from January 1, 2026. + ca_wdp_asset_eligible: [true, true] diff --git a/policyengine_us/variables/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.py b/policyengine_us/variables/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.py index 7caa118bc6e..6c1033ef7f6 100644 --- a/policyengine_us/variables/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.py +++ b/policyengine_us/variables/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.py @@ -22,7 +22,7 @@ def formula(person, period, parameters): capped_size = min_(tax_unit_size, p.max_people) asset_limit = where( capped_size >= 2, - p.two_people + max_(capped_size - 2, 0) * p.additional_person, + p.two_people + (capped_size - 2) * p.additional_person, p.base, ) return countable_resources <= asset_limit From 33d10a5f09bb7c69d2ecd6a11b0ad283a371a31c Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 29 Oct 2026 14:33:46 -0400 Subject: [PATCH 20/22] Apply review: whole-dollar NY, ND and IL limits, DC 2019-2022, tests and references Co-Authored-By: Claude Opus 5.5 --- .../medicaid-medically-needy-limits.fixed.md | 2 +- .../medically_needy/categories/disabled.yaml | 5 + .../medically_needy/categories/senior.yaml | 5 + .../medically_needy/limit/assets/couple.yaml | 6 + .../limit/assets/individual.yaml | 6 + .../medically_needy/limit/income/couple.yaml | 14 +- .../limit/income/fpg_rate.yaml | 9 +- .../limit/income/individual.yaml | 13 +- .../limit/income/rounds_down_monthly.yaml | 15 ++ .../limit/income/rounds_up_monthly.yaml | 21 +++ .../limit/income/ssi_rate.yaml | 3 +- .../is_medically_needy_for_medicaid.yaml | 63 ++++++++ ...medicaid_medically_needy_income_limit.yaml | 134 +++++++++++++++--- .../medicaid_medically_needy_income_limit.py | 20 ++- 14 files changed, 292 insertions(+), 24 deletions(-) create mode 100644 policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/rounds_down_monthly.yaml create mode 100644 policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/rounds_up_monthly.yaml diff --git a/changelog.d/medicaid-medically-needy-limits.fixed.md b/changelog.d/medicaid-medically-needy-limits.fixed.md index fe86f4a3d72..4fe7b33107e 100644 --- a/changelog.d/medicaid-medically-needy-limits.fixed.md +++ b/changelog.d/medicaid-medically-needy-limits.fixed.md @@ -1 +1 @@ -Turned on the Medicaid medically needy pathway for aged, blind and disabled people in Arkansas, Iowa, Illinois, New Jersey and North Dakota, turned it off in Arizona, Idaho, Indiana, New Mexico and Nevada, which have no such program, and updated medically needy income and asset limits in 14 states, including Vermont's protected income level, tying them to the poverty guideline or the SSI federal benefit rate where state rules do. +Turned on the Medicaid medically needy pathway for aged, blind and disabled people in Arkansas, Iowa, Illinois, New Jersey and North Dakota, turned it off in Arizona, Idaho, Indiana, New Mexico and Nevada, which have no such program, and updated medically needy income and asset limits in 14 states and DC, including Vermont's protected income level and DC's 2019-2022 levels, tying them to the poverty guideline or the SSI federal benefit rate where state rules do, with New York and North Dakota rounding the monthly level up to the dollar and Illinois dropping the cents. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/disabled.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/disabled.yaml index 5b83ab01de3..af0ab731519 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/disabled.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/disabled.yaml @@ -1,4 +1,5 @@ description: Whether people with disabilities can qualify for Medicaid under the 'medically needy' pathway. +# NOTE: Like every other state's, the AR, IA, IL, ND and NJ switches date from 2015-01-01, while their income and asset limits start in 2018, so 2015-2017 use the 2018 limits. metadata: label: Medicaid medically needy pathway for people with disabilities breakdown: @@ -17,6 +18,10 @@ metadata: href: https://www.dhs.state.il.us/page.aspx?item=16536 - title: New Jersey DMAHS, Medically Needy Segment fact sheet href: https://web.archive.org/web/20260514003440id_/https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 + - title: N.J.A.C. 10:70-1.2 - Purpose of the Medically Needy Manual + href: https://www.law.cornell.edu/regulations/new-jersey/N-J-A-C-10-70-1-2 + - title: N.J.A.C. 10:70-5.1 - Resource eligibility limits + href: https://www.law.cornell.edu/regulations/new-jersey/N-J-A-C-10-70-5-1 - title: North Dakota Non-ACA Medicaid Manual 510-05-85-40 - Medically needy income levels href: https://www.nd.gov/dhs/policymanuals/51005/510_05_85_40.htm - title: North Dakota Administrative Code 75-02-02.1-26(1) - Asset limits, medically needy aged, blind, and disabled diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/senior.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/senior.yaml index 65a4049496a..b1d55e332d7 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/senior.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/senior.yaml @@ -1,4 +1,5 @@ description: Whether seniors can qualify for Medicaid under the 'medically needy' pathway. +# NOTE: Like every other state's, the AR, IA, IL, ND and NJ switches date from 2015-01-01, while their income and asset limits start in 2018, so 2015-2017 use the 2018 limits. metadata: label: Medicaid medically needy pathway for seniors breakdown: @@ -17,6 +18,10 @@ metadata: href: https://www.dhs.state.il.us/page.aspx?item=16536 - title: New Jersey DMAHS, Medically Needy Segment fact sheet href: https://web.archive.org/web/20260514003440id_/https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 + - title: N.J.A.C. 10:70-1.2 - Purpose of the Medically Needy Manual + href: https://www.law.cornell.edu/regulations/new-jersey/N-J-A-C-10-70-1-2 + - title: N.J.A.C. 10:70-5.1 - Resource eligibility limits + href: https://www.law.cornell.edu/regulations/new-jersey/N-J-A-C-10-70-5-1 - title: North Dakota Non-ACA Medicaid Manual 510-05-85-40 - Medically needy income levels href: https://www.nd.gov/dhs/policymanuals/51005/510_05_85_40.htm - title: North Dakota Administrative Code 75-02-02.1-26(1) - Asset limits, medically needy aged, blind, and disabled diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml index f957dc45bd3..dc218d5281d 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/couple.yaml @@ -10,6 +10,10 @@ metadata: href: https://www.legis.iowa.gov/docs/iac/chapter/441.75.pdf#page=22 - title: New Jersey DMAHS, Medically Needy Segment fact sheet href: https://web.archive.org/web/20260514003440id_/https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 + - title: N.J.A.C. 10:70-1.2 - Purpose of the Medically Needy Manual + href: https://www.law.cornell.edu/regulations/new-jersey/N-J-A-C-10-70-1-2 + - title: N.J.A.C. 10:70-5.1 - Resource eligibility limits + href: https://www.law.cornell.edu/regulations/new-jersey/N-J-A-C-10-70-5-1 - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ - title: California Welfare and Institutions Code 14005.62(a), (c), (d) @@ -22,6 +26,8 @@ metadata: href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=1 - title: Illinois Department of Human Services Policy Manual PM 07-02-01 - Asset Limits href: https://www.dhs.state.il.us/page.aspx?Item=14876 + - title: New York DOH GIS 22 MA/01, Attachment I, 2022 SSI-Related Medicaid Income and Resource Levels + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma01_att1.pdf#page=2 - title: New York DOH GIS 22 MA/11, Increase of Medicaid Medically Needy Income Level to 138% of the Federal Poverty Level href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma11.pdf#page=2 - title: New York DOH GIS 23 MA/02, Attachment 1, 2023 Income and Resource Standards diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml index c318ddca22f..671d6701178 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/individual.yaml @@ -10,6 +10,10 @@ metadata: href: https://www.legis.iowa.gov/docs/iac/chapter/441.75.pdf#page=22 - title: New Jersey DMAHS, Medically Needy Segment fact sheet href: https://web.archive.org/web/20260514003440id_/https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 + - title: N.J.A.C. 10:70-1.2 - Purpose of the Medically Needy Manual + href: https://www.law.cornell.edu/regulations/new-jersey/N-J-A-C-10-70-1-2 + - title: N.J.A.C. 10:70-5.1 - Resource eligibility limits + href: https://www.law.cornell.edu/regulations/new-jersey/N-J-A-C-10-70-5-1 - title: "Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey | KFF" href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ - title: California Welfare and Institutions Code 14005.62(a), (c), (d) @@ -22,6 +26,8 @@ metadata: href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=1 - title: Illinois Department of Human Services Policy Manual PM 07-02-01 - Asset Limits href: https://www.dhs.state.il.us/page.aspx?Item=14876 + - title: New York DOH GIS 22 MA/01, Attachment I, 2022 SSI-Related Medicaid Income and Resource Levels + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma01_att1.pdf#page=2 - title: New York DOH GIS 22 MA/11, Increase of Medicaid Medically Needy Income Level to 138% of the Federal Poverty Level href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma11.pdf#page=2 - title: New York DOH GIS 23 MA/02, Attachment 1, 2023 Income and Resource Standards diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml index 7ed00c292ef..71f7af89140 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/couple.yaml @@ -1,4 +1,5 @@ -description: States limit income for a couple to this monthly amount under the Medicaid medically needy pathway; from the date a state's fpg_rate or ssi_rate is positive, the formula uses that rate instead. +description: States limit monthly income for a couple to this amount under the Medicaid medically needy program. +# NOTE: From the date a state's fpg_rate or ssi_rate is positive, the formula uses that rate instead of this amount. IL, MN, ND, UT and WA use a rate from 2018 and have no dollar entry. metadata: label: Medicaid medically needy pathway for couples income limit breakdown: @@ -10,6 +11,10 @@ metadata: href: https://www.legis.iowa.gov/docs/iac/chapter/441.75.pdf#page=24 - title: New Jersey DMAHS, Medically Needy Segment fact sheet href: https://web.archive.org/web/20260514003440id_/https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 + - title: N.J.A.C. 10:70-1.2 - Purpose of the Medically Needy Manual + href: https://www.law.cornell.edu/regulations/new-jersey/N-J-A-C-10-70-1-2 + - title: N.J.A.C. 10:70-5.1 - Resource eligibility limits + href: https://www.law.cornell.edu/regulations/new-jersey/N-J-A-C-10-70-5-1 - title: CMS approval of Kansas State Plan Amendment KS-25-0019, medically needy income level href: https://www.medicaid.gov/medicaid/spa/downloads/KS-25-0019.pdf#page=7 - title: Arkansas DHS Division of County Operations, Health Care Eligibility Quick Reference (January 2025), AABD Adult Spend Down @@ -44,6 +49,8 @@ metadata: href: https://www.medicaid.gov/medicaid/spa/downloads/NH-25-0012.pdf#page=7 - title: New Hampshire State Plan Amendment NH-25-0019, Medically Needy Income Level (effective July 1, 2025) href: https://www.medicaid.gov/medicaid/spa/downloads/NH-25-0019.pdf#page=7 + - title: New York DOH GIS 22 MA/01, Attachment I, 2022 SSI-Related Medicaid Income and Resource Levels + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma01_att1.pdf#page=2 - title: New York DOH GIS 22 MA/11, Increase of Medicaid Medically Needy Income Level to 138% of the Federal Poverty Level href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma11.pdf#page=1 - title: Rhode Island 210-RICR-40-00-3, Medicaid Integrated Health Care Coverage, SSI Financial Eligibility Determinations (version effective January 1, 2020) @@ -104,6 +111,11 @@ CT: 2026-03-01: 1_153 DC: 2018-01-01: 652 + # NOTE: KFF 2018 reports DC's own $652 for couples; the 29 DCMR 901.1 method applies from 2019. + 2019-01-01: 704.58 + 2020-01-01: 718.33 + 2021-01-01: 725.83 + 2022-01-01: 762.92 2023-01-01: 821.67 2024-01-01: 851.67 2025-01-01: 881.25 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/fpg_rate.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/fpg_rate.yaml index 35e3524b029..6a95b4ffdcc 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/fpg_rate.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/fpg_rate.yaml @@ -1,4 +1,5 @@ -description: States set the medically needy income limit at this share of the federal poverty guideline for a household of one or two under the Medicaid program. States not listed, or with a share of zero, use the dollar limits. +description: States set the medically needy income limit at this share of the federal poverty guideline for a household of one or two under the Medicaid program. +# NOTE: States not listed, or with a share of zero, use the dollar limits in individual.yaml and couple.yaml. metadata: unit: /1 period: year @@ -30,6 +31,10 @@ metadata: href: https://www.nd.gov/dhs/policymanuals/51003/Content/ML/2023/ML%203702%20Federal%20Poverty%20Level%20Updates%2004-01-2023.pdf#page=6 - title: North Dakota State Plan Amendment ND-23-0034 (effective January 1, 2024) href: https://www.medicaid.gov/medicaid/spa/downloads/ND-23-0034.pdf#page=2 + - title: North Dakota Manual Letter 3776, ACA Medically Needy (effective January 1, 2024) + href: https://www.nd.gov/dhs/policymanuals/51003/Content/ML/2023/ML%203776%20-ACA%20Med%20Needy.pdf#page=1 + - title: North Dakota Non-ACA Medicaid Manual 510-05-85-40 (archived, ML 3896), 90% of poverty from April 1, 2024 + href: https://www.nd.gov/dhs/policymanuals/51005/Archived%20Documents/2025/3896/510_05_85_40.htm - title: New York DOH GIS 22 MA/11, Increase of Medicaid Medically Needy Income Level to 138% of the Federal Poverty Level href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma11.pdf#page=1 - title: New York State Plan Amendment NY-23-0001 (effective January 1, 2023) @@ -41,7 +46,7 @@ metadata: - title: Wisconsin Statutes 49.47(4)(c)1 href: https://docs.legis.wisconsin.gov/statutes/statutes/49/iv/47/4/c - title: Wisconsin DHS Operations Memo 19-26, SSI-Related Medicaid Medically Needy Income Limit Increase - href: https://www.dhs.wisconsin.gov/dms/memos/ops/dms-ops-2019-26.pdf#page=2 + href: https://web.archive.org/web/20251031224345id_/https://www.dhs.wisconsin.gov/dms/memos/ops/dms-ops-2019-26.pdf#page=2 - title: Wisconsin Medicaid Eligibility Handbook (EBD) 39.4.1 - Elderly, Blind, or Disabled Assets and Income Table href: https://www.emhandbooks.wisconsin.gov/meh-ebd/policy_files/39/39.4.htm diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml index c535b4b49dc..e57ea1c221a 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/individual.yaml @@ -1,4 +1,5 @@ -description: States limit income for an individual to this monthly amount under the Medicaid medically needy pathway; from the date a state's fpg_rate or ssi_rate is positive, the formula uses that rate instead. +description: States limit monthly income for an individual to this amount under the Medicaid medically needy program. +# NOTE: From the date a state's fpg_rate or ssi_rate is positive, the formula uses that rate instead of this amount. IL, MN, ND, UT and WA use a rate from 2018 and have no dollar entry. metadata: label: Medicaid medically needy pathway for individuals income limit breakdown: @@ -10,6 +11,10 @@ metadata: href: https://www.legis.iowa.gov/docs/iac/chapter/441.75.pdf#page=24 - title: New Jersey DMAHS, Medically Needy Segment fact sheet href: https://web.archive.org/web/20260514003440id_/https://www.nj.gov/humanservices/dmahs/clients/medicaid/medically_needy_fact_sheet.pdf#page=1 + - title: N.J.A.C. 10:70-1.2 - Purpose of the Medically Needy Manual + href: https://www.law.cornell.edu/regulations/new-jersey/N-J-A-C-10-70-1-2 + - title: N.J.A.C. 10:70-5.1 - Resource eligibility limits + href: https://www.law.cornell.edu/regulations/new-jersey/N-J-A-C-10-70-5-1 - title: CMS approval of Kansas State Plan Amendment KS-25-0019, medically needy income level href: https://www.medicaid.gov/medicaid/spa/downloads/KS-25-0019.pdf#page=7 - title: Arkansas DHS Division of County Operations, Health Care Eligibility Quick Reference (January 2025), AABD Adult Spend Down @@ -44,6 +49,8 @@ metadata: href: https://www.medicaid.gov/medicaid/spa/downloads/NH-25-0012.pdf#page=7 - title: New Hampshire State Plan Amendment NH-25-0019, Medically Needy Income Level (effective July 1, 2025) href: https://www.medicaid.gov/medicaid/spa/downloads/NH-25-0019.pdf#page=7 + - title: New York DOH GIS 22 MA/01, Attachment I, 2022 SSI-Related Medicaid Income and Resource Levels + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma01_att1.pdf#page=2 - title: New York DOH GIS 22 MA/11, Increase of Medicaid Medically Needy Income Level to 138% of the Federal Poverty Level href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/22ma11.pdf#page=1 - title: Rhode Island 210-RICR-40-00-3, Medicaid Integrated Health Care Coverage, SSI Financial Eligibility Determinations (version effective January 1, 2020) @@ -104,6 +111,10 @@ CT: 2026-03-01: 851 DC: 2018-01-01: 652 + 2019-01-01: 669.35 + 2020-01-01: 682.42 + 2021-01-01: 689.54 + 2022-01-01: 724.77 2023-01-01: 780.58 2024-01-01: 809.08 2025-01-01: 837.19 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/rounds_down_monthly.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/rounds_down_monthly.yaml new file mode 100644 index 00000000000..02c9236b4fa --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/rounds_down_monthly.yaml @@ -0,0 +1,15 @@ +description: States round the monthly medically needy income limit down to a whole dollar under the Medicaid program, if this is true. +metadata: + unit: bool + period: year + label: Medicaid medically needy income limit rounded down to a whole dollar + breakdown: + - state_code + reference: + - title: Illinois DHS Workers' Action Guide WAG 25-03-02(2), AABD 100% FPL monthly income standards ($1,803 for two in 2026) + href: https://www.dhs.state.il.us/page.aspx?item=21741 + +IL: + # IDHS tables drop the cents for one and two people from 2023; KFF 2018 does not. + 2018-01-01: false + 2023-01-01: true diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/rounds_up_monthly.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/rounds_up_monthly.yaml new file mode 100644 index 00000000000..50e188d6a67 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/rounds_up_monthly.yaml @@ -0,0 +1,21 @@ +description: States round the monthly medically needy income limit up to the next whole dollar under the Medicaid program, if this is true. +metadata: + unit: bool + period: year + label: Medicaid medically needy income limit rounded up to a whole dollar + breakdown: + - state_code + reference: + - title: New York DOH GIS 26 MA/05, Attachment I, SSI-Related Medicaid Income Level $1,836 / $2,489 (138% FPL) + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/26ma05_att1.pdf#page=2 + - title: New York DOH GIS 25 MA/03, Attachment I, SSI-Related Medicaid Income Level $1,800 / $2,433 (138% FPL) + href: https://www.health.ny.gov/health_care/medicaid/publications/docs/gis/25ma03_att1.pdf#page=2 + - title: North Dakota Manual Letter 3702, medically needy income levels $1,009 / $1,364 (83% FPL) + href: https://www.nd.gov/dhs/policymanuals/51003/Content/ML/2023/ML%203702%20Federal%20Poverty%20Level%20Updates%2004-01-2023.pdf#page=6 + - title: North Dakota Non-ACA Medicaid Manual 510-05-85-40 (archived, ML 3896), medically needy income level $1,130 (90% FPL) + href: https://www.nd.gov/dhs/policymanuals/51005/Archived%20Documents/2025/3896/510_05_85_40.htm + +ND: + 2018-01-01: true +NY: + 2018-01-01: true diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/ssi_rate.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/ssi_rate.yaml index eb3784d907f..4240fcfd4ec 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/ssi_rate.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/ssi_rate.yaml @@ -1,4 +1,5 @@ -description: States set the medically needy income limit at this share of the Supplemental Security Income federal benefit rate under the Medicaid program. States not listed, or with a share of zero, use the dollar limits. +description: States set the medically needy income limit at this share of the Supplemental Security Income federal benefit rate under the Medicaid program. +# NOTE: States not listed, or with a share of zero, use the dollar limits in individual.yaml and couple.yaml. metadata: unit: /1 period: year diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml index 4da0f2cdaa5..7274ca89020 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml @@ -637,3 +637,66 @@ output: # 20,000 - 3,488 = 16,512, or 1,376 a month, over 1,375. is_medically_needy_for_medicaid: false + +- name: Case 24, Illinois senior with assets at the 17,500 limit qualifies in 2024. + period: 2024 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 20_000 + medicaid_medically_needy_medical_expenses: 6_000 + ssi_countable_resources: 17_500 + state_code: IL + output: + # Limit 15,060 (100% FPG, 2024). 20,000 - 6,000 = 14,000; assets 17,500 equal + # the limit from 2023-05-12, first read in 2024 (PM 07-02-01). + is_in_medicaid_medically_needy_category: true + is_medically_needy_for_medicaid: true + +- name: Case 25, New York senior at the published 1,836 monthly level qualifies in 2026. + period: 2026 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 22_032 + medicaid_medically_needy_medical_expenses: 0 + ssi_countable_resources: 1_000 + state_code: NY + output: + # GIS 26 MA/05: 1,836 x 12 = 22,032 (138% FPL is 1,835.40, rounded up). + is_medically_needy_for_medicaid: true + +- name: Case 26, New York senior one dollar a year above the published level does not qualify in 2026. + period: 2026 + input: + age: 70 + is_adult_for_medicaid: false + is_optional_senior_or_disabled_for_medicaid: false + is_ssi_recipient_for_medicaid: false + ssi_countable_income: 22_033 + medicaid_medically_needy_medical_expenses: 0 + ssi_countable_resources: 1_000 + state_code: NY + output: + # 22,033 is above the published 22,032 (1,836 x 12). + is_medically_needy_for_medicaid: false + +- name: Case 27, Illinois couple above the published 1,803 monthly level does not qualify in 2026. + period: 2026 + input: + people: + person1: {age: 70, is_tax_unit_head: true, is_adult_for_medicaid: false, is_optional_senior_or_disabled_for_medicaid: false, is_ssi_recipient_for_medicaid: false, ssi_countable_income: 21_640, medicaid_medically_needy_medical_expenses: 0, ssi_countable_resources: 1_000} + person2: {age: 68, is_tax_unit_spouse: true, is_adult_for_medicaid: false, is_optional_senior_or_disabled_for_medicaid: false, is_ssi_recipient_for_medicaid: false, ssi_countable_income: 0, medicaid_medically_needy_medical_expenses: 0, ssi_countable_resources: 0} + marital_units: + marital_unit: {members: [person1, person2]} + tax_units: + tax_unit: {members: [person1, person2]} + households: + household: {members: [person1, person2], state_code: IL} + output: + # WAG 25-03-02(2): 1,803 x 12 = 21,636 (21,640 / 12 = 1,803.33, cents dropped). + is_medically_needy_for_medicaid: [false, false] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml index c42c21cc37a..a9f1b197349 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml @@ -79,7 +79,6 @@ # 475 x 12 = 5,700. medicaid_medically_needy_income_limit: 5_700 - - name: Case 4, Kansas couple uses the SSI couple rate from July 2025. period: 2026 absolute_error_margin: 0.01 @@ -103,7 +102,6 @@ # 1,491 x 12 = 17,892. medicaid_medically_needy_income_limit: [17_892, 17_892] - - name: Case 5, Minnesota uses 100 percent of the poverty guideline. period: 2026 absolute_error_margin: 0.01 @@ -114,7 +112,6 @@ # 1.00 x 15,960 = 15,960. medicaid_medically_needy_income_limit: 15_960 - - name: Case 6, New Hampshire couple and individual dollar limits in 2023, 2025 and 2026. period: 2026 absolute_error_margin: 0.01 @@ -169,9 +166,9 @@ members: [person1, person2] state_code: NY output: - # 1.38 x 21,640 = 29,863.20. - medicaid_medically_needy_income_limit: [29_863.2, 29_863.2] - + # 1.38 x 21,640 / 12 = 2,488.60, rounded up to 2,489 (GIS 26 MA/05): + # 2,489 x 12 = 29,868. + medicaid_medically_needy_income_limit: [29_868, 29_868] - name: Case 8, Rhode Island couple and individual dollar limits from 2019 to 2026. period: 2026 @@ -234,7 +231,6 @@ # 1.00 x 21,640 = 21,640. medicaid_medically_needy_income_limit: [21_640, 21_640] - - name: Case 10, Washington couple uses the one-person SSI rate. period: 2026 absolute_error_margin: 0.01 @@ -258,7 +254,6 @@ # 994 x 12 = 11,928. medicaid_medically_needy_income_limit: [11_928, 11_928] - - name: Case 11, Wisconsin uses 100 percent of the poverty guideline. period: 2026 absolute_error_margin: 0.01 @@ -269,7 +264,6 @@ # 1.00 x 15,960 = 15,960. medicaid_medically_needy_income_limit: 15_960 - - name: Case 12, Illinois couple uses 100 percent of the two-person poverty guideline. period: 2026 absolute_error_margin: 0.01 @@ -290,9 +284,9 @@ members: [person1, person2] state_code: IL output: - # 1.00 x 21,640 = 21,640. - medicaid_medically_needy_income_limit: [21_640, 21_640] - + # 21,640 / 12 = 1,803.33, with the cents dropped (WAG 25-03-02(2)): + # 1,803 x 12 = 21,636. + medicaid_medically_needy_income_limit: [21_636, 21_636] - name: Case 13, North Dakota uses 90 percent of the poverty guideline. period: 2026 @@ -331,10 +325,11 @@ state_code: {2022: NY, 2023: NY} output: # Outputs are [couple, couple, individual]. 2022: 1,367 / 934 times 12. - # 2023: 1.38 x 19,720 and 1.38 x 14,580. + # 2023: 1.38 x 19,720 / 12 = 2,267.80 and 1.38 x 14,580 / 12 = 1,676.70, + # rounded up to 2,268 and 1,677 a month. medicaid_medically_needy_income_limit: 2022: [16_404, 16_404, 11_208] - 2023: [27_213.6, 27_213.6, 20_120.4] + 2023: [27_216, 27_216, 20_124] - name: Case 15, Minnesota uses 80 percent of the poverty guideline in 2019 and 81 percent in 2020. period: 2020 @@ -395,9 +390,11 @@ members: [person1, person2, person3] state_code: {2023: ND} output: - # Outputs are [couple, couple, individual]: 0.83 x 19,720 and 0.83 x 14,580. + # Outputs are [couple, couple, individual]: 0.83 x 19,720 / 12 = 1,363.97 + # and 0.83 x 14,580 / 12 = 1,008.45, rounded up to 1,364 and 1,009 a month + # (ML 3702). medicaid_medically_needy_income_limit: - 2023: [16_367.6, 16_367.6, 12_101.4] + 2023: [16_368, 16_368, 12_108] - name: Case 17, Wisconsin uses its dollar limit in 2019 and 100 percent of the poverty guideline from 2020. period: 2020 @@ -470,3 +467,108 @@ 2024: [15_600, 15_600, 15_600] 2025: [15_996, 15_996, 15_996] 2026: [16_500, 16_500, 16_500] + +- name: Case 19, Arkansas, Iowa and New Jersey couple and individual dollar limits in 2026. + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: {age: 70} + person2: {age: 68} + person3: {age: 74} + person4: {age: 70} + person5: {age: 68} + person6: {age: 74} + person7: {age: 70} + person8: {age: 68} + person9: {age: 74} + marital_units: + marital_unit1: {members: [person1, person2]} + marital_unit2: {members: [person3]} + marital_unit3: {members: [person4, person5]} + marital_unit4: {members: [person6]} + marital_unit5: {members: [person7, person8]} + marital_unit6: {members: [person9]} + tax_units: + tax_unit1: {members: [person1, person2]} + tax_unit2: {members: [person3]} + tax_unit3: {members: [person4, person5]} + tax_unit4: {members: [person6]} + tax_unit5: {members: [person7, person8]} + tax_unit6: {members: [person9]} + households: + household1: {members: [person1, person2, person3], state_code: AR} + household2: {members: [person4, person5, person6], state_code: IA} + household3: {members: [person7, person8, person9], state_code: NJ} + output: + # AR: 216.66 / 108.33 x 12; IA: 483 / 483 x 12; NJ: 434 / 367 x 12. + medicaid_medically_needy_income_limit: [2_599.92, 2_599.92, 1_299.96, 5_796, 5_796, 5_796, 5_208, 5_208, 4_404] + +- name: Case 20, North Dakota uses 90 percent of the poverty guideline from 2024 and Minnesota 100 percent from 2023. + period: 2024 + absolute_error_margin: 0.01 + input: + people: + person1: {age: 70} + person2: {age: 70} + marital_units: + marital_unit1: {members: [person1]} + marital_unit2: {members: [person2]} + tax_units: + tax_unit1: {members: [person1]} + tax_unit2: {members: [person2]} + households: + household1: {members: [person1], state_code: {2023: MN, 2024: MN}} + household2: {members: [person2], state_code: {2023: ND, 2024: ND}} + output: + # [MN, ND]. 2023: 100% and 83% of 14,580 (ND 1,008.45 rounds up to 1,009 a month). + # 2024: 100% and 90% of 15,060 (ND 1,129.50 rounds up to 1,130, ML 3896). + medicaid_medically_needy_income_limit: + 2023: [14_580, 12_108] + 2024: [15_060, 13_560] + +- name: Case 21, aged parent claimed as a dependent on a married child's joint return uses the individual limit. + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: {age: 50, is_tax_unit_head: true} + person2: {age: 48, is_tax_unit_spouse: true} + person3: {age: 78, is_tax_unit_dependent: true} + marital_units: + marital_unit1: {members: [person1, person2]} + marital_unit2: {members: [person3]} + tax_units: + tax_unit: {members: [person1, person2, person3]} + households: + household: {members: [person1, person2, person3], state_code: NY} + output: + # 42 CFR 435.602: the unit is the individual or married couple, not the tax unit. + # person3 is unmarried: 1.38 x 15,960 / 12 = 1,835.40, rounded up to 1,836, x 12. + medicaid_medically_needy_income_limit: [29_868, 29_868, 22_032] + +- name: Case 22, District of Columbia couple and individual limits from 2019 to 2022 follow 29 DCMR 901.1. + period: 2022 + absolute_error_margin: 0.01 + input: + people: + person1: {age: 70} + person2: {age: 68} + person3: {age: 74} + marital_units: + marital_unit1: {members: [person1, person2]} + marital_unit2: {members: [person3]} + tax_units: + tax_unit1: {members: [person1, person2]} + tax_unit2: {members: [person3]} + households: + household: + members: [person1, person2, person3] + state_code: {2019: DC, 2020: DC, 2021: DC, 2022: DC} + output: + # Couple: 50% of the two-person guideline / 12; individual: 95% of that. + medicaid_medically_needy_income_limit: + 2019: [8_454.96, 8_454.96, 8_032.2] + 2020: [8_619.96, 8_619.96, 8_189.04] + 2021: [8_709.96, 8_709.96, 8_274.48] + 2022: [9_155.04, 9_155.04, 8_697.24] diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py index c40af6acf41..274cb767e2a 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py @@ -21,7 +21,7 @@ def formula(person, period, parameters): # SSI financial responsibility rules (42 CFR 435.602): the unit is # the individual or the married couple, not the tax filing unit. is_couple = person.marital_unit.nb_persons() == 2 - # Washington applies its one-person limit to a couple. + # Some states apply the one-person limit to a couple. same_limit = p.couple_uses_individual_limit[state].astype(bool) uses_couple_limit = is_couple & ~same_limit dollar_limit = where(uses_couple_limit, p.couple[state], p.individual[state]) @@ -31,10 +31,26 @@ def formula(person, period, parameters): fbr = where(uses_couple_limit, ssi.couple, ssi.individual) fpg_rate = p.fpg_rate[state] ssi_rate = p.ssi_rate[state] + fpg_limit = fpg_rate * unit_fpg + # Some states publish the monthly level in whole dollars. Fix the + # monthly amount at cent precision first, so floating-point noise + # cannot move an exact whole dollar (as in medicaid_income_level). + fpg_monthly = np.round(fpg_limit / MONTHS_IN_YEAR, 2) + fpg_limit = select( + [ + p.rounds_up_monthly[state].astype(bool), + p.rounds_down_monthly[state].astype(bool), + ], + [ + np.ceil(fpg_monthly) * MONTHS_IN_YEAR, + np.floor(fpg_monthly) * MONTHS_IN_YEAR, + ], + default=fpg_limit, + ) return select( [fpg_rate > 0, ssi_rate > 0], [ - fpg_rate * unit_fpg, + fpg_limit, ssi_rate * fbr * MONTHS_IN_YEAR, ], default=dollar_limit * MONTHS_IN_YEAR, From 0f8b603643e23993ebaa3fbb850fa2e25f843319 Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 29 Oct 2026 17:42:49 -0400 Subject: [PATCH 21/22] Move the Illinois rounding flag to a scalar parameter; review test and comments Co-Authored-By: Claude Opus 5.5 --- .../income/{ => il}/rounds_down_monthly.yaml | 15 +++++------ .../is_medically_needy_for_medicaid.yaml | 8 +++--- ...medicaid_medically_needy_income_limit.yaml | 26 +++++++++++++++++++ .../medicaid_medically_needy_income_limit.py | 4 ++- 4 files changed, 39 insertions(+), 14 deletions(-) rename policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/{ => il}/rounds_down_monthly.yaml (59%) diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/rounds_down_monthly.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/il/rounds_down_monthly.yaml similarity index 59% rename from policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/rounds_down_monthly.yaml rename to policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/il/rounds_down_monthly.yaml index 02c9236b4fa..dcab04882e6 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/rounds_down_monthly.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/il/rounds_down_monthly.yaml @@ -1,15 +1,12 @@ -description: States round the monthly medically needy income limit down to a whole dollar under the Medicaid program, if this is true. +description: Illinois rounds the monthly medically needy income limit down to a whole dollar under the Medicaid program, if this is true. +values: + # IDHS tables drop the cents for one and two people from 2023; KFF 2018 does not. + 2018-01-01: false + 2023-01-01: true metadata: unit: bool period: year - label: Medicaid medically needy income limit rounded down to a whole dollar - breakdown: - - state_code + label: Illinois Medicaid medically needy income limit rounded down to a whole dollar reference: - title: Illinois DHS Workers' Action Guide WAG 25-03-02(2), AABD 100% FPL monthly income standards ($1,803 for two in 2026) href: https://www.dhs.state.il.us/page.aspx?item=21741 - -IL: - # IDHS tables drop the cents for one and two people from 2023; KFF 2018 does not. - 2018-01-01: false - 2023-01-01: true diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml index 7274ca89020..a197c79fd71 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml @@ -445,7 +445,7 @@ ssi_countable_resources: 33_038 state_code: NY output: - # Limit 1.38 x 15,960 = 22,024.80. 25,000 - 5,000 = 20,000; assets 33,038 equal + # Limit 1,836 x 12 = 22,032 (GIS 26 MA/05). 25,000 - 5,000 = 20,000; assets 33,038 equal # the 2026 resource level. is_in_medicaid_medically_needy_category: true is_medically_needy_for_medicaid: true @@ -499,7 +499,7 @@ state_code: {2022: NY, 2023: NY, 2024: NY, 2025: NY, 2026: NY} output: # 2022: 25,000 - 15,000 = 10,000 <= 934 x 12 = 11,208. - # 2023-2026: 20,000 <= 1.38 x FPG (20,120.40, 20,782.80, 21,597, 22,024.80). + # 2023-2026: 20,000 <= 12 x 1,677, 1,732, 1,800 and 1,836 (20,124, 20,784, 21,600, 22,032). # Resources equal each year's level (GIS 22 MA/11 p2; the 2023-2026 GIS # attachments). is_medically_needy_for_medicaid: @@ -602,9 +602,9 @@ members: [person5, person6] state_code: IL output: - # NY: 40,000 - 12,000 = 28,000 <= 1.38 x 21,640 = 29,863.20; assets 44,796. + # NY: 40,000 - 12,000 = 28,000 <= 2,489 x 12 = 29,868; assets 44,796. # CA: 36,000 - 25,000 = 11,000 <= 934 x 12 = 11,208; assets 195,000. - # IL: 28,000 - 7,000 = 21,000 <= 21,640; assets 17,500 (PM 07-02-01). + # IL: 28,000 - 7,000 = 21,000 <= 1,803 x 12 = 21,636; assets 17,500 (PM 07-02-01). is_medically_needy_for_medicaid: [true, true, true, true, true, true] - name: Case 22, Vermont senior with income after medical expenses at the 2026 protected income level qualifies. diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml index a9f1b197349..c1ea8172c80 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml @@ -572,3 +572,29 @@ 2020: [8_619.96, 8_619.96, 8_189.04] 2021: [8_709.96, 8_709.96, 8_274.48] 2022: [9_155.04, 9_155.04, 8_697.24] + +- name: Case 23, Illinois keeps the cents in 2022 and drops them from 2023. + period: 2023 + absolute_error_margin: 0.01 + input: + people: + person1: {age: 70} + person2: {age: 68} + person3: {age: 74} + marital_units: + marital_unit1: {members: [person1, person2]} + marital_unit2: {members: [person3]} + tax_units: + tax_unit1: {members: [person1, person2]} + tax_unit2: {members: [person3]} + households: + household: + members: [person1, person2, person3] + state_code: {2022: IL, 2023: IL} + output: + # Outputs are [couple, couple, individual]. 2022: 18,310 and 13,590 (1,132.50 a + # month, not rounded). 2023: 19,720 / 12 = 1,643.33, cents dropped, 1,643 x 12; + # 14,580 / 12 = 1,215 exactly. + medicaid_medically_needy_income_limit: + 2022: [18_310, 18_310, 13_590] + 2023: [19_716, 19_716, 14_580] diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py index 274cb767e2a..64e892ff38e 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py @@ -36,10 +36,12 @@ def formula(person, period, parameters): # monthly amount at cent precision first, so floating-point noise # cannot move an exact whole dollar (as in medicaid_income_level). fpg_monthly = np.round(fpg_limit / MONTHS_IN_YEAR, 2) + # Illinois is the only state that drops the cents. + rounds_down = (state == "IL") & p.il.rounds_down_monthly fpg_limit = select( [ p.rounds_up_monthly[state].astype(bool), - p.rounds_down_monthly[state].astype(bool), + rounds_down, ], [ np.ceil(fpg_monthly) * MONTHS_IN_YEAR, From bdb48a7b2c28d05d3b7995882a2d1f8bc5d7b864 Mon Sep 17 00:00:00 2001 From: Ziming Date: Fri, 30 Oct 2026 10:47:48 -0400 Subject: [PATCH 22/22] Round Illinois medically needy limits to the nearest dollar through 2024 KFF 2018 and the IDHS 2019-2024 tables round the monthly level to the nearest dollar; the 2025 and 2026 tables drop the cents. Add the scalar il/rounds_to_nearest_monthly flag and move il/rounds_down_monthly to 2025. Co-Authored-By: Claude Opus 5.5 --- .../medicaid-medically-needy-limits.fixed.md | 2 +- .../limit/income/il/rounds_down_monthly.yaml | 6 ++++-- .../income/il/rounds_to_nearest_monthly.yaml | 17 +++++++++++++++++ .../medicaid_medically_needy_income_limit.yaml | 16 ++++++++-------- .../medicaid_medically_needy_income_limit.py | 10 ++++++++-- 5 files changed, 38 insertions(+), 13 deletions(-) create mode 100644 policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/il/rounds_to_nearest_monthly.yaml diff --git a/changelog.d/medicaid-medically-needy-limits.fixed.md b/changelog.d/medicaid-medically-needy-limits.fixed.md index 4fe7b33107e..10cf60e5fef 100644 --- a/changelog.d/medicaid-medically-needy-limits.fixed.md +++ b/changelog.d/medicaid-medically-needy-limits.fixed.md @@ -1 +1 @@ -Turned on the Medicaid medically needy pathway for aged, blind and disabled people in Arkansas, Iowa, Illinois, New Jersey and North Dakota, turned it off in Arizona, Idaho, Indiana, New Mexico and Nevada, which have no such program, and updated medically needy income and asset limits in 14 states and DC, including Vermont's protected income level and DC's 2019-2022 levels, tying them to the poverty guideline or the SSI federal benefit rate where state rules do, with New York and North Dakota rounding the monthly level up to the dollar and Illinois dropping the cents. +Turned on the Medicaid medically needy pathway for aged, blind and disabled people in Arkansas, Iowa, Illinois, New Jersey and North Dakota, turned it off in Arizona, Idaho, Indiana, New Mexico and Nevada, which have no such program, and updated medically needy income and asset limits in 14 states and DC, including Vermont's protected income level and DC's 2019-2022 levels, tying them to the poverty guideline or the SSI federal benefit rate where state rules do, with New York and North Dakota rounding the monthly level up to the dollar and Illinois rounding it to the nearest dollar through 2024 and dropping the cents from 2025. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/il/rounds_down_monthly.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/il/rounds_down_monthly.yaml index dcab04882e6..2c3f8f7613c 100644 --- a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/il/rounds_down_monthly.yaml +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/il/rounds_down_monthly.yaml @@ -1,8 +1,8 @@ description: Illinois rounds the monthly medically needy income limit down to a whole dollar under the Medicaid program, if this is true. values: - # IDHS tables drop the cents for one and two people from 2023; KFF 2018 does not. + # IDHS tables drop the cents from 2025 ($1,762 for $1,762.50 for two; $2,220 for $2,220.83 for three). 2018-01-01: false - 2023-01-01: true + 2025-01-01: true metadata: unit: bool period: year @@ -10,3 +10,5 @@ metadata: reference: - title: Illinois DHS Workers' Action Guide WAG 25-03-02(2), AABD 100% FPL monthly income standards ($1,803 for two in 2026) href: https://www.dhs.state.il.us/page.aspx?item=21741 + - title: Illinois DHS WAG 25-03-02(2), 2025 Monthly Income Standards, AABD 100% FPL ($1,762 for two) (archived May 15, 2025) + href: https://web.archive.org/web/20250515155649/https://www.dhs.state.il.us/page.aspx?item=21741 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/il/rounds_to_nearest_monthly.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/il/rounds_to_nearest_monthly.yaml new file mode 100644 index 00000000000..6a16b28bcce --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/income/il/rounds_to_nearest_monthly.yaml @@ -0,0 +1,17 @@ +description: Illinois rounds the monthly medically needy income limit to the nearest whole dollar under the Medicaid program, if this is true. +values: + # KFF 2018 ($1,012 / $1,372) and IDHS 2019-2024 tables round to the nearest dollar + # ($1,133 / $1,526 in 2022; $2,072 for $2,071.67 for three in 2023). + 2018-01-01: true + 2025-01-01: false +metadata: + unit: bool + period: year + label: Illinois Medicaid medically needy income limit rounded to the nearest whole dollar + reference: + - title: "KFF, Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey, Appendix Table 3 (2018), Illinois $1,012 / $1,372" + href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/ + - title: Illinois DHS WAG 25-03-02(2), 2022 Income Standards, AABD 100% FPL ($1,133 / $1,526) (archived September 28, 2022) + href: https://web.archive.org/web/20220928154002/https://www.dhs.state.il.us/page.aspx?item=21741 + - title: Illinois DHS WAG 25-03-02(2), 2024 Monthly Income Standards, AABD 100% FPL ($1,255 / $1,703) (archived July 15, 2024) + href: https://web.archive.org/web/20240715015033/https://www.dhs.state.il.us/page.aspx?item=21741 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml index c1ea8172c80..99b5c2e2c34 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.yaml @@ -573,8 +573,8 @@ 2021: [8_709.96, 8_709.96, 8_274.48] 2022: [9_155.04, 9_155.04, 8_697.24] -- name: Case 23, Illinois keeps the cents in 2022 and drops them from 2023. - period: 2023 +- name: Case 23, Illinois rounds to the nearest dollar in 2022 and drops the cents in 2025. + period: 2025 absolute_error_margin: 0.01 input: people: @@ -590,11 +590,11 @@ households: household: members: [person1, person2, person3] - state_code: {2022: IL, 2023: IL} + state_code: {2022: IL, 2025: IL} output: - # Outputs are [couple, couple, individual]. 2022: 18,310 and 13,590 (1,132.50 a - # month, not rounded). 2023: 19,720 / 12 = 1,643.33, cents dropped, 1,643 x 12; - # 14,580 / 12 = 1,215 exactly. + # Outputs are [couple, couple, individual]. WAG 25-03-02(2), AABD 100% FPL. + # 2022: 18,310 / 12 = 1,525.83 to 1,526; 13,590 / 12 = 1,132.50 to 1,133. + # 2025: 21,150 / 12 = 1,762.50, cents dropped, 1,762; 15,650 / 12 = 1,304.17 to 1,304. medicaid_medically_needy_income_limit: - 2022: [18_310, 18_310, 13_590] - 2023: [19_716, 19_716, 14_580] + 2022: [18_312, 18_312, 13_596] + 2025: [21_144, 21_144, 15_648] diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py index 64e892ff38e..dd644e12c12 100644 --- a/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medically_needy/medicaid_medically_needy_income_limit.py @@ -36,16 +36,22 @@ def formula(person, period, parameters): # monthly amount at cent precision first, so floating-point noise # cannot move an exact whole dollar (as in medicaid_income_level). fpg_monthly = np.round(fpg_limit / MONTHS_IN_YEAR, 2) - # Illinois is the only state that drops the cents. - rounds_down = (state == "IL") & p.il.rounds_down_monthly + # Illinois rounds to the nearest dollar before 2025, then drops the cents. + in_il = state == "IL" + rounds_down = in_il & p.il.rounds_down_monthly + # Half a dollar rounds up ($1,132.50 to $1,133 in 2022); np.round + # would round it to the even dollar. + rounds_to_nearest = in_il & p.il.rounds_to_nearest_monthly fpg_limit = select( [ p.rounds_up_monthly[state].astype(bool), rounds_down, + rounds_to_nearest, ], [ np.ceil(fpg_monthly) * MONTHS_IN_YEAR, np.floor(fpg_monthly) * MONTHS_IN_YEAR, + np.floor(fpg_monthly + 0.5) * MONTHS_IN_YEAR, ], default=fpg_limit, )