Repository navigation
Apply SSI's general exclusion once under spousal deeming - #10837
Merged
Merged
Conversation
Include claimant support in both countable-income budgets and retain monthly amounts without changing supplied annual units. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cover cash-income combinations, exclusion boundaries, annual sums, and legacy annual overrides with YAML and generated API checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Honor switches on the annual variable when monthly readers request a later month. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Test parameter lookup dates without constructing another full policy system. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the individual-only expected payments and show the corrected couple computation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
End the support status in August so the annual test counts one month of support. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Check that a cached branch honors a supplied zero without changing the parent budget. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Supply the monthly variable to the existing direct-formula checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The ineligible-parent test from main read the annual spousal deemed amount, and that amount now sums monthly budgets that count the claimant's in-kind support. Support depends on the living arrangement, which reads the ineligible-parent test, so every SSI calculation raised a CycleError after the merge. The test now computes the spouse's deemed amount without in-kind support, as it already does the parent's own income, and still takes a supplied, neutralized or abolished annual amount. Two cases cover a parent with shelter support and a parent whose supplied deemed amount decides the test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Core 3.33.0 and later define the holder's store record, and the package requires Core 3.33.1 or later, so the hasattr fallback never ran. The adapter test's holder double now carries the method. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A branch can supply annual deemed income after the simulation has already tested the parent. The branch then drops that result and tests the parent on the supplied amount. YAML supplies its inputs before any calculation, so a Python test covers this. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
MaxGhenis
marked this pull request as ready for review
November 14, 2026 16:40
SSA adds the claimant's in-kind support to the ineligible spouse's income and applies one $20 exclusion (POMS SI 01320.150 B.1.a and SI 01320.400 B.1.e; 20 CFR 416.1163(d)(2)). In Case 16, SSI falls from $572.50 to $552.50: 1,491 - (258.50 + 700 - 20). Oklahoma's combined countable income falls from $1,511 to $1,491, and the supplement rises from $21 to $40: min(1,532 - 1,491, 40). Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This was referenced Nov 14, 2026
Contributor
Author
|
US + core hub merge audit, us#10837 at
🤖 Generated with Claude Code |
MaxGhenis
added a commit
that referenced
this pull request
Nov 14, 2026
Since #10837, ssi_income_deemed_from_ineligible_spouse_monthly holds each month's income deemed from an ineligible spouse, with the claimant's in-kind support in both budgets, and SSI's monthly readers read it. md_paa_countable_income becomes monthly on this branch, so it reads that month's amount too. It no longer takes one-twelfth of the year's deemed income. A new case gives the claimant shelter support in July alone and checks January, July and the year. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
MaxGhenis
added a commit
that referenced
this pull request
Nov 14, 2026
Resolve ten conflicts with #10837, which applies SSI's $20 general exclusion once when a claimant with in-kind support has income deemed from an ineligible spouse: - Compute each month's deemed amount from that month's deeming status and the spouse's income after that month's child allocations, and count the claimant's in-kind support in both budgets, as #10837 does. - Keep ssi_countable_income as the annual sum. Read the month's budget in the individual-only limit, the state supplement helper and Texas supplement eligibility. - Take main's annual-input adapter, which honors dated abolition switches. - Compute the ineligible-parent test's deemed amount without in-kind support, as main does, and apply the year's deeming comparison to that amount and to the benefit rate. - Return the annual deeming flag as an array when a reform abolishes it. - Keep every is_ssi_ineligible_parent case from both sides, main's first, and add Cases 32 and 33. - Assert main's new month cases on the monthly variables. - Recompute Oklahoma Case 22 with one exclusion: 52.50 of SSI, 1,491 of combined countable income and a 40 supplement. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR applies SSI's $20 general income exclusion once when a claimant receives in-kind support and an ineligible spouse has income. The model now counts that support in both countable-income budgets whose difference gives the deemed amount.
SSA combines the claimant's support with the couple's unearned income under POMS SI 01320.150 B.1.a. SSA then applies one exclusion under SI 01320.400 B.1.e, 20 CFR 416.1163(d)(2) and 416.1124(c)(12).
For example, in January 2026, a claimant receives shelter support at the $258.50 presumed maximum value and an ineligible spouse earns $2,000 monthly. Countable income comes to $1,206: ($258.50 − $20) + ($2,000 − $65) / 2. SSI falls from $295 to $285. The $662.67 individual-only limit remains above that payment.
The model counts the SSI payment as income for other programs, among them SNAP and Oklahoma's State Supplemental Payment, so this PR changes those benefits too. For example, in January 2026, an aged claimant receives shelter support and a 62-year-old spouse receives $700 monthly from Social Security. SSI falls from $572.50 to $552.50: $1,491 − ($258.50 + $700 − $20). The Oklahoma supplement for that couple rises from $21 to $40 because SSI falls by $20. Combined countable income of $1,491 falls $41 short of Oklahoma's $1,532 standard for an individual with an ineligible spouse, and Oklahoma caps the payment at $40 (OKDHS Appendix C-1, Schedule VIII.A).
This addresses the ISM finding in #10243. Its separate spouse-eligibility finding remains open.
Ineligible-parent test
is_ssi_ineligible_parent(#10630) adds a spouse's deemed income to a parent's own income and leaves in-kind support out of that own income. In-kind support depends on the living arrangement, and the living arrangement depends onis_ssi_ineligible_parent. If the test read the new monthly budgets, which count in-kind support, every SSI calculation would raise a cycle error. The test now computes the spouse's deemed amount with main's annual formula, without in-kind support, so its results match main's. It still takes a supplied, neutralized or abolished annualssi_income_deemed_from_ineligible_spouse.Invariants and validation
is_ssi_ineligible_parentreads the same incomes as on main, and main's 27 cases for it pass unchanged.is_ssi_ineligible_parent, including on a branch that supplies it after the simulation has calculated the test.Pull request run 43624137892 at
1a83b5ce4dpassed all 37 jobs on GitHub's merge with main99d740496b.test_ssi_spousal_ism_invariants.pychecks the first five properties with generated vectorized households. It also checks that a branch override replaces cached monthly budgets and a cached ineligible-parent result, and that the input adapter honors dated abolition switches. The new monthly deemed-income YAML covers cash-income combinations, both sides of the $20 exclusion, and one-month support. Two new cases inis_ssi_ineligible_parent.yamlcompute SSI for a parent with shelter support, an earning spouse and a disabled child, and for a parent whose supplied deemed amount fails the test. Case 16 in Oklahoma'sssp/integration.yamlnow expects $552.50 of SSI, $1,491 of combined countable income and a $40 supplement.Methodology choices
State readers and merge coordination
Monthly readers include SSI countable income, the individual-only limit, the shared supplement helper, California CAPI, Kentucky SSP, Maryland imputed SSI and Texas supplement eligibility.
Three other formulas on main read the annual name. Maryland's PAA countable income and Medicaid's medically needy spouse adjustment (#10640) still read it and receive the sum of the monthly budgets.
is_ssi_ineligible_parent(#10630) computes its own amount without in-kind support.Where a state budgets a couple together, the medically needy adjustment swaps SSI's deemed amount for its own, which leaves out in-kind support. Those budgets keep main's values, so they still apply a second $20 exclusion when the claimant's cash unearned income leaves some of the first unused. #10935 tracks that second exclusion. A couple split by a facility counts no spouse income, and other states read
ssi_countable_incomeunadjusted, so both apply one exclusion.The shared helper serves California, Iowa, Montana, Nevada, New Jersey, New York, Pennsylvania, Rhode Island and Vermont. Colorado uses separate deeming calculations and still offsets supplements by federal SSI.
Coordinate overlapping work in #10146, #10532 and #10382. Retain this ISM addition when incorporating #10146's broader monthly deeming changes. #10809 changes adjacent California and Maryland ISM readers.
Microsimulation impact
We estimate that this branch changes no SSI or state supplement payment in 2026 on the default dataset: SSI totals $56.68bn on both sides, and no record's SSI changes by a cent. Countable income and income deemed from an ineligible spouse move by at most $0.19 per person over the year. The default dataset gives $0 of California's CAPI and of Kentucky's, Maryland's and Texas's supplements on both sides. We compared
mainatf926615321with this branch at1a83b5ce4d.ssissi_countable_incomessi_income_deemed_from_ineligible_spouseca_capiky_sspmd_paatx_ssi_state_supplementstate_income_taxincome_taxhousehold_benefitshousehold_net_incomeAxiom parity
axiom: TheAxiomFoundation/rulespec-us#2240 queued (20 CFR 416.1163(d)(2), with POMS SI 01320.150 B.1.a and SI 01320.400 B.1.e: one $20 general exclusion across the couple's unearned income, the claimant's in-kind support included; the pinned corpus release lacks 20 CFR part 416)
🤖 Generated with Claude Code