diff --git a/changelog.d/add-ma-ssp.added.md b/changelog.d/add-ma-ssp.added.md new file mode 100644 index 00000000000..a51727b5f3e --- /dev/null +++ b/changelog.d/add-ma-ssp.added.md @@ -0,0 +1 @@ +Backdate Massachusetts SSP parameters to 2002. diff --git a/policyengine_us/parameters/gov/states/ma/dta/ssp/amount.yaml b/policyengine_us/parameters/gov/states/ma/dta/ssp/amount.yaml index 638491fc2bc..42cf1537e67 100644 --- a/policyengine_us/parameters/gov/states/ma/dta/ssp/amount.yaml +++ b/policyengine_us/parameters/gov/states/ma/dta/ssp/amount.yaml @@ -14,96 +14,217 @@ metadata: reference: - title: 106 CMR, ยง 327.330 - Payment Standards href: https://www.law.cornell.edu/regulations/massachusetts/106-CMR-327-330 + - title: SSA State Assistance Programs for SSI Recipients, January 2002 - Massachusetts + href: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2002/ma.html + - title: SSA State Assistance Programs for SSI Recipients, January 2005 - Massachusetts + href: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2005/ma.html + - title: SSA State Assistance Programs for SSI Recipients, January 2011 - Massachusetts + href: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2011/ma.html - title: Massachusetts State Supplement Calendar Year 2022 Payment Levels href: https://www.mass.gov/doc/federal-and-state-payment-levels-for-calendar-year-cy-2022/download - - title: Massachusetts State Supplement Calendar Year 2023 Payment Levels - href: https://www.mass.gov/doc/federal-and-state-payment-levels-for-calendar-year-cy-2023/download - - title: Massachusetts State Supplement Calendar Year 2024 Payment Levels - href: https://www.mass.gov/doc/federal-and-state-payment-levels-for-calendar-year-cy-2024/download - title: Massachusetts State Supplement Calendar Year 2025 Payment Levels href: https://www.mass.gov/doc/federal-and-state-payment-levels-for-calendar-year-cy-2025/download FULL_COST: AGED: 1: - 2022-01-01: 128.82 - 2: - 2022-01-01: 100.86 + 2002-01-01: 128.82 + 2: + 2002-01-01: 100.86 BLIND: 1: - 2022-01-01: 149.74 + 2002-01-01: 149.74 2: + 2002-01-01: 286.24 + 2003-01-01: 287.24 + 2004-01-01: 290.74 + 2005-01-01: 294.24 + 2006-01-01: 300.74 + 2007-01-01: 305.74 + 2008-01-01: 308.74 + 2009-01-01: 318.24 + 2012-01-01: 323.74 + 2013-01-01: 326.74 + 2014-01-01: 329.74 + 2015-01-01: 332.74 + 2017-01-01: 333.24 + 2018-01-01: 337.24 + 2019-01-01: 342.24 + 2020-01-01: 345.24 + 2021-01-01: 348.24 2022-01-01: 360.24 2023-01-01: 378.24 2024-01-01: 385.24 2025-01-01: 391.74 DISABLED: 1: - 2022-01-01: 114.39 + 2002-01-01: 114.39 2: - 2022-01-01: 90.03 + 2002-01-01: 90.03 SHARED_EXPENSES: AGED: 1: - 2022-01-01: 39.26 - 2: - 2022-01-01: 100.86 + 2002-01-01: 39.26 + 2: + 2002-01-01: 100.86 BLIND: 1: - 2022-01-01: 149.74 + 2002-01-01: 149.74 2: + 2002-01-01: 286.24 + 2003-01-01: 287.24 + 2004-01-01: 290.74 + 2005-01-01: 294.24 + 2006-01-01: 300.74 + 2007-01-01: 305.74 + 2008-01-01: 308.74 + 2009-01-01: 318.24 + 2012-01-01: 323.74 + 2013-01-01: 326.74 + 2014-01-01: 329.74 + 2015-01-01: 332.74 + 2017-01-01: 333.24 + 2018-01-01: 337.24 + 2019-01-01: 342.24 + 2020-01-01: 345.24 + 2021-01-01: 348.24 2022-01-01: 360.24 2023-01-01: 378.24 2024-01-01: 385.24 2025-01-01: 391.74 DISABLED: 1: - 2022-01-01: 30.40 + 2002-01-01: 30.40 2: - 2022-01-01: 90.03 + 2002-01-01: 90.03 HOUSEHOLD_OF_ANOTHER: AGED: 1: - 2022-01-01: 104.36 + 2002-01-01: 104.36 2: - 2022-01-01: 107.90 + 2002-01-01: 107.90 BLIND: 1: + 2002-01-01: 331.40 + 2003-01-01: 333.74 + 2004-01-01: 337.74 + 2005-01-01: 342.74 + 2006-01-01: 350.74 + 2007-01-01: 357.40 + 2008-01-01: 362.07 + 2009-01-01: 374.40 + 2012-01-01: 382.40 + 2013-01-01: 386.40 + 2014-01-01: 390.07 + 2015-01-01: 394.07 + 2017-01-01: 394.74 + 2018-01-01: 399.74 + 2019-01-01: 406.74 + 2020-01-01: 410.74 + 2021-01-01: 414.40 2022-01-01: 430.07 2023-01-01: 454.40 2024-01-01: 464.07 2025-01-01: 472.07 2: + 2002-01-01: 422.40 + 2003-01-01: 425.40 + 2004-01-01: 431.74 + 2005-01-01: 439.07 + 2006-01-01: 451.40 + 2007-01-01: 461.40 + 2008-01-01: 468.07 + 2009-01-01: 486.74 + 2012-01-01: 498.40 + 2013-01-01: 504.40 + 2014-01-01: 510.07 + 2015-01-01: 516.07 + 2017-01-01: 517.07 + 2018-01-01: 524.74 + 2019-01-01: 535.07 + 2020-01-01: 541.07 + 2021-01-01: 546.74 2022-01-01: 570.40 2023-01-01: 606.74 2024-01-01: 621.07 2025-01-01: 633.40 DISABLED: 1: - 2022-01-01: 87.58 + 2002-01-01: 87.58 2: - 2022-01-01: 97.09 + 2002-01-01: 97.09 REST_HOME: AGED: 1: - 2022-01-01: 293.00 + 2002-01-01: 293.00 2: + 2002-01-01: 429.50 + 2003-01-01: 430.50 + 2004-01-01: 434.00 + 2005-01-01: 437.50 + 2006-01-01: 444.00 + 2007-01-01: 449.00 + 2008-01-01: 452.00 + 2009-01-01: 461.50 + 2012-01-01: 467.00 + 2013-01-01: 470.00 + 2014-01-01: 473.00 + 2015-01-01: 476.00 + 2017-01-01: 476.50 + 2018-01-01: 480.50 + 2019-01-01: 485.50 + 2020-01-01: 488.50 + 2021-01-01: 491.50 2022-01-01: 503.50 2023-01-01: 521.50 2024-01-01: 528.50 2025-01-01: 535.00 BLIND: 1: - 2022-01-01: 149.74 + 2002-01-01: 149.74 2: + 2002-01-01: 286.24 + 2003-01-01: 287.24 + 2004-01-01: 290.74 + 2005-01-01: 294.24 + 2006-01-01: 300.74 + 2007-01-01: 305.74 + 2008-01-01: 308.74 + 2009-01-01: 318.24 + 2012-01-01: 323.74 + 2013-01-01: 326.74 + 2014-01-01: 329.74 + 2015-01-01: 332.74 + 2017-01-01: 333.24 + 2018-01-01: 337.24 + 2019-01-01: 342.24 + 2020-01-01: 345.24 + 2021-01-01: 348.24 2022-01-01: 360.24 2023-01-01: 378.24 2024-01-01: 385.24 2025-01-01: 391.74 DISABLED: 1: - 2022-01-01: 293.00 + 2002-01-01: 293.00 2: + 2002-01-01: 429.50 + 2003-01-01: 430.50 + 2004-01-01: 434.00 + 2005-01-01: 437.50 + 2006-01-01: 444.00 + 2007-01-01: 449.00 + 2008-01-01: 452.00 + 2009-01-01: 461.50 + 2012-01-01: 467.00 + 2013-01-01: 470.00 + 2014-01-01: 473.00 + 2015-01-01: 476.00 + 2017-01-01: 476.50 + 2018-01-01: 480.50 + 2019-01-01: 485.50 + 2020-01-01: 488.50 + 2021-01-01: 491.50 2022-01-01: 503.50 2023-01-01: 521.50 2024-01-01: 528.50 @@ -111,32 +232,38 @@ REST_HOME: MEDICAID_FACILITY: AGED: 1: - 2022-01-01: 42.80 + 2002-01-01: 35.00 + 2008-01-01: 42.80 2: - 2022-01-01: 42.80 + 2002-01-01: 35.00 + 2008-01-01: 42.80 BLIND: 1: - 2022-01-01: 42.80 + 2002-01-01: 35.00 + 2008-01-01: 42.80 2: - 2022-01-01: 42.80 + 2002-01-01: 35.00 + 2008-01-01: 42.80 DISABLED: 1: - 2022-01-01: 42.80 + 2002-01-01: 35.00 + 2008-01-01: 42.80 2: - 2022-01-01: 42.80 + 2002-01-01: 35.00 + 2008-01-01: 42.80 ASSISTED_LIVING: AGED: 1: - 2022-01-01: 454.00 + 2002-01-01: 454.00 2: - 2022-01-01: 340.50 + 2002-01-01: 340.50 BLIND: 1: - 2022-01-01: 454.00 + 2002-01-01: 454.00 2: - 2022-01-01: 340.50 + 2002-01-01: 340.50 DISABLED: 1: - 2022-01-01: 454.00 + 2002-01-01: 454.00 2: - 2022-01-01: 340.50 + 2002-01-01: 340.50 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ma/dta/ssp/ma_maximum_state_supplement.yaml b/policyengine_us/tests/policy/baseline/gov/states/ma/dta/ssp/ma_maximum_state_supplement.yaml index c174a95bdfa..5f5656b7e60 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ma/dta/ssp/ma_maximum_state_supplement.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ma/dta/ssp/ma_maximum_state_supplement.yaml @@ -1,14 +1,7 @@ -# File: policyengine_us/tests/policy/baseline/gov/ssa/state_supplement/maximum_state_supplement.yaml -# Explanation: -# - We explicitly mark each person as SSI-eligible by setting: -# is_ssi_eligible: true -# meets_ssi_resource_test: true -# is_ssi_aged_blind_disabled: true -# (and the appropriate is_blind / is_disabled / is_ssi_aged) -# - This ensures that maximum_state_supplement doesn't return 0 due to the 'defined_for' condition. -# - Use numeric underscores for readability (like 1_373, 2_767, etc.). +# Tests for ma_maximum_state_supplement across different living arrangements, +# categories, and historical periods. -- name: Single disabled, FULL_COST +- name: Case 1, single disabled, FULL_COST, 2022. period: 2022 absolute_error_margin: 1 input: @@ -17,10 +10,8 @@ age: 30 is_disabled: true is_tax_unit_spouse: false - # needed for maximum_state_supplement to not be 0: meets_ssi_resource_test: true is_ssi_eligible: true - # ensures the person is recognized as ABD (Aged/Blind/Disabled): is_ssi_aged_blind_disabled: true households: household: @@ -31,10 +22,9 @@ unit: members: [person_disabled] output: - # Suppose p["MA"]["FULL_COST"]["DISABLED"]["1"] = 114.39 monthly => ~1373 annual ma_maximum_state_supplement: 1_373 -- name: Couple both aged, FULL_COST +- name: Case 2, couple both aged, FULL_COST, 2022. period: 2022 absolute_error_margin: 1 input: @@ -62,11 +52,9 @@ unit: members: [spouse1, spouse2] output: - # Suppose p["MA"]["FULL_COST"]["AGED"]["2"] => 100.86 monthly each => ~1_210 annual each - # => final = [1_210, 1_210] ma_maximum_state_supplement: [1_210, 1_210] -- name: One aged, one blind, FULL_COST +- name: Case 3, one aged one blind, FULL_COST, 2022. period: 2022 absolute_error_margin: 1 input: @@ -94,8 +82,172 @@ unit: members: [person_1, person_2] output: - # p["MA"]["FULL_COST"]["AGED"]["2"] might be 100.86 monthly => ~1_210 each for the aged spouse - # p["MA"]["FULL_COST"]["BLIND"]["2"] might be 360.24 monthly => ~4_323 each for the blind spouse - # The code's logic is 'max_()' for each person, so spouse1 gets 1_210, spouse2 gets 4_323, - # but the code then sums them up and divides by 2 => ~2_766 each. We'll guess ~[2_766, 2_766]. ma_maximum_state_supplement: [2_766, 2_766] + +- name: Case 4, single blind, FULL_COST, 2005. + period: 2005 + absolute_error_margin: 1 + input: + people: + person_blind: + age: 35 + is_blind: true + is_tax_unit_spouse: false + meets_ssi_resource_test: true + is_ssi_eligible: true + is_ssi_aged_blind_disabled: true + households: + household: + members: [person_blind] + state_code: MA + ma_state_living_arrangement: FULL_COST + marital_units: + unit: + members: [person_blind] + output: + # 149.74 * 12 = 1796.88 + ma_maximum_state_supplement: 1_797 + +- name: Case 5, single aged, HOUSEHOLD_OF_ANOTHER, 2002. + period: 2002 + absolute_error_margin: 1 + input: + people: + person_aged: + age: 70 + is_tax_unit_spouse: false + meets_ssi_resource_test: true + is_ssi_eligible: true + is_ssi_aged_blind_disabled: true + is_ssi_aged: true + households: + household: + members: [person_aged] + state_code: MA + ma_state_living_arrangement: HOUSEHOLD_OF_ANOTHER + marital_units: + unit: + members: [person_aged] + output: + # 104.36 * 12 = 1252.32 + ma_maximum_state_supplement: 1_252 + +- name: Case 6, single disabled, REST_HOME, 2009. + period: 2009 + absolute_error_margin: 1 + input: + people: + person_disabled: + age: 45 + is_disabled: true + is_tax_unit_spouse: false + meets_ssi_resource_test: true + is_ssi_eligible: true + is_ssi_aged_blind_disabled: true + households: + household: + members: [person_disabled] + state_code: MA + ma_state_living_arrangement: REST_HOME + marital_units: + unit: + members: [person_disabled] + output: + # 293 * 12 = 3516 + ma_maximum_state_supplement: 3_516 + +- name: Case 7, single aged, MEDICAID_FACILITY, 2005. + period: 2005 + absolute_error_margin: 1 + input: + people: + person_aged: + age: 72 + is_tax_unit_spouse: false + meets_ssi_resource_test: true + is_ssi_eligible: true + is_ssi_aged_blind_disabled: true + is_ssi_aged: true + households: + household: + members: [person_aged] + state_code: MA + ma_state_living_arrangement: MEDICAID_FACILITY + marital_units: + unit: + members: [person_aged] + output: + # 35.00 * 12 = 420 + ma_maximum_state_supplement: 420 + +- name: Case 8, single aged, MEDICAID_FACILITY, 2009. + period: 2009 + absolute_error_margin: 1 + input: + people: + person_aged: + age: 72 + is_tax_unit_spouse: false + meets_ssi_resource_test: true + is_ssi_eligible: true + is_ssi_aged_blind_disabled: true + is_ssi_aged: true + households: + household: + members: [person_aged] + state_code: MA + ma_state_living_arrangement: MEDICAID_FACILITY + marital_units: + unit: + members: [person_aged] + output: + # 42.80 * 12 = 513.60 + ma_maximum_state_supplement: 514 + +- name: Case 9, single disabled, ASSISTED_LIVING, 2002. + period: 2002 + absolute_error_margin: 1 + input: + people: + person_disabled: + age: 50 + is_disabled: true + is_tax_unit_spouse: false + meets_ssi_resource_test: true + is_ssi_eligible: true + is_ssi_aged_blind_disabled: true + households: + household: + members: [person_disabled] + state_code: MA + ma_state_living_arrangement: ASSISTED_LIVING + marital_units: + unit: + members: [person_disabled] + output: + # 454 * 12 = 5448 + ma_maximum_state_supplement: 5_448 + +- name: Case 10, single blind, HOUSEHOLD_OF_ANOTHER, 2011. + period: 2011 + absolute_error_margin: 1 + input: + people: + person_blind: + age: 40 + is_blind: true + is_tax_unit_spouse: false + meets_ssi_resource_test: true + is_ssi_eligible: true + is_ssi_aged_blind_disabled: true + households: + household: + members: [person_blind] + state_code: MA + ma_state_living_arrangement: HOUSEHOLD_OF_ANOTHER + marital_units: + unit: + members: [person_blind] + output: + # 374.40 * 12 = 4492.80 + ma_maximum_state_supplement: 4_493