Skip to content

Add Montana state supplementation for 2026 - #8233

Merged
hua7450 merged 9 commits into
PolicyEngine:mainfrom
hua7450:mt-ssp
Oct 20, 2026
Merged

hua7450 merged 9 commits into
PolicyEngine:mainfrom
hua7450:mt-ssp

Conversation

@hua7450

@hua7450 hua7450 commented May 5, 2026 •

Copy link
Copy Markdown
Collaborator

What and why

Montana's State Supplementary Payment (SSP) was missing from PolicyEngine-US. Add mt_ssp for 2026 under MCA 52-1-104, POMS SI 01415.058 H and SI DEN01415.010. It pays Montana's optional supplement to SSI recipients in state-certified personal care, group or community homes, foster care and transitional living.

Closes #8232.

  • Who administers and funds it: Montana pays it "from state funds" (MCA 52-1-104(1)), and "SSA administers the State's optional supplementary payments" (SI DEN01415.010 B.1). The payment therefore uses the shared SSI state supplement helper, with SSA rounding and the $1 minimum (20 CFR 416.2020(c)).

  • 2026 levels (SI 01415.058 H.2.a and H.2.b, "effective January 1, 2026"). The levels are the same for aged, blind and disabled recipients:

    State code Certified placement Individual Couple
    G, H, I Personal care; group or community home $94.00 $193.00
    J Child or adult foster care $52.75 $110.50
    K Transitional living $26.00 $57.00
    Z Not certified in G–K, or in a Title XIX facility (federal code D) $0 $0
  • Payment: the level less countable income above the federal benefit rate (FBR) (20 CFR 416.2025(b)). The supplement continues after federal SSI is exhausted. For example, $1,064 of monthly Social Security leaves $44: countable income is 1,044, which is 50 above the 994 FBR. The supplement ends when countable income reaches $1,088 for an individual or $1,684 for a couple.

  • Who qualifies:

    Requirement Source How modeled
    Meets the SSI criteria other than income, and countable income is below the FBR plus the level MCA 52-1-104(1); DEN B.6.c(2) ("SSI criteria apply to the State's supplementation payments"); 20 CFR 416.2025(b)(4) The helper's is_ssi_eligible and takes_up_ssi_if_eligible gate plus the income computation. People with an SSP but no federal SSI (ssi = 0) are paid.
    State-certified placement in code G–K SI 01415.058 H.1; DEN B.6.c(1) mt_ssp_payment_category input
    Not in a Title XIX facility SI 01415.058 H.2 (federal code D carries only code Z) When ssi_federal_living_arrangement is MEDICAL_TREATMENT_FACILITY, both levels are set to 0
    Not a resident of a category B assisted living facility MCA 52-1-104(3) CATEGORY_B_ASSISTED_LIVING pays $0
    No supplement to section 1619(a) benefits DEN B.1 is_ssi_disabled already makes a disabled person whose earnings exceed SGA SSI-ineligible (code NOTE)
    Lives in Montana State program defined_for = StateCode.MT
  • Couples:

    • A joint couple gets half the couple level each. Spouses with different codes average their two couple levels (SI 02005.030 G.1), so personal care plus foster care pays $75.88 each.
    • With an ineligible spouse, the payment is the lesser of two computations: the individual one, and the deemed one at the couple level (20 CFR 416.2025(b)(3); SI 01320.430 D.3.b).
    • Spouses who stop living together become individuals from the month after (SI 00501.154; SI 02005.030 G.2). An example is a certified-home resident whose spouse stays at home. Users enter such spouses in separate marital units, as the mt_ssp_payment_category documentation says. Otherwise, a joint couple with one uncertified spouse splits half the couple level, $48.25 each (code NOTE).
  • COLA: none. MCA 52-1-104 sets no indexing, and the 2026 levels equal the January 1989–1995 schedule in SI DEN01415.010. A 2027 case pairs the 2027 FBR ($1,029) with the 2026 level carried forward. That 2027 level is unverified.

  • Inputs: one new input, mt_ssp_payment_category (Person, monthly). It defaults to no certified placement.

    • Certified residents are in federal living arrangement A (DEN B.6.b), so the documentation tells users to leave the household-of-another inputs unset.
    • Entering a category for one person leaves the rest of the household unchanged; integration Case 8 gives [94, 0].

The SSP is added to household_state_benefits (all four year blocks, under the Montana benefits comment), spm_unit_benefits, and SNAP and HUD unearned income.

It also counts in gross household income for Montana's elderly homeowner or renter credit, as "cash public assistance and relief" (MCA 15-30-2337(9)(a)(vi)). The entry is in all three year blocks of gross_income_sources.yaml. ssi excludes the SSP, so nothing is counted twice. For a certified resident with no other income, this income rises from $11,928 to $13,056.

Files:

policyengine_us/parameters/gov/states/mt/dphhs/ssp/amount/       individual.yaml, couple.yaml
policyengine_us/variables/gov/states/mt/dphhs/ssp/               mt_ssp.py, mt_ssp_payment_category.py
policyengine_us/tests/policy/baseline/gov/states/mt/dphhs/ssp/   mt_ssp.yaml, integration.yaml

Shared files:

  • household_state_benefits.yaml gains one line in each of its four blocks.
  • SNAP and HUD income/sources/unearned.yaml, spm_unit_benefits.py and programs.yaml each gain one Montana entry.
  • The elderly credit's gross_income_sources.yaml gains one line in each of its three blocks.
  • The shared state supplement helper and minimum_payment.yaml are unchanged.

References

Additional section and page citations are included alongside the parameters and formulas.

Coverage limits

The registry marks Montana as partial, verified for 2026. The levels were checked against SI 01415.058 H.2 (TN 95) in October 2026.

Not modeled:

  • mandatory supplementation for grandfathered recipients (DEN A);
  • recipients Montana places outside the state while keeping legal custody (DEN B.3). PolicyEngine assigns state supplements by the household's state, and the host state's supplement would also apply (code NOTE);
  • section 1619 eligibles institutionalized throughout a month in a medical facility that Medicaid doesn't fund (DEN B.1). Title XIX facility residents already get $0 through the code D rule;
  • waiver code Y (H.1). For a recipient who waives the supplement, users leave the category unset.

A spouse who declines SSI still makes the federal claim joint. #10138 tracks that federal limitation.

The microdata don't record Montana's placement certification, so the payment appears only in household calculations that set mt_ssp_payment_category (code NOTE).

Earlier years use parameter backfilling and are unverified historical estimates; no historical coverage is claimed.

Related:

Test plan

  • 25 Montana SSP YAML cases (16 in mt_ssp.yaml, 9 in integration.yaml) pass locally after merging main. They cover:
    • each certified level, no certification and the excluded category B;
    • the reduction after federal SSI is exhausted, the combined cutoff and the $1 minimum;
    • excess resources, a person who isn't aged, blind or disabled, a disabled adult, a disabled worker above SGA, a Title XIX facility resident, a Wyoming resident and declined SSI;
    • joint and mixed-code couples, joint income, ineligible-spouse deeming and spouses in separate marital units;
    • the 2027 FBR with the carried-forward level;
    • the annual household, SPM, SNAP and HUD totals, and the elderly credit's gross household income.
  • Local probes:
    • In one simulation with MT, WY and MA residents, each state's resident gets only that state's supplement.
    • A category entered for one person leaves the other person at $0.
  • The aggregate list integrity and program registry tests pass locally (692 passed, 10 skipped).
  • ruff format, ruff check and git diff --check.
  • Changelog fragment in changelog.d/.
  • CI passes. This includes the existing elderly credit tests, which weren't run locally.

axiom: MCA 52-1-104, 15-30-2337(9)(a)(vi); POMS SI 01415.058 H; POMS SI DEN01415.010 B; POMS SI 01320.430 D; 20 CFR 416.2025 TheAxiomFoundation/rulespec-us#1835 queued

hua7450 and others added 3 commits May 5, 2026 11:38
Closes PolicyEngine#8232

Implements Montana's Optional State Supplementation under ARM 37.43.101–104
and MCA 52-1-104. Covers aged/blind/disabled SSI recipients in qualifying
living arrangements (personal care / group home / community home, foster
care, transitional living). Rates frozen since 1989.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented May 5, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.68%. Comparing base (623a65c) to head (2e77e19).
⚠️ Report is 336 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff             @@
##              main    #8233      +/-   ##
===========================================
- Coverage   100.00%   93.68%   -6.32%     
===========================================
  Files           12        6       -6     
  Lines          173       95      -78     
  Branches         4        2       -2     
===========================================
- Hits           173       89      -84     
- Misses           0        6       +6     
Flag Coverage Δ
unittests 93.68% <100.00%> (-6.32%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@hua7450 hua7450 changed the title Implement Montana State Supplementary Payment (SSP) Add Montana state supplementation for 2026 Oct 12, 2026
hua7450 and others added 3 commits October 20, 2026 00:29
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Gate mt_ssp to Montana, pay nothing in a Medicaid facility (federal code D carries state code Z), drop the custody and section 1619 inputs in favor of documented limits, count the SSP in the elderly homeowner or renter credit's gross household income, fix shared-list placement, descriptions and references, and add couple, disabled, 2027 and SPM benefit cases.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@DTrim99

DTrim99 commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator

PR Review: Add Montana state supplementation for 2026

PR #8233 (author: hua7450, head 79577c0331, merge-base f19877374a). 13 files (+600/−0), 9 commits.

Summary

The PR adds Montana's optional State Supplementary Payment (SSP):

  • Input. mt_ssp_payment_category (Person, MONTH, Enum, no defined_for) records the state-certified placement:
    • ASSISTED_LIVING_OR_GROUP_OR_COMMUNITY_HOME for POMS codes G, H and I;
    • FOSTER_CARE for J;
    • TRANSITIONAL_LIVING for K;
    • CATEGORY_B_ASSISTED_LIVING, which pays $0;
    • NONE (code Z), the default.
  • Payment. mt_ssp (Person, MONTH, defined_for = StateCode.MT) reads the individual and couple levels by category. It zeroes both for federal living arrangement D (a Title XIX facility) and passes them to the shared SSA-administered helper ssi_state_supplement. The helper applies the 20 CFR 416.2025(b) income reduction, the couple and deeming computations, SSA rounding and the $1 minimum.
  • Aggregates.
    • mt_ssp goes into household_state_benefits (all four year blocks), spm_unit_benefits, SNAP unearned income and HUD unearned income.
    • It also goes into the gross household income of Montana's elderly homeowner or renter credit (MCA 15-30-2337(9)(a)(vi)), in all three year blocks.
  • Registry and tests. There is a programs.yaml entry (partial, verified_years: "2026") and 25 YAML cases.

The 2026 policy content is right:

  • Amounts and dates. All six amounts match POMS SI 01415.058 H.2 ("effective January 1, 2026"), as do the code-to-category mapping and the code D rule.
  • Statute and administration. MCA 52-1-104 supports the authority and the category B exclusion. SSA administers the payment (SI DEN01415.010 B.1), so the shared helper with SSA rounding and the $1 minimum (20 CFR 416.2020(c)) is the right one.
  • Couples and deeming. The couple, mixed-code and ineligible-spouse computations follow 20 CFR 416.2025(b), SI 02005.030 G and SI 01320.430 D.
  • Axiom. The line is valid: rulespec-us#1835 is open, labelled pe-parity, dispatch-ready and consistent with the head.
  • Batch checks.
    • The New Hampshire bug pattern can't occur: the key variable isn't state-gated, and its default is a valid key.
    • The Oklahoma wage lesson doesn't apply, because Montana uses SSI's own countable income.
    • In microsimulation the payment is $0, a small understatement (about $0.5 million a year) that is documented.
    • I checked 21 expectations by hand.
  • CI and branch. All 27 checks pass on the head, and the branch merges cleanly with main.

No critical or should-fix items. Four suggestions:

  • Pay codes G–K only with federal code A, as the code's own comment and H.2 say. Today, federal codes B and C still get the level.
  • Claim the earlier years. The backfilled 2026 levels are the right ones in every POMS edition from January 2016 on.
  • Pin the joint couple with one uncertified spouse that the NOTE describes.
  • Polish.

Critical (must fix)

None.

Should address

None.

Suggestions

1. Pay codes G–K only with federal code A, as the comment says. Federal codes B and C still get the certified level.

  • Where: mt_ssp.py:25-33.
    • The comment says "POMS SI 01415.058 H.2 pairs state codes G-K only with federal code A".
    • The code zeroes the levels only for MEDICAL_TREATMENT_FACILITY (code D).
  • The law. POMS SI 01415.058 H.2 (TN 95) lists G, H, I, J, K and Z under federal code A, but only Z under federal codes B, C and D:
    • individuals: "B Z All 662.67 0.00 662.67", "C Z All 994.00 0.00 994.00" and "D Z All 30.00 0.00 30.00";
    • couples: "B Z All 994.00 0.00 994.00".
  • The code path. Take a person with category G and the three household-of-another inputs set:
    • ssi_federal_living_arrangement is B, so federal SSI is 662.67;
    • individual stays 94, and the helper pays 94.
    • H.2 pays 662.67 in total. A code-C child with category J gets 52.75 in the same way.
    • Update Massachusetts tax rules for 2022 #1835's "Interpretations" section records the same gap ("a category set with household-of-another inputs is still paid. Encode Z").
  • Why it's a suggestion.
    • Under SI DEN01415.010 B.6.b, "All residents of licensed adult foster care homes or personal care facilities are in non institutional care facilities and LA A applies". So a certified placement with code B or C is a contradictory input.
    • The mt_ssp_payment_category documentation tells users to leave the household-of-another inputs unset.
    • Codes B and C arise in PolicyEngine only from explicit inputs: the three household-of-another flags, or parent links and own_children_in_household (an input) for code C.
    • This matches Add Utah state supplementation for 2026 #10170 Suggestion 2(b), where inconsistent living-arrangement inputs were treated as a suggestion.
  • Fix.
    • Replace in_medicaid_facility with in_code_a = federal_la == federal_la.possible_values.OWN_HOUSEHOLD, and use where(in_code_a, p.individual[category], 0) (same for couple).
    • Keep the comment, which then matches the code.
    • Add a case with category G and the three code-B inputs (SSI 662.67, mt_ssp 0).
    • The PolicyEngine side then matches Update Massachusetts tax rules for 2022 #1835's "Encode Z", and the interpretation can be dropped from the issue.

2. Claim the earlier years. The backfilled levels are the right ones from 2015 on.

  • Where. The individual.yaml and couple.yaml values all start on 2026-01-01. The PR body says "Earlier years use parameter backfilling and are unverified historical estimates", and programs.yaml:1157 claims only 2026.

  • The law. Every earlier edition of the federally administered supplement section gives Montana the same six levels: G, H and I $94 / $193, J $52.75 / $110.50, and K $26 / $57.

    POMS section Edition Individual FBR Montana levels
    SI 01415.048 January 2016 $733 unchanged
    SI 01415.049 – .051 January 2017–2019 $735, $750, $771 unchanged
    SI 01415.052 – .054 January 2020–2022 $783, $794, $841 unchanged
    SI 01415.055 – .057 January 2023–2025 $914, $943, $967 unchanged
    • SI DEN01415.010's "SCHEDULE OF PAYMENTS ... Effective January 1, 1989 through 1995" has the same amounts. The PR body already notes this.
    • One trap. Two editions misstate the year in the sentence above the tables. The January 2016 edition says "effective January 1, 2015", and the January 2025 edition says "January 1, 2024". The titles and FBRs fix the years. (The 2016 FBR of $733 was also the 2015 FBR, so 2015 is covered too.)
  • What this means. Backfilling already gives the right Montana levels for 2015–2025. The 2023–2025 household_state_benefits blocks and the 2009/2017/2023 elderly credit blocks that now carry mt_ssp are therefore right as well. That 37-year record also supports Case 16's carry-forward into 2027.

  • Why it's a suggestion. There is no wrong value in any year, and the PR claims only 2026.

  • Fix.

    • Date the values from 2015-01-01, and add one reference per POMS edition (at least SI 01415.048). The DEN schedule shows the same levels for 1989–1995, but I found no source for 1996–2014, so don't date the values earlier than 2015 on that basis.
    • Set verified_years: "2015-2026".
    • Close Montana SSI 2017, 2018, 2019 #8812, which lists exactly the 2017–2019 POMS pages.

3. Pin the joint couple with one uncertified spouse.

  • Where. The NOTE at mt_ssp.py:44-48, the PR body ("a joint couple with one uncertified spouse splits half the couple level, $48.25 each") and Update Massachusetts tax rules for 2022 #1835's interpretations all describe this result. No case pins it.
  • The law. SI 02005.030 G.1: "For multi-category or multi-living arrangement couples living together, average their individual OSS payment". With G and Z, that gives (96.50 + 0) / 2 = 48.25 each, which is the helper's result. So the reading is right for a couple who really live together.
  • Also unpinned: the joint-couple cutoff. Integration Case 3 tests only a partial reduction. Combined countable income of 1,684 (1,491 + 193) should give 0 under 416.2025(b)(4).
  • Fix:
    • Add an integration case for a joint couple, one G and one NONE, expecting [48.25, 48.25].
    • Add a joint-couple case at combined countable income of 1,684 (for example, Social Security of 20,448 a year for one spouse), expecting [0, 0].
    • List both in Update Massachusetts tax rules for 2022 #1835's companion tests.

4. Polish.

  • programs.yaml notes (lines 1158-1162). Say that mt_ssp is $0 in microsimulation, because certification is an input only (see the microsimulation check under Verified). The code NOTE and the PR body already say so; this matches Add Ohio state supplementation for 2026 #10164 Suggestion 4.
  • Update Massachusetts tax rules for 2022 #1835.
    • It still calls the PR "(draft)". The PR is now ready for review.
    • Refresh it for whichever suggestions land: codes B and C (Suggestion 1), the earlier years (Suggestion 2) and the new cases (Suggestion 3).

Verified correct

  • Batch cross-cutting checks:

    # Check Verdict
    1 Axiom line Valid: TheAxiomFoundation/rulespec-us#1835 queued; see the Axiom line assessment
    2 House-template descriptions Both follow it, in the same breakdown wording as pa/dhs/ssp/amount/individual.yaml: "Montana provides these amounts as the monthly individual payment under the State Supplementary Payment program." The couple file reads the same with "couple"
    3 Backdating No wrong values: the backfilled 2026 levels match every POMS edition from January 2016 to January 2026, and the 1989–1995 DEN schedule. Claiming those years is Suggestion 2
    4 tx_rebate.py copy Omits mt_ssp, as it omits wy_ssp, pa_ssp and nc_sa. The PR body defers this to Keep one spm_unit_benefits list so reforms that add a benefit stop dropping baseline programs #10226 (open), as the siblings did; accepted
    5 Aggregate wiring Complete, with no double count (details below)
    6 Income attribution The single, joint, mixed-code, joint-income, ineligible-spouse (three income points) and separated-spouse readings are documented and pinned: mt_ssp.yaml Cases 1–7 and integration Cases 1–6 and 8. One documented reading is unpinned (Suggestion 3)
    7 Sibling conflicts Branch note only (see Branch status)
    8 CI All green on the head
    9 State law Verified (below)
  • The statute. MCA 52-1-104 (MCA 2025):

    • "(1) Except as provided in this section, the department may provide supplementary payments from state funds to recipients of supplemental security income for the aged, blind, or disabled under Title XVI of the Social Security Act".
    • "(2) The department may establish standards of assistance and apply them uniformly throughout the state and may determine individuals eligible for and the amount of supplementary payments under federal and state guidelines."
    • "(3) The department may not provide supplementary payments under subsection (1) for persons who are residents of category B assisted living facilities licensed pursuant to 50-5-227."
      • MCA 50-5-227(3)(b) defines that category: "category B facility providing skilled nursing care or other skilled services to five or fewer residents".
      • Both sections' histories cite Ch. 54, L. 2003. Naming code G ASSISTED_LIVING_... alongside the separate category B value is consistent with the statute's terms.
    • The statute sets no amounts or indexing, so the POMS schedule governs, as the PR does.
  • Amounts and the effective date. POMS SI 01415.058 (TN 95, "Effective Dates: 08/28/2026 - Present"):

    • A lists Montana among the federally administered states.
    • H.1: "G State-certified personal care.", H and I are the group and community homes, "J State-certified residence for child and adult foster care.", "K State-certified transitional living for developmentally disabled.", Y is the waiver code, and "Z No supplement cases Includes all recipients and couples not certified in State codes G, H, I, J, or K."
    • H.2, "effective January 1, 2026":
      • recipients: "A G All 994.00 94.00 1088.00" (H and I the same), J 52.75 and K 26.00;
      • couples: "A G All 1491.00 193.00 1684.00", J 110.50 and K 57.00;
      • category "All" throughout, so aged, blind and disabled recipients get the same amount.
    • All six values match individual.yaml and couple.yaml. The #h, #h1, #h2a and #h2b anchors exist on the page.
  • Administration and eligibility. SI DEN01415.010:

    • B.1: "SSA administers the State's optional supplementary payments. Montana does not supplement 1619(a) benefits. Also, Montana does not supplement 1619 eligible individuals who are institutionalized throughout a month in a public medical or psychiatric facility or in any medical facility, public or private."
    • B.6.c(1): "The State approves and licenses facilities. ... No optional supplementation input should be made without prior approval". That supports a certification input, not facility residence alone.
    • B.6.c(2): "SSI criteria apply to the State's supplementation payments". That supports is_ssi_eligible (non-income criteria) and SSI countable income.
    • B.6.c(3): "An application for SSI is also an application for State optional supplementation". That supports the takes_up_ssi_if_eligible gate (Case 14).
    • Not modeled, and documented in the code NOTEs and PR body: the 1619 facility case, the B.3 out-of-state custody and code Y.
  • The income reduction. 20 CFR 416.2025(b):

    • (2): "the full amount of the State supplementary payment" applies when countable income is at or below the FBR;
    • (3): "If countable income exceeds the amount of the Federal benefit rate, the State supplementary benefit will be reduced by the amount of such excess", using for the deeming case "the higher of the State supplementary rates for an eligible couple or an eligible individual", capped at the no-deeming amount;
    • (4): "No State supplementary payment will be made where countable income is equal to or exceeds the sum of the Federal benefit rate and the State supplementary payment rate."
    • 20 CFR 416.2020(c): "optional supplementary payment amounts of less than $1 will be raised to a dollar."
  • Deeming. SI 01320.430 D.1–D.3:

    • D.1 is the individual computation on the claimant's own income.
    • D.2.c–d is the deeming computation: the "full OSS for a couple" for the eligible individual's variation, less excess income over the couple FBR.
    • D.3.b: "The State supplement amount is the lesser of" the two.
    • The helper's min_(own_payment, deemed_payment) with the claimant's own couple level implements this.
    • Section A explains integration Case 5. The October 1988 change made eligible "Cases where the combined income of the couple exceeds the sum of the FBR for an eligible couple plus the OSS for an individual, but is less than the sum of the eligible couple FBR and the OSS payable to an eligible couple". Case 5's combined countable income of 1,680 lies between 1,585 and 1,684.
  • Couples. SI 02005.030:

    • G.1: "We compute OSS eligibility and payment amounts jointly, and we divide the payment due the couple by 2", with averaging for mixed arrangements.
    • G.2: separated spouses use "the State's level for individuals".
    • A.2: "The first month after the month the eligible couple separates, each member becomes an eligible individual". That supports the documentation's "Keep one marital unit for the month of entry".
  • Elderly credit income. MCA 15-30-2337:

    • (4): "'Gross household income' means all income received by all individuals of a household".
    • (9)(a): "federal adjusted gross income ... plus all nontaxable income, including but not limited to: ... (vi) cash public assistance and relief".
    • The SSP is need-based public assistance outside federal AGI, and ssi is the federal payment only. So listing mt_ssp beside ssi counts it once.
  • The New Hampshire bug pattern doesn't occur here.

    • The only enum used as a breakdown key, mt_ssp_payment_category, has no defined_for. Its default NONE is a key in both parameter files, so no person anywhere can look up a missing key.
    • mt_ssp is a gated float, and ssi_federal_living_arrangement is compared with ==.
    • mt_ssp.yaml Case 13 (a Wyoming resident with a category set) gives 0.
    • CI's Microsimulation job and both Rest (Python) jobs pass, including test_future_poverty_in_all_states, which calculates spm_unit_benefits for every state.
  • The Oklahoma lesson (Add Oklahoma state supplementation for 2026 #10165) doesn't apply.

  • No Medicaid dependency. Unlike Indiana, Kansas, Utah and Ohio, mt_ssp doesn't read medicaid_enrolled_for_ssi_state_supplement. So including it in HUD income creates no cycle.

  • Microsimulation (the Utah check). The Utah over-count can't occur; the bias runs the other way.

    • Direction: downward. mt_ssp_payment_category defaults to NONE and no dataset sets it, so mt_ssp is $0 in microsimulation.
    • Magnitude: small. SSA's Annual Statistical Supplement, 2026, Table 7.B reports 489 Montana recipients of federally administered supplementation in December 2025, averaging $84.29 a month, and about $484,000 paid in 2025. SSA's site blocks automated fetches, so I confirmed these through SSA-domain search results. The model therefore understates by about $0.5 million a year.
    • Documentation. The code NOTE (mt_ssp.py:56-58) and the PR body say so; the programs.yaml notes don't (Suggestion 4).
    • Precedent. This is the same pattern as Ohio's certification input (Add Ohio state supplementation for 2026 #10164) and Pennsylvania's care-home input (Add Pennsylvania state supplementation for 2026 #10167). No take-up issue arises, since nothing reaches the data.
  • Aggregate wiring at the head. It matches the merged Wyoming, Pennsylvania, New Jersey and Nevada SSPs, plus the Montana-specific credit list:

    • household_state_benefits.yaml (lines 20, 122, 233, 345; the 2023–2026 blocks);
    • spm_unit_benefits.py:29;
    • SNAP income/sources/unearned.yaml:48 (7 CFR 273.9(b)(2)(i), need-based assistance);
    • HUD annual_income/sources/unearned.yaml:27;
    • programs.yaml:1151, whose parameter_prefix resolves, as the registry test confirms;
    • the elderly credit's gross_income_sources.yaml (lines 65, 103, 126).

    ssi excludes the SSP, and mt_ssp isn't an SSI income source, so nothing is counted twice (integration Case 7: 11,928 + 1,128 = 13,056).

  • Code:

    • There are no hard-coded policy values. The levels are breakdown parameters keyed by the enum, and the code D zero is structural.
    • References give one entry per document, and the variable tuples have no titles.
    • The 2027 FBR of 1,029 that Case 16 uses is the existing parameter, which cites SSA's 2027 COLA fact sheet.
    • Case 11's $10.85 is Montana's minimum wage effective January 1, 2026 (DLI poster), and $1,690 is the 2026 non-blind SGA in gov.ssa.sga.non_blind.
  • Hand checks (2026 FBR $994 individual, $1,491 couple; 2027 $1,029):

    • mt_ssp.yaml:
      • Cases 1–4: G 94, J 52.75, K 26, NONE 0 (H.2.a).
      • Case 5: 12,768 / 12 = 1,064; − 20 = 1,044 > 994, so SSI 0; 94 − 50 = 44.
      • Case 6: 13,296 / 12 = 1,108; − 20 = 1,088 = 994 + 94, so 0 under (b)(4).
      • Case 7: 13,055.88 / 12 = 1,087.99 (the input is the YEAR ssi_countable_income); 94 − 93.99 = 0.01, raised to $1.
      • Case 8: resources 2,001 > 2,000, so 0.
      • Case 11: 10.85 × 40 × 52 = 22,568; / 12 = 1,880.67 > 1,690 SGA, so SSI 0 and SSP 0.
      • Case 12: code D; SSI 30; Z, so 0.
      • Case 15: SSI 994 and SSP 94.
      • Case 16: SSI 1,029 and SSP 94.
    • integration.yaml:
      • Case 1: 193 / 2 = 96.50 each.
      • Case 2: (193 + 110.50) / 2 = 151.75; / 2 = 75.875, rounded up to 75.88 each.
      • Case 3: 19,200 / 12 = 1,600; − 20 = 1,580; 1,580 − 1,491 = 89; (193 − 89) / 2 = 52 each.
      • Case 4: deeming applies, because 1,600 > 1,491 − 994 = 497. The individual computation gives 94; the deeming computation gives 193 − 89 = 104; the lesser is 94.
      • Case 5: 20,400 / 12 = 1,700; 1,680 − 1,491 = 189; 193 − 189 = 4 < 94, so 4.
      • Case 6: 20,448 / 12 = 1,704; 1,684 − 1,491 = 193, so 0.
      • Case 7: 94 × 12 = 1,128; 994 × 12 = 11,928; spm_unit_benefits, SNAP and HUD unearned 13,056.
      • Case 8: separate marital units, so individual computations: SSI 994 each, and SSP 94 and 0 (G.2).
      • Case 9: 11,928 + 1,128 = 13,056 gross household income.
  • Changelog: changelog.d/mt-ssp.added.md is top-level, typed added, and accurate.

  • PR body:

    • The case count is right: 25 = 16 + 9, matching CI.
    • The worked examples (44, $1,088 and $1,684 cutoffs, 75.88, 48.25, and 11,928 to 13,056) check out.
    • The shared files it lists match the diff.
  • Partner tests: the PR touches none, and Household API Partners passes.

Axiom line assessment

Valid: axiom: MCA 52-1-104, 15-30-2337(9)(a)(vi); POMS SI 01415.058 H; POMS SI DEN01415.010 B; POMS SI 01320.430 D; 20 CFR 416.2025 TheAxiomFoundation/rulespec-us#1835 queued.

  • Issue state.
    • The PR author filed Update Massachusetts tax rules for 2022 #1835 on 2026-10-20. It is open, labelled pe-parity, has no comments, and is the only rulespec-us issue a search for "Montana supplementary" finds.
    • rulespec-us main (5796861e58) still has no module. us-mt/ holds only policies/cms, policies/income_tax, regulations/title-37 and statutes/15-30-2318. So queued is the right form.
  • Dispatch-ready on the Add AMT parameters for 2020-2023 #1467 model:
    • Module paths: four POMS-backed modules (living-arrangement variations, individual levels, couple levels, payment), us-mt/statutes/52/52-1-104.yaml, and a cross-reference to Correct MA income tax Part A AGI calculation #1512 for 15-30-2337(9).
    • Corpus citations. I confirmed the source ids against axiom-corpus main (393127f8b2). manifests/us-ssa-poms-si-2026-09-10.yaml holds ssa-poms-si-01415-058 (expression date 2026-08-28), ssa-poms-si-den01415-010 (2001-12-12), and the 01320-430, 02001-005, 02001-010 and 02005-030 sources.
    • The recorded blocker. MCA 52-1-104 "Needs ingest". The corpus has no Montana Title 52 statute manifest, only Title 15 and program manuals. This is narrower than the siblings' blockers but recorded the same way.
    • Verbatim law. I checked these quotes against the live sources:
      • MCA 52-1-104(1) and (3);
      • H.1 and the H.2 rows;
      • DEN B.1, B.3, B.6.b and B.6.c(1)–(2);
      • 416.2025(b)(3)–(4) and 416.2020(c);
      • 02005.030 G.1–G.2;
      • 01320.430 D.3.b;
      • 15-30-2337(9)(a)(vi).
    • Required outputs. Six rows: the levels, the OS code, eligibility, the SSP, couples, and credit income.
    • Companion tests A–W come from the law, and each maps to a PolicyEngine case by name. Cases 14 and 16 are rightly marked as having no law-based counterpart.
    • The interpretations section covers six readings, including codes B and C, mixed codes, the one-uncertified-spouse couple, 1619 and custody.
  • Matches the head:
    • the variable and parameter names and dates;
    • the 16 / 9 case counts;
    • the couple, deeming and code D readings.
    • Two small items: the issue still calls the PR "(draft)", and its "Encode Z" for codes B and C differs from the head, recorded as a modelling choice. Suggestion 1 would remove that difference.
  • If the suggestions land: update Update Massachusetts tax rules for 2022 #1835 as Suggestion 4 lists.

CI status

All 27 checks pass (gh pr checks 8233, rechecked at the end of the review). The three "skipping" entries belong to the superseded run 39387841701.

Branch status

Verdict: APPROVE

@DTrim99 DTrim99 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving; details in the report above. All six Montana levels (G–I 94/193, J 52.75/110.50, K 26/57) match POMS SI 01415.058 H.2 (TN 95, effective Jan 1, 2026). MCA 52-1-104 (including the category B bar), the SSA-administered shared helper, the couples and deeming rules, and the elderly-credit wiring under MCA 15-30-2337 all check out. rulespec-us#1835 is valid. The NH-sibling bug can't occur here, all 21 hand-checked expectations match, and CI is green. Four optional suggestions are in the report: gate the levels on federal code A, backfill to 2015 (every edition since 2016 has the same levels), pin two couple cases, and add a programs.yaml note that microsim gives $0.

@hua7450
hua7450 merged commit bda23ea into PolicyEngine:main Oct 20, 2026
34 checks passed
@DTrim99 DTrim99 mentioned this pull request Oct 20, 2026
6 of 7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Montana State Supplementary Payment (SSP)

3 participants