Skip to content

Add source-conflict candidates for SSP, Maryland CCS and NY HEAP - #10444

Merged
MaxGhenis merged 2 commits into
mainfrom
source-conflict-candidates-ssp-md-ny
Oct 25, 2026
Merged

MaxGhenis merged 2 commits into
mainfrom
source-conflict-candidates-ssp-md-ny

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Adds 25 candidates to source_conflicts/candidates.yaml. Each is a source conflict that code on main records but that has no candidate and no register entry. Reviewers found them while reviewing #10351 and #10352. The candidates cover:

Every candidate is state: unreviewed and carries a note.

Scope. For the seven state supplements, these are the conflicts in the lists posted on the rulespec-us encoding issues that concern code on main:

Most are recorded in a code NOTE, a comment or a documentation string. Three have no comment, but the code on main implements one reading:

  • us-ny:ssp-couple-facility-entry-month
  • us-ny:ssp-personal-needs-income-test
  • us-sd:ssp-independent-payment-ssi-receipt

The Virginia list's "authority for January-June 2026" note says it is not a conflict, so it is not a candidate.

Some NOTEs and listed conflicts describe a limitation, a federal model bug, a silent source or a superseded source rather than two current sources that disagree. They are left out:

  • New York 398-2.1(l) active receipt.
  • Oklahoma cafeteria-plan wages: the code follows the state rule.
  • Oklahoma TANF exclusions: not modelled, to avoid a cycle.
  • Ohio SSI counts interest and dividends from countable resources, which 42 USC 1382a(b)(23) excludes #10079 and SSI: deemed benefit is capped at the individual rate instead of the no-deeming amount, and couples are identified by tax roles #10138.
  • Pennsylvania move-month split for a mixed-arrangement couple. POMS SI 02005.030 G.1 averages "unless the State provides specific couples multi-category levels", and Chart 35 note 2 is Pennsylvania's specific rule, so the sources agree. The shared helper's averaging is a model limitation, documented in pa_ssp_living_arrangement.
  • South Dakota's $60 personal needs exclusion for assisted living and foster care. SSA's January 2011 description matched 67:46:06:05 as in effect from 2004; 41 SDR 93 (effective December 3, 2014) limited the deduction to nursing and intermediate care facilities. That is a superseded source, not a current conflict.
  • South Dakota: the sources are silent on a recipient whose spouse does not qualify.
  • South Dakota: the ssi_claim_is_joint input note.
  • South Dakota: the month only one spouse enters care. sd_ssp_care.py uses the entering spouse's own income and resources where 67:46:04:10(7) and 67:46:05:42(7) count the couple's; the NOTE records it as not modelled.

New candidates (25).

Candidate follows Code Conflict
us-ny:ssp-couple-facility-entry-month unknown ny_ssp_care_setting.py, ny_ssp.py 18 NYCRR 398-4.4(c) first-of-month arrangement against POMS SI NY01415.026 codes D and E
us-ny:ssp-personal-needs-five-dollar-facilities statute ny_ssp.py, ny_ssp_care_setting.py, ny_ssp_living_arrangement.py, two personal_needs parameters The OTDA 2026 chart's $5 for "other medical facilities" against SSL 209(2-a) and 398-3.4
us-ny:ssp-personal-needs-income-test unknown ny_ssp.py 398-3.2(d)'s no-other-income test against SSL 209(2-a), which states none but delegates to regulations
us-ny:ssp-spousal-deeming-subtraction conflicting-source ny_ssp.py SSL 209(4) against 398-2.1(ac) and 398-4.4(b) read to subtract once (literally they subtract twice); POMS SI 01320.430 D is a third reading
us-oh:rss-couple-income-standard unknown oh_rss_countable_income.py, oh_rss.py 5160:1-5-01(E)(2) and 03.5(B)(2), the SSI couple rate, against twice the $1,800 RSS standard
us-oh:rss-one-eligible-spouse-income-standard unknown oh_rss_countable_income.py, oh_rss.py 5160:1-5-01(E)(3), the SSI individual rate, against the RSS standard
us-oh:rss-one-eligible-spouse-resources unknown oh_rss.py 5160:1-5-01(E)(3), own resources against $2,000, against 5160:1-3-05.1(B)(9)(b) and 05.20(E), combined resources against $3,000
us-oh:rss-recipient-of-ssi-or-social-security conflicting-source oh_rss.py ORC 5119.41(A)'s description of recipients against the rules' criteria
us-ok:ssp-ineligible-child-allocation unknown ok_ssp_spouse_child_allocation.py, _ok_ssp_income.py, child_allocation.yaml, ssi_ineligible_child_allocation.py Appendix C-1 VIII.C's $498 against 20 CFR 416.1163(b)(1)'s $497
us-ok:ssp-ineligible-spouse-definition unknown ok_ssp.py OAC 340:15-1-2 against 317:35-5-42(k)(1)
us-ok:ssp-minor-income-limit unknown ok_ssp.py 340:15-1-4(9)(B)(iii) and C-1, below the FBR, against 340:15-1-5(c)(6), below the SSP standard
us-ok:ssp-presumed-maximum-value-with-ineligible-spouse unknown _ok_ssp_income.py, ssi_pmv_amount.py 317:35-5-42(b)(8)(D) against POMS SI 01320.150 B.1.a
us-pa:ssp-care-home-levels unknown amount/individual.yaml, amount/couple.yaml 55 Pa. Code §299.37's 2011 care-home levels against POMS K.2 and Handbook 387 Appendix A
us-pa:ssp-supplement-for-personal-needs unknown amount/individual.yaml, pa_ssp.py LTC Handbook 450.243's $22.10 against Appendix A's 2026 note, $15.00
us-ri:ssp-category-d-without-federal-ssi unknown ri_ssp.py 218-RICR-20-00-5 state-only payment against 20 CFR 416.2025(b)(3), 416.2020(c) and POMS L.2
us-ri:ssp-federal-administration-after-2010 conflicting-source ri_ssp.py R.I. Gen. Laws §40-6-27(a)(2) against §5.1.1.B and POMS L
us-ri:ssp-supportive-residential-care-category not-modelled ri_ssp_living_arrangement.py §40-6-27(a)(1)(vii)'s $300 category against §5.6 and SSA's levels
us-ri:ssp-title-xix-couple-amount unknown amount/couple.yaml, ri_ssp.py, _ssi_state_supplement.py §40-6-27(a)(3)'s per-individual $45 against §5.6.A's "N/A" couple cell and SSA's pre-2011 doubled couple rate
us-sd:ssp-couple-other-income unknown sd_ssp_independent.py POMS SI DEN01415.011 B.5.b against ARSD 67:12:14:03(2)
us-sd:ssp-independent-payment-ssi-receipt conflicting-source sd_ssp_independent.py SDCL 28-5A-1's "would be eligible" class against ARSD 67:12:14:02(1)
us-sd:ssp-joint-entry-resource-limit-after-entry-month unknown sd_ssp_care_joint_entry.py, sd_ssp_care.py ARSD 67:46:05:30 against 05:42(8) and 04:10(6)
us-va:ag-entry-month-spouse-at-home unknown va_ag_countable_income.py, va_ag_certified.py AG Manual Chapter B §6 against Chapter D §5 and 20 CFR 416.1163(f)(2)
us-va:ag-student-earned-income-exclusion unknown va_ag_countable_income.py AG Manual Chapter H §2.2 against Chapter D and 20 CFR 416.1112(c)(3)
us-md:ccs-copay-flat-schedule unknown copay/weekly_amount.yaml, md_ccs_weekly_copay.py Educ. §9.5-111(d)(4) cap and MSDE's May 2022 flat maximum against COMAR 13A.14.06.12's regional tables
us-ny:heap-other-income-catch-all unknown income/sources/unearned.yaml HEAP Manual D.12(a)(38) against the FFY 2026 plan's unchecked "Other" box

follows.

  • unknown wherever the readings begin "No statute supplied", per the convention.
  • conflicting-source for the four statute-against-state-rule cases where the code follows the rule against the statute's text: New York deeming, Ohio receipt, Rhode Island federal administration and South Dakota SSI receipt. This matches us-me:tanf-incapacitated-adult-care-deduction and us-mt:elderly-credit-rent-free-occupants. Each note records what may make it a non-conflict:
    • Ohio and South Dakota: the statute delegates eligibility to rules.
    • New York deeming: whether a state regulation binds as a Treasury regulation does is not yet ruled.
  • unknown although the readings cite a statute, because the statute does not settle the question:
    • us-ny:ssp-personal-needs-income-test: the $25 sentence makes the entitlement "in accordance with regulations of the department", so 398-3.2(d) may implement it.
    • us-ri:ssp-title-xix-couple-amount: the statute gives each institutionalized individual $45 and sets no couple amount. The model's joint $90 follows no form, so gap-fill as the header defines it doesn't fit.
    • us-md:ccs-copay-flat-schedule: §9.5-111(d)(4) caps copays at the levels "in effect as of January 1, 2024" without saying whether those are MSDE's flat maximums or COMAR's tables. Some flat amounts exceed COMAR cells (Region V's level A second child is $2.42 for three units, against $3), so neither reading makes the flat schedule compliant by itself.
  • us-md:ccs-copay-flat-schedule starts in 2024, when §9.5-111(d)(4) took effect on June 1. Its note says no statute is supplied for May 2022 to May 2024.

Verification.

  • policyengine_us/tests/code_health/test_source_conflicts.py: 103 passed at this head. I ran a copy in _r/a/b, outside the package, with pytest 9.1.1 and PyYAML 6.0.3.
  • The file is main's with 25 blocks inserted in id order. Every existing block is byte-identical, so the diff is insertions only. New blocks are dumped with yaml.safe_dump(sort_keys=False, width=110, allow_unicode=True).
  • Every code path is a git-tracked file on main. Every example figure comes from the named test case on main or is recomputed from its inputs.
  • Each quoted source text was read at its URL, or quoted where the code shows it. That includes SSL 209 (2-a), (4) and (5), the NYCRR 398 sections, POMS NY01415.026, 01320.150, 02005.030, PHI01415.010, BOS01415.950 and DEN01415.011, the Oklahoma rules, 55 Pa. Code §299.37, the two Pennsylvania handbooks, the RI statute and regulation §5.6.A, the ARSD rules, the 2004 and 2014 texts of 67:46:06:05, SDCL 28-5A-1, Educ. §9.5-111, COMAR 13A.14.06.12, the MSDE bulletin and NY plan page 7.
  • The Pennsylvania DHS handbooks are served over http only (https times out). Their url is null; the parameter references link them.

Since the review. The GPT-6.1 Sol review requested changes. All nine findings are fixed at this head:

  • Dropped us-pa:ssp-mixed-arrangement-couple-move-month and us-sd:ssp-care-personal-needs-allowance, now in the exclusion list above.
  • us-ny:ssp-spousal-deeming-subtraction: the readings now record that 398-2.1(ac) and 398-4.4(b) literally subtract twice, and that the model reads them to subtract once. 398-2.1 has its own source URL.
  • us-ny:ssp-personal-needs-income-test: follows is unknown, and the example gives $25 only as the result of reading the statute with no income test.
  • us-ok:ssp-ineligible-child-allocation: Case 15's federal alternative is (497 - 300) + 497 = 694, not 695.
  • us-va:ag-student-earned-income-exclusion: the deficiency of 819.50 is paid as 820 (va_ag rounds).
  • Added the deciding files the review found missing:
    • ny_ssp_living_arrangement.py
    • oh_rss.py for the one-spouse income standard
    • ssi_ineligible_child_allocation.py
    • ssi_pmv_amount.py
    • _ssi_state_supplement.py for the Rhode Island couple
    • sd_ssp_care.py
  • Added South Dakota's single-spouse entry month to the exclusion list.
  • us-md:ccs-copay-flat-schedule: the note no longer claims compliance under every reading, and follows is unknown (see above).

Merging with the sibling PRs. This branch merges cleanly with #10350 and #10351. #10352 edits existing OH, OK, PA, RI, SD and VA entries next to these insertions, so the two conflict positionally in four places. They touch no common entry. Whichever lands second needs main merged in, keeping both sides in id order.

axiom: n/a: source-conflict backlog metadata only; no model change

🤖 Generated with Claude Code

MaxGhenis and others added 2 commits October 24, 2026 14:01
Add 27 candidates for conflicts that code on main records but that have no
candidate or register entry: the New York, Ohio, Oklahoma, Pennsylvania,
Rhode Island, South Dakota and Virginia state supplements, Maryland Child
Care Scholarship copays and New York HEAP's catch-all income source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Drop the Pennsylvania move-month and South Dakota personal needs entries:
POMS G.1 defers to Pennsylvania's own couple rule, and SSA's 2011 South
Dakota description predates the 2014 rule, so neither is a live conflict.
Record the New York regulation's double subtraction, mark the New York
income test and the Maryland copay cap unknown, correct the Oklahoma and
Virginia examples, and add the shared files that decide six entries.

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

Copy link
Copy Markdown
Contributor Author

Hand-off to the US hub, at head 84bf141.

  • What it does: this PR adds 25 source-conflict candidates. They cover the state supplements (NY, OH, OK, PA, RI, SD, VA), Maryland Child Care Scholarship copays and New York HEAP's catch-all income source. It inserts blocks into source_conflicts/candidates.yaml and adds a changelog fragment. Every existing block is byte-identical, so the diff is insertions only.
  • Review:
    • GPT-6.1 Sol reviewed 235f835 and requested changes: nine findings.
    • 84bf141 fixes all nine. Two entries were dropped as not live conflicts, the NY income test and MD copay entries became unknown, two examples were corrected and six deciding files were added.
    • GPT-6.1 Sol's re-review approved 84bf141 and found no new findings.
    • Reports and prompts are in ~/reviews/us-hub/10444/, alongside build_candidates.py, the generator that inserts the blocks by id.
  • Checks:
    • Locally, the guard (test_source_conflicts.py) passed all 103 tests at this head. The reviewer reran it and got the same result.
    • CI's PR validation is running at this head; the earlier draft runs were skipped. The PR is mergeable. Merging is blocked only by CI and the required approving review.
  • Merge order: this PR merges cleanly with main, Point the federal and AK-HI source-conflict candidates at their code on main #10350 and Point the IN-MT source-conflict candidates at their code on main #10351. It conflicts with Point the NM-WY source-conflict candidates at their code on main #10352 in four places in candidates.yaml. Both PRs touch the OH, OK, PA, RI, SD and VA stretches of the file, but no entry is in both. Whichever lands second needs main merged in, keeping both sides' blocks in id order. To regenerate this PR's side, check out the merged main's candidates.yaml and run python3 build_candidates.py source_conflicts/candidates.yaml.
  • Follow-ups owed: none required by this PR. Out of scope: the Oregon, Utah, Vermont and Wisconsin SSP code (merged 2026-10-22) was not checked for conflict NOTEs.

@MaxGhenis
MaxGhenis merged commit 132adbf into main Oct 25, 2026
39 checks passed
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

US + core hub merge audit, us#10444 at 84bf141fbe93cd9be5853610391fb121e0c55920 (squash): Add source-conflict candidates for SSP, Maryland CCS and NY HEAP.

  • Review: GPT-6.1 Sol round-1 review (job 20261024-140450-pr10444-review, 9 findings), then a Sol round-2 re-review APPROVE at 84bf141 (job 20261024-161415-pr10444-rereview, gpt-6.1-sol served; ~/reviews/us-hub/10444/review-round2-sol.md): all nine findings resolved, no remaining findings.
  • Gates checked live at merge:
    • gh pr checks exits 0;
    • the latest Pull request run at the head concluded success;
    • MERGEABLE;
    • not a draft;
    • no reviewer's latest review requests changes;
    • the semantic-overlap guard;
    • head pinned.
  • Impact: None: the PR edits only source_conflicts/candidates.yaml (the conflict backlog, read by the guard test, not the model) and a changelog fragment (hub read the file list).
  • Order: Lands before Point the NM-WY source-conflict candidates at their code on main #10352, which overlaps it in candidates.yaml (4 hunks); Point the NM-WY source-conflict candidates at their code on main #10352 merges main afterwards and regenerates with 10444/build_candidates.py.
  • Axiom: n/a: source-conflict backlog metadata only; no model change

@MaxGhenis
MaxGhenis deleted the source-conflict-candidates-ssp-md-ny branch October 25, 2026 08:06
MaxGhenis added a commit that referenced this pull request Oct 25, 2026
Brings in #10350, #10354 and #10444. candidates.yaml is main's file with
this branch's 31 refreshed and 13 added candidates reapplied; none of them
is an entry main changed, so #10444's 25 new candidates are kept as is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Oct 25, 2026
Brings in #10350, #10354 and #10444. Git merged candidates.yaml cleanly,
and the result equals main's file with this branch's 29 refreshed and 5
added candidates reapplied. #10354 changed only
us-in:claim-of-right-federal-deduction-eligibility, which this branch
does not edit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

1 participant