Repository navigation
Count income of aged, blind, or disabled people who fail SSI's noncitizen test - #10240
Conversation
medicaid_optional_senior_or_disabled_countable_income and ssi_countable_income zeroed income for anyone who was not an SSI-eligible individual or spouse, and that status includes SSI's citizen and qualified-noncitizen test. Aged, blind, or disabled people who fail only that test (for example, LPRs with fewer than 40 quarters, or undocumented residents of states that cover them) therefore passed the optional ABD and medically needy Medicaid income tests, and CAPI, regardless of income. Gate the zero, and the spousal-deeming variables, on aged, blind, or disabled status instead. The zero still applies to a spouse who is not aged, blind, or disabled, whose income is deemed to the other spouse. SSI benefits are unchanged because is_ssi_eligible still applies the noncitizen test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n status Counting the own income of aged, blind or disabled people who fail SSI's noncitizen test exposed two downstream defects found in the 2026-10-19 review: - The California state supplement summed ssi_countable_income over the whole SPM unit, so a CAPI-eligible relative's income reduced an SSI recipient's supplement. CAPI budgets its own members' income (MPP 49-035), and SSI/SSP counts another member's income only when it is deemed (20 CFR 416.1160(a)), so CAPI-eligible members are left out of the sum. - Maryland PAA deemed spouse income and imputed federal SSI to people SSA cannot pay. For people who fail SSI's citizen or qualified-noncitizen test, PAA now counts only their own income and imputes no SSI (COMAR 07.03.07.07 and 07.03.07.09A). The CAPI test that encoded the federal-benefit-only standard is replaced with an over-income case that holds before and after the CAPI rework. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CAPI payment standards equal the SSI/SSP payment standards less $10 for an individual and $20 for a couple (MPP 49-050.1, .11-.13). The model instead used the federal benefit rate plus the SPM unit's state supplement payment, pooled every CAPI-eligible member's income against one unit standard, applied the $10/$20 offset once a year, and left the tax-unit spouse of a noncitizen couple out. - ca_capi_payment_standard: the SSI/SSP standard for an individual, or half the couple standard, built from the state supplement parameters, less the monthly offset. - ca_capi_person: the standard less the person's own countable income (MPP 49-055.3), with spouse-to-spouse deeming computed as POMS SI 01320.430 D prescribes (federal and state parts each the lesser of the individual and deeming amounts). - ca_capi sums ca_capi_person; ca_capi_income_eligible asks whether any member's income is below their standard (MPP 49-035.1). - Both members of a noncitizen couple, and the noncitizen spouse of a citizen, are CAPI-eligible (MPP 49-055.4, 49-050.13). 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>
…uples, one standard per arrangement - Offsets are $0 from June 1, 2019 (WIC 18941; ACIN I-23-19); new mixed-couple offset (MPP 49-050.13) before then - Mixed couple: couple standard less the couple's countable income and the spouse's SSI/SSP (MPP 49-005(e)(3), 49-035.221) - Title XIX facility $62 and non-medical out-of-home care $1,626.07 replace the community standard; no-cooking allowance only on the aged or disabled amount - Floor the standards at the federal benefit rate while the CA SSP parameters hold 1991 totals (issue 7787) - No deeming for a Title XIX facility resident (20 CFR 416.1160(a)(1)) - candidates.yaml: us-ca:capi-payment-standard-offset (open, Pavel's sign-off) and us-ca:capi-spousal-deeming-method (unreviewed) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…countable-income Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> # Conflicts: # policyengine_us/tests/policy/baseline/gov/states/ca/cdss/capi/ca_capi.yaml
…tests, CAPI test pins - Maryland PAA keeps imputed SSI and spouse deeming for people who report SSI receipt - CA state supplement: mixed-couple case and the matching computed CAPI case; comment and reference fixes - CAPI tests from #10379: drop pins this PR now computes, keep the rest with accurate comments Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…alien status COMAR 07.03.07.07 counts the individual's own income; only the imputed SSI keeps the receipt exception. Drop md_paa.yaml Case 13, which codified the deeming. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-2025 floor a stopgap; LPR test personas - One-blind couple rate adds no food allowance (WIC 12200(b), (e)); candidates item us-ca:ssp-blind-couple-food-allowance (unreviewed) - Floor comment and pinned pre-2025 cases say the values are known-low; issue 10480 backfills the totals - Mixed-couple note gives the ineligible-spouse example (issue 10481) - CAPI test personas are aged permanent residents with 39 quarters (issue 10482) - PDF page comments without spaces Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…barred SSI reporters in Maryland PAA - Resolve the CAPI test conflicts with this branch's versions and switch their personas to permanent residents with 39 quarters - md_paa_imputed_federal_ssi: for a person who fails SSI's noncitizen test but reports SSI, impute the individual rate for the arrangement, or under deeming the lesser of the couple and individual computations (20 CFR 416.1163(d)-(e)); md_paa.yaml Case 13 gives $511 - CA state supplement Case 11 and the CAPI mixed-couple case use a permanent resident with 39 quarters Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…es CAPI; otherwise deem The 416.1161(a)(2)-(3) exclusion covers income counted for a CAPI payment the spouse receives. When the spouse's income leaves no CAPI, it is deemed and the supplement is the lesser of the individual and couple computations (416.1163). The spouse test uses the tax-unit head or spouse. Case 15. 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>
…als; cite POMS SI 01320.430 D The CAPI-receipt branch always equalled the deemed lesser-of, so it is dropped; results are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Reply to review 5675568106. All items are addressed at head Paths:
The SA2 change. Your mask leaves out the CAPI spouse's half of a couple's income, but in the model the citizen's own
So for a citizen in an SSI couple computation with a spouse who fails the test (
The code takes max(own income, couple income − (couple standard − individual standard)). That is the lesser of the individual and couple totals, which equals own income whenever the spouse would receive CAPI. POMS SI 01320.430 D takes the lesser of each part separately. Using totals keeps CAPI at zero when the spouse's income is deemed, so only the SSI/supplement versus CAPI split can differ, not the couple's total; the code says so in a NOTE. The results:
Your Case 12 (undocumented sibling) and a new Case 13 (a married CAPI couple in the citizen's SPM unit) keep the $368.81 supplement. Only the SSI-supplement split in Case 11 still differs from SSA's; that is the joint-SSI part of #10481. Tests were not run locally; CI will run them. |
…t separates a CAPI couple Apply Pavel's SA5 fix (20 CFR 416.414(b)(3)) with Cases 14 and 15, name the state supplement change in the changelog (G11), and add a resource-test case for the dependent amount. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-countable-income # Conflicts: # policyengine_us/tests/policy/baseline/gov/hhs/medicaid/income/medicaid_optional_senior_or_disabled_countable_income.yaml # policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_countable_income.yaml # policyengine_us/variables/gov/hhs/medicaid/income/medicaid_optional_senior_or_disabled_countable_income.py
…ng case for CAPI Pavel's G10 on PR 10379: with the CAPI member as tax-unit head, the state supplement counts the citizen's own income, so CAPI deems (Cases 16 and 17). Case 18 is Case 13 above the deeming threshold. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PavelMakarchuk
left a comment
There was a problem hiding this comment.
Program Review
PR #10240, "Count income of aged, blind, or disabled people who fail SSI's noncitizen test" (hua7450). Round 2, incremental review of 77a9e5c9bc..2467454e79.
IDs: C = critical, SA = should address, G = suggestion. New items continue the numbering after the highest prior ID in each class.
Paths: V/ = policyengine_us/variables/gov/, T/ = policyengine_us/tests/policy/baseline/gov/, SSP = V/states/ca/cdss/state_supplement/ca_state_supplement.py, SSPT = T/states/ca/cdss/state_supplement/ca_state_supplement.yaml, CPT = T/states/ca/cdss/capi/ca_capi_person.yaml. Line numbers refer to the reviewed head.
Source Documents
- Reviewed head SHA: 2467454
- Mode: incremental (round 2)
- Scope: I isolated this PR's own work with
git diff 3b9dd3b34b HEAD(3b9dd3b34b, #10379's head, is an ancestor of the head) and compared it with the same diff at round 1 (f1bed699be..77a9e5c9bc). The PR's own work changed in 13 files:- Code:
SSP(+75: an immigration-test mask and a mixed-couple branch),md_paa_imputed_federal_ssi.py(C1),md_paa_countable_income.py(G1),ky_ssp_countable_income.py(a NOTE), andca_capi_person.py, where only a stale 3-line NOTE is removed. - Tests:
SSPTCases 11-15,T/states/ca/cdss/capi/ca_capi.yamlCases 9-10,CPTCases 16-18,md_paa.yamlCases 14-16, MSP Case 20, SC Case 8, medically needy Case 13, and one comment inis_optional_senior_or_disabled_for_medicaid.yaml. - Also the changelog fragment and the PR body.
- Main merges:
e3b765b1ceand5add59c8f0. Through #10379's merges, the branch also brings #10370, #10364, #10360, #10361, #10363 and #10373 frommain.
- Code:
- SSI law: 20 CFR 416.1161 (a)(2)-(3). Fetched this round: the exclusion covers public income-maintenance payments that the ineligible spouse "receives", and the income counted in figuring them. Also 416.2025 (b)(3), fetched: under deeming, the state supplement uses "the higher of the State supplementary rates for an eligible couple or an eligible individual". Also 416.1131, 416.1160(a), (d), 416.1163(d)-(e), 416.414(b)(3).
- POMS: SI 01320.400 B.1.e, SI 01320.430 D, SI 01320.141 A (checked in round 1).
- California: WIC 18938 (from #10482's text); CAPI MPP 49-005, 49-035, 49-055.32.
- Issues and comments: #10544 and #10545 (both opened 2026-10-29), the #10481 comment 6504203775, the #10243 comment 6504203026, and #10482 (body read; it does not mention
SSP).
Branch Status
- 36 commits ahead of
main(d983c32370) and 1 behind. The missing commit is a release commit (CHANGELOG.md,pyproject.toml,uv.lockand three other PRs' fragments), so it has no overlap. The PR is MERGEABLE; the requested changes block it. - CI at the head: 33 pass, 1 pending (
Contrib tests / Full Suite - Contrib (other-shard-1)). Wait for it or re-run it before merge. - #10379 moved after this head. Its head is now
7c380f66d6(6:22pm EDT), one commit past3b9dd3b34b, and that commit changes onlysource_conflicts/candidates.yaml. The body's own rule applies: merge #10379's final head here before the--oursstep. This is a process step, not a finding. - The #10379 fragment (
changelog.d/ca-capi-ssi-ssp-standard.fixed.md) is still here, and #10379 is still open, so the G6 step still applies at merge time.
Round 1 items
| ID | Status | Evidence |
|---|---|---|
| C1 | RESOLVED | md_paa_imputed_federal_ssi.py:50-60 applies vtr_factor to both the individual and the couple rate, as suggested, and :19 cites POMS SI 01320.400. md_paa.yaml Case 15 (:397): min(1,450 x 2/3 - 457.50, 967 x 2/3) = 509.17, PAA 1,478 - 509.17 = 968.83. Case 16 (:440): $30 imputed, PAA 102 - 30 = 72. Both pass. |
| SA1 | RESOLVED | #10370 is on main (e7f041c334) and merged here. Case 13 (is_medically_needy_for_medicaid.yaml:372) pins ssi_countable_income: [19_760, 29_760] (this PR's gate) and [true, false]. It passes. |
| SA2 | RESOLVED (author's correction accepted) | SSP:31-36, 85-87 masks the SPM-unit sum on SSI's immigration test. Case 12 (SSPT:469), the round-1 case unchanged, passes. The author is right that the round-1 fix alone was incomplete once #10379's unpaid-spouse rule landed: with only the mask, CPT Case 8 gives a supplement of $443.94 against $0, a mutation confirms it, and I withdraw that part of the suggested fix. The new mixed-couple branch (SSP:37-84) gives SSA's totals in SSPT Cases 11, 14 and 15 and in ca_capi.yaml Case 10 (hand-checked below). The author's claim holds: the lesser of the totals, min(I - own, C - couple), equals own income exactly when CAPI = C - I - spouse income > 0. Only the split between SSI and the supplement can differ from POMS D, not the couple's total. One gap in the branch's gate is new item SA4. |
| SA3 | RESOLVED | MSP Case 20 (msp_countable_income.yaml:431): 980 + (1,666.67 - 65)/2 = 1,780.83. MD Case 14 (md_paa.yaml:356): min(2.50, 487) = 2.50, PAA 995.50. SC Case 8 (integration.yaml:203): 23,760 > 1,804 x 12 = 21,648. All pass. |
| G1 | RESOLVED | md_paa_countable_income.py:48-54 has the suggested comment. #10544 is open with the $28 / $511 case. |
| G2 | RESOLVED | The NOTE at SSPT:413-423 and the ca_capi.yaml Case 10 NOTE use 416.1161(a)(2)-(3) and $855.81. The #10481 comment says the same. |
| G3 | RESOLVED | The body's Known limitations has the parent-deeming item. The #10243 comment has the TX example. |
| G4 | RESOLVED | The body names #10379 at 3b9dd3b34b (correct at this head; see Branch Status), #10364 as merged, and the full downstream list (IN RCAP, NE AABD, TX SSP, SBD and OC General Relief, CO OAP through ISM, and ssi_amount_if_eligible / ssi_pmv_amount). |
| G5 | RESOLVED | The merge section names #10332 with the period.this_year rule. |
| G6 | RESOLVED | The merge section says to delete the #10379 fragment after #10379 lands. |
| G7 | DEFERRED (accepted) | KY: the NOTE at ky_ssp_countable_income.py:40-42 is accurate, because ky_ssp_claim_type.py:30-34 requires is_ssi_eligible. KY passes 417/417. The shared immigration-test variable is left for a follow-up, with no issue number. That is acceptable for a suggestion. This round adds a third inline copy (SSP:31-36), so a tracking issue would help. |
| SC OSS (out of scope) | DEFERRED | #10545 is open. |
New findings
Critical
None.
Should address
SA4. The CA supplement's mixed-couple branch assumes that a spouse who fails SSI's noncitizen test can receive CAPI.
- Where:
SSP:49-56.spouse_fails_testuses~meets_ssi_immigration_test. When the spouse's income leaves room for CAPI, the branch then counts only the citizen's own income. - Rule: the branch's own comment (
SSP:37-43) cites 20 CFR 416.1161(a)(2)-(3). That exclusion covers a public income-maintenance payment that the ineligible spouse "receives". A spouse who cannot receive CAPI gets no exclusion, and the spouse's income is deemed under 416.1163 and 416.2025(b)(3). WIC 18938 bars undocumented people and TPS holders from CAPI (#10482). - Evidence (CA, January 2026; aged citizen with Social Security of $320 a month; aged undocumented spouse with a pension of $700 a month):
| Code | Citizen SSI + supplement | Spouse CAPI |
|---|---|---|
| Head (model's current CAPI eligibility) | 245.50 + 688.44 = 933.94 | 164.89 |
Head, spouse ca_capi_eligible_person: false (as after #10482) |
245.50 + 688.44 = 933.94 | 0 |
| Fix below, same input | 245.50 + 488.44 = 733.94 | 0 |
#10379 head 3b9dd3b34b, same input |
245.50 + 0 = 245.50 | 0 |
| Law: 700 > 497, so the income is deemed. SSI = min(994 - 300, 1,491 - 1,000) = 491; supplement = min(239.94, 607.83) = 239.94 | 730.94 | 0 |
- Today,
ca_capi_eligible_person(V/states/ca/cdss/capi/eligibility/ca_capi_eligible_person.py:15-22) is the same set as "aged, blind or disabled and fails the test". So the branch agrees with the model's own CAPI, and the couple's total ($1,098.83) is the same at both heads. - Once #10482 lands, the branch still excludes the spouse's income. The citizen is then overpaid $203 a month in this household, and by up to about $368 a month in general.
- The fix brings the citizen to $733.94. The $3 gap that remains is the joint SSI (#10481).
- #10482's proposed fix does not mention
SSP. - The microsimulation reach is zero today: round 1 found no CA residents in the group that fails the test.
- Why SA: the code uses a proxy for the legal test that its own comment states, and a tracked change turns the proxy into a wrong value. This is the same reason that made round-1 SA2 an SA.
- Fix (ran on a copy of the head:
T/states/ca/cdss459/459 with the new case,T/local/ca867/867,ruff format --checkpasses; no current case changes). ReplaceSSP:49-56with:
# The exclusion needs a spouse who can receive CAPI, so key on CAPI
# eligibility rather than on SSI's noncitizen test alone (issue 10482).
capi_eligible = person("ca_capi_eligible_person", period.this_year)
spouse_capi_eligible = (
person.marital_unit.sum(capi_eligible & head_or_spouse) > 0
)
in_mixed_couple = (
person("ssi_couple_computation_applies", period)
& meets_ssi_immigration_test
& spouse_capi_eligible
)This adds no dependency cycle: the round-1 head read ca_capi_eligible_person in SSP. Append to SSPT (the head fails it with 688.44; the fix passes):
- name: Case 16, 2026 citizen married to an aged spouse who fails SSI's noncitizen test and cannot receive CAPI, so the spouse's income is not excluded.
period: 2026-01
absolute_error_margin: 0.01
input:
people:
person1:
age: 72
immigration_status: CITIZEN
social_security: 3_840 # 320 a month
person2:
age: 70
immigration_status: UNDOCUMENTED
pension_income: 8_400 # 700 a month
# WIC 18938 bars undocumented people from CAPI (#10482).
ca_capi_eligible_person: false
marital_units:
marital_unit:
members: [person1, person2]
households:
household:
members: [person1, person2]
state_code: CA
living_arrangements_allow_for_food_preparation: true
output:
# The spouse receives no CAPI, so 20 CFR 416.1161(a)(2)-(3) does not
# apply and the spouse's 700 a month, above the 1,491 - 994 = 497
# threshold, is deemed (20 CFR 416.1163). The model's joint SSI gives each
# spouse (320 + 700 - 20) / 2 = 500: SSI 745.50 - 500 = 245.50 and a
# supplement of 1,233.94 - 245.50 - 500 = 488.44, 733.94 in all.
# NOTE: SSA pays min(994 - 300, 1,491 - 1,000) = 491 of SSI and 239.94 of
# supplement, 730.94 in all; the gap is the joint SSI (#10481).
ssi: [245.50, 0]
ca_state_supplement: 488.44
ca_capi_person: [0, 0]Alternative that also closes SA4: add SSP's mixed-couple gate to #10482's proposed fix list and put a NOTE at SSP:49.
Suggestions
G8. Cite the rules that the new branch applies.
- Where:
SSP:17-21. The tuple cites WIC 12200, 20 CFR 416.1160 and CAPI MPP 49-035. The branch also relies on 416.1161 (the exclusion) and 416.2025 (the supplement under deeming), which its comments name. - Fix: add
"https://www.law.cornell.edu/cfr/text/20/416.1161"and"https://www.law.cornell.edu/cfr/text/20/416.2025"to the tuple. Both resolve, and the second is "Optional supplementation: Countable income".
Investigated and cleared
- #10379's SA5 fix is carried correctly and is neither undone nor doubled.
ca_capi_person.py:30-49is the same as at3b9dd3b34b; this PR removes only the stale NOTE that was at the #10379 version's lines 105-107.- The separated path computes
own_alonefromssi_earned_incomeandssi_unearned_income. It never reads thessi_countable_incomethat this PR un-zeroes. ssi_income_deemed_from_ineligible_spousestays 0 for an aged, blind or disabled couple, becauseis_ssi_spousal_deeming_appliesis false for both spouses.- Probes give the same CAPI at both heads. #10379 Case 14 gives [62, 253.94]. A citizen with Social Security of $800 and an LPR spouse with a pension of $40 in a CA Title XIX facility gives [0, 42].
- In that second household, the citizen's total at the head (335.50 + 118.44 = 453.94) equals the law's 214 + 239.94. At #10379 it was 413.94. With a high-income facility spouse, the supplement is $0 at both heads, because the federal SSI ignores the CA-only facility input. That gap predates this PR.
- The separated path computes
- Role symmetry.
SSPTCase 14 with the LPR as tax-unit head gives the same 453.94 / 64.89 as Case 14 itself. At #10379 the swap gave 443.94 / 864.89, andCPTCases 16-17 pin the swap. - New cases are functional. Three mutations:
- Dropping the mixed-couple branch fails 8 cases:
CPT8, 9, 16 and 17,SSPT11, 14 and 15, andca_capi.yaml10. - Using own income only fails
SSPTCase 15. - Restoring the old deeming
defined_forfailsCPTCases 2-5, 7 and 18 and oneca_capi_income_eligible.yamlcase.
- Dropping the mixed-couple branch fails 8 cases:
- Periods in
SSP. YEAR booleans and enums are read withperiod.this_year.ssi_countable_incomeis read withperiod(÷12). The YEAR inputs passed to_apply_ssi_exclusionsare annual, and the result is divided by 12.ssi_couple_computation_appliesis MONTH. There are no hard-coded values. - Partner contract tests. None is edited, and 623/623 pass at the head.
Hand-checks of new cases (2026 FBR 994 / 1,491; SSI/SSP 1,233.94 / 2,098.83; state parts 239.94 / 607.83)
CPTCase 16: the joint SSI is 1,491 - 1,580 < 0, so SSI is 0. The citizen's own 1,580 exceeds 1,233.94, so the supplement is 0. The unpaid citizen is an ineligible spouse, so the income is deemed. Federal min(994, -89) gives 0. State min(239.94, 607.83 - 89) = 239.94. This matches the law: the LPR has no income to deem, and the citizen's own income bars SSI/SSP.CPTCase 17: state min(239.94, 607.83 - 489) = 118.83.CPTCase 18: (2,000 - 20 - 65)/2 = 957.50 is deemed, because 2,000 > 497. Federal min(994, 533.50) + state 239.94 = 773.44.SSPTCase 11: 1,335.81 - 235 - 480 = 620.81 (x 12 = 7,449.72). The law gives 487 + 368.81, the same 855.81 in all.SSPTCases 12 and 13: 1,335.81 - 487 - 480 = 368.81 (x 12 = 4,425.72).SSPTCase 14: 1,233.94 - 780 = 453.94; SSA gives 214 + 239.94. CAPI: 2,098.83 - 1,580 - 453.94 = 64.89.SSPTCase 15: max(0, 1,980 - 864.89) = 1,115.11, so the supplement is 118.83. The law gives federal 0 and state min(239.94, 118.83) = 118.83. CAPI is 0.ca_capi.yamlCase 10: 2,057.83 + 257.74 = 2,315.57 (x 12 = 27,786.84). CAPI: 2,315.57 - 980 - 855.81 = 479.76 (x 12 = 5,757.12).
Tests run
All at the head (2467454e79), one folder at a time, with the snapshot package confirmed on the import path:
T/ssa/ssi: 246 passed.T/states/ca/cdss: 458 passed.T/hhs/medicaid: 835 passed.T/hhs/medicare/savings_programs: 92 passed.T/states/md/dhs: 129 passed.T/states/sc/scdhhs: 32 passed.T/states/ky/dcbs: 417 passed.T/local/ca: 867 passed.tests/policy/baseline/partners: 623 passed.- SA4 fix on a copy:
T/states/ca/cdss459 passed (with Case 16),T/local/ca867 passed. The head fails Case 16 (688.44 against 488.44). - Mutations: 3 runs; results under Investigated and cleared. All copies are deleted. The probe scripts are in
b3-pr10240-ssi-noncitizen-income-scratch/probes/.
Verdict
REQUEST_CHANGES: ten of the eleven round-1 items are resolved, including C1 and SA1-SA3, and G7 is acceptably deferred. One new should-address item is open (SA4, the mixed-couple gate on CAPI eligibility). Either the one-line fix with Case 16, or a #10482 entry with a NOTE, closes it. G8 is optional.
…izen-countable-income # Conflicts: # policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/is_medicaid_eligible.yaml # policyengine_us/tests/policy/baseline/gov/hhs/medicaid/income/medicaid_optional_senior_or_disabled_countable_income.yaml # policyengine_us/tests/policy/baseline/gov/states/ca/cdss/capi/ca_capi.yaml # policyengine_us/tests/policy/baseline/gov/states/ca/cdss/capi/ca_capi_person.yaml # policyengine_us/tests/policy/baseline/gov/states/ca/cdss/capi/eligibility/ca_capi_income_eligible.yaml # policyengine_us/variables/gov/states/ca/cdss/capi/ca_capi_person.py # source_conflicts/candidates.yaml
…ibility; cite 416.1161 and 416.2025 Pavel's SA4 on PR 10240: the 416.1161(a)(2)-(3) exclusion needs a spouse who can receive CAPI, so a spouse who fails SSI's noncitizen test but is barred from CAPI (WIC 18938) has income deemed (Case 16). G8 adds the two rules the branch applies to the reference tuple. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Reply to review 5711668382. Both items are addressed at head Paths:
The
The merge needs no Tests were not run locally; CI will run them. Update (head |
…izen-countable-income # Conflicts: # policyengine_us/tests/policy/baseline/gov/states/ca/cdss/capi/ca_capi.yaml
PavelMakarchuk
left a comment
There was a problem hiding this comment.
Program Review
PR #10240, "Count income of aged, blind, or disabled people who fail SSI's noncitizen test" (hua7450). Round 3, incremental review of 2467454e79..c1602d488f.
IDs: C = critical, SA = should address, G = suggestion. New items continue the numbering after the highest prior ID in each class.
Paths: V/ = policyengine_us/variables/gov/, T/ = policyengine_us/tests/policy/baseline/gov/, SSP = V/states/ca/cdss/state_supplement/ca_state_supplement.py, SSPT = T/states/ca/cdss/state_supplement/ca_state_supplement.yaml, CAPIT = T/states/ca/cdss/capi/ca_capi.yaml, CPT = T/states/ca/cdss/capi/ca_capi_person.yaml. Line numbers refer to the reviewed head.
Source Documents
- Reviewed head SHA: c1602d4
- Mode: incremental (round 3)
- Scope: #10379 is now on
main, sogit diff 5a23581cca HEAD(the merge base) is the PR's own work. I compared it with the round-2 own diff (3b9dd3b34b..2467454e79). The PR's own work changed in these places:SSP: two references (:20-21) and the mixed-couple gate (:51-61).SSPT: new Case 16 (:629);living_arrangements_allow_for_food_preparation: falsein Cases 10-13 (:398,:454,:505,:555); the "defaults to false" comments in Cases 10 and 11 now say "without cooking facilities".CAPIT: the same input in Case 10 (:275). Case 5 now hasmain's #10519 value and comment, less the obsolete "(until PR 10240 ...)" clause.T/hhs/medicaid/eligibility/is_medicaid_eligible.yaml: this PR's Cases 17-19 are now Cases 21-23.changelog.d/ca-capi-ssi-ssp-standard.fixed.mdis deleted (round-1 G6).- The PR body: the SA4 text, the merge section and a "Review round 2" table.
- Main merges:
0b909d0d77(with #10379 as7f736e8f3a, #10386 and #10391) andc1602d488f(with #10519 and #10546).
- SSI law, fetched this round: 20 CFR 416.1161(a)(2) excludes "public income-maintenance payments" that the ineligible spouse receives, and the income counted in figuring them. 20 CFR 416.2025(b)(3): under deeming, the excess income comes off "the higher of the State supplementary rates for an eligible couple or an eligible individual", capped at the individual amount. Also 416.1163 (deeming) and the POMS SI 01320.400 threshold, as in round 2.
- California: WIC 18938 (through #10482); 2025-2026 SSP standards in
policyengine_us/parameters/gov/states/ca/cdss/state_supplement/payment_standard/(aged_or_disabled/amount/*,allowance/food/*). - Issues and PRs: #10482, #10481, #10549, #10544 and #10545 are open. #10146 is an open PR that changes
SSPandca_capi_person.py.
Branch Status
- The PR is 39 commits ahead of
main(7a58b4fa2e) and 34 behind. The 34 commits change no PR-scope file and no file underV/states/caorV/ssa/ssi, so they cannot conflict. GitHub reports MERGEABLE. The merge is blocked only by the changes-requested review. - CI at the head: 33 pass. The last check finished on 2026-10-30 at 5:58pm EDT.
- Merge order: #10146 rewrites the
SSPcountable-income line that this PR changes. The PR body names it. Whichever PR merges second must re-mergemain.
Round 2 items
| ID | Status | Evidence |
|---|---|---|
| SA4 | RESOLVED | SSP:51-61 is the suggested fix word for word. It reads ca_capi_eligible_person with period.this_year, sums it over head and spouse in the marital unit, and gates in_mixed_couple on it. SSPT Case 16 (:629) is the suggested case, as written, and it passes. A mutation that restores the old ~meets_ssi_immigration_test gate fails only Case 16 (688.44 against 488.44; 469 others pass). Probe on the round-2 household: with the model's own CAPI eligibility, the citizen still gets 245.50 + 688.44 and the spouse gets CAPI of 164.89 (couple total 1,098.83, as at the prior head). With the spouse's ca_capi_eligible_person: false, the citizen gets 245.50 + 488.44 and CAPI is 0. The body now explains the CAPI-eligibility key and Case 16. |
| G8 | RESOLVED | SSP:20-21 add the Cornell 416.1161 and 416.2025 links. Both return 200. Their titles are "Income of an ineligible spouse, ineligible parent, and essential person for deeming purposes" and "Optional supplementation: Countable income". The quoted text above supports the branch. |
| G7 (round 1) | DEFERRED (accepted) | No change. SSP:33-38 is still an inline copy of SSI's immigration test, and no tracking issue exists. It is a suggestion, so it does not block. |
| SC OSS (round 1, out of scope) | DEFERRED | #10545 is open. |
Round-1 items C1, SA1-SA3 and G1-G6 were resolved in round 2. The own-diff comparison shows that the code and cases that they cover are unchanged at this head. The only exception is G6, which is now complete (the fragment is deleted).
New findings
Critical
None.
Should address
None.
Suggestions
G9. CAPIT Case 9 still describes the no-cooking standard, but the case now uses the cooking default.
- Where:
CAPIT:242-243, "which is at most the 1,335.81 SSI/SSP no-cooking standard". The case sets noliving_arrangements_allow_for_food_preparation, so after #10519 the standard is 1,206.94 a month. - The expected value (
ca_capi: 0) is right either way, because 1,980 exceeds both standards. The words "at most" keep the comment true, but a reader can think that the no-cooking standard applies. Case 9 is the only case added by this PR that relies on the default. - Fix (optional): "1,980 a month exceeds CAPI's individual payment standard, the 1,206.94 SSI/SSP standard with cooking facilities (1,335.81 without), so CAPI pays nothing."
Investigated and cleared
- The merge results.
0b909d0d77: the four #10379 files that this PR changes (CAPIT,CPT,eligibility/ca_capi_income_eligible.yaml,ca_capi_person.py) kept this PR's side. Theirmainversions equal3b9dd3b34b(git diff 3b9dd3b34b 7f736e8f3aon those four files is empty), so the author's claim holds.source_conflicts/candidates.yamlequalsmain. The two Medicaid test files keep all ofmain's cases, and this PR's cases moved without other changes.c1602d488f: the one conflict,CAPITCase 5, takesmain's 14,807.28 (1,233.94 x 12) and #10519's comment. The PR removes the "(until PR 10240, SSI also zeroes this income ...)" clause. That is correct, because this PR un-zeroes that income, and $83.33 a month of earnings is still within the $20 + $65 exclusions.SSPTmerged without a conflict, with the four new inputs and two comment rewrites.
- The five cases that relied on the old cooking default. The author pinned all five to
false, and each pin is needed. A copy without the pins fails each of them (andmain's Cases 8 and 9, which also setfalse):SSPTCases 10, 11 and 12: payment standard 14,483.28 against 16,029.72.SSPTCase 13: supplement 2,879.28 against 4,425.72.CAPITCase 10: supplement 5,903.28 against 7,449.72.- Values: 2025 aged individual 1,206.94 + 128.87 = 1,335.81, and couple 2,057.83 + 257.74 = 2,315.57, from the parameter files. With the pin, every expected value is the same as at round 2, where I hand-checked it. The comments now say "without cooking facilities" and no longer name a default.
- The #10519 PR body, written against this PR's older head
77a9e5c9bc, lists four affected cases and 7,329.72 to 5,783.28 for this case. At this head,CAPITCase 10's supplement is 7,449.72 (620.81 x 12). Without the pin, the model gives 5,903.28 (491.94 x 12), and CAPI 4,210.68 (2,057.83 - 980 - 235 - 491.94 = 350.89 a month).SSPTCases 12 and 13 move too, so five cases move.
- #10546 (blind rates): no case added by this PR has a blind person without cooking facilities. The blind cases in
CPTsettrue. So #10546 changes no value in this PR. _ca_capi_ssi_ssp_standard.pychanged onmain(#10519's NOTE and #10546's blind couple rate).SSP's mixed-couple branch reads it throughca_capi_ssi_ssp_standard. The aged and disabled amounts that the PR's cases use are unchanged, andT/states/ca/cdsspasses.- The new gate.
ca_capi_eligible_personreads onlyis_ssi_aged_blind_disabled,immigration_statusandis_ssi_qualified_noncitizen, so it adds no cycle.- It is false for a citizen or a qualified noncitizen, so the marital-unit sum counts only the spouse.
- With default inputs, an aged, blind or disabled spouse who fails the test is CAPI-eligible. So the gate selects the same people as the old one, and the microsimulation effect is zero today.
- When #10482 bars undocumented people and TPS holders, those spouses move to the deeming path with no further edit.
ruff format --checkpasses onSSP.
- Case 16 hand-check (2026: FBR 994 / 1,491; aged individual SSP standard 1,233.94; state parts 239.94 / 607.83). Joint SSI: (320 + 700 - 20) / 2 = 500 each, so SSI is 745.50 - 500 = 245.50. The spouse is not CAPI-eligible, so the citizen's countable income is 500, and the spouse's income is left out of the sum. Supplement: 1,233.94 - 245.50 - 500 = 488.44. CAPI is [0, 0]. The NOTE's SSA amounts are right: federal min(994 - 300, 1,491 - 1,000) = 491, and state min(239.94, 607.83) = 239.94, so 730.94 in all. The $3 gap is the joint SSI (#10481).
- Partner contract tests: this PR edits none, and 623/623 pass at the head.
Tests run
All tests ran at the head (c1602d488f), one process at a time. The snapshot package was confirmed on the import path.
- policyengine-core 3.33.2, from the snapshot's
uv.lock. T/states/ca/cdss(CA state supplement and CAPI): 470 passed.T/ssa/ssi: 246 passed.T/usda/snap/income/snap_unearned_income_state_ssi_supplements.yaml: 4 passed.tests/core/test_ssi_state_supplement_couple_invariants.pyandtest_ssi_state_supplement_medicaid_dependency.py(pytest): 29 passed.T/local/ca: 867 passed.- The three Medicaid files that changed through the merges (
is_optional_senior_or_disabled_for_medicaid.yaml,is_medicaid_eligible.yaml,medicaid_optional_senior_or_disabled_countable_income.yaml): 98 passed. tests/policy/baseline/partners: 623 passed.- Mutations on copies, now deleted:
- The old gate: 1 failed (Case 16), 469 passed.
- The five pins removed: 7 failed (the five PR cases and
main'sSSPTCases 8 and 9).
Verdict
APPROVE: SA4 is resolved with the suggested gate and Case 16, and G8 is resolved. The merges with #10379, #10519 and #10546 keep every expected value correct, and all five no-cooking cases are pinned correctly. No critical or should-address item is open. G9 (one stale comment in CAPIT Case 9) is optional, and G7 stays acceptably deferred.
…0240 and PolicyEngine#10378) into ca-medi-cal-asset-limit-2027 Resolves the conflicts from PolicyEngine#10374's squash: keeps main's medically needy files, adds this PR's SB 164 references and 2027-07-01 rows to the asset limits, and appends this PR's medically needy cases as Cases 31-36. medicaid_medically_needy_income_limit.yaml is main's, so it leaves this PR's diff. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main's #10240 and this branch each appended cases to the end of two Medicaid YAML files. Keep both sets of cases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
medicaid_optional_senior_or_disabled_countable_incomeandssi_countable_incomereturned $0 for anyone who was notis_ssi_eligible_individualoris_ssi_eligible_spouse.is_ssi_eligible_individualincludes SSI's citizen and qualified-noncitizen test, including the 40-quarter rule for lawful permanent residents. An aged, blind, or disabled person who failed only that test therefore had all income ignored by every program that reuses SSI methodology.Examples on
main(2025):mainis_medicaid_eligibletrueFix
The zero was meant for the deeming role: a spouse who is not aged, blind, or disabled has their income deemed to the other spouse (20 CFR 416.1163), so their own countable income must be zero to avoid counting it twice. This PR gates that zero on
is_ssi_aged_blind_disabledinstead of SSI eligibility status:medicaid_optional_senior_or_disabled_countable_income: Medicaid's ABD financial methodology follows SSI's (42 CFR 435.601) and counts the applicant's own income whether or not they meet SSI's noncitizen rules.ssi_countable_income: the medically needy path (is_medically_needy_for_medicaid) reads this variable, so it had the same bypass.defined_foronis_ssi_spousal_deeming_applies,ssi_income_deemed_from_ineligible_spouseandmedicaid_optional_senior_or_disabled_income_deemed_from_ineligible_spousemoves fromis_ssi_eligible_individualtois_ssi_aged_blind_disabled. Without this, a noncitizen married to a working spouse who is not aged, blind, or disabled would have the spouse's income ignored.For citizens and qualified noncitizens nothing changes: the old and new gates differ only for aged, blind, or disabled people who fail SSI's noncitizen test. This PR does not touch any income limit or limit parameter.
Downstream effects
uncapped_ssiisdefined_for = "is_ssi_eligible", which still applies the noncitizen test.ssi_amount_if_eligibleandssi_pmv_amountchange for this group, butssidoes not. New SSI-based supplements onmain(the shared_ssi_state_supplementhelper for Ohio, Oklahoma and New Jersey, and Maryland MEAP) gate on SSI eligibility or receipt and are unchanged.mainits income test never reduces the benefit. With this PR it counts income; Pay California CAPI from the SSI/SSP standard per person, with spouse-to-spouse deeming #10379 makes CAPI's standard, couples and deeming match the law first.ca_capi_eligible_person; WIC 18938 bars undocumented people and TPS holders, Exclude undocumented and TPS immigrants from California CAPI eligibility (WIC 18938, MPP 49-020) #10482) and does, none of the CAPI-counted income is deemed (20 CFR 416.1161(a)(2)-(3)), so the supplement counts the recipient's own countable income rather than half of the couple's. If the spouse's income leaves no CAPI, it is deemed and the supplement is the lesser of the individual and couple totals (Case 15). POMS SI 01320.430 D compares the federal and state parts separately; the totals keep CAPI at zero there, so only the split between the supplement and CAPI can differ. A spouse who cannot receive CAPI gets no exclusion, so that spouse's income is deemed (Case 16). This gives SSA's totals in Cases 11, 14 and 15 and in Pay California CAPI from the SSI/SSP standard per person, with spouse-to-spouse deeming #10379's Cases 8 and 9, where the citizen's own income leaves no supplement and CAPI deems. The model's SSI is still the couple computation (Treat an aged, blind or disabled spouse who fails SSI's noncitizen test as an ineligible spouse, and base CAPI's mixed couple on actual SSI/SSP receipt #10481).receives_ssi, for example under an exception the model does not encode) gets the SSI that SSA pays: the individual rate for the living arrangement less own income, and under spouse deeming the lesser of that and the couple computation (20 CFR 416.1163(d)-(e)). In another person's household the one-third reduction applies to the couple rate as well as the individual rate (20 CFR 416.1131; POMS SI 01320.400 B.1.e), and a medical treatment facility resident gets the $30 rate. Their PAA is unchanged frommain($511 a month in the test cases with and without a working spouse). Unchanged for citizens and qualified noncitizens.ssi_in_kind_support_and_maintenance, for SSI reporters. CA San Bernardino and Orange County general relief read whetherca_capi > 0. CO SSP (clients outside an SSI couple computation), Idaho AABD, NE AABD, TX SSP, and Indiana RCAP and SAPN readssi_countable_incomebut require SSI receipt (ssi > 0orreceives_ssi; Indiana RCAP also admits Medicaid enrollment, and SAPN requires both). They change only for a person who reports SSI receipt while failing the model's noncitizen test: that person's own countable income now reduces the payment. Indiana RCAP also admits Medicaid-enrolled noncitizens, whose payment can fall (in one review example from $1,501.06 to $1,021.06 a month). No YAML or partner case has such a person.Merge order and overlaps
main(squash-merged 2026-10-30 as7f736e8f3a) and merged here. The four Pay California CAPI from the SSI/SSP standard per person, with spouse-to-spouse deeming #10379 files this PR changes kept this PR's side, because theirmainversions equal Pay California CAPI from the SSI/SSP standard per person, with spouse-to-spouse deeming #10379's3b9dd3b34b, which this branch already had;source_conflicts/candidates.yamltookmain's side; andchangelog.d/ca-capi-ssi-ssp-standard.fixed.mdis deleted, becausemain's release already compiled it.main(merged 2026-10-29), so the medically needy test uses the individual or couple;is_medically_needy_for_medicaid.yamlCase 13 checks that a noncitizen dependent parent's pension does not count against the head.ssi_countable_income, the spousal-deeming variables and the Medicaid countable-income variables into monthly twins that keep the old SSI-eligible gates. Whichever of Limit SSI spousal-deeming child allocations to the couple's co-resident children #10146 and this PR merges second ports the aged/blind/disabled gate (is_ssi_aged_blind_disabled, read withperiod.this_yearfrom a MONTH formula) into these five places:ssi_countable_income_monthly: theis_ssi_eligible_individual | is_ssi_eligible_spousegate.medicaid_optional_senior_or_disabled_countable_income_monthly: the same gate.is_ssi_spousal_deeming_applies_monthly:is_ssi_eligible_individual & (...).ssi_income_deemed_from_ineligible_spouse_monthly:where(is_ssi_eligible_individual, result, 0).medicaid_optional_senior_or_disabled_income_deemed_from_ineligible_spouse_monthly:where(is_ssi_eligible_individual, ...).The three annual deeming wrappers merge without a conflict marker, so check them by hand. This PR's YAML cases fail if any gate is missed.
ssi_countable_incomeMONTH without touching the gate lines, so it merges without a conflict marker. Whichever merges second readsis_ssi_aged_blind_disabledwithperiod.this_year, as for the Limit SSI spousal-deeming child allocations to the couple's co-resident children #10146 twins.main(merged 2026-10-29) and merged here.medicaid_optional_senior_or_disabled_countable_incomekeeps Update Medicaid aged, blind and disabled pathway disregards and asset limits (CA, CT, MN, MO, AR, OK, SC) #10364's California deductions and this PR's aged/blind/disabled gate. Inmedicaid_optional_senior_or_disabled_countable_income.yamlthis PR's two cases follow Update Medicaid aged, blind and disabled pathway disregards and asset limits (CA, CT, MN, MO, AR, OK, SC) #10364's, and inmsp_countable_income.yamlthis PR's case is now Case 20, after Apply state Medicare Savings Program asset limits and income exclusions (WA, CA, MN, IL, MS) #10360's Cases 6-19.mainand merged here: this PR's twomedicaid_optional_senior_or_disabled_countable_income.yamlcases follow Limit Arkansas's Medicaid aged, blind and disabled pathway to aged people, and apply Maine's savings exclusion and couple disregard #10386's, and itsis_medicaid_eligible.yamlcases are now Cases 21-23, after Correct Rhode Island pregnancy Medicaid routing and postpartum coverage #10391's Cases 17-20. Limit SSI spousal-deeming child allocations to the couple's co-resident children #10146 still rewrites theca_state_supplementcountable-income line this PR changes.is_medically_needy_for_medicaid.yaml: this PR's cases follow Count blind people and use the individual or couple in the Medicaid medically needy test #10370's (Cases 11-13). Update Medicaid medically needy limits and switch on AR, IA, IL, NJ and ND #10374 and Lower California's non-MAGI Medi-Cal asset limit to $21,000 / $31,000 on July 1, 2027 #10375 append to the same file; keep all cases and renumber.Tests
Regression cases in the variable-named files:
medicaid_optional_senior_or_disabled_countable_income.yaml: single LPR with 20 quarters; mixed couple with deemed spouse wagesmedicaid_optional_senior_or_disabled_income_deemed_from_ineligible_spouse.yaml: mixed couplessi_countable_income.yaml: single LPR (SSI stays $0); mixed couplessi_income_deemed_from_ineligible_spouse.yaml: deeming applies to the noncitizen spouseis_medically_needy_for_medicaid.yaml: an over-limit case, a case that qualifies after spenddown, and a noncitizen dependent parent's pension that does not count against the headis_medicaid_eligible.yamlCases 21-23: the MA and DC examples above, plus a low-income LPR who stays eligibleca_capi.yaml: an aged LPR without 40 quarters whose $24,000 pension leaves no CAPI; a mixed couple with income whose CAPI the model now computes ($479.76 a month in 2025)ca_capi_person.yamlCases 16 and 17: Pay California CAPI from the SSI/SSP standard per person, with spouse-to-spouse deeming #10379's Cases 8 and 9 with the CAPI member as tax-unit head; the supplement counts the citizen's own income, so the citizen is paid nothing and CAPI deems ($239.94 and $118.83 a month); Case 18: a spouse who is not aged, blind or disabled earns $2,000 a month, above the deeming threshold, so CAPI is $773.44msp_countable_income.yamlCase 20: spouse wages are deemed to a permanent resident without 40 quarters; SC OSSintegration.yamlCase 8: a counted pension above the net income limitca_state_supplement.yamlCase 10: an aged citizen SSI recipient sharing an SPM unit with a CAPI-eligible sibling keeps the citizen-alone supplement ($368.81 a month in 2025); Case 11: an aged citizen married to a CAPI-eligible spouse, the citizen's own income counted ($620.81 a month); Case 12: an undocumented sibling who is not CAPI-eligible does not reduce the supplement; Case 13: nor does a married CAPI couple in the unit; Case 14: a mixed couple where both have income ($453.94 supplement, $64.89 CAPI); Case 15: a CAPI spouse whose $2,000 pension leaves no CAPI, so it is deemed ($118.83 supplement); Case 16: an undocumented spouse who cannot receive CAPI, whose $700 pension is deemed ($488.44 supplement)md_paa.yamlCase 11: an aged LPR without 40 quarters in CARE Home Level D with a working spouse gets $998 a month ($1,478 need less the person's own $480); Case 12: the same person reporting SSI receipt, with no spouse, gets the imputed SSI ($967 − $480 = $487; PAA $511); Case 13: with a working spouse, SSA pays min($1,450 − $947.50, $967 − $480) = $487, so PAA stays $511; Cases 14-16: the couple computation binds ($2.50 imputed), the one-third reduction on the couple rate ($509.17), and the $30 medical-facility ratessi_countable_incomeand deeming inputs this PR now computes are removed where the case has the underlying income; the remaining pins say they isolate the CAPI formulaca_sf_caap.yamlCase 15 is updated to the expectations its own comment predicted once CAPI counted income (budget unit size 2, countable income $2,000, grant $0).No partner contract test (
tests/policy/baseline/partners/**) is affected. I did not run the tests locally; CI will validate them.Local reviews
The 2026-10-19 review found six critical downstream defects that the old $0 had masked; a second review on 2026-10-26 checked the fixes and the main merge.
ca_state_supplement.py)Review round 1 (2026-10-27)
main, merged here); Case 13ca_capi_person.yamlCases 16-18Review round 2 (2026-10-30)
ca_capi_eligible_person;ca_state_supplement.yamlCase 16ca_state_supplement's referencesca_capi.yamlCase 5 takes #10519's $14,807.28 (cooking facilities by default);ca_capi.yamlCase 10 andca_state_supplement.yamlCases 10-13 setliving_arrangements_allow_for_food_preparation: false, keeping their no-cooking valuesKnown limitations (not changed here)
ssi_claim_is_joint,is_ssi_eligible_spouse) ignores the noncitizen test. A citizen married to an aged, blind, or disabled noncitizen who fails the test is treated as an eligible couple, not as an eligible individual with an ineligible spouse (Apply 416.1163(e)(2) to deemed SSI and identify SSI couples by marriage, not tax roles #10141 identifies SSI couples by marriage but keeps the aged/blind/disabled test). Inca_state_supplement.yamlCase 11 the model pays the citizen $235 SSI and $620.81 supplement; SSA pays $487 + $368.81. The total, $855.81, and CAPI ($479.76) are the same, because SSA deems none of the CAPI spouse's income (20 CFR 416.1161(a)(2)-(3); POMS SI 01320.141 A). Where the model's joint SSI exceeds the citizen's individual amount, the citizen's total is too high. Treat an aged, blind or disabled spouse who fails SSI's noncitizen test as an ineligible spouse, and base CAPI's mixed couple on actual SSI/SSP receipt #10481 tracks the fix.is_ssi_ineligible_parent) also keys on aged, blind or disabled status, so such a parent who is not eligible for SSI deems nothing to an eligible child (20 CFR 416.1160(d), 416.1165). Added to Fix SSI spousal deeming for in-kind support and for aged, blind or disabled spouses who are not eligible #10243.ssi_amount_if_eligible, which is the couple rate whenever spouse deeming applies, with no 20 CFR 416.1163(e)(2) cap (Apply 416.1163(e)(2) to deemed SSI and identify SSI couples by marriage, not tax roles #10141 adds it for SSI), and their PAA countable income includes the deemed income. This is unchanged here (Maryland PAA: drop spouse deeming and cap the imputed SSI for citizens (COMAR 07.03.07.07, .09A) #10544).axiom: TheAxiomFoundation/rulespec-us#1940 queued
🤖 Generated with Claude Code