Skip to content

Add New Jersey state supplementation for 2026 - #10157

Open
hua7450 wants to merge 3 commits into
mainfrom
nj-ssp-2026
Open

hua7450 wants to merge 3 commits into
mainfrom
nj-ssp-2026

Conversation

@hua7450

@hua7450 hua7450 commented Oct 12, 2026

Copy link
Copy Markdown
Collaborator

What and why

Implements New Jersey State Supplementary Payment for researched 2026 coverage, with state-specific eligibility, payment rules, and integration into benefit totals and SNAP/HUD income.

Models optional living-arrangement payments, including the special ineligible-spouse rate. Separate food households, certified settings and post-institutionalization individual claims require explicit inputs. Mandatory grandfathered supplementation is not modeled.

Parameter backfilling does not establish verified historical coverage.

References

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

Test plan

  • 22 source-based YAML cases passed on this separate state branch.
  • Synthetic national simulation: 153 households, 204 people, all 50 states and DC; finite nonnegative benefit and income aggregates.
  • make format, reference/registry checks, and git diff --check.
  • State changelog fragment.

axiom: needed

hua7450 and others added 3 commits October 12, 2026 14:19
…ation

- Registry placement and comments, SNAP reference title, shorter programs.yaml note
- Lowercase POMS anchor; document the C couple placeholder, mixed-arrangement averaging and the ineligible-spouse limitation
- Realistic ages and incomes in existing cases; couple-with-income and living-arrangement precedence tests

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

DTrim99 commented Oct 13, 2026

Copy link
Copy Markdown
Collaborator

PR Review: Add New Jersey state supplementation for 2026

PR #10157 (author: hua7450, head 64c0d3ea64, merge-base 2e9eea7e6e). 16 files (+781/−4), 3 commits.

Summary

The PR adds New Jersey's federally administered optional State Supplementary Payment (SSP):

  • Parameters, all dated 2026-01-01:
    • gov.states.nj.dhs.ssp.amount.individual and .couple, broken down by nj_ssp_living_arrangement:

      OS code Arrangement Individual Couple
      B Living alone or with others 31.25 25.35
      C Living only with an ineligible spouse 152.99 25.35 (commented placeholder; no couple rate exists)
      A Certified congregate care 150.05 618.35
      I Certified residential health care 210.05 738.35
      D Household of another 44.31 93.08
      G Medicaid institution 20.00 40.00
      Z No supplement 0 0
    • The shared federal gov.ssa.ssi.state_supplement.minimum_payment of $1.

  • Variables:
    • nj_ssp_care_setting (Person, MONTH, input only): certified congregate care, certified residential health care, excluded setting, or none.
    • nj_ssp_living_arrangement (Person, MONTH). It maps the federal living arrangement and the care setting to the OS codes. Code C applies when the marital unit holds an SSI-ineligible spouse and makes up the whole household.
    • nj_ssp (Person, MONTH), computed by the shared helper variables/gov/ssa/ssi/_ssi_state_supplement.py. The helper handles the income reduction, couple halving, SI 01320.430 deeming, SSA rounding and the $1 minimum.
  • Aggregates and registry:
    • household_state_benefits (all four year blocks), spm_unit_benefits, SNAP unearned income and HUD unearned income.
    • A programs.yaml entry (partial, verified_years: "2026").
  • Tests: 34 YAML cases: 16 in nj_ssp.yaml, 11 in nj_ssp_living_arrangement.yaml and 7 in integration.yaml.

The 2026 policy content is right:

  • Amounts. All 13 nonzero rate cells match POMS SI 01415.058 J.2, January 2026. The code definitions match J.1 and New Jersey's regional instruction, SI NY01415.025.
  • Rules the code follows correctly:
    • Code C ("ONLY their ineligible spouse and NO other persons"), with an explicit-input route for the separate-household and foster-child exceptions.
    • The Z exclusions and the Title XIX G rate.
    • Federal administration, so SSA rounding and the $1 floor apply.
    • SSA's rule for the two states, New Jersey and Washington, whose individual rate exceeds the couple rate (SI 01320.430 C.7, D.2.c).
  • Couple rounding. POMS J.2.b footnote 1 explains the half-penny and the rounding up, which supports the 12.68-per-spouse result.
  • Tests and CI. All 34 expectations check by hand and pass at the head. CI is green and the branch merges cleanly with main.

Two should-fix items remain:

  1. The axiom: needed line isn't valid for a staff PR that adds a program.
  2. The two rate-file descriptions don't follow the house template.

Critical (must fix)

None.

Should address

1. axiom: needed isn't valid here, and this PR adds a program.

  • Where: the last line of the PR body, axiom: needed.
  • The rule. main's CLAUDE.md, "Axiom Parity (required for policy changes)", lists the accepted forms: encoded-correct, encoded, queued or n/a: <reason>. It also says: "If you are an external contributor and cannot complete the Axiom work, use axiom: needed; a maintainer will follow up."
    • The author is PolicyEngine staff, so needed doesn't apply.
    • CONTRIBUTING.md#axiom-parity: "That covers a new program, a parameter or threshold update, an eligibility rule and a bug fix." This PR adds a new program, and none of the n/a grounds applies.
  • Nothing to point to yet.
  • Precedent:
  • Fix: file a dispatch-ready pe-parity issue on the Add AMT parameters for 2020-2023 #1467 / DC CDCC #1708 model, then add a line such as axiom: POMS SI 01415.058 J; SI NY01415.025; SI 01320.430 D TheAxiomFoundation/rulespec-us#NNNN queued. The issue needs:
    • Module paths, mirroring the DE and DC modules:

      • us-nj/policies/ssa/poms/si-01415-058/2026/nj-ssp-living-arrangement-variations.yaml
      • us-nj/policies/ssa/poms/si-01415-058/2026/nj-ssp-individual-state-supplement-levels.yaml
      • us-nj/policies/ssa/poms/si-01415-058/2026/nj-ssp-couple-state-supplement-levels.yaml
      • us-nj/policies/ssa/poms/si-ny01415-025/nj-oss-codes.yaml for the code C household rule, the foster-child exception and the post-entry couple rule
    • Corpus citations. The statutory basis SSA gives is N.J.S.A. 44:7-86.

    • Verbatim law, quoted under Verified correct:

      • the J.1 definitions of codes A, B, C, D, I, G and Z, and the J.1 Lifeline NOTE
      • the J.2.a and J.2.b rows and J.2.b footnote 1
      • the SI NY01415.025 code C paragraph
      • SI 01320.430 C.7 (with its NOTE) and D.1–D.3
    • Required outputs (Person, monthly):

      • the rate table by OS code
      • a Judgment for code C: lives only with an ineligible spouse (foster children allowed) and no other household member
      • a Judgment for the Z exclusions
      • Money: max(0, rate − max(0, countable − FBR))
      • the deeming rule: the lesser of the individual computation and max(couple rate, individual rate) − excess over the couple FBR
      • SSA rounding and the $1 floor
    • Companion tests from the same source (POMS J.2 totals):

      Case SSP Total payment
      B individual, no income 31.25 1,025.25
      C individual with an ineligible spouse, no income 152.99 1,146.99
      D individual, household of another 44.31 706.98
      I individual 210.05 1,204.05
      G individual, Title XIX facility 20.00 50.00
      B couple 25.35 (12.68 per member under footnote 1) 1,516.35
      A couple 618.35 2,109.35

2. The two rate-file descriptions don't follow the house template.

  • Where:
    • parameters/gov/states/nj/dhs/ssp/amount/individual.yaml:1: "New Jersey provides these monthly state supplementary payment rates for an eligible individual."
    • parameters/gov/states/nj/dhs/ssp/amount/couple.yaml:1: the same, "for an eligible couple".
  • The template: "one sentence, spell the program out fully (no acronyms), [State] [verb] ... under the [Full Program Name] program."
    • Neither file has the "under the ... program" clause.
    • The sibling SSP parameters on main all do:
      • ga/dhs/ssp/amount.yaml: "Georgia provides this amount as the monthly supplement under the State Supplementary Payment program."
      • The breakdown-by-arrangement files de/dhss/ssp/amount/individual.yaml and .../couple.yaml: "Delaware provides this amount as the individual State Supplementary Payment under the State Supplementary Payment program."
    • Add Pennsylvania state supplementation for 2026 #10167 (Pennsylvania) got the same finding for the same two files.
  • Fix:
    • individual.yaml: "New Jersey provides these amounts as the monthly individual payment under the State Supplementary Payment program."
    • couple.yaml: the same with "couple".
    • The federal minimum_payment.yaml description is acceptable as written.

Suggestions

  1. Amounts before 2021 (deferral documented in the PR body and New Jersey SSI 2017, 2018, 2019 #8764).
    • The deferral. The PR body says "Parameter backfilling does not establish verified historical coverage", programs.yaml claims only verified_years: "2026", and New Jersey SSI 2017, 2018, 2019 #8764 ("New Jersey SSI 2017, 2018, 2019") is open.
    • The leak. Every value is dated only 2026-01-01, so each one carries back to 2015. The probe at the head gives a Medicaid-facility single a nj_ssp of 20 for 2015-01, 2016-01 and 2018-01.
    • What SSA paid. The POMS January charts show:
      • SI 01415.047 (Jan 2015) through SI 01415.050 (Jan 2018): "D | G | All | 30.00 | 10.00 | 40.00" (individual) and "60.00 | 20.00 | 80.00" (couple)
      • SI 01415.051 (Jan 2019) onward: 20.00 and 40.00
      • C at 153.00 and couple levels of 618.36 / 25.36 / 738.36 / 93.09 through SI 01415.052 (Jan 2020)
      • 152.99 and .35 / .08 from SI 01415.053 (Jan 2021)
    • Size of the error.
      • The model overstates the Medicaid-facility supplement by $10 per person per month for 2015–2018. The January charts don't show the exact 2018 month of the change.
      • After each half is rounded, the one-cent differences matter only for code C (153.00 against 152.99) and the code D couple (46.55 against 46.54 per member).
      • Every other row has been unchanged since at least 2015, so 2021–2025 are already right.
    • Essential persons. The essential-person C row ("w/EP", 25.36 / 25.35) appears through the January 2024 chart and is gone from January 2025. The unmodeled grandfathered piece no longer matters for 2026.
    • Fix: widen New Jersey SSI 2017, 2018, 2019 #8764 to 2015–2020, covering the G step and the one-cent changes.
  2. The Texas rebate reform's copy of spm_unit_benefits now omits nj_ssp.
    • Where: reforms/states/tx/rebate/tx_rebate.py:53-127 redefines spm_unit_benefits nationwide with a hard-coded list. It lacks nj_ssp, and it already lacks ca_state_supplement.
    • Probe at the head: a New Jersey aged SSI-only single in 2027.
      • spm_unit_benefits is 13,777.01 at baseline and 13,402.01 under the reform, a drop of exactly the $375 nj_ssp.
      • spm_unit_net_income falls by the same amount.
      • household_net_income is unchanged at 14,428.01.
    • Fix: insert "nj_ssp", # New Jersey benefits after "fl_oss", at line 65, as spm_unit_benefits.py does. Add ca_state_supplement while there, consistent with Add Wyoming state supplementation for 2026 #10174 and Add Pennsylvania state supplementation for 2026 #10167.
  3. Pin the couple and deeming readings with tests.
    • Congregate-care couples after the month of entry.
      • The rule. The SI NY01415.025 NOTE under codes A and I: "When a couple enters a Level 2 facility, they will usually get the couple FBR and couple OSS D for the month of change only. After that, they are treated as two individuals, since couple status can exist only in households, not institutions ... In such small scale 'household' (i.e., non-institutional) Level 2 facilities, couple status can continue."
      • What the PR pins. Integration Case 2 (integration.yaml:23, "Case 2, congregate care couple") pins the joint result: nj_ssp [309.18, 309.18], with SSI of 745.50 each. That is right only in the month of entry or in a small facility.
      • Probe at the head with separate marital units: SSI 994 and nj_ssp 150.05 each. That matches J.2.a, "A | A | All | 994.00 | 150.05 | 1144.05".
      • Fix: rename Case 2 to say it is the month of entry, and add the separate-claim case.
    • Deeming in code B.
      • The rule. New Jersey's code B individual rate (31.25) also exceeds the couple rate (25.35), so SI 01320.430 C.7's "greater of" applies outside code C too.
      • Probe at the head: an aged recipient, a 40-year-old spouse with $24,300 of Social Security, and a 12-year-old child.
        • Deemed countable income is 1,508: 2,025 − 497 (child allocation) − 20.
        • The excess over 1,491 is 17, so SSI is 0.
        • nj_ssp is 14.25 = 31.25 − 17, not the 8.35 the couple rate would give.
      • That result is correct but untested. Add it to integration.yaml.
    • An aged, blind or disabled spouse who declines SSI or is otherwise ineligible.
      • The rule. SI NY01415.025, code C: "An ineligible spouse for State supplementation purposes is determined by using Federal criteria, i.e., a spouse, either by marriage or holding out who is either ineligible for SSI or who chooses not to apply."
      • What the model does. is_ssi_ineligible_spouse keys only on aged/blind/disabled status, so the model treats such a couple as joint.
      • Probe: two people aged 65 and over, where the spouse has takes_up_ssi_if_eligible: false, get SSI [745.50, 0] and nj_ssp [12.68, 0]. The rule gives 994 + 152.99.
      • Fix. The PR's NOTE (nj_ssp.py:22-25) documents this, and the cause is the federal ssi_claim_is_joint / is_ssi_ineligible_spouse. An upstream follow-up issue is the right place to fix it.
  4. New Jersey LIHEAP counts the SSI check, which now includes nj_ssp, net of the Lifeline payment.
    • The source.
      • FY2027 LIHEAP Handbook, PDF p. 11: "For individuals receiving SSI, the PARTNERING AGENCY or other non-profit agency shall deduct the supplemental payment amount from the Tenant's Lifeline Credit program, which is included in the SSI check. The balance shall be considered as income to the household."
      • The FY2026 handbook says the same on PDF p. 10.
    • What the Lifeline is.
      • POMS J.1 NOTE: "All State Supplement payments, except for medicaid facilities, include a Lifeline payment which is a utility assistance program for older people and people with disabilities that offers an annual benefit amount for individuals who receive SSI."
      • N.J.S.A. 48:2-29.18 and 48:2-29.34(b) (LIHEAP Clearinghouse compilation): for SSI recipients the payment "shall consist of a special State utility supplement to the Supplementary Security Income program and shall be made in 12 monthly installments".
      • 48:2-29.17 sets "$225.00" and says "No household shall receive more than one annual credit". That is $18.75 a month, and its half (9.375) is the half-penny in J.2.b footnote 1.
    • What the model does. nj_liheap_countable_income_person counts ssi (nj/dca/liheap/income/sources/unearned.yaml:10) but not nj_ssp.
      • Probe: an aged single has countable income of 11,928, where the handbook gives 11,928 + 375 − 225 = 12,078.
      • The variable's documentation (nj_liheap_countable_income_person.py:25) says "The SSI variable carries no Tenants Lifeline supplement". That stays true of ssi, but the Lifeline now lives in nj_ssp.
    • Why this is a suggestion, unlike Pennsylvania's PTRR finding:
      • LIHEAP pays by monthly income band, and income_band.yaml's own comment says the two lowest bands differ in only one FY2027 renters cell.
      • The omitted amount is small: $12.50 a month in code B, if the individual rows carry the full $18.75, and $134.24 in code C.
      • Only a household just below a band edge moves. A near-edge probe (code C, spouse earning $12,000, $1,994 a month counted) shifts from band 1 to band 2 only when the non-Lifeline $134.24 is added.
      • POMS doesn't print the Lifeline share of the individual rows, so the fix needs a sourced parameter.
    • Fix:
      • Add a Lifeline parameter: $225 a year per household, under N.J.S.A. 48:2-29.17 and 48:2-29.33.
      • Count max(nj_ssp − Lifeline share, 0) in NJ LIHEAP, excluding code G, and update the documentation sentence.
      • Note in nj_ssp's documentation that every row except G includes the Lifeline.
    • Related. NJ CCAP's unearned_sources.yaml lists ssi from CCDF plan 2.2.4c and may warrant the same treatment. rulespec-us#1481 (the NJ LIHEAP draft) should carry the deduction.
  5. Two folders now exist for the New Jersey Department of Human Services.
    • The PR creates gov/states/nj/dhs/ssp, while main already keeps NJ CCAP under gov/states/nj/njdhs/ccap (parameters and variables).
    • The batch convention (pa/dhs, ga/dhs) favors dhs, so keeping dhs is reasonable. Either note a follow-up to rename njdhs to dhs, or move the SSP into njdhs and update parameter_prefix.
  6. Polish.
    • Blank lines. The PR adds a stray blank line before metadata: in household_state_benefits.yaml (line 412) and in hud/annual_income/sources/unearned.yaml (line 33). Neither relates to New Jersey.
    • Case count. The PR body says "22 source-based YAML cases". The PR has 34 (16 + 11 + 7).
    • Anchors.
      • amount/individual.yaml and amount/couple.yaml title the reference "J.2" but link #j, which opens the J.1 definitions. Point them at #j2a (individual) and #j2b (couple), which both exist.
      • The PR body's SI 01320.430 link ends #D, but POMS anchors are lowercase (#d).
    • References.
      • The second reference on both rate files, SI 01320.430 D, supports the method, not the amounts. It already sits on nj_ssp.py, so it can move there.
      • nj_ssp_living_arrangement.py cites only SI NY01415.025. Add SI 01415.058 J.1 (#j1), which defines the codes.
      • nj_ssp.py cites no state authority. SSA gives "Statutory basis for payment: New Jersey Statutes Annotated, 44:7-86."
    • spm_unit_benefits wiring isn't asserted. Integration Case 7 asserts SNAP, HUD and household_state_benefits, but removing nj_ssp from spm_unit_benefits.py would pass every test.

Verified correct

  • Rates. POMS SI 01415.058 J.2, "effective January 1, 2026":
    • J.2.a, individual:
      • "A | A | All | 994.00 | 150.05 | 1144.05"
      • "A | B | All | 994.00 | 31.25 | 1025.25"
      • "A | C | Individual | 994.00 | 152.99 | 1146.99"
      • "A | I | All | 994.00 | 210.05 | 1204.05"
      • "B | D | All | 662.67 | 44.31 | 706.98"
      • "C | B | All | 994.00 | 31.25 | 1025.25"
      • "D | G | All | 30.00 | 20.00 | 50.00"
    • J.2.b, couple:
      • "A | A | All | 1491.00 | 618.35 | 2109.35"
      • "A | B | All | 1491.00 | 25.35 | 1516.35"
      • "A | I | All | 1491.00 | 738.35 | 2229.35"
      • "B | D | All | 994.00 | 93.08 | 1087.08"
      • "D | G | All | 60.00 | 40.00 | 100.00"
    • Footnote 1 (couple rows A, B, I and D): "This amount is the total of the federal payment, the state supplement amount, and the lifeline payment. When added together and divided in half for each member of the couple, the result includes a half penny. The total is rounded up to accommodate system processing." That supports 12.675 → 12.68 per member. SSA's 2011 table printed the couple B level as 25.36, which is 2 × 12.68.
  • Codes (J.1):
    • C: "Use OS code C when a recipient lives with ONLY their ineligible spouse and NO other persons are part of the household ... If other persons, even minor children, are present in the household, you cannot apply this OS code ... There is no couple counterpart in this category."
      • The no_others household-size test and the commented C couple placeholder match.
      • The placeholder never binds: an explicit-C joint couple gets the B-equal 12.68, and under deeming the code uses max(25.35, 152.99).
    • B: "any child meeting the criteria for a Federal code C is automatically entitled to optional supplement B". Probe: a disabled 10-year-old living with parents gets nj_ssp 31.25.
    • Z: "in licensed medical facilities where Medicaid is paying less than 50 percent of the cost of care; in publicly operated community residences having 16 or less residents; and residing throughout a month in publicly operated emergency shelters", plus children in facilities paid by private health insurance. The other_medical branch and the EXCLUDED input cover this, and they take precedence over G.
    • I: "We must base our authorization for this payment on the recipient's verified residence at a facility listed in the New Jersey Congregate Care Directory." That makes the input-only care setting correct.
  • The regional instruction (SI NY01415.025):
    • "In this instance, an OSS C is permissible as long as no other person is in their household" (separate food purchase and preparation).
    • "An individual living alone only with an ineligible spouse and foster child(ren) will also qualify for the OSS C rate (effective 7/1/90)."
    • Both are routed through the explicit nj_ssp_living_arrangement input, which is documented and pinned by integration Case 6.
  • Administration.
    • SI NY01415.025 A: "Since the beginning of the SSI Program, SSA has administered Optional State Supplement (OSS) payments on behalf of New Jersey."
    • SSA, State Assistance Programs for SSI Recipients, January 2011, New Jersey:
      • "Optional State Supplementation. Administration: Social Security Administration. Effective date: January 1, 1974. Statutory basis for payment: New Jersey Statutes Annotated, 44:7-86."
      • "Scope of coverage: Optional state supplement provided to all aged, blind, and disabled recipients, including children, except those in publicly operated community residences or facilities where Medicaid pays less than 50 percent of the cost of care."
    • So the helper's default federal_payment_rules=True (SSA rounding and the $1 floor of 20 CFR 416.2020(c)) is right.
  • Deeming. SI 01320.430:
    • D.1.b: "use the full OSS for an individual, or the OSS for an individual with an ineligible spouse, in those States which provide such an OSS."
    • D.2.c: "However, if the State has an individual supplement rate (including a special rate for an eligible individual living with an ineligible spouse) which is greater than the State supplement for an eligible couple, use the higher individual State supplement."
    • D.3.b: "The State supplement amount is the lesser of" the two.
    • C.7 NOTE: "Currently, only the States of New Jersey and Washington have a higher OSS rate for an eligible individual than for an eligible couple."
    • The helper's own_payment, deemed_payment = max_(couple_rate, individual_rate) − excess and min_ mirror these steps. Integration Case 4 pins 13.99, and code B gives 14.25 (Suggestion 3).
  • Couples in a Medicaid facility. Probe: SSI 30 and nj_ssp 20 each, which matches J.2.b's "60.00 | 40.00 | 100.00".
  • Counted for SNAP. 7 CFR 273.9(b)(2)(i) (LII) counts "supplemental security income (SSI) ... or other assistance programs based on need".
    • The Lifeline share counts too. (c)(11) excludes only energy assistance "under any Federal law" and "A one-time payment or allowance ... for the costs of weatherization or emergency repair or replacement of an unsafe or inoperative furnace". New Jersey's monthly state-law Lifeline is neither.
    • The SNAP reference consolidation follows main's one-entry-per-document rule.
  • Kept out of SSI income. nj_ssp isn't in the SSI income sources, so there is no circularity, and no double count with ssi, which is federal only.
  • Code:
  • Hand checks: all 34 expectations. The 2026 FBR is $994 for an individual and $1,491 for a couple.
    • nj_ssp.yaml:
      • Cases 1–3: 31.25, 150.05 and 210.05.
      • Case 4: an excluded setting gives 0.
      • Case 5: SSI 30 and nj_ssp 20.
      • Case 6: a non-Medicaid facility gives 0.
      • Case 7: 44.31.
      • Case 8: 12,360 / 12 = 1,030; 1,030 − 20 = 1,010; 1,010 − 994 = 16; so 31.25 − 16 = 15.25, with SSI 0.
      • Case 9: 12,540 / 12 = 1,045; 1,045 − 20 = 1,025; the excess of 31 leaves 0.25, raised to 1.
      • Case 10: 12,543 / 12 = 1,045.25; 1,045.25 − 20 = 1,025.25; the excess of 31.25 leaves 0.
      • Cases 11–15: resources of 2,001, age 30, Ohio and no take-up each give 0; the disabled child gets 31.25.
      • Case 16: 18,240 / 12 = 1,520; 1,520 − 20 = 1,500, or 750 each; 750 − 745.50 = 4.50; 12.675 − 4.50 = 8.175, rounded up to 8.18.
    • integration.yaml:
      • Case 1: 25.35 / 2 = 12.675, rounded up to 12.68.
      • Case 2: 618.35 / 2 = 309.175, rounded up to 309.18.
      • Case 3: [152.99, 0].
      • Case 4:
        • 19,800 / 12 = 1,650, above 497, so deeming applies
        • 1,650 − 20 = 1,630, and the excess over 1,491 is 139
        • nj_ssp is min(152.99, 152.99 − 139) = 13.99, and SSI is 0
      • Case 5: with a child in the household, code B pays 31.25.
      • Case 6: the explicit C input pays 152.99.
      • Case 7: 12 × 31.25 = 375; SNAP and HUD unearned income are 11,928 + 375 = 12,303.
    • nj_ssp_living_arrangement.yaml: all 11 enum expectations follow the select order: exclusion, Medicaid institution, A, I, D, C, then B.
  • Changelog: changelog.d/nj-ssp-2026.added.md is top-level, typed added, and accurate.
  • Registry:
    • The programs.yaml entry sits under ssi_state_supplement.state_implementations with the WA/MO fields.
    • partial fits the unmodeled grandfathered supplementation and the input-only settings. parameter_prefix resolves.

Batch checks

  1. Axiom line: invalid (needed). rulespec-us has no NJ SSP module or issue (Should 1).
  2. Parameter descriptions: amount/individual.yaml and amount/couple.yaml are off-template (Should 2). The federal minimum_payment.yaml is acceptable.
  3. Backdating:
    • The Medicaid-facility G rate leaks $20 / $40 back to 2015–2018, where POMS shows $10 / $20.
    • Code C and the code D couple are a cent off through 2020.
    • 2021–2025 are right. This is a documented deferral (New Jersey SSI 2017, 2018, 2019 #8764), so Suggestion 1.
  4. tx_rebate.py copy: it omits nj_ssp; the probe shows spm_unit_benefits down $375 (Suggestion 2).
  5. Aggregate wiring:
    • spm_unit_benefits, all four household_state_benefits blocks, HUD, SNAP and programs.yaml are present.
    • There is no double count with ssi.
    • New Jersey's own LIHEAP counts the non-Lifeline SSP, but the effect is band-limited (Suggestion 4).
  6. Income attribution:
    • It uses SSA countable income: couples combined and halved, SSP-only reduction, and SI 01320.430 deeming with the higher individual rate, pinned by integration Case 4.
    • Code-B deeming and post-entry congregate-care couples are correct but unpinned (Suggestion 3).
    • An aged, blind or disabled spouse who declines SSI is treated as joint, a documented limitation inherited from federal SSI (Suggestion 3).
  7. Sibling conflicts:
  8. CI: all 26 checks pass on head 64c0d3ea64, with no failing job.
  9. State law first:
    • All 2026 rows match POMS SI 01415.058 J.2 (individual and couple).
    • The code definitions match J.1 and SI NY01415.025.
    • Federal administration (effective 1974) and the 2026-01-01 effective date match SSA's NJ description and the chart.
    • All 34 expectations check by hand.

Axiom line assessment

Invalid (Should 1).

CI status

All 26 checks pass (gh pr checks 10157). Three "skipping" entries belong to the superseded run 38357004861.

  • The run. Run 38367904210 (pull_request, 2026-10-13 08:14 UTC) on head 64c0d3ea64, conclusion success.
  • Main since then. In the files this PR touches, main has changed only unemployment_compensation → total_unemployment_compensation in the shared income lists and tx_rebate.py, plus three programs.yaml lines (the California entry). The only other New Jersey change is unrelated (nj_medical_expense_deduction.py). None of it affects this PR's logic.
  • Local run. The three new test files at the head with policyengine-core 3.33.2: 34 passed.
  • Partner tests. The PR touches no partner test files, and the Household API Partners job passes.

Branch status

Verdict: REQUEST_CHANGES

@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.

The 2026 policy is correct: all 13 rate cells match POMS SI 01415.058 J.2, the living-arrangement codes match J.1, the SI 01320.430 deeming is right, and all 34 YAML cases check by hand. Two should items (see the comment above): (1) 'axiom: needed' isn't valid for a staff PR adding a program; no NJ SSP module exists in rulespec-us, so file a dispatch-ready pe-parity issue and add a queued line; (2) the individual.yaml and couple.yaml descriptions are off the template.

This branch has not been deployed

No deployments
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.

2 participants