Skip to content

Turn off the Medicaid optional aged/disabled pathway in 14 states that cover only SSI recipients - #10361

Merged
hua7450 merged 13 commits into
PolicyEngine:mainfrom
hua7450:medicaid-abd-ssi-only-states
Oct 29, 2026
Merged

hua7450 merged 13 commits into
PolicyEngine:mainfrom
hua7450:medicaid-abd-ssi-only-states

Conversation

@hua7450

@hua7450 hua7450 commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Part of #9734 (step 1, the states that cover only SSI recipients). #9735 fixed the seven states whose standard is the SSI rate.

What changes

is_optional_senior_or_disabled_for_medicaid covers aged, blind and disabled people who don't receive SSI, up to the state's senior_or_disabled.income.limit. That limit is 0.75 of the poverty guideline in 14 states whose rules have no such group. They cover aged, blind and disabled people as categorically needy only if they receive SSI (or a state supplement): Alabama, Delaware, Georgia, Kansas, Kentucky, Maryland, Mississippi, Nevada, New Mexico, North Dakota, South Dakota, Tennessee, Texas and Wyoming.

  • New parameter gov.hhs.medicaid.eligibility.categories.senior_or_disabled.covers_non_ssi_recipients, by state. It is false for the 14 states and true elsewhere.
    • Mississippi is false from 2006-01-01. Its poverty-level aged and disabled group ended on December 31, 2005.
    • Mississippi is true before that. The earliest source found that shows the group in force is the Division of Medicaid's fiscal year 1997 annual report, so the true entry is dated 1996-07-01, when that fiscal year began. The group's start date is not sourced. The model starts in 2015, so this entry changes no modeled result.
    • The other entries start on 2018-01-01, like the other senior_or_disabled parameters.
    • The file sits outside income/ and assets/.
  • is_optional_senior_or_disabled_for_medicaid now requires the flag for people who pass the Medicaid immigration test.
    • Everyone who fails that test keeps the pathway. That includes people the model treats as meeting SSI's noncitizen rules: permanent residents in the five-year bar with 40 quarters, one-year parolees and conditional entrants in the bar, and refugees from 2027 (the October 2026 change to Medicaid's statuses, read on January 1).
    • medicaid_category ignores immigration status, and emergency Medicaid (is_emergency_medicaid_eligible) needs a category. Without this exception, undocumented aged or disabled people in the 14 states would lose emergency Medicaid.
    • Federal law waives the SSI receipt requirement for them. Emergency Medicaid pays for an alien who "otherwise meets the eligibility requirements for medical assistance under the State plan approved under this subchapter (other than the requirement of the receipt of aid or assistance under subchapter IV, supplemental security income benefits under subchapter XVI, or a State supplementary payment)" (42 U.S.C. 1396b(v)(2)(B)). 42 CFR 435.406(b) says the same ("except for receipt of AFDC, SSI, or State Supplementary payments"), and 42 CFR 440.255(c) defines the services.
    • Texas applies it: "Certain aliens with an emergency medical condition who meet all SSI criteria, except citizenship, may be eligible for Medicaid coverage for the medical emergency" (MEPD Handbook A-2200).
    • In the 14 states they are tested against the SSI federal benefit rate for an individual or a couple, at or below it, since only SSI receipt is waived (Texas: "meet all SSI criteria, except citizenship"; SSI covers income "at a rate of not more than" the rate, 42 U.S.C. 1382(a)(1)(A)). medicaid_optional_senior_or_disabled_income_limit uses the SSI rate wherever covers_non_ssi_recipients is false, and requires_income_below_limit stays false.
    • The limit binds now for noncitizens who meet SSI's noncitizen rules. For those who fail them, medicaid_optional_senior_or_disabled_countable_income counts no income until Count income of aged, blind, or disabled people who fail SSI's noncitizen test #10240 merges, so they qualify at any income until then, as on main.
  • North Dakota's 209(b) SSI recipients. is_209b_ssi_recipient_income_eligible_for_medicaid reads the same limit, so theirs becomes the SSI rate too. That is North Dakota's level (N.D.A.C. 75-02-02.1-40(1)(a)(2), page 89), the change Use the SSI rate as the Medicaid aged/disabled income limit in West Virginia and North Dakota #10373 makes. In 2026 their individual limit falls from $11,970 to $11,928 and their couple limit rises from $16,230 to $17,892, so eligibility moves both ways (for example, a couple with $17,000 now qualifies; a single person with $11,950 no longer does).

This removes Medicaid from SSI-eligible people who don't take up SSI in these 14 states, so microsimulation results change. Noncitizens there who pass Medicaid's immigration test but fail SSI's (for example, a permanent resident past the five-year bar without 40 quarters) lose the pathway the same way. It also closes the band between the SSI rate and 0.75 of the guideline ($42 a year in 2026). For the people the pathway still reaches in these states (noncitizens kept for emergency Medicaid, and North Dakota's 209(b) recipients), the couple limit rises by $1,662, from $16,230 to $17,892. People in that band can get Medicaid only through medically needy coverage, where the state has it and they spend down to its limit.

Unchanged:

  • The 209(b) SSI-recipient gate. North Dakota is a 209(b) state. Its SSI recipients are tested by is_209b_ssi_recipient_income_eligible_for_medicaid, which reads is_optional_senior_or_disabled_income_eligible, not the gated variable, so the flag doesn't gate them (their limit changes; see above). None of the other 13 states is a 209(b) state.
  • SSI recipients. is_ssi_recipient_for_medicaid (ssi > 0 or receives_ssi) still covers them.
  • Everything else. Every other state, and the pathway's countable income, disregards and asset limits. The income limit changes only in the 14 states.

West Virginia is not included

Issue 9734 lists West Virginia as covering only SSI recipients, but its current Income Maintenance Manual has the group:

  • § 23.9 lists "SSI Related/Non-Cash Assistance" among the optional aged, blind and disabled groups.
  • § 23.11.4 covers people who meet the SSI definition of aged, blind or disabled when "Countable income must be under the SSI Maximum Payment level", with assets up to $2,000 for an individual and $3,000 for a couple.
  • The archived § 16.7.H (revision 10/13) has the same group.

So West Virginia stays true and keeps today's 0.75 limit here. #10373 sets West Virginia's limit to the SSI rate with an at-or-below test (42 U.S.C. 1382(a)(1)(A); IMM § 4.14.3 Step 5), recording § 23.11.4's "under" as a source-conflict candidate.

Sources

Each was read on 2026-10-21.

State Source Text
Alabama Ala. Admin. Code r. 560-X-25-.03(1) "(a) Aged, blind or disabled persons who receive Supplemental Security Income (SSI) under Title XVI"; the other groups are institutional, waiver, people who lost SSI, and Medicare Savings Programs
Delaware DSSM 17100 "receiving a benefit through the Supplemental Security Income program, is automatically eligible for Medicaid in Delaware"
Georgia PAMMS 2111, 2101 "Georgia SSI recipients are automatically eligible for Medicaid for any month in which they receive a check"; 2101 lists no poverty-level or 435.210 class
Kansas SPA KS-25-0019, effective 2025-07-01 "Individuals Eligible for but Not Receiving Cash Assistance" and "Age and Disability-Related Poverty Level" are not checked as covered
Kentucky 907 KAR 20:005 §§ 1(1), 9(3) "An individual who would be eligible for SSI benefits but who has not made application shall not be eligible for Medicaid."
Maryland Coverage Groups guide (April 2025), S02 and S98 S02 covers "all SSI recipients"; S98 covers aged, blind or disabled people "within the MA community medically needy income and resource standards"
Mississippi Miss. Code § 43-13-115(11) (as reprinted in 2024 HB 464); manual Appendix A-4-c; FY 1997 annual report "Until the end of the day on December 31, 2005 ... After December 31, 2005, only those individuals covered under the 1115(c) Healthier Mississippi waiver will be covered under this category"; PLAD categories 041-043 list an ending date of 12/31/2005. The FY 1997 report (July 1996 to June 1997) lists "Persons who are age 65 or over or disabled whose income is below 100 percent of the federal poverty level whose resources are at SSI levels" (read 2026-10-26)
Nevada Medical Assistance Manual B-300 (March 2025) B-315 "Verified SSI recipients"; B-320 "Countable net income (after disregards) must be less than the applicable SSI payment amounts"; B-340 Prior Medical covers past months only
New Mexico 8.200.400.10(C)(1) NMAC "Medicaid for individuals who are eligible for SSI. Eligibility for SSI is determined by the social security administration (SSA)."
North Dakota N.D. Admin. Code 75-02-02.1-05 (1)(n), (2) and (3)(e) The categorically needy group covers aged, blind or disabled people "who are receiving supplemental security income payments" (plus zero-pay and suspended cases). The optional categorically needy groups in (2) include no non-SSI aged or disabled group, and (3)(e) makes aged, blind or disabled people "who are not in receipt of supplemental security income" medically needy. The February 2017 edition has the same text.
South Dakota ARSD 67:46:01:02(2) "A person who is a recipient of a money payment under the supplemental security income program"
Tennessee Tenn. Comp. R. & Regs. 1200-13-20-.08(1) "Aged, blind or disabled individuals who are determined eligible for SSI payments by the SSA are eligible for TennCare Medicaid." Medically needy covers only children and pregnant women
Texas MEPD Handbook A-2000, A-3000 Mandatory groups are SSI, emergency Medicaid for aliens, and the RSDI COLA increase. A-3000: "HHSC only provides benefits to a person who is a member of one of the following optional coverage groups"; none covers SSI non-recipients in the community
Wyoming Wyo. Admin. Rules 048.0037.18 § 8(a) (effective 2025-05-23); Eligibility Online Manual M1005 "Entitled to or receiving SSI, or SSI-related programs". M1005's SSI-related list covers DAC, E01 (institutions only), Goldberg-Kelly, Pickle, 1619, "SSI Eligible" (SSA current-pay status), widows and widowers, and presumptive disability

The parameter also cites 42 CFR 435.210, 42 U.S.C. 1396a(m), KFF's June 2024 report (Appendix Tables 5 and 6: the poverty-level column is No for all 14 states and West Virginia, and Table 6 gives their SSI-level limits), and KFF's 2019 survey of 2018 data (Appendix Table 1), which also says No and supports the years before the state sources' current editions.

Readers checked

Reader Effect
medicaid_category People who leave the pathway fall to the next category, usually MEDICALLY_NEEDY or NONE.
is_medically_needy_for_medicaid Its not_in_other_pathway sums the covered categories, so the pathway no longer blocks medically needy coverage. The effect differs by state:
• GA, KS, KY and MD have finite medically needy limits for aged and disabled people in the model, so people there can now spend down to them.
• ND's medically needy group is switched off in the model today. #10374 switches it on (83% of the guideline, then 90% from 2024-01-01), so until then North Dakotans who leave the pathway get no category.
• NV and NM have the medically needy flags on but -inf limits, so nobody qualifies.
• AL, DE, MS, SD, TN, TX and WY have no aged or disabled medically needy group.
Medically needy parameters are unchanged; the KS limit is being fixed under #10357 and #10358.
medicaid_group People who move to MEDICALLY_NEEDY stay AGED_DISABLED.
ms_hmw_other_coverage_ineligible (Healthier Mississippi Waiver) Mississippi's pathway is now always false, so it no longer excludes anyone from the waiver. The waiver's own income, resource and Medicare tests still apply.
is_209b_ssi_recipient_for_medicaid Reads the asset and income variables directly. Unchanged.
Medicare Savings Programs is_qi_eligible reads is_medicaid_eligible, but QI starts at 120% of the guideline, above everyone affected. No other MSP variable reads the pathway.
ACA, Lifeline, CHIP, Pell, DART and other is_medicaid_eligible / medicaid_enrolled readers Follow Medicaid eligibility. A person who loses Medicaid can become eligible for the premium tax credit if their income is at least 100% of the guideline (see the partner test below).

Tests

  • is_optional_senior_or_disabled_for_medicaid.yaml
    • Case 3: an Alabaman aged 70 with $900 a month of Social Security who doesn't take up SSI. Income-eligible ($10,560 countable, under the $11,928 SSI rate) but not covered; medicaid_category is NONE.
    • Case 4: the same person in Pennsylvania, which keeps the group, is SENIOR_OR_DISABLED.
    • Case 5: a disabled North Dakotan aged 50 with $900 a month of SSDI who doesn't take up SSI is income-eligible but not covered.
    • Case 6: an undocumented Alabaman aged 70 with $800 a month of wages keeps the pathway, unlike the citizen in Case 3. medicaid_category is SENIOR_OR_DISABLED, is_medicaid_eligible is false and is_emergency_medicaid_eligible is true. The wages are under the $11,928 limit before any disregard, so the case holds after Count income of aged, blind, or disabled people who fail SSI's noncitizen test #10240 too.
    • Case 7: a permanent resident in Alabama two years after entry (five-year bar), aged 70, with $1,015 a month of Social Security ($11,940 of countable income, $12 over the $11,928 SSI rate, so SSI pays nothing): income-ineligible, so no pathway, category NONE and no emergency Medicaid despite an emergency condition.
    • Case 8: a couple of such permanent residents with $755.50 a month of Social Security each ($8,946 of countable income each, exactly the $17,892 SSI couple rate, 12 x $1,491, so SSI pays nothing): both keep the pathway (SENIOR_OR_DISABLED); emergency Medicaid only for the spouse with an emergency condition.
    • Case 9: a permanent resident ten years after entry (past the five-year bar) with no qualifying quarters and $900 a month of Social Security. They pass the Medicaid immigration test but fail SSI's noncitizen test (8 U.S.C. 1612(a)(2)(B)), so get no SSI and lose the pathway: category NONE, no emergency Medicaid. This separates "fails the Medicaid immigration test" from "any noncitizen".
  • tests/unit/test_medicaid_abd_ssi_rate_standard_properties.py: test_ssi_only_states_match_their_rules pins the 14 false flags (and so West Virginia's true one) for 2018 to 2026, and test_ssi_only_states_use_the_ssi_rate pins their SSI-rate limit, including North Dakota's, for an individual and a couple. The SSI-rate property tests also read covers_non_ssi_recipients. test_no_medicaid_without_ssi_above_the_ssi_rate expects the pathway only where the state covers the group, and test_unflagged_states_keep_their_share_of_the_poverty_guideline skips the 14 states, which now use the SSI rate.
  • medicaid_category.yaml
    • Case 13: the same Alabaman taking up SSI gets $1,368 a year and is SSI_RECIPIENT.
    • Case 14: the same person in Maryland, not taking up SSI, with $7,200 of other medical expenses, is MEDICALLY_NEEDY (limit $350 a month).
  • ms/dom/hmw/integration.yaml, Case 7: renamed. The old name said the person was "eligible under standard optional ABD Medicaid", which Mississippi no longer has in the model. The person receives SSI, so the case now also asserts is_ssi_recipient_for_medicaid: true; its other expected values are unchanged.
  • Other tests in the 14 states: I checked every YAML case with an aged, blind or disabled person and an output that depends on Medicaid. Each person receives SSI, overrides the pathway as an input, or fails it on income or assets, except the partner case below.
  • Local runs at 707e042, one process at a time. Nothing added since then has been run locally. CI ran at b5e2f02: all 34 checks passed, including Household API Partners.
    • gov/hhs/medicaid (batched): all passed. This includes emergency_medicaid/integration.yaml Case 20, an undocumented disabled Texan with an emergency, which failed before the immigration exception.
    • MS HMW, KS SSPP, TX CEAP and TX Lifeline: 96 passed.
    • tests/unit/test_medicaid_abd_ssi_rate_standard_properties.py, tests/core/test_ssi_state_supplement_medicaid_dependency.py, test_parameter_files.py and tests/code_health: 537 passed, 1 skipped (run before the immigration exception).
    • Partner cash/ssi/federal.yaml: 14 passed after b5e2f0256c.

Partner test impact

partners/analytics_coverage/edge_cases/federal/cash/ssi/federal.yaml, case ssi_earned_income_at_breakeven_ineligible (federal), changes. It is a 65-year-old citizen in Dallas County, Texas, with $24,876 of wages. SSI countable income equals the SSI rate ($11,928), so ssi is 0. Its comment attributes the Medicaid to "TX's optional senior-or-disabled pathway". That income still meets the new limit; the pathway ends because Texas has no group for people who do not receive SSI. Texas covers only SSI recipients (MEPD A-2000), and its optional groups are institutional, waiver and buy-in groups (MEPD A-3000), so the person has no Medicaid after this PR.

Partner-facing change, approved. This changes what the API returns to a partner. @hua7450 approved the edit through the partner-test gate in CLAUDE.md on 2026-10-27: yes to editing the file, a team member has been told, and the API partner has been told (recorded in a PR comment). b5e2f0256c updates the case's five changed pins and its comments.

Before the edit, CI failed on this case with medicaid@2026: 0.0 differs from 13708.5; the runner stops at a case's first mismatch, so it showed only medicaid. The five pins that change (a reviewer's run reproduced them, and a run at 4f631a56a6 gave the same values):

Output Before After this PR
medicaid 13,708.50 0
is_medicaid_eligible true false
is_aca_ptc_eligible false true
aca_ptc 0 18,344.29
premium_tax_credit 0 18,344.29

The premium tax credit:

  • MAGI fraction: 24,876 / 15,650 (the 2025 guideline, one person) = 1.5895, floored to 1.58 (aca_magi_fraction). That is between 1.00 and 4.00, and the case sets is_medicare_eligible and is_aca_eshi_eligible false, so with Medicaid gone is_aca_ptc_eligible is true.
  • Applicable figure, 2026 bracket 1.50 to 2.00: 0.0419 + (1.58 - 1.50) / 0.50 x (0.066 - 0.0419) = 0.045756. Contribution: 24,876 x 0.045756 = 1,138.23.
  • SLCSP: Dallas County is rating area 8; the 2026 age-0 cost there is $414 a month, and the default age curve gives 3.9216 at 64 and over (Texas has no family tiers). 414 x 3.9216 x 12 = 19,482.51.
  • Credit: 19,482.51 - 1,138.23 = 18,344.28 by hand; the run gives 18,344.29 (unrounded intermediates), within the case's 0.1 margin. premium_tax_credit takes the same amount.
  • The credit follows from the case's inputs is_medicare_eligible: false and is_aca_eshi_eligible: false. A real 65-year-old with enough work quarters would have premium-free Part A and no credit.

Unchanged pins: ssi_countable_income 11,928, ssi 0, is_ssi_eligible true, is_ssi_aged true, msp 0, msp_eligible false and chip 0.

Merge order

Not changed here

axiom: TheAxiomFoundation/rulespec-us#1927 queued

🤖 Generated with Claude Code

hua7450 and others added 2 commits October 21, 2026 16:57
…SSI recipients

Add gov.hhs.medicaid.eligibility.categories.senior_or_disabled.covers_non_ssi_recipients,
false for AL, DE, GA, KS, KY, MD, MS, NV, NM, SD, TN, TX and WY, and require it in
is_optional_senior_or_disabled_for_medicaid. The 209(b) SSI-recipient path is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
N.D. Admin. Code 75-02-02.1-05 covers aged, blind and disabled people as
categorically needy only if they receive SSI; those who do not are medically
needy under (3)(e). The 209(b) SSI-recipient path does not read the gated
variable, so North Dakota's SSI recipients are unaffected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hua7450 hua7450 changed the title Turn off the Medicaid optional aged/disabled pathway in 13 states that cover only SSI recipients Turn off the Medicaid optional aged/disabled pathway in 14 states that cover only SSI recipients Oct 22, 2026
…thway

Medicaid categories ignore immigration status, and emergency Medicaid needs
a category. In the states that cover only SSI recipients, noncitizens cannot
receive SSI, so the gate would have removed their emergency Medicaid. Texas
MEPD A-2200 covers aliens who meet all SSI criteria except citizenship.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hua7450 and others added 2 commits October 26, 2026 16:34
- Add a case for an undocumented aged Alabaman who keeps the pathway and
  qualifies for emergency Medicaid.
- Cite 42 U.S.C. 1396b(v)(2)(B) and 42 CFR 435.406(b) for the exception.
- Mississippi covered people who do not receive SSI before 2006; date the
  earlier true value from the fiscal year 1997 annual report.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add 42 U.S.C. 1396b(v) and 42 CFR 435.406(b) to the pathway variable's
references, since the immigration exception rests on them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
In states that cover aged, blind or disabled people only if they receive
SSI, the pathway now reaches only noncitizens who fail the Medicaid
immigration test. 42 U.S.C. 1396b(v)(2)(B) waives SSI receipt alone, so
their income limit is the SSI federal benefit rate, at or below it.

- Add Case 7 (permanent resident in the five-year bar, $12 over the SSI
  rate) and Case 8 (a couple exactly at the SSI couple rate).
- Make the SSI-rate property tests aware of covers_non_ssi_recipients.
- Cite 1396b(v), 1382(a) and 42 CFR 440.255(c).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hua7450
hua7450 marked this pull request as ready for review October 26, 2026 23:53
Cases 7 and 8 set only the pathway's countable income. With no SSI
income, the model paid the full SSI rate and classified the residents as
SSI recipients. Social Security that puts SSI countable income at or
above the SSI rate keeps them off SSI, as the cases intend.

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

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

Program Review

PR #10361, "Turn off the Medicaid optional aged/disabled pathway in 14 states that cover only SSI recipients" (hua7450). Round 1, full review.

IDs: C = critical, SA = should address, G = suggestion.

Paths: P = policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/covers_non_ssi_recipients.yaml, E = policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_for_medicaid.py, L = policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/medicaid_optional_senior_or_disabled_income_limit.py, U = policyengine_us/tests/unit/test_medicaid_abd_ssi_rate_standard_properties.py, Y1 = policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_for_medicaid.yaml, PF = policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/cash/ssi/federal.yaml. Line numbers refer to the reviewed head. PDF links use file page numbers.

Source Documents

  • Reviewed head SHA: b078376
  • Mode: full
  • Scope: 8 files, 386 insertions and 9 deletions against the merge base 9ee14cdb43.
  • Federal: 42 CFR 435.121(a)(1), 435.210, 435.230(c), 435.406(b), 440.255(c); 42 U.S.C. 1396a(m), 1396b(v)(2)(B), 1382(a)(1)(A); 8 U.S.C. 1612(a)(2)(B); POMS SI 02005.020 D.2 and SI 01715.010.
  • KFF: June 2024 report, Appendix Tables 1, 5, 6 and 7 (caption numbers read in each chart); 2019 survey (2018 data), Appendix Table 1. Links are in C2.
  • PDF: KS SPA KS-25-0019 (pages 22-23, 23 as image); N.D. Admin. Code 75-02-02.1 (pages 10, 11, 89 as images); MD coverage-group guide (pages 12, 14-15); Miss. Code 43-13-115(11) in 2024 HB 464 (page 5); MS Appendix A-4-c (page 3), Section 101.02 (pages 5, 11), FY 1997 report (page 8); NV MAM B-300 (pages 6-7, 14-15); Tenn. 1200-13-20 (pages 73-74); Wyo. ch. 18 (pages 7-8); WV IMM (page 1889).
  • Web: Ala. Admin. Code r. 560-X-25-.03; DE DSSM 17000; GA PAMMS 2101, 2111; 907 KAR 20:005; 8.200.400.10 NMAC; ARSD 67:46:01:02; TX MEPD A-2000, A-2100, A-2200, A-3000, D-8500; WY EOM M1005, M1005B, M1005F.
  • Repository: CLAUDE.md:170-181 (partner contract tests); the Household API Partners CI log at this head.
  • Year: target 2026. U covers 2018-2026.

Branch Status

  • 9 ahead and 21 behind main; MERGEABLE. CI ran on the merge with main (976b409f), so the 21 commits change no finding.
  • Stacked #10386 (hua7450) already merged this branch, shares all 8 files and depends on this PR. Its review attributes the same Texas partner failure to this PR, so C1 is resolved here. After this PR is squash-merged, merge main into #10386 again and keep the immigration exception for every aged, blind or disabled person. T1 (SA1) stays valid there.
  • #10378 edits the same lines of L and U: keep both sides. #10373 shares U (G7). Draft #10394 edits L's reference tuple and is_couple (G6). #10240 and #10374 are ordering dependencies.

What the PR gets right

  • The 14 states are right. Each primary source covers aged, blind or disabled people in the community only if they receive SSI, plus narrow groups (Pickle, DAC, DWB, state supplement, institutional, waiver). KFF 2024 and KFF 2018 agree. Keeping West Virginia true is right (IMM 23.11.4).
  • The emergency exception is right in law (42 CFR 435.406(b); 42 U.S.C. 1396b(v)(2)(B); TX A-2200). It works per person: in a mixed-status Alabama couple, the citizen loses the pathway and the undocumented spouse keeps emergency Medicaid.
  • North Dakota's new limit is right: 75-02-02.1-40(1)(a)(2) sets the ABD level at SSI's (#page=89).
  • The code is clean: no hard-coded values, vectorized, ruff clean, no new cycle. P follows its siblings.
  • The body predicted the partner failure and all five changed pins, and the PR does not edit PF.

Critical (Must Fix)

C1. CI fails on a partner contract case. This is a partner-facing API change. The model change itself is correct.

  • Where: the Household API Partners check; PF:236-296, case ssi_earned_income_at_breakeven_ineligible (federal). The model change is P:148-149 (TX: 2018-01-01: false), read at E:28-30 and L:62-64.
  • Evidence: CI reads medicaid@2026: 0.0 differs from 13708.5. Locally, PF passes 14 of 14 at the merge base and fails this case at the head; with only Texas set back to true, it passes 14 of 14. It is not the Montana test, which passes at this head.
  • The household: a citizen aged 65 in Dallas County, Texas, with $24,876 of wages. SSI countable income equals the SSI rate, so ssi is 0. The case's comment (PF:285-288) credits Medicaid to "TX's optional senior-or-disabled pathway". At the head:
Output Contract pin Head
medicaid 13,708.50 0
is_medicaid_eligible true false
is_aca_ptc_eligible false true
aca_ptc, premium_tax_credit 0 18,344.29

CI stops at the first mismatch, so it shows only medicaid. The other seven pins do not change.

  • The new value is correct. TX MEPD A-2000 has no mandatory group for this person. A-3000 says HHSC "only provides benefits" to its listed optional groups, and none covers a community resident who does not receive SSI. POMS SI 02005.020 D.2 says "eligible but not payable" status "does not qualify automatically for Medicaid".
  • Why critical: CI fails because of this PR.
  • Fix (process, not code). No ready-to-paste edit of PF is given.
    1. Do not rewrite the expected values in PF just to make CI pass (CLAUDE.md:172).
    2. Before anyone edits PF, the author flags the partner-facing change for the team (@PavelMakarchuk and @MaxGhenis). A team member must be notified, and the API partner must be notified. The body describes the change but does not say that anyone has been told.
    3. Then the edit goes through the repo's partner-test gate (CLAUDE.md:174-181) on this PR.
    4. For the partner: the new credit follows from the case's inputs is_medicare_eligible: false and is_aca_eshi_eligible: false. A real 65-year-old with enough work quarters would have premium-free Part A and no credit. That is the case's input choice, not an effect of this PR.

C2. P cites KFF's June 2024 "Appendix Table 1", which is a different table.

  • Where: P:13-14, and the body's "Sources" paragraph.
  • Evidence: in the June 2024 report, Appendix Table 1 is "Selected Policies for Enrollment as of June 2024". The pathway table is Appendix Table 5: its 100% FPL column is "No" for all 14 states and WV. Table 6 gives their SSI-level limits. The order is the same in Wayback captures from 2024-07-19 and 2025-05-21. "Appendix Table 1" is the pathway table's number in KFF's 2019 survey (2018 data).
  • Why critical: an incorrect citation; Table 1 has nothing on pathways. The value is right.
  • Fix (loads on a package copy at the head; TX stays false, WV true). Replace P:13-14. The second entry is optional and closes G3:
    - title: KFF, Medicaid Eligibility and Enrollment Policies for Seniors and People with Disabilities (Non-MAGI) During the Unwinding (June 2024), Appendix Tables 5 and 6
      href: https://www.kff.org/report-section/medicaid-eligibility-and-enrollment-policies-for-seniors-and-people-with-disabilities-non-magi-during-the-unwinding-appendix/
    - title: "KFF, Medicaid Financial Eligibility for Seniors and People with Disabilities: Findings from a 50-State Survey (June 2019, 2018 data), Appendix Table 1"
      href: https://www.kff.org/report-section/medicaid-financial-eligibility-for-seniors-and-people-with-disabilities-findings-from-a-50-state-survey-appendix-tables/

Make the same change in the body.

Should Address

SA1. No test pins 11 of the 14 flags, West Virginia's flag or North Dakota's new limit.

  • Where: P:57-164. Only AL, MD, ND and PA have a case that reads the flag. U pins the two analogous lists but not this one.
  • Evidence: one mutant sets the 10 untested false states back to true, sets WV false, keeps MS true through 2026 and keeps 0.75 of the guideline for ND. It passes the 30 changed YAML cases, U (81), gov/hhs/medicaid (703) and 29 other baseline files with Medicaid-dependent outputs in these states (385). Only the partner case catches Texas.
  • Why should address: missing edge cases for variables that already have tests. ND's limit moves eligibility both ways (G1).
  • Fix (run at the head: U with T1, 108 passed; T1 fails on every flag and limit mutant). Append to U:
# States whose rules cover aged, blind, or disabled people as categorically
# needy only if they receive SSI (cited in covers_non_ssi_recipients.yaml).
SSI_ONLY_STATES = sorted(
    ["AL", "DE", "GA", "KS", "KY", "MD", "MS", "ND", "NM", "NV", "SD", "TN", "TX", "WY"]
)


@pytest.mark.parametrize("year", YEARS)
def test_ssi_only_states_match_their_rules(year):
    flags = SYSTEM.parameters(
        f"{year}-01-01"
    ).gov.hhs.medicaid.eligibility.categories.senior_or_disabled.covers_non_ssi_recipients
    assert sorted(state for state in STATES if not flags[state]) == SSI_ONLY_STATES


@pytest.mark.parametrize("couple", [False, True])
@pytest.mark.parametrize("year", YEARS)
def test_ssi_only_states_use_the_ssi_rate(year, couple):
    simulation = unit_simulation(year, SSI_ONLY_STATES, couple)
    limit = simulation.calculate(
        "medicaid_optional_senior_or_disabled_income_limit", year
    )
    individual, couple_rate = SSA_MONTHLY_RATES[year]
    np.testing.assert_array_equal(limit, 12 * (couple_rate if couple else individual))

SA2. No case tests what the emergency exception keys on.

  • Where: E:27-30. The exception keys on failing the Medicaid immigration test. Y1 Cases 6-8 all fail it, so no case separates it from "any noncitizen".
  • Evidence: a mutant that keeps the pathway for every noncitizen passes the 30 changed cases, emergency_medicaid (56), U and gov/hhs/medicaid.
  • Law: a permanent resident past the five-year bar without 40 quarters gets no SSI (8 U.S.C. 1612(a)(2)(B)) and is outside 42 CFR 435.406(b). The body says these people lose the pathway; no test shows it.
  • Why should address: a missing edge case.
  • Fix (run at the head: 1 passed; it fails on the mutant). Append to Y1 after line 151. It stays valid after #10240 (countable income $10,560):
# A permanent resident ten years after entry is past the five-year bar, so
# passes the Medicaid immigration test, but with no qualifying quarters fails
# SSI's noncitizen test (8 U.S.C. 1612(a)(2)(B)) and gets no SSI. Alabama has
# no group for aged people who do not receive SSI, and the emergency Medicaid
# exception does not reach someone who passes the Medicaid immigration test.
- name: Case 9, Alabaman permanent resident past the five-year bar without 40 quarters does not keep the pathway.
  period: 2026
  input:
    age: 70
    state_code: AL
    immigration_status: LEGAL_PERMANENT_RESIDENT
    years_since_us_entry: 10
    ssi_qualifying_quarters_earnings: 0
    social_security_retirement: 10_800
  output:
    is_medicaid_immigration_status_eligible: true
    ssi: 0
    is_optional_senior_or_disabled_income_eligible: true
    is_optional_senior_or_disabled_for_medicaid: false
    medicaid_category: NONE
    is_medicaid_eligible: false
    is_emergency_medicaid_eligible: false

Suggestions

G1. North Dakota's 209(b) recipients change in both directions, but the body lists them under "Unchanged".

  • Where: L:54-64 (the citation is only in the comment at L:58-59); the body's "Unchanged" and "$42 a year".
  • Evidence: a 2026 ND probe with receives_ssi true. A couple with $17,000 of pathway income: limit $16,230 to $17,892, is_ssi_recipient_for_medicaid false to true. A single person with $11,950: limit $11,970 to $11,928, true to false.
  • Why a suggestion: both directions follow 75-02-02.1-40(1)(a)(2); only the documentation is short.
  • Fix (a reference string; not run): add at the end of L's reference tuple (skip if #10373 merges first with this citation):
        "https://www.ndlegis.gov/information/acdata/pdf/75-02-02.1.pdf#page=89",

In the body, move these recipients to "What changes": "In 2026 their individual limit falls from $11,970 to $11,928 and their couple limit rises from $16,230 to $17,892." Next to "$42 a year", add that the couple limit rises by $1,662 for the people it still reaches.

G2. Two sibling descriptions are now stale.

  • Where: income/limit/individual.yaml:1 and income/limit/couple.yaml:1, in P's folder.
  • Evidence: both say SSI-rate states "are listed in uses_ssi_federal_benefit_rate and omitted here". The 14 states now use the SSI rate through covers_non_ssi_recipients, and their 0.75 entries apply only if a reform sets the flag to true.
  • Fix (text only), in individual.yaml; use "a couple" in couple.yaml:
description: Maximum countable income limit for an individual to qualify for Medicaid under the optional senior or disabled pathway, as percent of Federal Poverty Line. States whose limit is the SSI federal benefit rate are listed in uses_ssi_federal_benefit_rate and omitted here; states where covers_non_ssi_recipients is false also use that rate, and their values here apply only if that flag is true.

G3. Six states' early years rest on KFF only.

  • Where: P:78-79 (GA), P:90-91 (KS), P:98-99 (MD), P:128-129 (NV), P:148-149 (TX), P:163-164 (WY).
  • Evidence: the primary sources start later (KS 2025-07-01, GA 2023-11, MD 2025-04, NV 2025-03, TX 2022-09-01, WY chapter 18 2025-05-23). KFF 2018 and 2024 both say "No", so the value is not in doubt.
  • Fix: the optional second entry in C2. A KS source before 2025-07-01 would be better.

G4. P's description is broader than the law.

  • Where: P:1.
  • Evidence: all 14 states cover some non-recipients as categorically needy: Pickle, DAC, DWB, state-supplement-only (DE 17800 MAT, MD S01) and NM Cat. 074(b). "Under the ... pathway" limits the scope, so the text is not wrong.
  • Fix (text only):
description: The state covers the optional Medicaid group for aged, blind, or disabled people who meet SSI's income and resource requirements without receiving SSI (42 CFR 435.210), or the poverty-level aged and disabled group (42 U.S.C. 1396a(m)), if this is true.

G5. The West Virginia anchor will move.

  • Where: P:55-56, and the body's WV links.
  • Evidence: the URL serves the current IMM; 23.11.4 is on file page 1889 of the October 5, 2026 build.
  • Fix (text only):
    - title: West Virginia Income Maintenance Manual 23.11.4 - SSI-Related/Non-Cash Assistance (October 5, 2026 edition)
      href: https://bfa.wv.gov/media/40005/download?inline#page=1889

G6. The merge-order list omits draft #10394.

  • Evidence: #10394 adds a WV URL to L's reference tuple and a WV is_couple override above L:29.
  • Fix (body): "#10394 (draft) edits the reference tuple and the is_couple line of medicaid_optional_senior_or_disabled_income_limit.py. Keep both sides."

G7. The covers mask in U does nothing in this PR.

  • Where: U:197-204 and U:231-238. All seven grid states are true; the mask matters once #10373 adds ND.
  • Fix (comment only), replace U:197-198:
    # States without a group for people who do not receive SSI give the
    # pathway to nobody in this citizen grid. All seven states here have the
    # group; the mask matters once North Dakota joins the grid (#10373).

G8. The microsimulation effect is large and is not in the body.

  • Evidence: 2026, certified default dataset (populace_us_2024.h5), head against the pre-PR model. 699k people lose is_medicaid_eligible in the 14 states (TX 289k, TN 110k, AL 93k); 180k move to medically needy. Medicaid falls by $22.88bn; the ACA PTC rises by $0.52bn. 695k of the 699k do not take up SSI, and only 4.4k reported Medicaid at the CPS interview.
  • Why a suggestion: no biased default was found, and the change moves the model toward the reported data. The base is 158 records, so the state split is noisy.
  • Fix: replace "The microsimulation impact was not run" with these numbers and their dependence on SSI take-up.

G9. The Case 6 comment implies an income test that does not bind yet.

  • Where: Y1:63-64. At the head, the pathway counts no income for this person: $9,600 and $60,000 of wages give the same result.
  • Fix (comment only), replace Y1:63-64:
# In Alabama that leaves SSI's income test. Wages of $800 a month ($9,600 a
# year) are under the SSI rate ($11,928) before any disregard. Until #10240
# merges, the pathway counts no income for this person; Cases 7 and 8 test it.

G10. covers_group has two meanings.

  • Where: E:28-30 (flag or failed immigration test) and L:63 (the bare flag).
  • Fix (a rename; not run): rename it in E to in_covered_group (E:28, E:36). After make format, E:36 reads:
        return (
            in_covered_group & is_senior_or_disabled & income_eligible & asset_eligible
        )

Investigated and cleared

  • Body, "Unchanged". SSI recipients stay SSI_RECIPIENT and Medicaid-eligible (probe in AL, KS, NV, TX and MS, 2018, 2022, 2026). The flag is false in exactly the 14 states. Countable income, disregards and asset limits are not in the diff. Among SSI recipients, only ND's 209(b) recipients move (G1).
  • Body, "$42 a year". Correct for an individual in 2026. The couple limit moves the other way (G1).
  • Body, "CI hasn't run on this draft". Stale: the PR is no longer a draft, CI ran (1 fail, 32 pass), and the five pins "traced ... (not run)" now match a run.
  • Montana Hypothesis test. Not involved; all six Python shards pass.
  • KFF completeness. Of KFF 2024's 23 "No" states, the other 9 are covered by #9735, #10378 and #10373.
  • Dates. Values backfill to 2015, so MS: 1996-07-01: true is inert and no mid-year boundary needs a test.
  • Readers. medicaid_group keeps exception noncitizens at NONE. Opening the Healthier Mississippi Waiver agrees with 43-13-115(11). Medically needy effects match KFF 2024 Appendix Table 7.
  • Changelog. Top-level .fixed.md, named after the branch.
  • axiom: line (process note, not counted). rulespec-us#1927 is open, labeled pe-parity, and names this PR.

Out of scope / follow-up

  • Exception group assets. SSI's income test but the state's asset test (DE $4,000 before 2024, ND $3,000). Very small effect.
  • #10240. Until it merges, people who fail SSI's noncitizen test have pathway income 0.
  • #10374. Until it merges, about 2k North Dakotans who leave the pathway get no category.
  • Not modeled. DE MAT and NM Cat. 074(b) could join GA and NV under "Not changed here". NV and NM medically needy -inf limits are pre-existing.

Validation Summary

Check Result
CI 1 fail (Household API Partners, C1), 32 pass
Local tests Changed YAML 30/30; U 81/81; gov/hhs/medicaid 703; ruff clean
Partner tests None edited. PF 13 pass, 1 fail (C1). Healthcare and cash_health 78/78
References 26 checked; 1 does not corroborate (C2); WV anchor (G5)
Regulatory 14 states, WV, emergency exception, ND limit correct
Mutation 15 mutants: 8 killed; 7 survive, all killed by T1 or T2
Proposed tests U + T1 108/108; T2 1/1
Microsimulation 699k lose eligibility; −$22.88bn Medicaid (G8)
Branch 9 ahead / 21 behind; MERGEABLE; #10386 stacked
Other reviews None

Review Severity: REQUEST_CHANGES

C1, C2, SA1 and SA2 are open; under Pavel's criteria any open C or SA item means REQUEST_CHANGES.

Next Steps

To auto-fix issues: run the fix-pr workflow for this PR.

  1. C1 is not an auto-fix item. Do not edit PF. The author flags the change for @PavelMakarchuk and @MaxGhenis, a team member and the API partner are notified, and then the edit goes through the gate (CLAUDE.md:174-181).
  2. Retitle the KFF reference at P:13-14 and in the body (C2).
  3. Append T1 to U (SA1) and Case 9 to Y1 (SA2).
  4. Take the suggestions that you agree with.
  5. Run make format, then U, Y1 and gov/hhs/medicaid.
  6. Update the body: the CI sentence, ND (G1), #10394 (G6), microsimulation (G8).
  7. After this PR merges, merge main into #10386 again.

hua7450 and others added 2 commits October 27, 2026 14:53
- C2/G3: cite KFF June 2024 Appendix Tables 5 and 6 and the 2019
  survey's Appendix Table 1 instead of the 2024 Appendix Table 1.
- SA1: property tests pin the 14 states' flags (and so West Virginia's)
  and their SSI-rate limit, including North Dakota's.
- SA2: Case 9, a permanent resident past the five-year bar without 40
  quarters, passes the Medicaid immigration test and loses the pathway.
- G1: cite N.D. Admin. Code 75-02-02.1-40 in the limit's references.
- G2, G4, G5, G7, G9: clarify descriptions, the WV edition and comments.
- G10: rename covers_group to in_covered_group.

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

hua7450 commented Oct 27, 2026

Copy link
Copy Markdown
Collaborator Author

Thanks, @PavelMakarchuk. All items are addressed at 45d7868 except C1, which waits for @hua7450's partner-test decision. The branch also merges main. I didn't run tests locally; CI will run on this head.

Item Disposition
C1 partner TX breakeven case Waits for @hua7450's partner-test decision. The partner folder is not edited. The body now flags the change as partner-facing: the team and the API partner need to be told, and any edit goes through the CLAUDE.md gate. It also shows the five pins (aca_ptc 18,344.29, as in your run) and notes that the credit comes from the case's Medicare and ESHI inputs.
C2 KFF citation Fixed. covers_non_ssi_recipients.yaml now cites KFF June 2024 Appendix Tables 5 and 6, plus the 2019 survey's Appendix Table 1 (2018 data). The body's Sources paragraph matches.
SA1 untested flags Fixed. Your test_ssi_only_states_match_their_rules and test_ssi_only_states_use_the_ssi_rate are appended to the property test file. Together they pin all 14 flags, West Virginia's true flag, and the SSI-rate limit including North Dakota's, for 2018 to 2026, individual and couple.
SA2 exception key Fixed. Case 9 is your permanent resident past the five-year bar with no qualifying quarters: passes the Medicaid immigration test, gets no SSI, loses the pathway, no emergency Medicaid.
G1 ND 209(b) both ways Taken. N.D. Admin. Code 75-02-02.1-40 (page 89) is added to the limit's references. The body moves these recipients to "What changes" with the $11,970 to $11,928 and $16,230 to $17,892 figures, and notes the $1,662 couple rise next to the $42 band.
G2 stale sibling descriptions Taken, your wording, in income/limit/individual.yaml and couple.yaml.
G3 early years on KFF only Taken through C2's 2019 entry. I found no Kansas source before 2025-07-01.
G4 parameter description Taken, your wording.
G5 WV anchor Taken: the title names the October 5, 2026 edition.
G6 draft #10394 Taken: added to the merge order.
G7 covers mask comment Taken.
G8 microsimulation Taken. The body gives your numbers, attributed to your run (I didn't rerun it), with the SSI take-up caveat and the 158-record base.
G9 Case 6 comment Taken, your wording.
G10 covers_group Taken: renamed to in_covered_group in is_optional_senior_or_disabled_for_medicaid.py.
Stale CI sentence Fixed: the body now reports the CI result at b078376.

Noted as follow-ups, not in this PR:

Merge order is in the body:

TheAxiomFoundation/rulespec-us#1927 is updated to this head.

hua7450 and others added 2 commits October 27, 2026 15:57
Brings in main's CI fix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
At the earned-income break-even the person gets $0 SSI, so is not an SSI
recipient. Texas has no optional Medicaid group for aged, blind or
disabled people who do not receive SSI (MEPD A-3000), so Medicaid is $0
and the premium tax credit applies at 158% FPL ($18,344.29).

Approved by Ziming Hua (@hua7450) through the partner-test gate on
2026-10-27.

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

hua7450 commented Oct 27, 2026

Copy link
Copy Markdown
Collaborator Author

Partner-test gate: partners/analytics_coverage/edge_cases/federal/cash/ssi/federal.yaml, case ssi_earned_income_at_breakeven_ineligible (federal).

I answered the three questions from CLAUDE.md on 2026-10-27:

  1. Are you sure you want to edit this test file? Yes.
  2. Have you notified a team member about this change? Yes.
  3. Have you notified the API partner about this change? Yes.

This comment records my approval of the edit in b5e2f0256c. It also answers C1 of the review on this PR.

Output Before After
medicaid 13,708.50 0
is_medicaid_eligible true false
is_aca_ptc_eligible false true
aca_ptc 0 18,344.29
premium_tax_credit 0 18,344.29

The other pins are unchanged.

Model change and law

  • The person is 65, lives at home in Dallas County, is not disabled, and has $24,876 of wages. That puts SSI countable income at exactly the SSI rate, so SSI is $0 and the person is not an SSI recipient.
  • This PR turns off the optional aged, blind and disabled group for non-SSI recipients (42 CFR 435.210; 42 U.S.C. 1396a(m)) in states that don't cover it.
  • Texas covers people at home in this group only if they receive SSI (MEPD A-2000). Its optional groups are the institutional, waiver and buy-in groups (MEPD A-3000), so the person has no Medicaid.
  • Without Medicaid, Medicare or an employer offer, the premium tax credit applies at 158% of the poverty line. The benchmark plan costs $19,482.51 a year, minus a required contribution of 4.58% of $24,876 ($1,138.23).

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

Program Review

PR #10361, "Turn off the Medicaid optional aged/disabled pathway in 14 states that cover only SSI recipients" (hua7450). Round 2, incremental review of b078376..b5e2f02.

IDs: C = critical, SA = should address, G = suggestion. New items continue the numbering after the highest prior ID in each class.

Paths are as in round 1: P = covers_non_ssi_recipients.yaml, E = is_optional_senior_or_disabled_for_medicaid.py, L = medicaid_optional_senior_or_disabled_income_limit.py, U = tests/unit/test_medicaid_abd_ssi_rate_standard_properties.py, Y1 = is_optional_senior_or_disabled_for_medicaid.yaml, PF = tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/cash/ssi/federal.yaml. Line numbers refer to the reviewed head.

Source Documents

  • Reviewed head SHA: b5e2f02
  • Mode: incremental (round 2)
  • Scope: 8 files, 76 insertions and 18 deletions since b078376.
    • 1a6d3c9951 applies round 1: P, income/limit/individual.yaml and couple.yaml (line 1), Y1, U, E and L.
    • b5e2f0256c edits PF only, in one case.
    • 45d786871c and 4f631a56a6 merge main. They change no PR file.
    • The body changed: round 1 dispositions, a "Partner test impact" section, merge order and microsimulation numbers.
  • Texas: MEPD A-2000 (Revision 22-3) lists three mandatory groups: SSI, emergency Medicaid for aliens, and the RSDI COLA group. A-2100 (Revision 25-3) says "SSI recipients are automatically eligible for Medicaid". A-3000 (Revision 22-3) lists five optional groups: SSI denied due to entry into a long-term care facility, special income limit, HCBS waivers, Medicaid Buy-In for Children and Medicaid Buy-In.
  • SSA: POMS SI 02005.020 D.2: a person who is "eligible but not payable" "does not qualify automatically for Medicaid".
  • KFF June 2024 report (appendix, published 2024-06-20). I read the chart titles from the page's Datawrapper embeds, in page order:
    • Appendix Table 1 is "Selected Policies for Enrollment".
    • Table 5 is "State Adoption of Key Medicaid Eligibility Pathways Based on Old Age or Disability". Its dataset has "No" in the 100% FPL column for all 14 states and West Virginia.
    • Table 6 is "Medicaid Eligibility for SSI Enrollees and Optional Seniors & People with Disabilities Up To 100% FPL".
    • Table 7 (medically needy) has "No" for Texas seniors and people with disabilities.
  • KFF 2019 survey (appendix, published 2019-06-14): Appendix Table 1 is "State Adoption of Key Optional Pathways to Full Medicaid Eligibility Based on Old Age or Disability, 2018".
  • Federal (from round 1): 42 CFR 435.210; 42 U.S.C. 1396a(m); 26 U.S.C. 36B(c)(2)(B).

Branch Status

  • 13 ahead and 34 behind main (1976c4b600). git merge-tree against main is clean.
  • None of main's 34 new commits changes a PR file or an ACA, poverty-guideline or SSI parameter. The only Medicaid change is the pregnancy income limit (#10365).
  • CI at the head: all 34 checks pass, including Household API Partners (run 40590076887).
  • Stacked #10386 already contains b5e2f02 (0 commits behind). Its Household API Partners check passes.
  • Ordering dependencies are unchanged: #10373, #10378, #10240 and #10374 are open, and #10394 is a draft.

Round 1 items

ID Status Evidence
C1 RESOLVED (technical) The edit changes only one case. Its new values match the model at the head and follow from Texas law. See "C1 detail" below.
C2 RESOLVED P:13-16 cites KFF June 2024 Appendix Tables 5 and 6, plus the 2019 survey's Appendix Table 1. Both hrefs return 200. The table titles and the "No" values are confirmed (Source Documents). The body's Sources paragraph matches.
SA1 RESOLVED U:278-301 adds both proposed tests. U passes 108 of 108. The flag test compares the full set of false states with the 14 states for 2018-2026, so it also pins West Virginia as true. The limit test pins the SSI rate in all 14 states, North Dakota included, for an individual and a couple.
SA2 RESOLVED Y1:154-175 adds Case 9, and Y1 passes 9 of 9. A mutant that keeps the pathway for every noncitizen (status not CITIZEN) fails Case 9 only (1 failed, 8 passed). A probe matches the hand check: is_medicaid_immigration_status_eligible true, is_ssi_qualified_noncitizen false, ssi 0. Countable income is 0 at the head, before #10240. After #10240 it is $10,560 (12 x $900 - $240). Both are under $11,928.
G1 RESOLVED L:21 cites 75-02-02.1 page 89. The body's "What changes" moves North Dakota's 209(b) recipients there, with $11,970 to $11,928 and $16,230 to $17,892. It notes the $1,662 couple rise next to "$42 a year".
G2 RESOLVED individual.yaml:1 and couple.yaml:1. All 14 states still have 0.75 entries in both files, so the new wording is accurate.
G3 RESOLVED Closed by the 2019 entry at P:15-16. The author found no Kansas source before 2025-07-01. I accept that: KFF 2018 and 2024 both say "No".
G4 RESOLVED P:1.
G5 RESOLVED P:57-58.
G6 RESOLVED The body's merge order now lists #10394.
G7 RESOLVED U:197-199.
G8 RESOLVED The body's "Not changed here" gives the round 1 numbers. It attributes them to the reviewer's run and keeps the take-up and 158-record caveats.
G9 RESOLVED Y1:63-65. Cases 7 and 8 set countable income as an input, so "Cases 7 and 8 test it" is correct.
G10 RESOLVED E:28-30 and E:36-38. L:64 keeps covers_group for the bare flag, and the body's #10378 note uses that name.

C1 detail

  • Scope of the edit. b5e2f0256c changes one file, PF. In PF it changes only the case ssi_earned_income_at_breakeven_ineligible (federal) (PF:236): five pins (PF:289-290, 294, 297-298) and two comments (PF:285-288, 292-293). The other seven pins and the other 13 cases do not change. No other partner file differs from the merge base, in this round or in the full PR.
  • Values at the head. PF passes 14 of 14 locally and in CI. Probe of the case at the head:
Output Old pin New pin Head
medicaid 13,708.50 0 0
is_medicaid_eligible true false false
is_aca_ptc_eligible false true true
aca_ptc 0 18,344.29 18,344.285
premium_tax_credit 0 18,344.29 18,344.285

When only Texas's flag is set back to true (reform on covers_non_ssi_recipients.TX), the probe gives every old pin again. So the change comes only from P:150-151 (TX: 2018-01-01: false).

  • Medicaid 0 and is_medicaid_eligible false follow from the law.
    • Countable income equals the 2026 SSI rate ($11,928), so SSI pays $0. POMS SI 02005.020 D.2 says this "eligible but not payable" status gives no automatic Medicaid. TX A-2100 makes only SSI recipients automatically eligible.
    • A-2000's other mandatory groups do not apply. The person is a citizen, so emergency Medicaid for aliens does not apply. The person has no RSDI, so the RSDI COLA group does not apply.
    • A-3000's optional groups are institutional (A-3100, A-3200), waiver (A-3300) and buy-in (A-3400, A-3500) groups. The person is in none of them.
    • Texas covers neither the 42 CFR 435.210 group nor the 42 U.S.C. 1396a(m) group (KFF 2024 Table 5: "No"). Texas's medically needy group has no aged or disabled people (KFF 2024 Table 7). The probe agrees: is_medically_needy_for_medicaid false, medicaid_category NONE.
  • The premium tax credit follows from the case's inputs. Without Medicaid, and with the inputs is_medicare_eligible: false and is_aca_eshi_eligible: false, the person has no other minimum essential coverage (26 U.S.C. 36B(c)(2)(B)).
    • MAGI fraction: 24,876 / 15,650 = 1.5895, floored to 1.58. The probe gives aca_magi_fraction 1.58.
    • Applicable figure: 0.0419 + 0.08 / 0.50 x 0.0241 = 0.045756. The probe agrees.
    • Contribution: 24,876 x 0.045756 = $1,138.23.
    • SLCSP: $19,482.51 (probe: 19,482.512).
    • Credit: 19,482.51 - 1,138.23 = $18,344.28 by hand, or $18,344.29 from unrounded values. This is within the case's 0.1 margin.
    • The comment at PF:292-293 states these figures correctly.
  • The new comment is correct. PF:285-288 names A-3000's groups correctly. It does not mention the RSDI COLA group (A-2300), but the person has no RSDI, so the conclusion holds.
  • Process (fact only, not counted). The author's comment of 2026-10-27T21:51Z records "yes" to the three CLAUDE.md questions and gives the before/after table. It does not name the team member or the partner contact who was told.

Partner-facing change: Texas's covers_non_ssi_recipients is now false, so a 65-year-old Texan at the SSI earned-income break-even ($0 SSI) loses Medicaid (13,708.50 to 0) and becomes eligible for the premium tax credit (0 to 18,344.29); the author recorded the CLAUDE.md gate on 2026-10-27, and I accept it.

New findings

Critical

None.

Should address

None.

Suggestions

G11. Four body sentences are stale or inexact.

  • Where: the body's "Tests" section (last bullet), "Partner test impact" (first paragraph) and "Merge order" (#10386).
  • Evidence:
    1. "CI ran at b078376: every check passed except Household API Partners". At b5e2f02, all 34 checks pass.
    2. "Partner cash/ssi/federal.yaml: 13 passed, plus the expected failure below". PF now passes 14 of 14.
    3. "#10386 ... It needs this head merged in." #10386 already contains b5e2f02.
    4. "Its comment attributes the Medicaid to "TX's optional senior-or-disabled pathway", the $42 band above." The person is not in the $42 band. Countable income ($11,928) equals the SSI rate, so the person still meets the new limit (probe: limit $11,928, is_optional_senior_or_disabled_income_eligible true). Only the Texas flag ends the pathway. This sentence explains a partner-facing change, so it should be exact.
  • Fix (text only):
    • Item 1: "CI ran at b5e2f02: all 34 checks passed, including Household API Partners."
    • Item 2: "Partner cash/ssi/federal.yaml: 14 passed after b5e2f0256c."
    • Item 3: replace the first two sentences of the #10386 bullet with "#10386 has merged this head (b5e2f02)." Keep the rest of the bullet.
    • Item 4: replace "the $42 band above." with "Its countable income equals the SSI rate, so it still meets the new limit; the pathway ends because Texas has no group for people who do not receive SSI."

Investigated and cleared

  • Main merges. No conflict, and no effect on the partner case: no ACA, poverty-guideline or SSI change since the merge base.
  • The three other changed YAML files. medicaid_category.yaml and ms/dom/hmw/integration.yaml did not change this round and pass 22 of 22. Y1 passes 9 of 9.
  • New U tests. SSA_MONTHLY_RATES, YEARS, STATES and unit_simulation exist and cover 2018-2026 and the 50 states plus DC. The 2026 rates give $11,928 and $17,892.
  • Author's follow-up list (exception-group assets, #10240, #10374, DE MAT and NM Cat. 074(b)) matches round 1's "Out of scope". No IDs were attached.

Tests run

  • policyengine-core test PF: 14 passed.
  • policyengine-core test Y1: 9 passed.
  • pytest U: 108 passed.
  • policyengine-core test medicaid_category.yaml ms/dom/hmw/integration.yaml: 22 passed.
  • Probe of the partner case at the head, and with covers_non_ssi_recipients.TX set to true: values as in "C1 detail".
  • Probe of Case 9's intermediate values: as in SA2.
  • Mutant (pathway kept for every noncitizen) on a package copy: Y1 1 failed (Case 9), 8 passed. The copy was deleted.
  • git merge-tree of the head with main 1976c4b600: clean.
  • CI at the head (gh pr checks): 34 of 34 pass.

Verdict

APPROVE: C1, C2, SA1 and SA2 are resolved, and so are G1-G10. The only new item is G11, a body-wording suggestion. The PF edit is a partner-facing change. Its values are correct under the law, and I accept the gate that the author recorded.

@hua7450
hua7450 merged commit 3e6ee8f into PolicyEngine:main Oct 29, 2026
34 checks passed
hua7450 added a commit to hua7450/policyengine-us that referenced this pull request Oct 29, 2026
Keep both sides: PolicyEngine#10361's covers_non_ssi_recipients handling and reference,
PolicyEngine#10373's ND and WV SSI-rate flags, and this PR's state standards. Delete both
the WV and the WI poverty-guideline shares in limit/individual.yaml and
couple.yaml, and combine their descriptions.

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.

2 participants