diff --git a/changelog.d/ltss-financial-eligibility.added.md b/changelog.d/ltss-financial-eligibility.added.md new file mode 100644 index 00000000000..1e43eadfa4f --- /dev/null +++ b/changelog.d/ltss-financial-eligibility.added.md @@ -0,0 +1 @@ +Add an opt-in 2026 Medicaid LTSS financial-threshold screen for selected institutional and named-waiver pathways in Texas, Delaware, and Washington. diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/csra/state_minimum.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/csra/state_minimum.yaml new file mode 100644 index 00000000000..4b782bae9c2 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/csra/state_minimum.yaml @@ -0,0 +1,11 @@ +description: Delaware uses this state spousal share as the minimum when calculating the community spouse resource allowance for Medicaid LTSS financial eligibility, though the higher federal minimum resource allowance supersedes it. +values: + 2026-01-01: 25_000 + +metadata: + unit: currency-USD + period: month + label: Delaware minimum Medicaid LTSS community spouse resource allowance + reference: + - title: DSSM 20910.10 - Community Spouse Resource Allowance, 16 DE Admin Code 20000 + href: https://regulations.delaware.gov/api/AdminCode/title16/20000/13aee487-1cd1-4726-addf-63603af28a78 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/income/general_disregard.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/income/general_disregard.yaml new file mode 100644 index 00000000000..981e43e2ace --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/income/general_disregard.yaml @@ -0,0 +1,13 @@ +description: Delaware disregards up to this amount of monthly general income when applying the Medicaid LTSS special income limit. +values: + 2026-01-01: 20 + +metadata: + unit: currency-USD + period: month + label: Delaware Medicaid LTSS general income disregard + reference: + - title: Delaware DMMA Administrative Notice A-14-2025, 2026 SSI-Related Income Standards and Medicare Premiums + href: https://dhss.delaware.gov/wp-content/uploads/sites/11/2026/06/2026-SSI-Related-Income-Standards-and-Medicare-Premiums.pdf + - title: DSSM 20240.1 - Gross Income; DSSM 20990 - Income Rules, 16 DE Admin Code 20000 + href: https://regulations.delaware.gov/api/AdminCode/title16/20000/13aee487-1cd1-4726-addf-63603af28a78 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/resources/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/resources/couple.yaml new file mode 100644 index 00000000000..a4cb5a10530 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/resources/couple.yaml @@ -0,0 +1,13 @@ +description: Delaware limits countable resources to this amount for a couple using the Medicaid LTSS financial screen. +values: + 2026-01-01: 3_000 + +metadata: + unit: currency-USD + period: month + label: Delaware Medicaid LTSS resource limit for a couple + reference: + - title: Delaware DMMA Administrative Notice A-14-2025, 2026 SSI-Related Income Standards and Medicare Premiums + href: https://dhss.delaware.gov/wp-content/uploads/sites/11/2026/06/2026-SSI-Related-Income-Standards-and-Medicare-Premiums.pdf + - title: DSSM 20100.2.2 - Individuals Whose Income is 250% of SSI, 16 DE Admin Code 20000 + href: https://regulations.delaware.gov/api/AdminCode/title16/20000/13aee487-1cd1-4726-addf-63603af28a78 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/resources/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/resources/individual.yaml new file mode 100644 index 00000000000..5e6e59d2648 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/resources/individual.yaml @@ -0,0 +1,13 @@ +description: Delaware limits countable resources to this amount for an individual using the Medicaid LTSS financial screen. +values: + 2026-01-01: 2_000 + +metadata: + unit: currency-USD + period: month + label: Delaware Medicaid LTSS resource limit for an individual + reference: + - title: Delaware DMMA Administrative Notice A-14-2025, 2026 SSI-Related Income Standards and Medicare Premiums + href: https://dhss.delaware.gov/wp-content/uploads/sites/11/2026/06/2026-SSI-Related-Income-Standards-and-Medicare-Premiums.pdf + - title: DSSM 20100.2.2 - Individuals Whose Income is 250% of SSI, 16 DE Admin Code 20000 + href: https://regulations.delaware.gov/api/AdminCode/title16/20000/13aee487-1cd1-4726-addf-63603af28a78 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/special_income_limit/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/special_income_limit/couple.yaml new file mode 100644 index 00000000000..cdbeb1a6da0 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/special_income_limit/couple.yaml @@ -0,0 +1,13 @@ +description: Delaware limits monthly income before its applicable general disregard to this amount for a couple using the Medicaid LTSS special income pathway. +values: + 2026-01-01: 3_727.50 + +metadata: + unit: currency-USD + period: month + label: Delaware Medicaid LTSS special income limit for a couple + reference: + - title: Delaware DMMA Administrative Notice A-14-2025, 2026 SSI-Related Income Standards and Medicare Premiums + href: https://dhss.delaware.gov/wp-content/uploads/sites/11/2026/06/2026-SSI-Related-Income-Standards-and-Medicare-Premiums.pdf + - title: DSSM 20100.2.2 - Individuals Whose Income is 250% of SSI, 16 DE Admin Code 20000 + href: https://regulations.delaware.gov/api/AdminCode/title16/20000/13aee487-1cd1-4726-addf-63603af28a78 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/special_income_limit/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/special_income_limit/individual.yaml new file mode 100644 index 00000000000..e178d502a0f --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/de/special_income_limit/individual.yaml @@ -0,0 +1,13 @@ +description: Delaware limits monthly income before its applicable general disregard to this amount for an individual using the Medicaid LTSS special income pathway. +values: + 2026-01-01: 2_485 + +metadata: + unit: currency-USD + period: month + label: Delaware Medicaid LTSS special income limit for an individual + reference: + - title: Delaware DMMA Administrative Notice A-14-2025, 2026 SSI-Related Income Standards and Medicare Premiums + href: https://dhss.delaware.gov/wp-content/uploads/sites/11/2026/06/2026-SSI-Related-Income-Standards-and-Medicare-Premiums.pdf + - title: DSSM 20100.2.2 - Individuals Whose Income is 250% of SSI, 16 DE Admin Code 20000 + href: https://regulations.delaware.gov/api/AdminCode/title16/20000/13aee487-1cd1-4726-addf-63603af28a78 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/federal/csra/maximum.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/federal/csra/maximum.yaml new file mode 100644 index 00000000000..12b6946e953 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/federal/csra/maximum.yaml @@ -0,0 +1,11 @@ +description: The federal maximum community spouse resource allowance for Medicaid LTSS financial eligibility. +values: + 2026-01-01: 162_660 + +metadata: + unit: currency-USD + period: month + label: Federal maximum Medicaid LTSS community spouse resource allowance + reference: + - title: Updated 2026 SSI and Spousal Impoverishment Standards, CMCS Informational Bulletin, April 27, 2026 + href: https://www.medicaid.gov/sites/default/files/2026-04/cib04272026.pdf#page=2 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/federal/csra/minimum.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/federal/csra/minimum.yaml new file mode 100644 index 00000000000..b5d68d2555d --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/federal/csra/minimum.yaml @@ -0,0 +1,11 @@ +description: The federal minimum community spouse resource allowance for Medicaid LTSS financial eligibility. +values: + 2026-01-01: 32_532 + +metadata: + unit: currency-USD + period: month + label: Federal minimum Medicaid LTSS community spouse resource allowance + reference: + - title: Updated 2026 SSI and Spousal Impoverishment Standards, CMCS Informational Bulletin, April 27, 2026 + href: https://www.medicaid.gov/sites/default/files/2026-04/cib04272026.pdf#page=2 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/federal/mmmna/maximum.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/federal/mmmna/maximum.yaml new file mode 100644 index 00000000000..c790d4c9206 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/federal/mmmna/maximum.yaml @@ -0,0 +1,11 @@ +description: The federal maximum monthly maintenance needs allowance for a community spouse. +values: + 2026-01-01: 4_066.50 + +metadata: + unit: currency-USD + period: month + label: Federal maximum Medicaid LTSS monthly maintenance needs allowance + reference: + - title: Updated 2026 SSI and Spousal Impoverishment Standards, CMCS Informational Bulletin, April 27, 2026 + href: https://www.medicaid.gov/sites/default/files/2026-04/cib04272026.pdf#page=2 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/federal/mmmna/minimum.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/federal/mmmna/minimum.yaml new file mode 100644 index 00000000000..1f10aa6411c --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/federal/mmmna/minimum.yaml @@ -0,0 +1,11 @@ +description: The federal minimum monthly maintenance needs allowance for a community spouse in the contiguous states and District of Columbia. +values: + 2026-07-01: 2_705 + +metadata: + unit: currency-USD + period: month + label: Federal minimum Medicaid LTSS monthly maintenance needs allowance + reference: + - title: Updated 2026 SSI and Spousal Impoverishment Standards, CMCS Informational Bulletin, April 27, 2026 + href: https://www.medicaid.gov/sites/default/files/2026-04/cib04272026.pdf#page=2 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/federal/mmmna/shelter_threshold_rate.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/federal/mmmna/shelter_threshold_rate.yaml new file mode 100644 index 00000000000..e7cf752b7e3 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/federal/mmmna/shelter_threshold_rate.yaml @@ -0,0 +1,11 @@ +description: The share of the minimum monthly maintenance needs allowance used as the community spouse excess shelter expense threshold. +values: + 2026-07-01: 0.3 + +metadata: + unit: /1 + period: month + label: Medicaid LTSS community spouse shelter expense threshold rate + reference: + - title: 42 USC 1396r-5(d)(4) - Excess shelter allowance + href: https://www.law.cornell.edu/uscode/text/42/1396r-5#d_4 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/tx/csra/state_minimum.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/tx/csra/state_minimum.yaml new file mode 100644 index 00000000000..b1732279992 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/tx/csra/state_minimum.yaml @@ -0,0 +1,11 @@ +description: Texas adopts the minimum resource amount set by federal law when calculating the community spouse resource allowance for Medicaid LTSS financial eligibility. +values: + 2026-01-01: 32_532 + +metadata: + unit: currency-USD + period: month + label: Texas minimum Medicaid LTSS community spouse resource allowance + reference: + - title: Texas Medicaid for the Elderly and People with Disabilities Handbook, Appendix XXXI - Budget Reference Chart, Revision 26-2, Effective June 1, 2026 + href: https://fhb.hhs.texas.gov/handbooks/medicaid-elderly-people-disabilities-handbook/appendix-xxxi-budget-reference-chart diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/tx/resources/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/tx/resources/couple.yaml new file mode 100644 index 00000000000..831836ceb54 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/tx/resources/couple.yaml @@ -0,0 +1,11 @@ +description: Texas limits countable resources to this amount for a couple using the Medicaid LTSS financial screen. +values: + 2026-01-01: 3_000 + +metadata: + unit: currency-USD + period: month + label: Texas Medicaid LTSS resource limit for a couple + reference: + - title: Texas Medicaid for the Elderly and People with Disabilities Handbook, Appendix XXXI - Budget Reference Chart, Revision 26-2, Effective June 1, 2026 + href: https://fhb.hhs.texas.gov/handbooks/medicaid-elderly-people-disabilities-handbook/appendix-xxxi-budget-reference-chart diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/tx/resources/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/tx/resources/individual.yaml new file mode 100644 index 00000000000..d384fc1047c --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/tx/resources/individual.yaml @@ -0,0 +1,11 @@ +description: Texas limits countable resources to this amount for an individual using the Medicaid LTSS financial screen. +values: + 2026-01-01: 2_000 + +metadata: + unit: currency-USD + period: month + label: Texas Medicaid LTSS resource limit for an individual + reference: + - title: Texas Medicaid for the Elderly and People with Disabilities Handbook, Appendix XXXI - Budget Reference Chart, Revision 26-2, Effective June 1, 2026 + href: https://fhb.hhs.texas.gov/handbooks/medicaid-elderly-people-disabilities-handbook/appendix-xxxi-budget-reference-chart diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/tx/special_income_limit/couple.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/tx/special_income_limit/couple.yaml new file mode 100644 index 00000000000..914ca528c88 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/tx/special_income_limit/couple.yaml @@ -0,0 +1,11 @@ +description: Texas limits monthly income to this amount for a couple using the Medicaid LTSS special income pathway. +values: + 2026-01-01: 5_964 + +metadata: + unit: currency-USD + period: month + label: Texas Medicaid LTSS special income limit for a couple + reference: + - title: Texas Medicaid for the Elderly and People with Disabilities Handbook, Appendix XXXI - Budget Reference Chart, Revision 26-2, Effective June 1, 2026 + href: https://fhb.hhs.texas.gov/handbooks/medicaid-elderly-people-disabilities-handbook/appendix-xxxi-budget-reference-chart diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/tx/special_income_limit/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/tx/special_income_limit/individual.yaml new file mode 100644 index 00000000000..85b720d7385 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/tx/special_income_limit/individual.yaml @@ -0,0 +1,11 @@ +description: Texas limits monthly income to this amount for an individual using the Medicaid LTSS special income pathway. +values: + 2026-01-01: 2_982 + +metadata: + unit: currency-USD + period: month + label: Texas Medicaid LTSS special income limit for an individual + reference: + - title: Texas Medicaid for the Elderly and People with Disabilities Handbook, Appendix XXXI - Budget Reference Chart, Revision 26-2, Effective June 1, 2026 + href: https://fhb.hhs.texas.gov/handbooks/medicaid-elderly-people-disabilities-handbook/appendix-xxxi-budget-reference-chart diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/csra/state_minimum.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/csra/state_minimum.yaml new file mode 100644 index 00000000000..6b08d4f3bb7 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/csra/state_minimum.yaml @@ -0,0 +1,11 @@ +description: Washington uses this minimum, which its standards chart stamps July 1, 2025 and revises on a July odd-year cycle, when calculating the community spouse resource allowance for Medicaid LTSS financial eligibility. +values: + 2026-01-01: 72_529 + +metadata: + unit: currency-USD + period: month + label: Washington minimum Medicaid LTSS community spouse resource allowance + reference: + - title: Washington Apple Health Income and Resource Standards, January 1, 2026 + href: https://www.hca.wa.gov/assets/free-or-low-cost/income-standards-20260101.pdf#page=3 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/medically_needy/income_level.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/medically_needy/income_level.yaml new file mode 100644 index 00000000000..0f45b42b6df --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/medically_needy/income_level.yaml @@ -0,0 +1,15 @@ +description: Washington uses this monthly income level for a single person in the institutional medically needy pathway. +values: + 2026-01-01: 994 + +metadata: + unit: currency-USD + period: month + label: Washington institutional medically needy income level for a single person + reference: + - title: Washington Apple Health Income and Resource Standards, January 1, 2026 + href: https://www.hca.wa.gov/assets/free-or-low-cost/income-standards-20260101.pdf#page=3 + - title: WAC 182-513-1395 - Institutional SSI-related medically needy eligibility + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-513-1395 + - title: WAC 182-515-1508 - HCS waiver financial eligibility using institutional rules + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1508 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/resources/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/resources/individual.yaml new file mode 100644 index 00000000000..d05d92e4cb7 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/resources/individual.yaml @@ -0,0 +1,15 @@ +description: Washington limits countable resources to this amount for an individual using the Medicaid LTSS financial screen. +values: + 2026-01-01: 2_000 + +metadata: + unit: currency-USD + period: month + label: Washington Medicaid LTSS resource limit for an individual + reference: + - title: Washington Apple Health Income and Resource Standards, January 1, 2026 + href: https://www.hca.wa.gov/assets/free-or-low-cost/income-standards-20260101.pdf#page=3 + - title: WAC 182-513-1395 - Institutional SSI-related medically needy eligibility + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-513-1395 + - title: WAC 182-515-1508 - HCS waiver financial eligibility using institutional rules + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1508 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/special_income_limit/individual.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/special_income_limit/individual.yaml new file mode 100644 index 00000000000..c45c7d2beda --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/special_income_limit/individual.yaml @@ -0,0 +1,17 @@ +description: Washington limits monthly income to this amount for an individual using the Medicaid LTSS special income pathway. +values: + 2026-01-01: 2_982 + +metadata: + unit: currency-USD + period: month + label: Washington Medicaid LTSS special income limit for an individual + reference: + - title: Washington Apple Health Income and Resource Standards, January 1, 2026 + href: https://www.hca.wa.gov/assets/free-or-low-cost/income-standards-20260101.pdf#page=3 + - title: WAC 182-513-1395 - Institutional SSI-related medically needy eligibility + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-513-1395 + - title: WAC 182-515-1508 - HCS waiver financial eligibility using institutional rules + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1508 + - title: WAC 182-513-1100 - Definitions, special income level (SIL) + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-513-1100 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/waivers/copes/enabled.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/waivers/copes/enabled.yaml new file mode 100644 index 00000000000..b5e00fc0169 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/waivers/copes/enabled.yaml @@ -0,0 +1,13 @@ +description: Washington models COPES as a named Home and Community Services Medicaid HCBS waiver for the LTSS financial screen. +values: + 2026-01-01: true + +metadata: + unit: bool + period: month + label: Washington Medicaid LTSS COPES waiver enabled + reference: + - title: WAC 182-515-1505 - HCB waiver services authorized by Home and Community Services + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1505 + - title: WAC 182-515-1508 - HCS waiver financial eligibility using institutional rules + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1508 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/waivers/new_freedom/enabled.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/waivers/new_freedom/enabled.yaml new file mode 100644 index 00000000000..94eb5aeb959 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/waivers/new_freedom/enabled.yaml @@ -0,0 +1,13 @@ +description: Washington models New Freedom as a named Home and Community Services Medicaid HCBS waiver for the LTSS financial screen. +values: + 2026-01-01: true + +metadata: + unit: bool + period: month + label: Washington Medicaid LTSS New Freedom waiver enabled + reference: + - title: WAC 182-515-1505 - HCB waiver services authorized by Home and Community Services + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1505 + - title: WAC 182-515-1508 - HCS waiver financial eligibility using institutional rules + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1508 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/waivers/rsw/enabled.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/waivers/rsw/enabled.yaml new file mode 100644 index 00000000000..de59dd39a59 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/financial/wa/waivers/rsw/enabled.yaml @@ -0,0 +1,13 @@ +description: Washington models RSW as a named Home and Community Services Medicaid HCBS waiver for the LTSS financial screen. +values: + 2026-01-01: true + +metadata: + unit: bool + period: month + label: Washington Medicaid LTSS RSW waiver enabled + reference: + - title: WAC 182-515-1505 - HCB waiver services authorized by Home and Community Services + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1505 + - title: WAC 182-515-1508 - HCS waiver financial eligibility using institutional rules + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1508 diff --git a/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/home_equity/minimum_limit.yaml b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/home_equity/minimum_limit.yaml new file mode 100644 index 00000000000..c1112208424 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/medicaid/eligibility/long_term_care/home_equity/minimum_limit.yaml @@ -0,0 +1,16 @@ +description: The Department of Health and Human Services applies this federal minimum limit on home equity for Medicaid long-term care eligibility in states that do not elect a higher limit. +values: + 2025-01-01: 730_000 + 2026-01-01: 752_000 + +metadata: + unit: currency-USD + period: year + label: Medicaid long-term care federal minimum home equity limit + reference: + - title: 42 USC 1396p(f)(1)(A) and (C) - Disqualification for long-term care assistance for individuals with substantial home equity + href: https://www.law.cornell.edu/uscode/text/42/1396p#f_1 + - title: Updated 2025 SSI and Spousal Impoverishment Standards, CMCS Informational Bulletin, May 28, 2025 + href: https://www.medicaid.gov/federal-policy-guidance/downloads/cib05282025.pdf#page=2 + - title: Updated 2026 SSI and Spousal Impoverishment Standards, CMCS Informational Bulletin, April 27, 2026 + href: https://www.medicaid.gov/sites/default/files/2026-04/cib04272026.pdf#page=2 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/is_medicaid_ltss_financial_threshold_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/is_medicaid_ltss_financial_threshold_eligible.yaml new file mode 100644 index 00000000000..258a05eb8c8 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/is_medicaid_ltss_financial_threshold_eligible.yaml @@ -0,0 +1,300 @@ +- name: MMMNA does not convert above-SIL applicant income into eligibility. + period: 2026-07 + absolute_error_margin: 0.01 + input: + state_code: + 2026: TX + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 3_000 + medicaid_ltss_countable_resources: 2_000 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_couple_countable_resources_at_first_institutionalization: 0 + medicaid_ltss_community_spouse_shelter_expenses: 3_000 + output: + medicaid_ltss_financial_pathway: SPECIAL_INCOME + medicaid_ltss_mmmna: 4_066.50 + is_medicaid_ltss_income_eligible: false + is_medicaid_ltss_financial_threshold_eligible: false + +- name: Identical facts produce state-specific TX, DE, and WA home-equity results. + period: 2026-07 + input: + people: + texas: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_500 + medicaid_ltss_countable_resources: 2_000 + medicaid_ltss_home_market_value: 800_000 + medicaid_ltss_home_ownership_share: 1 + delaware: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_500 + medicaid_ltss_countable_resources: 2_000 + medicaid_ltss_home_market_value: 800_000 + medicaid_ltss_home_ownership_share: 1 + washington: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_500 + medicaid_ltss_countable_resources: 2_000 + medicaid_ltss_home_market_value: 800_000 + medicaid_ltss_home_ownership_share: 1 + tax_units: + texas: + members: [texas] + delaware: + members: [delaware] + washington: + members: [washington] + marital_units: + texas: + members: [texas] + delaware: + members: [delaware] + washington: + members: [washington] + spm_units: + texas: + members: [texas] + delaware: + members: [delaware] + washington: + members: [washington] + households: + texas: + members: [texas] + state_code: + 2026: TX + delaware: + members: [delaware] + state_code: + 2026: DE + washington: + members: [washington] + state_code: + 2026: WA + output: + medicaid_ltss_financial_pathway: + [SPECIAL_INCOME, SPECIAL_INCOME, SPECIAL_INCOME] + is_medicaid_ltss_income_eligible: [true, true, true] + medicaid_ltss_csra_resource_eligible: [true, true, true] + medicaid_ltss_home_equity_eligible: [false, false, true] + is_medicaid_ltss_financial_threshold_eligible: [false, false, true] + +- name: Vectorized assistance units and explicit ownership inputs remain separate. + period: 2026-07 + input: + people: + single: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_000 + medicaid_ltss_countable_resources: 2_000 + medicaid_ltss_home_market_value: 900_000 + medicaid_ltss_home_encumbrances: 200_000 + medicaid_ltss_home_ownership_share: 1 + couple: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_qit_adjusted_income: 5_000 + medicaid_ltss_countable_resources: 3_000 + medicaid_ltss_home_market_value: 1_600_000 + medicaid_ltss_home_ownership_share: 0.5 + community_spouse: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_000 + medicaid_ltss_countable_resources: 2_000 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_community_spouse_countable_resources: 50_000 + medicaid_ltss_couple_countable_resources_at_first_institutionalization: 100_000 + medicaid_ltss_home_market_value: 1_500_000 + medicaid_ltss_home_ownership_share: 0.5 + tax_units: + single: + members: [single] + couple: + members: [couple] + community_spouse: + members: [community_spouse] + marital_units: + single: + members: [single] + couple: + members: [couple] + community_spouse: + members: [community_spouse] + spm_units: + single: + members: [single] + couple: + members: [couple] + community_spouse: + members: [community_spouse] + households: + single: + members: [single] + state_code: + 2026: TX + couple: + members: [couple] + state_code: + 2026: TX + community_spouse: + members: [community_spouse] + state_code: + 2026: TX + output: + medicaid_ltss_financial_pathway: + [SPECIAL_INCOME, SPECIAL_INCOME, SPECIAL_INCOME] + is_medicaid_ltss_income_eligible: [true, true, true] + medicaid_ltss_csra_resource_eligible: [true, true, true] + medicaid_ltss_home_equity_eligible: [true, false, true] + is_medicaid_ltss_financial_threshold_eligible: [true, false, true] + +- name: A Delaware non-homeowner with qualifying income and resources passes end to end. + period: 2026-07 + input: + state_code: + 2026: DE + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_400 + medicaid_ltss_countable_resources: 1_500 + medicaid_ltss_home_market_value: 0 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + output: + medicaid_ltss_financial_pathway: SPECIAL_INCOME + is_medicaid_ltss_income_eligible: true + medicaid_ltss_csra_resource_eligible: true + medicaid_ltss_home_equity_eligible: true + is_medicaid_ltss_financial_threshold_eligible: true + +- name: A non-aged-blind-disabled applicant with qualifying finances is unmodeled end to end. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: false + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_400 + medicaid_ltss_countable_resources: 1_500 + medicaid_ltss_home_market_value: 0 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + output: + medicaid_ltss_financial_pathway: UNMODELED + is_medicaid_ltss_financial_threshold_eligible: false + +- name: Identical above-SIL facts diverge across TX, DE, and WA income pathways. + period: 2026-07 + input: + people: + texas: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 3_100 + medicaid_ltss_countable_resources: 1_500 + medicaid_ltss_cost_of_care: 3_500 + medicaid_ltss_home_market_value: 0 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + delaware: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 3_100 + medicaid_ltss_countable_resources: 1_500 + medicaid_ltss_cost_of_care: 3_500 + medicaid_ltss_home_market_value: 0 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + washington: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 3_100 + medicaid_ltss_countable_resources: 1_500 + medicaid_ltss_cost_of_care: 3_500 + medicaid_ltss_home_market_value: 0 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + tax_units: + texas: + members: [texas] + delaware: + members: [delaware] + washington: + members: [washington] + marital_units: + texas: + members: [texas] + delaware: + members: [delaware] + washington: + members: [washington] + spm_units: + texas: + members: [texas] + delaware: + members: [delaware] + washington: + members: [washington] + households: + texas: + members: [texas] + state_code: + 2026: TX + delaware: + members: [delaware] + state_code: + 2026: DE + washington: + members: [washington] + state_code: + 2026: WA + output: + medicaid_ltss_financial_pathway: + [SPECIAL_INCOME, SPECIAL_INCOME, INSTITUTIONAL_MEDICALLY_NEEDY] + is_medicaid_ltss_income_eligible: [false, false, true] + medicaid_ltss_csra_resource_eligible: [true, true, true] + medicaid_ltss_home_equity_eligible: [true, true, true] + is_medicaid_ltss_financial_threshold_eligible: [false, false, true] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/is_medicaid_ltss_income_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/is_medicaid_ltss_income_eligible.yaml new file mode 100644 index 00000000000..b98f99838d6 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/is_medicaid_ltss_income_eligible.yaml @@ -0,0 +1,604 @@ +- name: Case 1, Texas special income limit includes the exact monthly limit. + period: 2026-07 + input: + people: + below_limit: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_981 + at_limit: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_982 + above_limit: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_983 + couple_below_limit: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_qit_adjusted_income: 5_963 + couple_at_limit: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_qit_adjusted_income: 5_964 + couple_above_limit: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_qit_adjusted_income: 5_965 + tax_units: + tax_unit_below_limit: + members: [below_limit] + tax_unit_at_limit: + members: [at_limit] + tax_unit_above_limit: + members: [above_limit] + tax_unit_couple_below_limit: + members: [couple_below_limit] + tax_unit_couple_at_limit: + members: [couple_at_limit] + tax_unit_couple_above_limit: + members: [couple_above_limit] + marital_units: + marital_unit_below_limit: + members: [below_limit] + marital_unit_at_limit: + members: [at_limit] + marital_unit_above_limit: + members: [above_limit] + marital_unit_couple_below_limit: + members: [couple_below_limit] + marital_unit_couple_at_limit: + members: [couple_at_limit] + marital_unit_couple_above_limit: + members: [couple_above_limit] + spm_units: + spm_unit_below_limit: + members: [below_limit] + spm_unit_at_limit: + members: [at_limit] + spm_unit_above_limit: + members: [above_limit] + spm_unit_couple_below_limit: + members: [couple_below_limit] + spm_unit_couple_at_limit: + members: [couple_at_limit] + spm_unit_couple_above_limit: + members: [couple_above_limit] + households: + household_below_limit: + members: [below_limit] + state_code: + 2026: TX + household_at_limit: + members: [at_limit] + state_code: + 2026: TX + household_above_limit: + members: [above_limit] + state_code: + 2026: TX + household_couple_below_limit: + members: [couple_below_limit] + state_code: + 2026: TX + household_couple_at_limit: + members: [couple_at_limit] + state_code: + 2026: TX + household_couple_above_limit: + members: [couple_above_limit] + state_code: + 2026: TX + output: + is_medicaid_ltss_income_eligible: + [true, true, false, true, true, false] + +- name: Case 2, Texas valid QIT is sufficient when trusted adjusted income is at the limit. + period: 2026-07 + input: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_982 + state_code: + 2026: TX + output: + is_medicaid_ltss_income_eligible: true + +- name: Case 3, Texas valid QIT is insufficient when trusted adjusted income remains above the limit. + period: 2026-07 + input: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_983 + state_code: + 2026: TX + output: + is_medicaid_ltss_income_eligible: false + +- name: Case 4, Delaware needs-based income receives no general disregard. + period: 2026-07 + input: + people: + below_limit: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_484 + medicaid_ltss_needs_based_income: 2_484 + at_limit: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_485 + medicaid_ltss_needs_based_income: 2_485 + above_limit: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_486 + medicaid_ltss_needs_based_income: 2_486 + couple_below_limit: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_qit_adjusted_income: 3_727 + medicaid_ltss_needs_based_income: 3_727 + couple_at_limit: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_qit_adjusted_income: 3_727.50 + medicaid_ltss_needs_based_income: 3_727.50 + couple_above_limit: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_qit_adjusted_income: 3_728 + medicaid_ltss_needs_based_income: 3_728 + tax_units: + tax_unit_below_limit: + members: [below_limit] + tax_unit_at_limit: + members: [at_limit] + tax_unit_above_limit: + members: [above_limit] + tax_unit_couple_below_limit: + members: [couple_below_limit] + tax_unit_couple_at_limit: + members: [couple_at_limit] + tax_unit_couple_above_limit: + members: [couple_above_limit] + marital_units: + marital_unit_below_limit: + members: [below_limit] + marital_unit_at_limit: + members: [at_limit] + marital_unit_above_limit: + members: [above_limit] + marital_unit_couple_below_limit: + members: [couple_below_limit] + marital_unit_couple_at_limit: + members: [couple_at_limit] + marital_unit_couple_above_limit: + members: [couple_above_limit] + spm_units: + spm_unit_below_limit: + members: [below_limit] + spm_unit_at_limit: + members: [at_limit] + spm_unit_above_limit: + members: [above_limit] + spm_unit_couple_below_limit: + members: [couple_below_limit] + spm_unit_couple_at_limit: + members: [couple_at_limit] + spm_unit_couple_above_limit: + members: [couple_above_limit] + households: + household_below_limit: + members: [below_limit] + state_code: + 2026: DE + household_at_limit: + members: [at_limit] + state_code: + 2026: DE + household_above_limit: + members: [above_limit] + state_code: + 2026: DE + household_couple_below_limit: + members: [couple_below_limit] + state_code: + 2026: DE + household_couple_at_limit: + members: [couple_at_limit] + state_code: + 2026: DE + household_couple_above_limit: + members: [couple_above_limit] + state_code: + 2026: DE + output: + is_medicaid_ltss_income_eligible: + [true, true, false, true, true, false] + +- name: Case 5, Delaware applies the general disregard to ordinary income. + period: 2026-07 + input: + people: + below_limit_after_disregard: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_504 + medicaid_ltss_needs_based_income: 0 + at_limit_after_disregard: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_505 + medicaid_ltss_needs_based_income: 0 + above_limit_after_disregard: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_506 + medicaid_ltss_needs_based_income: 0 + couple_below_limit_after_disregard: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_qit_adjusted_income: 3_747 + medicaid_ltss_needs_based_income: 0 + couple_at_limit_after_disregard: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_qit_adjusted_income: 3_747.50 + medicaid_ltss_needs_based_income: 0 + couple_above_limit_after_disregard: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_qit_adjusted_income: 3_748 + medicaid_ltss_needs_based_income: 0 + tax_units: + tax_unit_below_limit_after_disregard: + members: [below_limit_after_disregard] + tax_unit_at_limit_after_disregard: + members: [at_limit_after_disregard] + tax_unit_above_limit_after_disregard: + members: [above_limit_after_disregard] + tax_unit_couple_below_limit_after_disregard: + members: [couple_below_limit_after_disregard] + tax_unit_couple_at_limit_after_disregard: + members: [couple_at_limit_after_disregard] + tax_unit_couple_above_limit_after_disregard: + members: [couple_above_limit_after_disregard] + marital_units: + marital_unit_below_limit_after_disregard: + members: [below_limit_after_disregard] + marital_unit_at_limit_after_disregard: + members: [at_limit_after_disregard] + marital_unit_above_limit_after_disregard: + members: [above_limit_after_disregard] + marital_unit_couple_below_limit_after_disregard: + members: [couple_below_limit_after_disregard] + marital_unit_couple_at_limit_after_disregard: + members: [couple_at_limit_after_disregard] + marital_unit_couple_above_limit_after_disregard: + members: [couple_above_limit_after_disregard] + spm_units: + spm_unit_below_limit_after_disregard: + members: [below_limit_after_disregard] + spm_unit_at_limit_after_disregard: + members: [at_limit_after_disregard] + spm_unit_above_limit_after_disregard: + members: [above_limit_after_disregard] + spm_unit_couple_below_limit_after_disregard: + members: [couple_below_limit_after_disregard] + spm_unit_couple_at_limit_after_disregard: + members: [couple_at_limit_after_disregard] + spm_unit_couple_above_limit_after_disregard: + members: [couple_above_limit_after_disregard] + households: + household_below_limit_after_disregard: + members: [below_limit_after_disregard] + state_code: + 2026: DE + household_at_limit_after_disregard: + members: [at_limit_after_disregard] + state_code: + 2026: DE + household_above_limit_after_disregard: + members: [above_limit_after_disregard] + state_code: + 2026: DE + household_couple_below_limit_after_disregard: + members: [couple_below_limit_after_disregard] + state_code: + 2026: DE + household_couple_at_limit_after_disregard: + members: [couple_at_limit_after_disregard] + state_code: + 2026: DE + household_couple_above_limit_after_disregard: + members: [couple_above_limit_after_disregard] + state_code: + 2026: DE + output: + is_medicaid_ltss_income_eligible: + [true, true, false, true, true, false] + +- name: Case 6, Delaware does not disregard needs-based income above the limit. + period: 2026-07 + input: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_505 + medicaid_ltss_needs_based_income: 2_505 + state_code: + 2026: DE + output: + is_medicaid_ltss_income_eligible: false + +- name: Case 7, Washington switches to medically needy above the special income limit. + period: 2026-07 + input: + people: + below_limit: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_981 + at_limit: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_982 + above_limit: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_983 + tax_units: + tax_unit_below_limit: + members: [below_limit] + tax_unit_at_limit: + members: [at_limit] + tax_unit_above_limit: + members: [above_limit] + marital_units: + marital_unit_below_limit: + members: [below_limit] + marital_unit_at_limit: + members: [at_limit] + marital_unit_above_limit: + members: [above_limit] + spm_units: + spm_unit_below_limit: + members: [below_limit] + spm_unit_at_limit: + members: [at_limit] + spm_unit_above_limit: + members: [above_limit] + households: + household_below_limit: + members: [below_limit] + state_code: + 2026: WA + household_at_limit: + members: [at_limit] + state_code: + 2026: WA + household_above_limit: + members: [above_limit] + state_code: + 2026: WA + output: + medicaid_ltss_financial_pathway: + [SPECIAL_INCOME, SPECIAL_INCOME, INSTITUTIONAL_MEDICALLY_NEEDY] + is_medicaid_ltss_income_eligible: [true, true, false] + +- name: Case 8, Washington institutional medically needy income can equal cost of care. + period: 2026-07 + input: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 4_000 + medicaid_ltss_medically_needy_expenses: 500 + medicaid_ltss_cost_of_care: 3_500 + state_code: + 2026: WA + output: + is_medicaid_ltss_income_eligible: true + +- name: Case 9, Washington institutional medically needy income above cost of care fails. + period: 2026-07 + input: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 4_000 + medicaid_ltss_medically_needy_expenses: 500 + medicaid_ltss_cost_of_care: 3_499 + state_code: + 2026: WA + output: + is_medicaid_ltss_income_eligible: false + +- name: Case 10, zero income is eligible on the special income pathway. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 0 + output: + is_medicaid_ltss_income_eligible: true + +- name: Case 11, the Delaware disregard binds at an interior mixed-income value. + period: 2026-07 + input: + people: + passes_with_partial_disregard: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_480 + medicaid_ltss_needs_based_income: 2_470 + fails_with_partial_disregard: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_496 + medicaid_ltss_needs_based_income: 2_486 + tax_units: + passes_with_partial_disregard_tax_unit: + members: [passes_with_partial_disregard] + fails_with_partial_disregard_tax_unit: + members: [fails_with_partial_disregard] + marital_units: + passes_with_partial_disregard_marital_unit: + members: [passes_with_partial_disregard] + fails_with_partial_disregard_marital_unit: + members: [fails_with_partial_disregard] + spm_units: + passes_with_partial_disregard_spm_unit: + members: [passes_with_partial_disregard] + fails_with_partial_disregard_spm_unit: + members: [fails_with_partial_disregard] + households: + passes_with_partial_disregard_household: + members: [passes_with_partial_disregard] + state_code: + 2026: DE + fails_with_partial_disregard_household: + members: [fails_with_partial_disregard] + state_code: + 2026: DE + output: + is_medicaid_ltss_income_eligible: [true, false] + +- name: Case 12, Washington HCBS medically needy net income brackets the income level. + period: 2026-07 + input: + people: + at_income_level: + medicaid_ltss_setting: HCBS + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: WA_COPES + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 4_000 + medicaid_ltss_medically_needy_expenses: 500 + medicaid_ltss_cost_of_care: 2_506 + above_income_level: + medicaid_ltss_setting: HCBS + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: WA_COPES + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 4_000 + medicaid_ltss_medically_needy_expenses: 500 + medicaid_ltss_cost_of_care: 2_505 + tax_units: + at_income_level_tax_unit: + members: [at_income_level] + above_income_level_tax_unit: + members: [above_income_level] + marital_units: + at_income_level_marital_unit: + members: [at_income_level] + above_income_level_marital_unit: + members: [above_income_level] + spm_units: + at_income_level_spm_unit: + members: [at_income_level] + above_income_level_spm_unit: + members: [above_income_level] + households: + at_income_level_household: + members: [at_income_level] + state_code: + 2026: WA + above_income_level_household: + members: [above_income_level] + state_code: + 2026: WA + output: + medicaid_ltss_financial_pathway: + [INSTITUTIONAL_MEDICALLY_NEEDY, INSTITUTIONAL_MEDICALLY_NEEDY] + is_medicaid_ltss_income_eligible: [true, false] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_csra_resource_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_csra_resource_eligible.yaml new file mode 100644 index 00000000000..5ee601cb61d --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_csra_resource_eligible.yaml @@ -0,0 +1,617 @@ +- name: Case 1, Texas individual resource limit includes the exact boundary. + period: 2026-07 + input: + people: + below: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_countable_resources: 1_999 + at: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_countable_resources: 2_000 + above: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_countable_resources: 2_001 + tax_units: + below_tax_unit: + members: [below] + at_tax_unit: + members: [at] + above_tax_unit: + members: [above] + families: + below_family: + members: [below] + at_family: + members: [at] + above_family: + members: [above] + spm_units: + below_spm_unit: + members: [below] + at_spm_unit: + members: [at] + above_spm_unit: + members: [above] + marital_units: + below_marital_unit: + members: [below] + at_marital_unit: + members: [at] + above_marital_unit: + members: [above] + households: + below_household: + members: [below] + state_code: + 2026: TX + at_household: + members: [at] + state_code: + 2026: TX + above_household: + members: [above] + state_code: + 2026: TX + output: + medicaid_ltss_csra_resource_eligible: [true, true, false] + +- name: Case 2, Texas couple resource limit includes the exact boundary. + period: 2026-07 + input: + people: + below: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_countable_resources: 2_999 + at: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_countable_resources: 3_000 + above: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_countable_resources: 3_001 + tax_units: + below_tax_unit: + members: [below] + at_tax_unit: + members: [at] + above_tax_unit: + members: [above] + families: + below_family: + members: [below] + at_family: + members: [at] + above_family: + members: [above] + spm_units: + below_spm_unit: + members: [below] + at_spm_unit: + members: [at] + above_spm_unit: + members: [above] + marital_units: + below_marital_unit: + members: [below] + at_marital_unit: + members: [at] + above_marital_unit: + members: [above] + households: + below_household: + members: [below] + state_code: + 2026: TX + at_household: + members: [at] + state_code: + 2026: TX + above_household: + members: [above] + state_code: + 2026: TX + output: + medicaid_ltss_csra_resource_eligible: [true, true, false] + +- name: Case 3, Delaware individual and couple resource limits include their exact boundaries. + period: 2026-07 + input: + people: + below: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_countable_resources: 2_999 + at: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_countable_resources: 3_000 + above: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_countable_resources: 3_001 + individual_below: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_countable_resources: 1_999 + individual_at: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_countable_resources: 2_000 + individual_above: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_countable_resources: 2_001 + tax_units: + below_tax_unit: + members: [below] + at_tax_unit: + members: [at] + above_tax_unit: + members: [above] + individual_below_tax_unit: + members: [individual_below] + individual_at_tax_unit: + members: [individual_at] + individual_above_tax_unit: + members: [individual_above] + families: + below_family: + members: [below] + at_family: + members: [at] + above_family: + members: [above] + individual_below_family: + members: [individual_below] + individual_at_family: + members: [individual_at] + individual_above_family: + members: [individual_above] + spm_units: + below_spm_unit: + members: [below] + at_spm_unit: + members: [at] + above_spm_unit: + members: [above] + individual_below_spm_unit: + members: [individual_below] + individual_at_spm_unit: + members: [individual_at] + individual_above_spm_unit: + members: [individual_above] + marital_units: + below_marital_unit: + members: [below] + at_marital_unit: + members: [at] + above_marital_unit: + members: [above] + individual_below_marital_unit: + members: [individual_below] + individual_at_marital_unit: + members: [individual_at] + individual_above_marital_unit: + members: [individual_above] + households: + below_household: + members: [below] + state_code: + 2026: DE + at_household: + members: [at] + state_code: + 2026: DE + above_household: + members: [above] + state_code: + 2026: DE + individual_below_household: + members: [individual_below] + state_code: + 2026: DE + individual_at_household: + members: [individual_at] + state_code: + 2026: DE + individual_above_household: + members: [individual_above] + state_code: + 2026: DE + output: + medicaid_ltss_csra_resource_eligible: + [true, true, false, true, true, false] + +- name: Case 4, Washington individual resource boundary is inclusive and assistance unit of two fails closed. + period: 2026-07 + input: + people: + below: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_countable_resources: 1_999 + at: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_countable_resources: 2_000 + above: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_countable_resources: 2_001 + unsupported_couple: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_countable_resources: 0 + tax_units: + below_tax_unit: + members: [below] + at_tax_unit: + members: [at] + above_tax_unit: + members: [above] + unsupported_couple_tax_unit: + members: [unsupported_couple] + families: + below_family: + members: [below] + at_family: + members: [at] + above_family: + members: [above] + unsupported_couple_family: + members: [unsupported_couple] + spm_units: + below_spm_unit: + members: [below] + at_spm_unit: + members: [at] + above_spm_unit: + members: [above] + unsupported_couple_spm_unit: + members: [unsupported_couple] + marital_units: + below_marital_unit: + members: [below] + at_marital_unit: + members: [at] + above_marital_unit: + members: [above] + unsupported_couple_marital_unit: + members: [unsupported_couple] + households: + below_household: + members: [below] + state_code: + 2026: WA + at_household: + members: [at] + state_code: + 2026: WA + above_household: + members: [above] + state_code: + 2026: WA + unsupported_couple_household: + members: [unsupported_couple] + state_code: + 2026: WA + output: + medicaid_ltss_financial_pathway: + [SPECIAL_INCOME, SPECIAL_INCOME, SPECIAL_INCOME, UNMODELED] + medicaid_ltss_csra_resource_eligible: [true, true, false, false] + +- name: Case 5, the CSRA floor controls when half of snapshot resources is lower. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_couple_countable_resources_at_first_institutionalization: 60_000 + medicaid_ltss_countable_resources: 2_000 + medicaid_ltss_community_spouse_countable_resources: 32_532 + output: + medicaid_ltss_csra_resource_eligible: true + +- name: Case 6, half of snapshot resources controls between the CSRA bounds. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_couple_countable_resources_at_first_institutionalization: 100_000 + medicaid_ltss_countable_resources: 2_000 + medicaid_ltss_community_spouse_countable_resources: 50_000 + output: + medicaid_ltss_csra_resource_eligible: true + +- name: Case 7, the federal CSRA maximum controls when half of snapshot resources is higher. + period: 2026-07 + input: + people: + at_maximum: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_couple_countable_resources_at_first_institutionalization: 400_000 + medicaid_ltss_countable_resources: 2_000 + medicaid_ltss_community_spouse_countable_resources: 162_660 + above_maximum: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_couple_countable_resources_at_first_institutionalization: 400_000 + medicaid_ltss_countable_resources: 2_000 + medicaid_ltss_community_spouse_countable_resources: 162_661 + tax_units: + at_maximum_tax_unit: + members: [at_maximum] + above_maximum_tax_unit: + members: [above_maximum] + families: + at_maximum_family: + members: [at_maximum] + above_maximum_family: + members: [above_maximum] + spm_units: + at_maximum_spm_unit: + members: [at_maximum] + above_maximum_spm_unit: + members: [above_maximum] + marital_units: + at_maximum_marital_unit: + members: [at_maximum] + above_maximum_marital_unit: + members: [above_maximum] + households: + at_maximum_household: + members: [at_maximum] + state_code: + 2026: TX + above_maximum_household: + members: [above_maximum] + state_code: + 2026: TX + output: + medicaid_ltss_csra_resource_eligible: [true, false] + +- name: Case 8, a couple assistance unit with a community spouse flag fails closed. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_countable_resources: 0 + medicaid_ltss_community_spouse_countable_resources: 0 + medicaid_ltss_couple_countable_resources_at_first_institutionalization: 0 + output: + medicaid_ltss_csra_resource_eligible: false + +- name: Case 9, one dollar above the CSRA floor allowance fails. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_couple_countable_resources_at_first_institutionalization: 60_000 + medicaid_ltss_countable_resources: 2_000 + medicaid_ltss_community_spouse_countable_resources: 32_533 + output: + medicaid_ltss_csra_resource_eligible: false + +- name: Case 10, one dollar above the half-of-snapshot allowance fails. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_couple_countable_resources_at_first_institutionalization: 100_000 + medicaid_ltss_countable_resources: 2_000 + medicaid_ltss_community_spouse_countable_resources: 50_001 + output: + medicaid_ltss_csra_resource_eligible: false + +- name: Case 11, half of snapshot resources ties the Washington state minimum. + period: 2026-07 + input: + people: + at_tie: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_couple_countable_resources_at_first_institutionalization: 145_058 + medicaid_ltss_countable_resources: 2_000 + medicaid_ltss_community_spouse_countable_resources: 72_529 + above_tie: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_couple_countable_resources_at_first_institutionalization: 145_058 + medicaid_ltss_countable_resources: 2_000 + medicaid_ltss_community_spouse_countable_resources: 72_530 + tax_units: + at_tie_tax_unit: + members: [at_tie] + above_tie_tax_unit: + members: [above_tie] + families: + at_tie_family: + members: [at_tie] + above_tie_family: + members: [above_tie] + spm_units: + at_tie_spm_unit: + members: [at_tie] + above_tie_spm_unit: + members: [above_tie] + marital_units: + at_tie_marital_unit: + members: [at_tie] + above_tie_marital_unit: + members: [above_tie] + households: + at_tie_household: + members: [at_tie] + state_code: + 2026: WA + above_tie_household: + members: [above_tie] + state_code: + 2026: WA + output: + medicaid_ltss_csra_resource_eligible: [true, false] + +- name: Case 12, a genuine two-person institutionalized couple uses the couple limit. + period: 2026-07 + input: + people: + first_spouse_at: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_countable_resources: 3_000 + second_spouse_at: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_countable_resources: 3_000 + first_spouse_above: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_countable_resources: 3_001 + second_spouse_above: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 2 + medicaid_ltss_countable_resources: 3_001 + tax_units: + couple_at_tax_unit: + members: [first_spouse_at, second_spouse_at] + couple_above_tax_unit: + members: [first_spouse_above, second_spouse_above] + families: + couple_at_family: + members: [first_spouse_at, second_spouse_at] + couple_above_family: + members: [first_spouse_above, second_spouse_above] + spm_units: + couple_at_spm_unit: + members: [first_spouse_at, second_spouse_at] + couple_above_spm_unit: + members: [first_spouse_above, second_spouse_above] + marital_units: + couple_at_marital_unit: + members: [first_spouse_at, second_spouse_at] + couple_above_marital_unit: + members: [first_spouse_above, second_spouse_above] + households: + couple_at_household: + members: [first_spouse_at, second_spouse_at] + state_code: + 2026: TX + couple_above_household: + members: [first_spouse_above, second_spouse_above] + state_code: + 2026: TX + output: + medicaid_ltss_financial_pathway: + [SPECIAL_INCOME, SPECIAL_INCOME, SPECIAL_INCOME, SPECIAL_INCOME] + medicaid_ltss_csra_resource_eligible: [true, true, false, false] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_financial_pathway.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_financial_pathway.yaml new file mode 100644 index 00000000000..261eb234bed --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_financial_pathway.yaml @@ -0,0 +1,209 @@ +- name: Texas institutional assistance unit of one uses the special income pathway. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + output: + medicaid_ltss_financial_pathway: SPECIAL_INCOME + +- name: Delaware institutional assistance unit of one uses the special income pathway. + period: 2026-07 + input: + state_code: + 2026: DE + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + output: + medicaid_ltss_financial_pathway: SPECIAL_INCOME + +- name: Washington institutional income at the special income limit uses that pathway. + period: 2026-07 + input: + state_code: + 2026: WA + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_982 + output: + medicaid_ltss_financial_pathway: SPECIAL_INCOME + +- name: Washington institutional income above the special income limit uses medically needy. + period: 2026-07 + input: + state_code: + 2026: WA + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_983 + output: + medicaid_ltss_financial_pathway: INSTITUTIONAL_MEDICALLY_NEEDY + +- name: Washington COPES income at the special income limit uses that pathway. + period: 2026-07 + input: + state_code: + 2026: WA + medicaid_ltss_setting: HCBS + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: WA_COPES + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_982 + output: + medicaid_ltss_financial_pathway: SPECIAL_INCOME + +- name: Washington named HCBS waivers vectorize across the income pathway boundary. + period: 2026-07 + input: + people: + new_freedom_applicant: + medicaid_ltss_setting: HCBS + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: WA_NEW_FREEDOM + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 2_982 + rsw_applicant: + medicaid_ltss_setting: HCBS + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: WA_RSW + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_qit_adjusted_income: 4_000 + medicaid_ltss_medically_needy_expenses: 500 + medicaid_ltss_cost_of_care: 2_506 + families: + new_freedom_family: + members: [new_freedom_applicant] + rsw_family: + members: [rsw_applicant] + marital_units: + new_freedom_marital_unit: + members: [new_freedom_applicant] + rsw_marital_unit: + members: [rsw_applicant] + tax_units: + new_freedom_tax_unit: + members: [new_freedom_applicant] + rsw_tax_unit: + members: [rsw_applicant] + spm_units: + new_freedom_spm_unit: + members: [new_freedom_applicant] + rsw_spm_unit: + members: [rsw_applicant] + households: + new_freedom_household: + members: [new_freedom_applicant] + state_code: + 2026: WA + rsw_household: + members: [rsw_applicant] + state_code: + 2026: WA + output: + medicaid_ltss_financial_pathway: + - SPECIAL_INCOME + - INSTITUTIONAL_MEDICALLY_NEEDY + is_medicaid_ltss_income_eligible: [true, true] + +- name: Washington unknown HCBS waiver is unmodeled and fails the composite screen. + period: 2026-07 + input: + state_code: + 2026: WA + medicaid_ltss_setting: HCBS + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: UNKNOWN + medicaid_ltss_assistance_unit_size: 1 + output: + medicaid_ltss_financial_pathway: UNMODELED + is_medicaid_ltss_income_eligible: false + medicaid_ltss_csra_resource_eligible: false + # The home-equity bar cannot attach to a person with no equity interest. + medicaid_ltss_home_equity_eligible: true + is_medicaid_ltss_financial_threshold_eligible: false + +- name: Texas HCBS cannot use a Washington named waiver pathway. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: HCBS + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: WA_COPES + medicaid_ltss_assistance_unit_size: 1 + output: + medicaid_ltss_financial_pathway: UNMODELED + is_medicaid_ltss_financial_threshold_eligible: false + +- name: A non-aged-blind-disabled applicant is unmodeled. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: false + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + output: + medicaid_ltss_financial_pathway: UNMODELED + is_medicaid_ltss_financial_threshold_eligible: false + +- name: An unknown setting is unmodeled. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: UNKNOWN + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + output: + medicaid_ltss_financial_pathway: UNMODELED + +- name: An unsupported state is unmodeled. + period: 2026-07 + input: + state_code: + 2026: CA + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + output: + medicaid_ltss_financial_pathway: UNMODELED + is_medicaid_ltss_financial_threshold_eligible: false + +- name: An assistance unit size of zero is unmodeled. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 0 + output: + medicaid_ltss_financial_pathway: UNMODELED + is_medicaid_ltss_income_eligible: false diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_equity_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_equity_eligible.yaml new file mode 100644 index 00000000000..f55493e160c --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_equity_eligible.yaml @@ -0,0 +1,476 @@ +- name: Case 1, Texas home-equity cap includes the exact boundary. + period: 2026-07 + input: + people: + below: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 751_999 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + at: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 752_000 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + above: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 752_001 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + tax_units: + below_tax_unit: + members: [below] + at_tax_unit: + members: [at] + above_tax_unit: + members: [above] + families: + below_family: + members: [below] + at_family: + members: [at] + above_family: + members: [above] + spm_units: + below_spm_unit: + members: [below] + at_spm_unit: + members: [at] + above_spm_unit: + members: [above] + marital_units: + below_marital_unit: + members: [below] + at_marital_unit: + members: [at] + above_marital_unit: + members: [above] + households: + below_household: + members: [below] + state_code: + 2026: TX + at_household: + members: [at] + state_code: + 2026: TX + above_household: + members: [above] + state_code: + 2026: TX + output: + medicaid_ltss_home_equity_eligible: [true, true, false] + +- name: Case 2, Washington home-equity cap includes the exact boundary. + period: 2026-07 + input: + people: + below: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 1_129_999 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + at: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 1_130_000 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + above: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 1_130_001 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + tax_units: + below_tax_unit: + members: [below] + at_tax_unit: + members: [at] + above_tax_unit: + members: [above] + families: + below_family: + members: [below] + at_family: + members: [at] + above_family: + members: [above] + spm_units: + below_spm_unit: + members: [below] + at_spm_unit: + members: [at] + above_spm_unit: + members: [above] + marital_units: + below_marital_unit: + members: [below] + at_marital_unit: + members: [at] + above_marital_unit: + members: [above] + households: + below_household: + members: [below] + state_code: + 2026: WA + at_household: + members: [at] + state_code: + 2026: WA + above_household: + members: [above] + state_code: + 2026: WA + output: + medicaid_ltss_home_equity_eligible: [true, true, false] + +- name: Case 3, a resident spouse exception applies above the Texas cap. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 752_001 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + medicaid_ltss_home_occupied_by_spouse: true + output: + medicaid_ltss_home_equity_eligible: true + +- name: Case 4, a resident child under age 21 exception applies above the Texas cap. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 752_001 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + medicaid_ltss_home_occupied_by_child_under_21: true + output: + medicaid_ltss_home_equity_eligible: true + +- name: Case 5, a resident blind or disabled child exception applies above the Texas cap. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 752_001 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + medicaid_ltss_home_occupied_by_blind_or_disabled_child: true + output: + medicaid_ltss_home_equity_eligible: true + +- name: Case 6, a granted hardship waiver applies above the Texas cap. + period: 2026-07 + input: + state_code: + 2026: TX + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 752_001 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + medicaid_ltss_home_equity_hardship_waiver: true + output: + medicaid_ltss_home_equity_eligible: true + +- name: Case 7, Delaware applies the federal-minimum cap at the exact boundary. + period: 2026-07 + input: + people: + below: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 751_999 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + at: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 752_000 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + above: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 752_001 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + tax_units: + below_tax_unit: + members: [below] + at_tax_unit: + members: [at] + above_tax_unit: + members: [above] + families: + below_family: + members: [below] + at_family: + members: [at] + above_family: + members: [above] + spm_units: + below_spm_unit: + members: [below] + at_spm_unit: + members: [at] + above_spm_unit: + members: [above] + marital_units: + below_marital_unit: + members: [below] + at_marital_unit: + members: [at] + above_marital_unit: + members: [above] + households: + below_household: + members: [below] + state_code: + 2026: DE + at_household: + members: [at] + state_code: + 2026: DE + above_household: + members: [above] + state_code: + 2026: DE + output: + medicaid_ltss_financial_pathway: + [SPECIAL_INCOME, SPECIAL_INCOME, SPECIAL_INCOME] + medicaid_ltss_home_equity_eligible: [true, true, false] + +- name: Case 8, a Delaware non-homeowner passes the home-equity screen. + period: 2026-07 + input: + state_code: + 2026: DE + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 0 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + output: + medicaid_ltss_financial_pathway: SPECIAL_INCOME + medicaid_ltss_home_equity_eligible: true + +- name: Case 9, encumbrances and ownership share land exactly at the Texas cap. + period: 2026-07 + input: + people: + at: + medicaid_ltss_home_market_value: 1_000_000 + medicaid_ltss_home_encumbrances: 248_000 + medicaid_ltss_home_ownership_share: 1 + above: + medicaid_ltss_home_market_value: 1_000_001 + medicaid_ltss_home_encumbrances: 248_000 + medicaid_ltss_home_ownership_share: 1 + tax_units: + at_tax_unit: + members: [at] + above_tax_unit: + members: [above] + families: + at_family: + members: [at] + above_family: + members: [above] + spm_units: + at_spm_unit: + members: [at] + above_spm_unit: + members: [above] + marital_units: + at_marital_unit: + members: [at] + above_marital_unit: + members: [above] + households: + at_household: + members: [at] + state_code: + 2026: TX + above_household: + members: [above] + state_code: + 2026: TX + output: + medicaid_ltss_home_equity_eligible: [true, false] + +- name: Case 10, invalid ownership shares fail closed. + period: 2026-07 + input: + people: + share_above_one: + medicaid_ltss_home_market_value: 100_000 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1.5 + negative_share: + medicaid_ltss_home_market_value: 100_000 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: -0.5 + tax_units: + share_above_one_tax_unit: + members: [share_above_one] + negative_share_tax_unit: + members: [negative_share] + families: + share_above_one_family: + members: [share_above_one] + negative_share_family: + members: [negative_share] + spm_units: + share_above_one_spm_unit: + members: [share_above_one] + negative_share_spm_unit: + members: [negative_share] + marital_units: + share_above_one_marital_unit: + members: [share_above_one] + negative_share_marital_unit: + members: [negative_share] + households: + share_above_one_household: + members: [share_above_one] + state_code: + 2026: TX + negative_share_household: + members: [negative_share] + state_code: + 2026: TX + output: + medicaid_ltss_home_equity_eligible: [false, false] + +- name: Case 11, an unmodeled state passes at the federal minimum and fails closed above it. + period: 2026-07 + input: + people: + no_home: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 0 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + at_federal_minimum: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 752_000 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + above_federal_minimum: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_home_market_value: 752_001 + medicaid_ltss_home_encumbrances: 0 + medicaid_ltss_home_ownership_share: 1 + tax_units: + no_home_tax_unit: + members: [no_home] + at_federal_minimum_tax_unit: + members: [at_federal_minimum] + above_federal_minimum_tax_unit: + members: [above_federal_minimum] + families: + no_home_family: + members: [no_home] + at_federal_minimum_family: + members: [at_federal_minimum] + above_federal_minimum_family: + members: [above_federal_minimum] + spm_units: + no_home_spm_unit: + members: [no_home] + at_federal_minimum_spm_unit: + members: [at_federal_minimum] + above_federal_minimum_spm_unit: + members: [above_federal_minimum] + marital_units: + no_home_marital_unit: + members: [no_home] + at_federal_minimum_marital_unit: + members: [at_federal_minimum] + above_federal_minimum_marital_unit: + members: [above_federal_minimum] + households: + no_home_household: + members: [no_home] + state_code: + 2026: CA + at_federal_minimum_household: + members: [at_federal_minimum] + state_code: + 2026: CA + above_federal_minimum_household: + members: [above_federal_minimum] + state_code: + 2026: CA + output: + medicaid_ltss_financial_pathway: [UNMODELED, UNMODELED, UNMODELED] + medicaid_ltss_home_equity_eligible: [true, true, false] + is_medicaid_ltss_financial_threshold_eligible: [false, false, false] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_mmmna.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_mmmna.yaml new file mode 100644 index 00000000000..c952f7900d6 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_mmmna.yaml @@ -0,0 +1,260 @@ +- name: Case 1, Texas pays the federal maximum flat regardless of shelter expenses. + period: 2026-07 + absolute_error_margin: 0.01 + input: + people: + no_shelter: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_community_spouse_shelter_expenses: 0 + at_shelter_threshold: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_community_spouse_shelter_expenses: 811.50 + high_shelter: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_community_spouse_shelter_expenses: 2_173 + tax_units: + no_shelter: + members: [no_shelter] + at_shelter_threshold: + members: [at_shelter_threshold] + high_shelter: + members: [high_shelter] + marital_units: + no_shelter: + members: [no_shelter] + at_shelter_threshold: + members: [at_shelter_threshold] + high_shelter: + members: [high_shelter] + spm_units: + no_shelter: + members: [no_shelter] + at_shelter_threshold: + members: [at_shelter_threshold] + high_shelter: + members: [high_shelter] + households: + no_shelter: + members: [no_shelter] + state_code: + 2026: TX + at_shelter_threshold: + members: [at_shelter_threshold] + state_code: + 2026: TX + high_shelter: + members: [high_shelter] + state_code: + 2026: TX + output: + medicaid_ltss_mmmna: [4_066.50, 4_066.50, 4_066.50] + +- name: Case 2, the Delaware federal formula uses the base, shelter threshold, and maximum. + period: 2026-07 + absolute_error_margin: 0.01 + input: + people: + base: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_community_spouse_shelter_expenses: 0 + shelter_threshold: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_community_spouse_shelter_expenses: 811.50 + maximum: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_community_spouse_shelter_expenses: 2_173 + tax_units: + base: + members: [base] + shelter_threshold: + members: [shelter_threshold] + maximum: + members: [maximum] + marital_units: + base: + members: [base] + shelter_threshold: + members: [shelter_threshold] + maximum: + members: [maximum] + spm_units: + base: + members: [base] + shelter_threshold: + members: [shelter_threshold] + maximum: + members: [maximum] + households: + base: + members: [base] + state_code: + 2026: DE + shelter_threshold: + members: [shelter_threshold] + state_code: + 2026: DE + maximum: + members: [maximum] + state_code: + 2026: DE + output: + medicaid_ltss_mmmna: [2_705, 2_705, 4_066.50] + +- name: Case 3, the Washington formula adds interior excess shelter above the threshold. + period: 2026-07 + absolute_error_margin: 0.01 + input: + people: + interior_excess: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_community_spouse_shelter_expenses: 1_811.50 + cent_below_threshold: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_community_spouse_shelter_expenses: 811.49 + tax_units: + interior_excess: + members: [interior_excess] + cent_below_threshold: + members: [cent_below_threshold] + marital_units: + interior_excess: + members: [interior_excess] + cent_below_threshold: + members: [cent_below_threshold] + spm_units: + interior_excess: + members: [interior_excess] + cent_below_threshold: + members: [cent_below_threshold] + households: + interior_excess: + members: [interior_excess] + state_code: + 2026: WA + cent_below_threshold: + members: [cent_below_threshold] + state_code: + 2026: WA + output: + medicaid_ltss_mmmna: [3_705, 2_705] + +- name: Case 4, no community spouse produces no allowance. + period: 2026-07 + absolute_error_margin: 0.01 + input: + state_code: + 2026: DE + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: false + medicaid_ltss_community_spouse_shelter_expenses: 2_000 + output: + medicaid_ltss_mmmna: 0 + +- name: Case 5, an unmodeled pathway produces no allowance. + period: 2026-07 + absolute_error_margin: 0.01 + input: + state_code: + 2026: CA + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_community_spouse_shelter_expenses: 2_000 + output: + medicaid_ltss_financial_pathway: UNMODELED + medicaid_ltss_mmmna: 0 + +- name: Case 6, mixed Texas and Delaware spouses diverge in one simulation. + period: 2026-07 + absolute_error_margin: 0.01 + input: + people: + texas_spouse: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_community_spouse_shelter_expenses: 1_000 + delaware_spouse: + medicaid_ltss_setting: INSTITUTIONAL + is_ssi_aged_blind_disabled: + 2026: true + medicaid_ltss_waiver: NONE + medicaid_ltss_assistance_unit_size: 1 + medicaid_ltss_has_community_spouse: true + medicaid_ltss_community_spouse_shelter_expenses: 1_000 + tax_units: + texas_spouse: + members: [texas_spouse] + delaware_spouse: + members: [delaware_spouse] + marital_units: + texas_spouse: + members: [texas_spouse] + delaware_spouse: + members: [delaware_spouse] + spm_units: + texas_spouse: + members: [texas_spouse] + delaware_spouse: + members: [delaware_spouse] + households: + texas_spouse: + members: [texas_spouse] + state_code: + 2026: TX + delaware_spouse: + members: [delaware_spouse] + state_code: + 2026: DE + output: + medicaid_ltss_mmmna: [4_066.50, 2_893.50] diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/is_medicaid_ltss_financial_threshold_eligible.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/is_medicaid_ltss_financial_threshold_eligible.py new file mode 100644 index 00000000000..89f34df447e --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/is_medicaid_ltss_financial_threshold_eligible.py @@ -0,0 +1,28 @@ +from policyengine_us.model_api import * + + +class is_medicaid_ltss_financial_threshold_eligible(Variable): + value_type = bool + entity = Person + label = "Meets modeled Medicaid LTSS financial thresholds" + definition_period = MONTH + documentation = ( + "is_medicaid_ltss_financial_threshold_eligible models selected state " + "and waiver financial thresholds only. It does not determine actual " + "Medicaid LTSS eligibility, service entitlement, or benefit amount." + ) + reference = ( + "https://www.law.cornell.edu/cfr/text/42/435.236", + "https://www.law.cornell.edu/uscode/text/42/1396p", + "https://www.law.cornell.edu/uscode/text/42/1396r-5", + ) + + def formula_2026_01_01(person, period, parameters): + pathway = person("medicaid_ltss_financial_pathway", period) + pathways = pathway.possible_values + return ( + (pathway != pathways.UNMODELED) + & person("is_medicaid_ltss_income_eligible", period) + & person("medicaid_ltss_csra_resource_eligible", period) + & person("medicaid_ltss_home_equity_eligible", period) + ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/is_medicaid_ltss_income_eligible.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/is_medicaid_ltss_income_eligible.py new file mode 100644 index 00000000000..1367a6c6507 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/is_medicaid_ltss_income_eligible.py @@ -0,0 +1,97 @@ +from policyengine_us.model_api import * + + +class is_medicaid_ltss_income_eligible(Variable): + value_type = bool + entity = Person + label = "Meets modeled Medicaid LTSS income threshold" + definition_period = MONTH + documentation = ( + "Tests only the income threshold for the selected modeled Medicaid " + "LTSS financial pathway. QIT-adjusted income and Washington medically " + "needy expenses and cost of care are trusted inputs; this variable " + "does not validate a trust, expense, service, or facility rate. The " + "Washington institutional branch models the WAC 182-513-1395(4) " + "payment threshold using income only: the excess-resources term in " + "subsection (4)(a) is unmodeled (slightly lenient; resources are " + "screened separately), as are the three- or six-month spenddown " + "process in subsection (5) and the WAC 182-515-1507 categorically " + "needy route that bypasses the special income limit. The Delaware " + "special income limit is 250% of the SSI standard (DSSM 20100.2.2), " + "and its $20 disregard with the needs-based carve-out follows DSSM " + "20240.1 and 20990." + ) + reference = ( + "https://fhb.hhs.texas.gov/handbooks/medicaid-elderly-people-disabilities-handbook/appendix-xxxi-budget-reference-chart", + "https://fhb.hhs.texas.gov/handbooks/medicaid-elderly-people-disabilities-handbook/f-6800-qualified-income-trust", + "https://dhss.delaware.gov/wp-content/uploads/sites/11/2026/06/2026-SSI-Related-Income-Standards-and-Medicare-Premiums.pdf", + "https://regulations.delaware.gov/api/AdminCode/title16/20000/13aee487-1cd1-4726-addf-63603af28a78", + "https://app.leg.wa.gov/wac/default.aspx?cite=182-513-1395", + "https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1508", + ) + + def formula_2026_01_01(person, period, parameters): + p = parameters(period).gov.hhs.medicaid.eligibility.long_term_care.financial + state = person.household("state_code", period) + states = state.possible_values + setting = person("medicaid_ltss_setting", period) + settings = setting.possible_values + pathway = person("medicaid_ltss_financial_pathway", period) + pathways = pathway.possible_values + assistance_unit_size = person("medicaid_ltss_assistance_unit_size", period) + income = person("medicaid_ltss_qit_adjusted_income", period) + + special_income_limit = select( + [ + (state == states.TX) & (assistance_unit_size == 1), + (state == states.TX) & (assistance_unit_size == 2), + (state == states.DE) & (assistance_unit_size == 1), + (state == states.DE) & (assistance_unit_size == 2), + (state == states.WA) & (assistance_unit_size == 1), + ], + [ + p.tx.special_income_limit.individual, + p.tx.special_income_limit.couple, + p.de.special_income_limit.individual, + p.de.special_income_limit.couple, + p.wa.special_income_limit.individual, + ], + default=0, + ) + + needs_based_income = min_( + person("medicaid_ltss_needs_based_income", period), + income, + ) + non_needs_based_income = max_(income - needs_based_income, 0) + delaware_disregard = min_( + non_needs_based_income, + p.de.income.general_disregard, + ) + income_after_disregard = where( + state == states.DE, + max_(income - delaware_disregard, 0), + income, + ) + special_income_eligible = income_after_disregard <= special_income_limit + + medically_needy_expenses = person( + "medicaid_ltss_medically_needy_expenses", period + ) + cost_of_care = person("medicaid_ltss_cost_of_care", period) + washington_institutional_mn_eligible = (setting == settings.INSTITUTIONAL) & ( + max_(income - medically_needy_expenses, 0) <= cost_of_care + ) + washington_hcbs_mn_eligible = (setting == settings.HCBS) & ( + max_( + income - medically_needy_expenses - cost_of_care, + 0, + ) + <= p.wa.medically_needy.income_level + ) + + return ((pathway == pathways.SPECIAL_INCOME) & special_income_eligible) | ( + (pathway == pathways.INSTITUTIONAL_MEDICALLY_NEEDY) + & (state == states.WA) + & (washington_institutional_mn_eligible | washington_hcbs_mn_eligible) + ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_assistance_unit_size.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_assistance_unit_size.py new file mode 100644 index 00000000000..7bae076b926 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_assistance_unit_size.py @@ -0,0 +1,16 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_assistance_unit_size(Variable): + value_type = int + entity = Person + label = "Medicaid LTSS assistance unit size" + definition_period = MONTH + default_value = 0 + documentation = ( + "Explicit size of the assistance unit used by the Medicaid LTSS " + "financial threshold screen. It is not inferred from a tax unit, " + "household, or marital unit. Zero is unsupported and therefore " + "fail-closed." + ) + reference = "https://www.law.cornell.edu/cfr/text/42/435.601" diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_community_spouse_countable_resources.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_community_spouse_countable_resources.py new file mode 100644 index 00000000000..e7ff04d8b62 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_community_spouse_countable_resources.py @@ -0,0 +1,18 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_community_spouse_countable_resources(Variable): + value_type = float + entity = Person + label = "Medicaid LTSS community spouse countable resources" + unit = USD + quantity_type = STOCK + definition_period = MONTH + default_value = 0 + documentation = ( + "Trusted current comprehensive LTSS countable resources allocated to " + "the community spouse after applicable ownership and exclusion " + "rules. Court orders, fair-hearing adjustments, and legal ownership " + "determinations are not modeled." + ) + reference = "https://www.law.cornell.edu/uscode/text/42/1396r-5" diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_community_spouse_shelter_expenses.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_community_spouse_shelter_expenses.py new file mode 100644 index 00000000000..af4d8ae1d7b --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_community_spouse_shelter_expenses.py @@ -0,0 +1,16 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_community_spouse_shelter_expenses(Variable): + value_type = float + entity = Person + label = "Medicaid LTSS community spouse shelter expenses" + unit = USD + definition_period = MONTH + default_value = 0 + documentation = ( + "Trusted monthly shelter expenses of the community spouse that are " + "allowable for the minimum monthly maintenance needs allowance. The " + "model does not determine which housing or utility costs qualify." + ) + reference = "https://www.law.cornell.edu/uscode/text/42/1396r-5" diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_cost_of_care.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_cost_of_care.py new file mode 100644 index 00000000000..5d167fc17e4 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_cost_of_care.py @@ -0,0 +1,22 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_cost_of_care(Variable): + value_type = float + entity = Person + label = "Medicaid LTSS cost of care" + unit = USD + definition_period = MONTH + default_value = 0 + documentation = ( + "Explicit Washington medically needy threshold input. For a medical " + "institution it is the applicable state-contracted daily rate " + "multiplied by covered days; for a named HCS waiver it is the " + "applicable average monthly state nursing-facility rate. It is " + "trusted rather than derived and does not represent a Medicaid " + "benefit amount or patient liability." + ) + reference = ( + "https://app.leg.wa.gov/wac/default.aspx?cite=182-513-1395", + "https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1508", + ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_countable_resources.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_countable_resources.py new file mode 100644 index 00000000000..5c0e9994ce0 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_countable_resources.py @@ -0,0 +1,22 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_countable_resources(Variable): + value_type = float + entity = Person + label = "Medicaid LTSS countable resources" + unit = USD + quantity_type = STOCK + definition_period = MONTH + default_value = 0 + documentation = ( + "Trusted comprehensive LTSS countable-resource input for the " + "applicant or applicant assistance unit after applicable state " + "exclusions, disregards, and ownership rules. When the applicant has " + "a community spouse, this input excludes resources allocated to that " + "spouse, which are supplied separately. It is not calculated from " + "PolicyEngine's narrower SSI asset inputs. The user must perform the " + "resource inventory and legal classification before supplying this " + "value." + ) + reference = "https://www.law.cornell.edu/cfr/text/42/435.601" diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_couple_countable_resources_at_first_institutionalization.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_couple_countable_resources_at_first_institutionalization.py new file mode 100644 index 00000000000..a0c08115554 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_couple_countable_resources_at_first_institutionalization.py @@ -0,0 +1,19 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_couple_countable_resources_at_first_institutionalization(Variable): + value_type = float + entity = Person + label = "Medicaid LTSS couple countable resources at first institutionalization" + unit = USD + quantity_type = STOCK + definition_period = MONTH + default_value = 0 + documentation = ( + "Trusted historical snapshot of the couple's total countable " + "resources at the beginning of the first continuous period of " + "institutionalization. The same snapshot should be supplied in each " + "modeled month. The model does not reconstruct or adjudicate the " + "snapshot." + ) + reference = "https://www.law.cornell.edu/uscode/text/42/1396r-5" diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_csra_resource_eligible.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_csra_resource_eligible.py new file mode 100644 index 00000000000..56516fa3e51 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_csra_resource_eligible.py @@ -0,0 +1,90 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_csra_resource_eligible(Variable): + value_type = bool + entity = Person + label = "Meets modeled Medicaid LTSS resource threshold after CSRA" + definition_period = MONTH + documentation = ( + "Tests trusted comprehensive LTSS countable-resource inputs. For an " + "applicant with a community spouse, the initial CSRA is the greater " + "of the applicable state/federal floor or the fixed statutory " + "one-half of the couple's snapshot resources under 42 USC " + "1396r-5(f)(2)(A), capped at the federal maximum. Delaware's " + "$25,000 state spousal share (DSSM 20910.10) sits below the federal " + "minimum, which therefore governs. Court and fair-hearing " + "adjustments, resource-hardship overrides, and detailed state asset " + "exclusions are not modeled." + ) + reference = ( + "https://www.law.cornell.edu/uscode/text/42/1396r-5#f_2", + "https://fhb.hhs.texas.gov/handbooks/medicaid-elderly-people-disabilities-handbook/appendix-xxxi-budget-reference-chart", + "https://regulations.delaware.gov/api/AdminCode/title16/20000/13aee487-1cd1-4726-addf-63603af28a78", + "https://www.hca.wa.gov/assets/free-or-low-cost/income-standards-20260101.pdf#page=3", + ) + + def formula_2026_01_01(person, period, parameters): + p = parameters(period).gov.hhs.medicaid.eligibility.long_term_care.financial + state = person.household("state_code", period) + states = state.possible_values + pathway = person("medicaid_ltss_financial_pathway", period) + pathways = pathway.possible_values + assistance_unit_size = person("medicaid_ltss_assistance_unit_size", period) + resources = person("medicaid_ltss_countable_resources", period) + + resource_limit = select( + [ + (state == states.TX) & (assistance_unit_size == 1), + (state == states.TX) & (assistance_unit_size == 2), + (state == states.DE) & (assistance_unit_size == 1), + (state == states.DE) & (assistance_unit_size == 2), + (state == states.WA) & (assistance_unit_size == 1), + ], + [ + p.tx.resources.individual, + p.tx.resources.couple, + p.de.resources.individual, + p.de.resources.couple, + p.wa.resources.individual, + ], + default=0, + ) + no_community_spouse_eligible = resources <= resource_limit + + state_csra_minimum = select( + [ + state == states.TX, + state == states.DE, + state == states.WA, + ], + [ + max_(p.tx.csra.state_minimum, p.federal.csra.minimum), + max_(p.de.csra.state_minimum, p.federal.csra.minimum), + max_(p.wa.csra.state_minimum, p.federal.csra.minimum), + ], + default=0, + ) + snapshot_resources = person( + "medicaid_ltss_couple_countable_resources_at_first_institutionalization", + period, + ) + csra = min_( + max_(snapshot_resources / 2, state_csra_minimum), + p.federal.csra.maximum, + ) + current_couple_resources = resources + person( + "medicaid_ltss_community_spouse_countable_resources", + period, + ) + has_community_spouse = person("medicaid_ltss_has_community_spouse", period) + community_spouse_eligible = (assistance_unit_size == 1) & ( + current_couple_resources <= csra + resource_limit + ) + modeled_pathway = pathway != pathways.UNMODELED + + return modeled_pathway & where( + has_community_spouse, + community_spouse_eligible, + no_community_spouse_eligible, + ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_financial_pathway.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_financial_pathway.py new file mode 100644 index 00000000000..bae82229d37 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_financial_pathway.py @@ -0,0 +1,88 @@ +from policyengine_us.model_api import * + + +class MedicaidLTSSFinancialPathway(Enum): + UNMODELED = "Unmodeled" + SPECIAL_INCOME = "Special income" + INSTITUTIONAL_MEDICALLY_NEEDY = "Institutional medically needy" + + +class medicaid_ltss_financial_pathway(Variable): + value_type = Enum + possible_values = MedicaidLTSSFinancialPathway + default_value = MedicaidLTSSFinancialPathway.UNMODELED + entity = Person + label = "Medicaid LTSS financial pathway" + definition_period = MONTH + documentation = ( + "Identifies the modeled financial pathway for the opt-in Medicaid " + "long-term services and supports threshold screen. Every modeled " + "route is SSI-related, so a person who is not aged, blind, or " + "disabled is unmodeled (42 CFR 435.236; 42 CFR 435.1005). " + "Institutional pathways are modeled for Texas, Delaware, and " + "Washington. HCBS pathways are modeled only for Washington's " + "source-named COPES, New Freedom, and Residential Support waivers; " + "their enabled flags exist for reform analysis, so the disabled " + "branch is reform-only-reachable. All other states, settings, " + "waivers, and unsupported assistance-unit sizes are unmodeled." + ) + reference = ( + "https://www.law.cornell.edu/cfr/text/42/435.236", + "https://www.law.cornell.edu/cfr/text/42/435.1005", + "https://fhb.hhs.texas.gov/handbooks/medicaid-elderly-people-disabilities-handbook/appendix-xxxi-budget-reference-chart", + "https://regulations.delaware.gov/api/AdminCode/title16/20000/13aee487-1cd1-4726-addf-63603af28a78", + "https://app.leg.wa.gov/wac/default.aspx?cite=182-513-1395", + "https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1505", + ) + + def formula_2026_01_01(person, period, parameters): + p = parameters(period).gov.hhs.medicaid.eligibility.long_term_care.financial + state = person.household("state_code", period) + states = state.possible_values + setting = person("medicaid_ltss_setting", period) + settings = setting.possible_values + waiver = person("medicaid_ltss_waiver", period) + waivers = waiver.possible_values + assistance_unit_size = person("medicaid_ltss_assistance_unit_size", period) + income = person("medicaid_ltss_qit_adjusted_income", period) + aged_blind_disabled = person("is_ssi_aged_blind_disabled", period.this_year) + + institutional = (setting == settings.INSTITUTIONAL) & (waiver == waivers.NONE) + washington_hcbs = (setting == settings.HCBS) & ( + ((waiver == waivers.WA_COPES) & p.wa.waivers.copes.enabled) + | ((waiver == waivers.WA_NEW_FREEDOM) & p.wa.waivers.new_freedom.enabled) + | ((waiver == waivers.WA_RSW) & p.wa.waivers.rsw.enabled) + ) + + texas_or_delaware_institutional = ( + institutional + & aged_blind_disabled + & ((state == states.TX) | (state == states.DE)) + & ((assistance_unit_size == 1) | (assistance_unit_size == 2)) + ) + washington_modeled_setting = ( + (state == states.WA) + & aged_blind_disabled + & (institutional | washington_hcbs) + & (assistance_unit_size == 1) + ) + washington_special_income = washington_modeled_setting & ( + income <= p.wa.special_income_limit.individual + ) + washington_medically_needy = washington_modeled_setting & ( + income > p.wa.special_income_limit.individual + ) + + return select( + [ + texas_or_delaware_institutional, + washington_special_income, + washington_medically_needy, + ], + [ + MedicaidLTSSFinancialPathway.SPECIAL_INCOME, + MedicaidLTSSFinancialPathway.SPECIAL_INCOME, + MedicaidLTSSFinancialPathway.INSTITUTIONAL_MEDICALLY_NEEDY, + ], + default=MedicaidLTSSFinancialPathway.UNMODELED, + ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_has_community_spouse.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_has_community_spouse.py new file mode 100644 index 00000000000..adc4c96fb3d --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_has_community_spouse.py @@ -0,0 +1,15 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_has_community_spouse(Variable): + value_type = bool + entity = Person + label = "Has a community spouse for Medicaid LTSS" + definition_period = MONTH + default_value = False + documentation = ( + "Explicit indication that the LTSS applicant has a community spouse " + "for spousal-impoverishment protections. It is not inferred from a " + "tax, household, or marital unit." + ) + reference = "https://www.law.cornell.edu/uscode/text/42/1396r-5" diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_encumbrances.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_encumbrances.py new file mode 100644 index 00000000000..a1195000747 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_encumbrances.py @@ -0,0 +1,17 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_home_encumbrances(Variable): + value_type = float + entity = Person + label = "Medicaid LTSS home encumbrances" + unit = USD + quantity_type = STOCK + definition_period = MONTH + default_value = 0 + documentation = ( + "Explicit current enforceable debt secured by the home and deducted " + "from market value before applying the applicant's ownership share " + "in the Medicaid LTSS home-equity payment-bar calculation." + ) + reference = "https://www.law.cornell.edu/uscode/text/42/1396p#f" diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_equity_eligible.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_equity_eligible.py new file mode 100644 index 00000000000..8edcaff376f --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_equity_eligible.py @@ -0,0 +1,63 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_home_equity_eligible(Variable): + value_type = bool + entity = Person + label = "Meets Medicaid LTSS home-equity threshold" + definition_period = MONTH + documentation = ( + "Applies the 42 USC 1396p(f) substantial home equity payment bar " + "from explicit home value, encumbrance, fractional-ownership, " + "resident-exception, and hardship inputs. Washington elects the " + "federal maximum limit (WAC 182-513-1350(8)(c)); Texas and Delaware " + "apply the CPI-indexed federal minimum (TX Appendix XXXI; DSSM " + "20320.7.B and 20320.7.E). Elections in other states are unmodeled: " + "equity at or below the federal minimum passes, because no state " + "may bar payment below that amount, and higher equity fails closed. " + "A person with no equity interest always passes. The agricultural-" + "land limit in the separate annual " + "is_medicaid_long_term_care_home_equity_eligible chassis is not " + "modeled here." + ) + reference = ( + "https://www.law.cornell.edu/uscode/text/42/1396p#f", + "https://fhb.hhs.texas.gov/handbooks/medicaid-elderly-people-disabilities-handbook/appendix-xxxi-budget-reference-chart", + "https://regulations.delaware.gov/api/AdminCode/title16/20000/13aee487-1cd1-4726-addf-63603af28a78", + "https://app.leg.wa.gov/wac/default.aspx?cite=182-513-1350", + "https://www.hca.wa.gov/assets/free-or-low-cost/income-standards-20260101.pdf#page=3", + ) + + def formula_2026_01_01(person, period, parameters): + p = parameters(period).gov.hhs.medicaid.eligibility.long_term_care + state = person.household("state_code", period) + states = state.possible_values + home_equity_limit = where( + state == states.WA, + p.home_equity.limit, + p.home_equity.minimum_limit, + ) + home_value = person("medicaid_ltss_home_market_value", period) + encumbrances = person("medicaid_ltss_home_encumbrances", period) + ownership_share = person("medicaid_ltss_home_ownership_share", period) + valid_ownership_share = (ownership_share >= 0) & (ownership_share <= 1) + applicant_home_equity = max_(home_value - encumbrances, 0) * ownership_share + exception = ( + person("medicaid_ltss_home_occupied_by_spouse", period) + | person( + "medicaid_ltss_home_occupied_by_child_under_21", + period, + ) + | person( + "medicaid_ltss_home_occupied_by_blind_or_disabled_child", + period, + ) + | person( + "medicaid_ltss_home_equity_hardship_waiver", + period, + ) + ) + + return valid_ownership_share & ( + exception | (applicant_home_equity <= home_equity_limit) + ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_equity_hardship_waiver.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_equity_hardship_waiver.py new file mode 100644 index 00000000000..d494dcb3586 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_equity_hardship_waiver.py @@ -0,0 +1,15 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_home_equity_hardship_waiver(Variable): + value_type = bool + entity = Person + label = "Medicaid LTSS home-equity hardship waiver" + definition_period = MONTH + default_value = False + documentation = ( + "Trusted indication that the administering agency has granted an " + "undue-hardship waiver of the Medicaid LTSS home-equity payment bar. " + "The model does not apply hardship criteria or adjudicate the waiver." + ) + reference = "https://www.law.cornell.edu/uscode/text/42/1396p#f_4" diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_market_value.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_market_value.py new file mode 100644 index 00000000000..d2e1bbccb45 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_market_value.py @@ -0,0 +1,17 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_home_market_value(Variable): + value_type = float + entity = Person + label = "Medicaid LTSS home market value" + unit = USD + quantity_type = STOCK + definition_period = MONTH + default_value = 0 + documentation = ( + "Explicit current market value of the home used in the separate " + "Medicaid LTSS home-equity payment-bar calculation. Home equity is " + "not treated as an ordinary countable resource by this input." + ) + reference = "https://www.law.cornell.edu/uscode/text/42/1396p#f" diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_occupied_by_blind_or_disabled_child.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_occupied_by_blind_or_disabled_child.py new file mode 100644 index 00000000000..73a56cf80e9 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_occupied_by_blind_or_disabled_child.py @@ -0,0 +1,16 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_home_occupied_by_blind_or_disabled_child(Variable): + value_type = bool + entity = Person + label = "Medicaid LTSS home occupied by blind or disabled child" + definition_period = MONTH + default_value = False + documentation = ( + "Explicit indication that the applicant's blind or disabled child " + "lawfully resides in the home for the Medicaid LTSS home-equity " + "exception. The model does not adjudicate disability, relationship, " + "or residence." + ) + reference = "https://www.law.cornell.edu/uscode/text/42/1396p#f_2" diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_occupied_by_child_under_21.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_occupied_by_child_under_21.py new file mode 100644 index 00000000000..c7b64ab45af --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_occupied_by_child_under_21.py @@ -0,0 +1,15 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_home_occupied_by_child_under_21(Variable): + value_type = bool + entity = Person + label = "Medicaid LTSS home occupied by child under age 21" + definition_period = MONTH + default_value = False + documentation = ( + "Explicit indication that the applicant's child under age 21 " + "lawfully resides in the home for the Medicaid LTSS home-equity " + "exception. The model does not infer the relationship or residence." + ) + reference = "https://www.law.cornell.edu/uscode/text/42/1396p#f_2" diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_occupied_by_spouse.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_occupied_by_spouse.py new file mode 100644 index 00000000000..7cafa295b19 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_occupied_by_spouse.py @@ -0,0 +1,15 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_home_occupied_by_spouse(Variable): + value_type = bool + entity = Person + label = "Medicaid LTSS home occupied by spouse" + definition_period = MONTH + default_value = False + documentation = ( + "Explicit indication that the applicant's spouse lawfully resides in " + "the home for the Medicaid LTSS home-equity exception. The model does " + "not infer residence from household membership." + ) + reference = "https://www.law.cornell.edu/uscode/text/42/1396p#f_2" diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_ownership_share.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_ownership_share.py new file mode 100644 index 00000000000..11f6893f472 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_ownership_share.py @@ -0,0 +1,16 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_home_ownership_share(Variable): + value_type = float + entity = Person + label = "Medicaid LTSS home ownership share" + unit = "/1" + definition_period = MONTH + default_value = 0 + documentation = ( + "Explicit fractional share of the home's equity owned by the LTSS " + "applicant, from zero to one. Zero is the safe default. The model does " + "not determine title, jointly owned shares, or legal ownership." + ) + reference = "https://www.law.cornell.edu/uscode/text/42/1396p#f" diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_medically_needy_expenses.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_medically_needy_expenses.py new file mode 100644 index 00000000000..f8fee6bb58d --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_medically_needy_expenses.py @@ -0,0 +1,22 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_medically_needy_expenses(Variable): + value_type = float + entity = Person + label = "Medicaid LTSS medically needy expenses" + unit = USD + definition_period = MONTH + default_value = 0 + documentation = ( + "Explicit monthly exclusions, post-eligibility deductions, and " + "incurred medical expenses used to derive Washington remaining or " + "net available income. This trusted input must already reflect the " + "applicable expense categories, ordering, and documentation; the " + "model does not adjudicate expenses or calculate a spenddown budget " + "period." + ) + reference = ( + "https://app.leg.wa.gov/wac/default.aspx?cite=182-513-1395", + "https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1508", + ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_mmmna.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_mmmna.py new file mode 100644 index 00000000000..afb0af4f1a0 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_mmmna.py @@ -0,0 +1,65 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_mmmna(Variable): + value_type = float + entity = Person + label = "Medicaid LTSS minimum monthly maintenance needs allowance" + unit = USD + definition_period = MONTH + documentation = ( + "Calculates the community spouse minimum monthly maintenance needs " + "allowance standard for the modeled states. Texas pays the federal " + "maximum as a flat spousal allowance (TX Appendix XXXI; MEPD " + "J-7200). Delaware and Washington use the federal formula: the July " + "2026 minimum plus allowable community-spouse shelter expenses " + "above the excess-shelter threshold, supplied as an explicit input, " + "capped at the federal maximum (DSSM 20910.4 through 20910.6; WAC " + "182-513-1385(3)(a) and (4)). It is a post-eligibility spousal " + "protection standard, not an applicant income-eligibility " + "deduction; the WAC 182-513-1385(3)(b) offset for the community " + "spouse's own income belongs to the allocation, which is unmodeled. " + "The whole variable is unmodeled before July 2026, when the " + "effective-dated federal minimum begins; this also defers the Texas " + "flat maximum, which is otherwise effective January 1, 2026." + ) + reference = ( + "https://www.law.cornell.edu/uscode/text/42/1396r-5#d", + "https://www.medicaid.gov/sites/default/files/2026-04/cib04272026.pdf#page=2", + "https://fhb.hhs.texas.gov/handbooks/medicaid-elderly-people-disabilities-handbook/appendix-xxxi-budget-reference-chart", + "https://fhb.hhs.texas.gov/handbooks/medicaid-elderly-people-disabilities-handbook/j-7200-spousal-co-payment", + "https://regulations.delaware.gov/api/AdminCode/title16/20000/13aee487-1cd1-4726-addf-63603af28a78", + "https://app.leg.wa.gov/wac/default.aspx?cite=182-513-1385", + ) + + def formula_2026_07_01(person, period, parameters): + p = parameters(period).gov.hhs.medicaid.eligibility.long_term_care.financial + state = person.household("state_code", period) + states = state.possible_values + pathway = person("medicaid_ltss_financial_pathway", period) + pathways = pathway.possible_values + has_community_spouse = person("medicaid_ltss_has_community_spouse", period) + shelter_expenses = person( + "medicaid_ltss_community_spouse_shelter_expenses", + period, + ) + + excess_shelter_expenses = max_( + shelter_expenses + - (p.federal.mmmna.minimum * p.federal.mmmna.shelter_threshold_rate), + 0, + ) + formula_mmmna = min_( + p.federal.mmmna.minimum + excess_shelter_expenses, + p.federal.mmmna.maximum, + ) + mmmna = where( + state == states.TX, + p.federal.mmmna.maximum, + formula_mmmna, + ) + return where( + (pathway != pathways.UNMODELED) & has_community_spouse, + mmmna, + 0, + ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_needs_based_income.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_needs_based_income.py new file mode 100644 index 00000000000..77faf850fe9 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_needs_based_income.py @@ -0,0 +1,20 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_needs_based_income(Variable): + value_type = float + entity = Person + label = "Medicaid LTSS needs-based income" + unit = USD + definition_period = MONTH + default_value = 0 + documentation = ( + "Trusted portion of QIT-adjusted income that comes from needs-based " + "sources. The Delaware general income disregard is not applied to " + "this portion. The model does not classify or allocate income " + "sources." + ) + reference = ( + "https://dhss.delaware.gov/wp-content/uploads/sites/11/2026/06/2026-SSI-Related-Income-Standards-and-Medicare-Premiums.pdf", + "https://regulations.delaware.gov/api/AdminCode/title16/20000/13aee487-1cd1-4726-addf-63603af28a78", + ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_qit_adjusted_income.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_qit_adjusted_income.py new file mode 100644 index 00000000000..15f14dd4595 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_qit_adjusted_income.py @@ -0,0 +1,23 @@ +from policyengine_us.model_api import * + + +class medicaid_ltss_qit_adjusted_income(Variable): + value_type = float + entity = Person + label = "Medicaid LTSS QIT-adjusted income" + unit = USD + definition_period = MONTH + default_value = 0 + documentation = ( + "Trusted monthly income input after any qualified income trust " + "treatment and applicant/spouse ownership allocation (TX MEPD " + "F-6800; DSSM 20400.11). The model does not validate trust " + "legality, irrevocability, funding, payback terms, or which income " + "was validly deposited. The user must perform those determinations " + "before supplying this value." + ) + reference = ( + "https://www.law.cornell.edu/uscode/text/42/1396p#d_4_B", + "https://fhb.hhs.texas.gov/handbooks/medicaid-elderly-people-disabilities-handbook/f-6800-qualified-income-trust", + "https://regulations.delaware.gov/api/AdminCode/title16/20000/13aee487-1cd1-4726-addf-63603af28a78", + ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_setting.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_setting.py new file mode 100644 index 00000000000..2b131adedb4 --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_setting.py @@ -0,0 +1,26 @@ +from policyengine_us.model_api import * + + +class MedicaidLTSSSetting(Enum): + UNKNOWN = "Unknown" + INSTITUTIONAL = "Institutional" + HCBS = "Home and community-based services" + + +class medicaid_ltss_setting(Variable): + value_type = Enum + possible_values = MedicaidLTSSSetting + default_value = MedicaidLTSSSetting.UNKNOWN + entity = Person + label = "Medicaid LTSS setting" + definition_period = MONTH + documentation = ( + "Explicit setting input for the opt-in Medicaid LTSS financial " + "threshold screen. UNKNOWN is fail-closed. This input does not " + "establish institutional level of care, functional eligibility, " + "service authorization, or receipt of services." + ) + reference = ( + "https://www.law.cornell.edu/cfr/text/42/435.236", + "https://www.law.cornell.edu/cfr/text/42/435.217", + ) diff --git a/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_waiver.py b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_waiver.py new file mode 100644 index 00000000000..3ccb9132bbf --- /dev/null +++ b/policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_waiver.py @@ -0,0 +1,30 @@ +from policyengine_us.model_api import * + + +class MedicaidLTSSWaiver(Enum): + NONE = "None" + WA_COPES = "Washington COPES" + WA_NEW_FREEDOM = "Washington New Freedom" + WA_RSW = "Washington Residential Support Waiver" + UNKNOWN = "Unknown" + + +class medicaid_ltss_waiver(Variable): + value_type = Enum + possible_values = MedicaidLTSSWaiver + default_value = MedicaidLTSSWaiver.NONE + entity = Person + label = "Medicaid LTSS waiver" + definition_period = MONTH + documentation = ( + "Explicit named-waiver input for the opt-in Medicaid LTSS financial " + "threshold screen. UNKNOWN and unsupported waiver selections are " + "unmodeled and fail closed; they never inherit a generic statewide " + "HCBS rule. This input does not establish waiver enrollment, a slot, " + "level of care, or service authorization." + ) + reference = ( + "https://www.law.cornell.edu/cfr/text/42/435.217", + "https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1505", + "https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1508", + )