diff --git a/changelog.d/mt-ssp.added.md b/changelog.d/mt-ssp.added.md new file mode 100644 index 00000000000..6a5cd287c93 --- /dev/null +++ b/changelog.d/mt-ssp.added.md @@ -0,0 +1 @@ +Add Montana optional State Supplementary Payments with income phaseout, couple and deeming calculations, verified for 2026, and count them in Montana elderly homeowner or renter credit gross household income. diff --git a/policyengine_us/parameters/gov/household/household_state_benefits.yaml b/policyengine_us/parameters/gov/household/household_state_benefits.yaml index 67f5fdccda4..126bc59d2a6 100644 --- a/policyengine_us/parameters/gov/household/household_state_benefits.yaml +++ b/policyengine_us/parameters/gov/household/household_state_benefits.yaml @@ -17,6 +17,7 @@ values: - mo_child_care_subsidies # Montana benefits - mt_child_care_subsidies + - mt_ssp # Massachusetts benefits - ma_state_supplement # Maryland benefits @@ -118,6 +119,7 @@ values: - mo_child_care_subsidies # Montana benefits - mt_child_care_subsidies + - mt_ssp # Massachusetts benefits - ma_state_supplement # Maryland benefits @@ -228,6 +230,7 @@ values: - mo_child_care_subsidies # Montana benefits - mt_child_care_subsidies + - mt_ssp # Massachusetts benefits - ma_state_supplement # Maryland benefits @@ -339,6 +342,7 @@ values: - mo_child_care_subsidies # Montana benefits - mt_child_care_subsidies + - mt_ssp # Massachusetts benefits - ma_state_supplement # Maryland benefits diff --git a/policyengine_us/parameters/gov/hud/annual_income/sources/unearned.yaml b/policyengine_us/parameters/gov/hud/annual_income/sources/unearned.yaml index 9b22e1cc3a7..990211f61b5 100644 --- a/policyengine_us/parameters/gov/hud/annual_income/sources/unearned.yaml +++ b/policyengine_us/parameters/gov/hud/annual_income/sources/unearned.yaml @@ -24,6 +24,7 @@ values: - wy_ssp - nc_sa_countable_for_hud - nv_oss + - mt_ssp - general_assistance - total_unemployment_compensation - child_support_received diff --git a/policyengine_us/parameters/gov/states/mt/dphhs/ssp/amount/couple.yaml b/policyengine_us/parameters/gov/states/mt/dphhs/ssp/amount/couple.yaml new file mode 100644 index 00000000000..4bd06139102 --- /dev/null +++ b/policyengine_us/parameters/gov/states/mt/dphhs/ssp/amount/couple.yaml @@ -0,0 +1,36 @@ +description: Montana provides these amounts as the monthly couple payment under the State Supplementary Payment program. + +metadata: + unit: currency-USD + period: month + label: Montana SSP couple payment amount + breakdown: + - mt_ssp_payment_category + reference: + - title: POMS SI 01415.058 H.2.b, Montana couple payment levels (January 2026) + href: https://secure.ssa.gov/poms.nsf/lnx/0501415058#h2b + - title: POMS SI DEN01415.010 B.6, Montana supplementary payment categories + href: https://secure.ssa.gov/poms.nsf/lnx/0501415010DEN + - title: MCA 52-1-104(1)-(3) + href: https://mca.legmt.gov/bills/mca/title_0520/chapter_0010/part_0010/section_0040/0520-0010-0010-0040.html + +# POMS codes G, H and I. +ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME: + 2026-01-01: 193 + +# POMS code J. +FOSTER_CARE: + 2026-01-01: 110.5 + +# POMS code K. +TRANSITIONAL_LIVING: + 2026-01-01: 57 + +# MCA 52-1-104(3) bars payments to category B assisted living residents. +CATEGORY_B_ASSISTED_LIVING: + 2026-01-01: 0 + +# No certified placement, POMS SI 01415.058 H.1 code Z (not certified in codes +# G-K); also the default for people outside Montana. +NONE: + 2026-01-01: 0 diff --git a/policyengine_us/parameters/gov/states/mt/dphhs/ssp/amount/individual.yaml b/policyengine_us/parameters/gov/states/mt/dphhs/ssp/amount/individual.yaml new file mode 100644 index 00000000000..d57e777713d --- /dev/null +++ b/policyengine_us/parameters/gov/states/mt/dphhs/ssp/amount/individual.yaml @@ -0,0 +1,36 @@ +description: Montana provides these amounts as the monthly individual payment under the State Supplementary Payment program. + +metadata: + unit: currency-USD + period: month + label: Montana SSP individual payment amount + breakdown: + - mt_ssp_payment_category + reference: + - title: POMS SI 01415.058 H.2.a, Montana individual payment levels (January 2026) + href: https://secure.ssa.gov/poms.nsf/lnx/0501415058#h2a + - title: POMS SI DEN01415.010 B.6, Montana supplementary payment categories + href: https://secure.ssa.gov/poms.nsf/lnx/0501415010DEN + - title: MCA 52-1-104(1)-(3) + href: https://mca.legmt.gov/bills/mca/title_0520/chapter_0010/part_0010/section_0040/0520-0010-0010-0040.html + +# POMS codes G, H and I. +ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME: + 2026-01-01: 94 + +# POMS code J. +FOSTER_CARE: + 2026-01-01: 52.75 + +# POMS code K. +TRANSITIONAL_LIVING: + 2026-01-01: 26 + +# MCA 52-1-104(3) bars payments to category B assisted living residents. +CATEGORY_B_ASSISTED_LIVING: + 2026-01-01: 0 + +# No certified placement, POMS SI 01415.058 H.1 code Z (not certified in codes +# G-K); also the default for people outside Montana. +NONE: + 2026-01-01: 0 diff --git a/policyengine_us/parameters/gov/states/mt/tax/income/credits/elderly_homeowner_or_renter/gross_income_sources.yaml b/policyengine_us/parameters/gov/states/mt/tax/income/credits/elderly_homeowner_or_renter/gross_income_sources.yaml index 730271ed1c2..f28c95c8377 100644 --- a/policyengine_us/parameters/gov/states/mt/tax/income/credits/elderly_homeowner_or_renter/gross_income_sources.yaml +++ b/policyengine_us/parameters/gov/states/mt/tax/income/credits/elderly_homeowner_or_renter/gross_income_sources.yaml @@ -60,6 +60,9 @@ values: # so the household sum counts the unit's TANF once. LIEAP and SNAP are # not cash public assistance (2014-2017 Form 2EC instructions). - ssi + # § 15-30-2337(9)(a)(vi) – the Montana State Supplementary Payment is + # nontaxable cash public assistance paid with SSI; ssi excludes it. + - mt_ssp - tanf_person - workers_compensation # Guaranteed income pilot payments are outside federal AGI here, and @@ -97,6 +100,7 @@ values: - strike_benefits - general_assistance - ssi + - mt_ssp - tanf_person - workers_compensation - gi_cash_assistance @@ -119,6 +123,7 @@ values: - strike_benefits - general_assistance - ssi + - mt_ssp - tanf_person - workers_compensation - gi_cash_assistance diff --git a/policyengine_us/parameters/gov/usda/snap/income/sources/unearned.yaml b/policyengine_us/parameters/gov/usda/snap/income/sources/unearned.yaml index 3bd809dbd21..5b0d6cf61e0 100644 --- a/policyengine_us/parameters/gov/usda/snap/income/sources/unearned.yaml +++ b/policyengine_us/parameters/gov/usda/snap/income/sources/unearned.yaml @@ -45,6 +45,7 @@ values: - mi_ssp_person - mn_msa_person - mo_ssp + - mt_ssp - nc_sa - ne_aabd - nj_ssp diff --git a/policyengine_us/programs.yaml b/policyengine_us/programs.yaml index 8ea5f36e8e8..a75fa2e4543 100644 --- a/policyengine_us/programs.yaml +++ b/policyengine_us/programs.yaml @@ -1148,6 +1148,18 @@ programs: verified_years: '2026' notes: Models 2026 basic and enhanced facility and in-home payments, including lower contracted rates and first-month proration. Open/shut and discharge payments are not modeled. + - state: MT + status: partial + name: Montana SSP + full_name: Montana State Supplementary Payment + variable: mt_ssp + parameter_prefix: gov.states.mt.dphhs.ssp + verified_years: "2026" + notes: >- + Models 2026 Montana optional supplements for state-certified + personal care, group home, foster care and transitional living + placements. Mandatory grandfathered supplementation and out-of-state + custody placements are not modeled. - id: social_security name: Social Security diff --git a/policyengine_us/tests/policy/baseline/gov/states/mt/dphhs/ssp/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/mt/dphhs/ssp/integration.yaml new file mode 100644 index 00000000000..be285e59597 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/mt/dphhs/ssp/integration.yaml @@ -0,0 +1,214 @@ +- name: Case 1, joint payment. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + person2: + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + marital_units: + couple: + members: [person1, person2] + tax_units: + unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: MT + output: + mt_ssp: [96.5, 96.5] + +- name: Case 2, mixed certified settings share the joint payment. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + person2: + age: 65 + mt_ssp_payment_category: FOSTER_CARE + marital_units: + couple: + members: [person1, person2] + tax_units: + unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: MT + output: + mt_ssp: [75.88, 75.88] + +- name: Case 3, joint income reduces the supplement after federal SSI. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + social_security_retirement: 19_200 + person2: + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + marital_units: + couple: + members: [person1, person2] + tax_units: + unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: MT + output: + mt_ssp: [52, 52] + +- name: Case 4, ineligible spouse deeming capped at individual rate. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + person2: + age: 40 + mt_ssp_payment_category: NONE + social_security_retirement: 19_200 + marital_units: + couple: + members: [person1, person2] + tax_units: + unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: MT + output: + mt_ssp: [94, 0] + +- name: Case 5, ineligible spouse income reduces state payment. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + person2: + age: 40 + mt_ssp_payment_category: NONE + social_security_retirement: 20_400 + marital_units: + couple: + members: [person1, person2] + tax_units: + unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: MT + output: + mt_ssp: [4, 0] + +- name: Case 6, ineligible spouse combined cutoff. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + person2: + age: 40 + mt_ssp_payment_category: NONE + social_security_retirement: 20_448 + marital_units: + couple: + members: [person1, person2] + tax_units: + unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: MT + output: + mt_ssp: [0, 0] + +- name: Case 7, annual benefit in the benefit and income aggregates. + period: 2026 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + # Keeps projected SNAP out of spm_unit_benefits. + takes_up_snap_if_eligible: false + output: + # 94 x 12 = 1,128 Montana; 994 x 12 = 11,928 federal SSI. + mt_ssp: 1_128 + household_state_benefits: 1_128 + # 11,928 + 1,128 = 13,056. + spm_unit_benefits: 13_056 + snap_unearned_income: 13_056 + hud_unearned_income: 13_056 + +- name: Case 8, spouses in separate marital units after one enters a certified home. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + person2: + age: 65 + # From the month after they stop living together, SSA treats the spouses + # as individuals (20 CFR 416.1801(c); SI 00501.154). + marital_units: + person1_marital_unit: + members: [person1] + person2_marital_unit: + members: [person2] + tax_units: + unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: MT + output: + ssi_countable_income: [0, 0] + # Each spouse receives the 994 individual federal benefit rate. + ssi_amount_if_eligible: [994, 994] + ssi: [994, 994] + # person1: the 94 individual personal care, group or community home level. + # person2: no certified placement (POMS SI 01415.058 H.1 code Z), so 0. + mt_ssp: [94, 0] + +- name: Case 9, elderly homeowner or renter credit income counts the supplement. + period: 2026 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + output: + # 994 x 12 = 11,928 federal SSI. + ssi: 11_928 + # 94 x 12 = 1,128 Montana supplement. + mt_ssp: 1_128 + # MCA 15-30-2337(9)(a)(vi) counts cash public assistance and relief: + # 11,928 + 1,128 = 13,056. + mt_elderly_homeowner_or_renter_credit_gross_household_income: 13_056 diff --git a/policyengine_us/tests/policy/baseline/gov/states/mt/dphhs/ssp/mt_ssp.yaml b/policyengine_us/tests/policy/baseline/gov/states/mt/dphhs/ssp/mt_ssp.yaml new file mode 100644 index 00000000000..4b4635f8e8e --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/mt/dphhs/ssp/mt_ssp.yaml @@ -0,0 +1,191 @@ +# Sources: POMS SI 01415.058 H, SI DEN01415.010, and MCA 52-1-104. +- name: Case 1, certified personal care. + period: 2026-01 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + output: + mt_ssp: 94 + +- name: Case 2, certified foster care. + period: 2026-01 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 65 + mt_ssp_payment_category: FOSTER_CARE + output: + mt_ssp: 52.75 + +- name: Case 3, certified transitional services. + period: 2026-01 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 65 + mt_ssp_payment_category: TRANSITIONAL_LIVING + output: + mt_ssp: 26 + +- name: Case 4, no approved setting. + period: 2026-01 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 65 + mt_ssp_payment_category: NONE + output: + mt_ssp: 0 + +- name: Case 5, state payment continues after federal SSI is exhausted. + period: 2026-01 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + social_security_retirement: 12_768 + output: + ssi: 0 + mt_ssp: 44 + +- name: Case 6, income at combined standard. + period: 2026-01 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + social_security_retirement: 13_296 + output: + mt_ssp: 0 + +- name: Case 7, positive payment below one dollar receives the federal minimum. + period: 2026-01 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + # 13,055.88 / 12 = 1,087.99 countable a month, so federal SSI is 0 and + # the supplement is 94 - (1,087.99 - 994) = 0.01, raised to $1. + ssi_countable_income: 13_055.88 + output: + ssi: 0 + mt_ssp: 1 + +- name: Case 8, excess resources. + period: 2026-01 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + ssi_countable_resources: 2_001 + output: + mt_ssp: 0 + +- name: Case 9, no aged blind or disabled category. + period: 2026-01 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 30 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + output: + mt_ssp: 0 + +- name: Case 10, excluded category B assisted living. + period: 2026-01 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 65 + mt_ssp_payment_category: CATEGORY_B_ASSISTED_LIVING + output: + mt_ssp: 0 + +- name: Case 11, disabled worker above the SGA limit receives no supplement. + period: 2026-01 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 40 + meets_ssi_disability_criteria: true + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + # Full-time work at the 2026 Montana minimum wage of $10.85 (Montana + # DLI): 10.85 x 40 hours x 52 weeks = 22,568 a year, 1,880.67 a month, + # above the 1,690 non-blind SGA limit, so the model treats this person as + # not disabled for SSI. A recipient who keeps SSI at this level under + # section 1619(a) is excluded by SI DEN01415.010 B.1, so neither path pays. + employment_income: 22_568 + output: + ssi: 0 + mt_ssp: 0 + +- name: Case 12, certified resident in a Medicaid facility. + period: 2026-01 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + ssi_lives_in_medical_treatment_facility: true + ssi_medicaid_pays_majority_of_care: true + output: + # Federal code D pays the 30 reduced benefit. POMS SI 01415.058 H.2 pairs + # code D only with state code Z, so the certified rate of 94 is not paid. + ssi_federal_living_arrangement: MEDICAL_TREATMENT_FACILITY + ssi: 30 + mt_ssp: 0 + +- name: Case 13, Wyoming resident. + period: 2026-01 + absolute_error_margin: 0.01 + input: + state_code: WY + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + output: + mt_ssp: 0 + +- name: Case 14, SSI application takeup required. + period: 2026-01 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + takes_up_ssi_if_eligible: false + output: + mt_ssp: 0 + +- name: Case 15, disabled adult in certified personal care. + period: 2026-01 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 40 + meets_ssi_disability_criteria: true + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + output: + # No income: the full 994 federal benefit rate plus the 94 individual + # personal care, group or community home level. + ssi: 994 + mt_ssp: 94 + +- name: Case 16, 2027 payment after the federal benefit rate increase. + period: 2027-01 + absolute_error_margin: 0.01 + input: + state_code: MT + age: 65 + mt_ssp_payment_category: ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME + output: + # The 2027 COLA raises the federal benefit rate to 1,029. The Montana + # level is the January 2026 value of 94 carried forward; no 2027 + # Montana schedule has been verified. + ssi: 1_029 + mt_ssp: 94 diff --git a/policyengine_us/variables/gov/states/mt/dphhs/ssp/mt_ssp.py b/policyengine_us/variables/gov/states/mt/dphhs/ssp/mt_ssp.py new file mode 100644 index 00000000000..00480452bac --- /dev/null +++ b/policyengine_us/variables/gov/states/mt/dphhs/ssp/mt_ssp.py @@ -0,0 +1,59 @@ +from policyengine_us.model_api import * +from policyengine_us.variables.gov.ssa.ssi._ssi_state_supplement import ( + ssi_state_supplement, +) + + +class mt_ssp(Variable): + value_type = float + entity = Person + label = "Montana State Supplementary Payment" + unit = USD + definition_period = MONTH + defined_for = StateCode.MT + reference = ( + "https://mca.legmt.gov/bills/mca/title_0520/chapter_0010/part_0010/section_0040/0520-0010-0010-0040.html", + "https://secure.ssa.gov/poms.nsf/lnx/0501415058#h", + "https://secure.ssa.gov/poms.nsf/lnx/0501415010DEN", + "https://secure.ssa.gov/poms.nsf/lnx/0501320430#d", + "https://www.ssa.gov/OP_Home/cfr20/416/416-2025.htm", + ) + + def formula(person, period, parameters): + p = parameters(period).gov.states.mt.dphhs.ssp.amount + category = person("mt_ssp_payment_category", period) + # POMS SI 01415.058 H.2 pairs state codes G-K only with federal code A; + # federal code D (a Title XIX facility) carries state code Z, so a + # Medicaid-facility resident receives no supplement. + federal_la = person("ssi_federal_living_arrangement", period) + in_medicaid_facility = ( + federal_la == federal_la.possible_values.MEDICAL_TREATMENT_FACILITY + ) + individual = where(in_medicaid_facility, 0, p.individual[category]) + couple = where(in_medicaid_facility, 0, p.couple[category]) + # NOTE: SI DEN01415.010 B.3 lets Montana pay a recipient it places + # outside Montana while keeping legal custody. PolicyEngine assigns + # state supplements by the household's state, and the host state's + # supplement would also apply, so this exception is not modeled. + # NOTE: SI DEN01415.010 B.1 excludes section 1619(a) recipients and + # section 1619 eligibles institutionalized throughout a month in a + # medical facility. is_ssi_disabled already makes a disabled person + # whose earnings exceed SGA SSI-ineligible, so the 1619(a) group + # receives nothing here; a Title XIX facility resident falls under the + # code D rule above, and other medical facilities are not modeled. + # NOTE: The shared helper averages the spouses' couple rates, so a + # joint couple with one spouse outside a certified setting splits half + # the couple rate equally. SSA treats spouses who stop living together + # as individuals from the month after the change (20 CFR 416.1801(c); + # SI 00501.154), so such couples need separate marital units. + # NOTE: The federal couple computation reads only aged, blind or + # disabled status, so a spouse who declines SSI or is otherwise + # ineligible still makes the claim joint (issue 10138). + # NOTE: With an ineligible spouse, the helper pays the lesser of the + # individual-rate amount on the claimant's own income and the + # couple-rate amount on the deemed income; every Montana couple rate + # exceeds the individual rate (SI 01320.430 D.3.b). + # NOTE: The microdata do not record Montana's placement certification, + # so this payment appears only in household calculations that set + # mt_ssp_payment_category. + return ssi_state_supplement(person, period, parameters, individual, couple) diff --git a/policyengine_us/variables/gov/states/mt/dphhs/ssp/mt_ssp_payment_category.py b/policyengine_us/variables/gov/states/mt/dphhs/ssp/mt_ssp_payment_category.py new file mode 100644 index 00000000000..8cdaa1a9008 --- /dev/null +++ b/policyengine_us/variables/gov/states/mt/dphhs/ssp/mt_ssp_payment_category.py @@ -0,0 +1,39 @@ +from policyengine_us.model_api import * + + +class MTSSPPaymentCategory(Enum): + ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME = ( + "State-certified personal care, group or community home" + ) + FOSTER_CARE = "State-certified child or adult foster care" + TRANSITIONAL_LIVING = "State-certified transitional living services" + CATEGORY_B_ASSISTED_LIVING = "Excluded category B assisted living facility" + NONE = "No state-certified supplementary payment placement" + + +class mt_ssp_payment_category(Variable): + value_type = Enum + entity = Person + label = "Montana SSP state-certified payment category" + definition_period = MONTH + possible_values = MTSSPPaymentCategory + default_value = MTSSPPaymentCategory.NONE + reference = ( + "https://secure.ssa.gov/poms.nsf/lnx/0501415058#h1", + "https://secure.ssa.gov/poms.nsf/lnx/0501415010DEN", + "https://mca.legmt.gov/bills/mca/title_0520/chapter_0010/part_0010/section_0040/0520-0010-0010-0040.html", + "https://secure.ssa.gov/poms.nsf/lnx/0502005030#g", + "https://secure.ssa.gov/poms.nsf/lnx/0500501154", + ) + documentation = """ + A positive category requires Montana's placement certification, not just + residence in a licensed facility. Category B assisted living is excluded + (MCA 52-1-104(3)). Certified residents are in federal living arrangement A + (SI DEN01415.010 B.6.b), so leave the household-of-another inputs unset for + them; a resident of a Medicaid facility receives no supplement. A joint + couple averages the two spouses' couple rates (SI 02005.030 G.1). Put + spouses who no longer live in the same household, such as a certified-home + resident whose spouse stays at home, in separate marital units from the + month after they stop living together. Keep one marital unit for the month + of entry. + """ diff --git a/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py b/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py index dddb58ad8ae..445e85a85e0 100644 --- a/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py +++ b/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py @@ -26,6 +26,7 @@ def formula(spm_unit, period, parameters): "pa_ssp", # Pennsylvania benefits "wy_ssp", # Wyoming benefits "nc_sa", # North Carolina benefits + "mt_ssp", # Montana benefits "ks_sspp", # Kansas benefits "hi_oss", "la_oss", # Louisiana benefits