Skip to content

Lower California's non-MAGI Medi-Cal asset limit to $21,000 / $31,000 on July 1, 2027 - #10375

Open
hua7450 wants to merge 26 commits into
PolicyEngine:mainfrom
hua7450:ca-medi-cal-asset-limit-2027
Open

hua7450 wants to merge 26 commits into
PolicyEngine:mainfrom
hua7450:ca-medi-cal-asset-limit-2027

Conversation

@hua7450

@hua7450 hua7450 commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #10465

Stacked on #10374 and #10360. This branch merges both, so their changes show in this diff until they merge. Merged heads: #10374 c1b120a6ed, #10360 af3e256ab5, and main at 976b409f4e.

After both are squash-merged:

  1. Merge main into this branch.
  2. Run git rm changelog.d/medicaid-medically-needy-limits.fixed.md changelog.d/msp-state-asset-income-rules.fixed.md, so those fragments are not released twice.
  3. Resolve the conflicts. They are insertion-only: keep main's text and add this PR's California rows, SB 164 references and cases.

What and why

California's budget trailer bill SB 164 (Statutes of 2026, Chapter 27; approved June 29, 2026) lowers the non-MAGI Medi-Cal asset limit on July 1, 2027. PolicyEngine kept $130,000 for one person and $195,000 for two in every later year. This PR adds the cut to the four California asset limits the model uses. The aged, blind and disabled limit's missing July 1, 2022 step ($130,000 / $195,000) is in #10364, not here.

Parameter (CA) Through June 30, 2027 From July 1, 2027
medicaid.eligibility.categories.senior_or_disabled.assets.limit.{individual,couple} $130,000 / $195,000 (none in 2024-2025; the July 2022 step is in #10364) $21,000 / $31,000
medicaid.eligibility.categories.medically_needy.limit.assets.{individual,couple} $130,000 / $195,000 $21,000 / $31,000
medicare.savings_programs.eligibility.asset.state_limit.{individual,couple} $130,000 / $195,000 $21,000 / $31,000
states.ca.chhs.wdp.eligibility.asset.{base,two_people,additional_person} (250% Working Disabled Program) $130,000 / $195,000 / +$65,000 for each person beyond two $21,000 / $31,000 / +$1,550 for each person beyond two (up to 10 people)

Working Disabled Program

WIC 14007.9(a)(1)(C) caps a Working Disabled Program applicant's resources at "the maximum levels established in subdivision (a) of Section 14005.62". So the program takes the new schedule too.

The old formula, base plus $65,000 for each person after the first, cannot express $21,000 / $31,000 / +$1,550. The PR therefore:

  • adds a two_people parameter ($195,000, then $31,000);
  • makes additional_person the amount for each person beyond two ($65,000, then $1,550);
  • changes ca_wdp_asset_eligible to use them.

Because $195,000 = $130,000 + $65,000, every limit before July 1, 2027 is unchanged.

Sources

  • SB 164, sec. 68, amends Welfare and Institutions Code (WIC) 14005.62 and keeps the $130,000 disregard plus $65,000 per additional member. Subdivision (e) says: "This section shall become inoperative on July 1, 2027".
  • SB 164, sec. 69, adds a new WIC 14005.62. For "an applicant or beneficiary whose eligibility is not determined using the modified adjusted gross income (MAGI)-based financial methods", subdivision (a)(1) sets "a resource limit of twenty-one thousand dollars ($21,000) in nonexempt property for a household with one member, thirty-one thousand dollars ($31,000) in nonexempt property for a household with two members, and one thousand five hundred fifty dollars ($1,550) for each additional household member, up to a maximum of 10 members". Subdivision (f) says: "This section shall become operative on July 1, 2027."
  • SB 164, sec. 71, re-adds WIC 14005.11 (Medicare Savings Programs), operative July 1, 2027. MSP resources must "not exceed the amount specified in subdivision (a) of Section 14005.62", so the cut also applies to MSP.
  • WIC 14005.40(c)(5) (aged and disabled FPL program): "Countable resources, as determined in accordance with subdivision (a) of Section 14005.62, do not exceed the maximum levels established in that section."
  • WIC 14007.9(a)(1)(C) (Stats. 2025, ch. 21, sec. 78, operative January 1, 2026): "The individual’s countable resources shall not exceed the maximum levels established in subdivision (a) of Section 14005.62."
  • ACWDL 21-31 (file pages 2-4) for the Working Disabled Program's July 1, 2022 history: "Effective July 1, 2022, the asset limits for Non-MAGI programs will increase to $130,000 for one person, and $65,000 for each additional person". Page 3 lists the ABD FPL aid codes and the 250% Working Disabled Program; page 4 shows "2 people $195,000".
  • Bill text: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260SB164
  • DHCS Asset Limit FAQ (https://www.dhcs.ca.gov/medi-cal/help/asset-limit-frequently-asked-questions/) gives the same figures: $130,000 plus $65,000 "Through June 30, 2027", and "Starting July 1, 2027" $21,000 for one person, $31,000 for two and $1,550 for each extra person. I found no DHCS county letter on the 2027 limits yet. DHCS's MSP and Working Disabled Program pages still list only the current limit.

The statute and DHCS agree on the amounts and dates, so this PR records no source conflict.

MSP and the federal floor

msp_asset_eligible tests resources against the higher of the federal MSP limit and the state limit, because a state may be less restrictive than federal law but not more. The federal limit is $9,950 / $14,910 in 2026 and is indexed to CPI. That is well under $21,000 / $31,000, so the higher limit is California's, which matches sec. 71.

Timing

  • is_optional_senior_or_disabled_asset_eligible, is_medically_needy_for_medicaid and ca_wdp_asset_eligible are annual variables. They read the January 1 value, so they first use the lower limits in 2028. A comment above each July 2027 row says so. msp_asset_eligible is monthly and switches in July 2027.
  • The new WIC 14005.62(a)(2) also requires the director to certify that systems are ready, "and no sooner than July 1, 2027". Implementation is also subject to federal approval under (e). This PR uses the operative date in the statute and DHCS's FAQ.

Limitations

  • New WIC 14005.62(b) and 14005.11(b) apply the new limit to people already enrolled only from their first annual redetermination on or after July 1, 2027. PolicyEngine has no redetermination-date input, so it applies the limit to everyone from that date.
  • The aged, blind and disabled, medically needy and MSP parameters cover one person or a couple only, so the $1,550 for each member after the second is encoded only for the Working Disabled Program, as was the earlier $65,000.

Notes for reviewers

Test plan

  • YAML cases come from the statute and ACWDL amounts:
    • Aged, blind and disabled:
      • 2027: $21,001 is still eligible (the January 1 read).
      • 2028: ineligible at $21,001 for one person and $31,001 for a couple (each spouse under $21,000); eligible at $20,000 and $30,000.
    • Medically needy:
      • 2027: $21,001 is still eligible.
      • 2028: ineligible at $21,001 and $31,001; eligible at exactly $21,000 and $31,000.
    • MSP: at $21,001 and $31,001, eligible in June 2027 and ineligible from July 2027. At exactly $21,000 and $31,000, eligible in July 2027.
    • Working Disabled Program (new ca_wdp_asset_eligible.yaml):
      • 2026: a couple at $195,000 and three people at $260,000 are eligible.
      • 2027: one person at $21,001 is still eligible.
      • 2028: one person at $21,000 and $21,001; a couple at $31,000 and $31,001; three people at $32,550 and $32,551; eleven people at $43,400 and $43,401, with the household capped at 10.
  • Source conflicts: not applicable.
  • make format (ruff)
  • Changelog fragment in changelog.d/
  • CI passes (tests were not run locally)

No file in tests/policy/baseline/partners/ changes.

axiom: TheAxiomFoundation/rulespec-us#1925 queued

🤖 Generated with Claude Code

hua7450 and others added 6 commits October 21, 2026 16:30
- Washington: no MSP asset test from 2023-01-01 (WSR 22-21-043).
- California: $130,000 / $195,000 asset limit from 2022-07-01; asset test
  reinstated from 2026-01-01 (ACWDL 21-31, 22-25, 25-14, 25-27).
- Minnesota: $10,000 / $18,000 asset limit, or the federal limit when
  higher (Minn. Stat. 256B.057 subd. 3).
- Illinois $25 and Mississippi $50 general income exclusions in place of
  the SSI $20.

Closes PolicyEngine#10359

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Switch on the senior and disabled medically needy flags for AR, IA, IL,
  NJ and ND.
- Add medicaid_medically_needy_income_limit, which applies a share of the
  poverty guideline (IL, MN, ND, NY, UT, WI) or of the SSI federal benefit
  rate (KS, WA) in place of a dollar limit; Washington applies its
  one-person limit to couples.
- Update dollar limits in CT, DC, NH, RI and NY (2022), and asset limits in
  CA, IL and NY.

Closes PolicyEngine#10357
Closes PolicyEngine#10358

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SB 164 (Stats. 2026, ch. 27) sec. 69 sets the non-MAGI resource limit
at $21,000 for one person and $31,000 for two from July 1, 2027, and
sec. 71 ties the Medicare Savings Program resource limit to it. Apply
the cut to the aged, blind and disabled, medically needy and MSP
California limits, with tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hua7450 and others added 2 commits October 26, 2026 16:43
…and pin the new limits

WIC 14007.9(a)(1)(C) caps 250% Working Disabled Program resources at the
WIC 14005.62(a) levels, so SB 164's July 1, 2027 schedule applies there
too: $21,000 for one person, $31,000 for two and $1,550 for each person
beyond two. Add a two_people parameter, make additional_person the amount
beyond two, and use them in ca_wdp_asset_eligible; limits before July
2027 are unchanged. Add eligible-side cases at or under the new limits,
WDP cases for one, two and three people, and January 1 timing comments
on the July 2027 rows read by annual variables.

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

- Illinois gives each applying spouse with income their own $25 exemption
  (PM 15-04-03-a, 89 Ill. Adm. Code 120.335(a)(1)); new by-state flag
  state_general_exclusion_per_spouse, used only in the couple path.
- Tests pin Washington before 2023, California July 2022 and December
  2025, California's couple limit, and Minnesota's individual and couple
  limits from above.
- Cite Welf. & Inst. Code 14005.62, Laws of Washington 2022 ch. 297 and the
  official Mississippi rules; label the Illinois and Mississippi start
  dates as in-effect-by dates.

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

- Year-keyed cases pin every dated CT, DC, NH, RI, NY, MN, ND and WI
  income limit; cases sit exactly at the IL, ND, CA and NY limits, with
  CA one dollar over, CA 2024 without a limit, and couples at the NY, CA
  and IL couple asset limits.
- NJ and CA cases use incomes above the optional ABD pathway.
- Disabled adults in AR, IA, IL, ND and NJ are in a medically needy
  category.
- Arkansas spend down in cents (108.33 / 216.66, DHS quick reference).
- Fix NY GIS 22 MA/11 and RI 210-RICR-40-00-3 titles, the RI section,
  the KS F-8 page; cite 305 ILCS 5/5-2 and Welf. & Inst. Code 14005.62.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hua7450 and others added 5 commits October 26, 2026 17:21
ACWDL 21-31 raised the non-MAGI limit, including the ABD FPL program, to
$130,000 for one person and $195,000 for two on July 1, 2022; the CA ABD
rows jumped from $2,000 / $3,000 straight to no limit in 2024. Add the
2022 rows with the 21-31 reference and a 2023 case. Add 2027 cases
showing the annual variables still read $130,000, WDP cases at the 2026
three-person limit and at the ten-person cap, and the page lists in the
two_people reference titles.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The PIL outside Chittenden County, the same for one and two people, each
January 1 (HBEE 8.06(b), 29.14; DCF B17-26; DVHA charts 2020-2026). No
2019 PIL was found, so 2018's value stays in force through 2019. The
higher Chittenden PIL is not modeled.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PolicyEngine#10364 adds the same California 2022-07-01 rows, ACWDL 21-31 reference
and 2023 case to the senior_or_disabled asset files. Remove them here to
avoid duplicate edits; keep the 2027 January 1 case.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml
KFF 2018 and 2026 list no medically needy program for aged, blind or
disabled people in these five states; the flags had been swapped with
AR, IL, IA, NJ and ND. Their -inf limits meant no result changes. The NJ
DMAHS fact sheet now 404s, so cite the 2026-05-14 Wayback copy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hua7450 and others added 5 commits October 26, 2026 20:08
# Conflicts:
#	policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/couple.yaml
#	policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/individual.yaml
#	policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… 1999

- A spouse's own income for the Illinois $25 exemption floors earned and
  unearned income separately, so a self-employment loss earns no
  exemption and does not raise countable income.
- Mississippi's MSP asset test ended 1999-07-01 (Eligibility Manual page
  7220; 23 Miss. Code R. 103-1.8(A)(1)), not 2024.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Iowa 441-75.8(7) and (5)"a", the NJ fact sheet (archived) and SPA
  KS-25-0019 page 7 for the $475 standard, alongside KFF.
- HBEE 29.14 cited from file page 50.
- Number the two category cases 3 and 4, after PR 10370's Cases 1-2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml
Brings in main's CI fix.

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 #10375, "Lower California's non-MAGI Medi-Cal asset limit to $21,000 / $31,000 on July 1, 2027" (hua7450). Round 1, full review.

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

Paths: ABD/ = policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/assets/limit/, MN/ = policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/limit/assets/, MSP/ = policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/state_limit/, WDP/ = policyengine_us/parameters/gov/states/ca/chhs/wdp/eligibility/asset/, V = policyengine_us/variables/gov/states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.py. Tests under policyengine_us/tests/policy/baseline/gov/: TA = hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.yaml, TMN = hhs/medicaid/eligibility/categories/medically_needy/is_medically_needy_for_medicaid.yaml, TMSP = hhs/medicare/savings_programs/eligibility/msp_asset_eligible.yaml, TW = states/ca/chhs/wdp/eligibility/ca_wdp_asset_eligible.yaml. Line numbers refer to the reviewed head. Every PDF link uses the file page number.

Source Documents

  • Reviewed head SHA: 8f9c019
  • Mode: full
  • Scope: this PR's own commits; stacked on #10374 and #10360. The own commits are 0ca586c1d9, a0ac0c2658, 9705eae0b4 and 35b23f9de7 (15 files, +633/-4). The analysis ran at 4579b28e77. The head moved only by a merge of main, which changes no file in this scope, so every finding holds at the head.
  • SB 164 (Stats. 2026, ch. 27, approved June 29, 2026), bill text, secs. 68-71 of the chaptered text.
  • AB 173 (Stats. 2026, ch. 252), bill text, sec. 16.
  • WIC 14005.40(c)(5) and 14007.9(a)(1)(C), current text.
  • DHCS letters (PDF, Wayback captures, read as images): ACWDL 21-31 pages 1-4, ACWDL 22-25 pages 2 and 5, ACWDL 25-14 pages 1, 2, 8 and 9.
  • DHCS pages (Wayback, October 18, 2026): Asset Limit FAQ, Working Disabled Program, and the 2026 letter archive (26-01 to 26-04 and 26-08 only).
  • Years: values checked 2022-2028. The PR's tests use 2026-2028.

Branch Status

  • The branch is 26 commits ahead and 6 behind main (8ea43422e6). It is MERGEABLE, and a merge with main is clean. CI: 33 pass, 0 fail.
  • This branch carries #10374 (medically needy limits) and #10360 (MSP state asset rules), so their changes show in this diff. Their items are in their own reviews and are not counted here. After both merge, merge main into this branch, remove changelog.d/medicaid-medically-needy-limits.fixed.md and changelog.d/msp-state-asset-income-rules.fixed.md with git rm, and resolve the insertion-only conflicts, as the PR body says.
  • #10360 (head 7291aa7713) now adds its own Case 21 to TMSP, a new conflict. Keep both blocks and renumber this PR's MSP cases to 22-25. Its ACWDL 21-31 title fix in MSP/ merges cleanly.
  • #10364 (head 45120fa173) carries California's July 2022 ABD step ($130,000 / $195,000) and the inclusive-limit flags; this PR removed its own copy of that step in 35b23f9de7. The two ABD/ files merge cleanly into 2,000 → 130,000 (2022-07) → .inf (2024) → 130,000 (2026) → 21,000 (2027-07), and the matching couple series. Only TA conflicts. The body's recipe still gives 45 cases, and the resolved file passes. After the SA fixes, the same sed -n '148,$p' tail carries the new cases; use the new head SHA. The PR that merges second also applies G1.
  • Process note: the body cites heads d3314169a7 (#10364), c1b120a6ed (#10374) and af3e256ab5 (#10360). All three have moved; the recipe still holds.
  • #10370, #10386, #10394 and #10240 conflict with this branch in test files. This PR's MN cases declare marital_units, so #10370's move to the marital unit does not change their results.

What the PR gets right

  • Every added amount and date matches SB 164 sec. 69 and the DHCS FAQ: $21,000 / $31,000 / +$1,550 for each member beyond two, up to 10, from July 1, 2027. The earlier $130,000 / $195,000 / +$65,000 stay unchanged (sec. 68; ACWDL 21-31 page 4; 25-14 page 9). A probe for sizes 1-12 found 0 mismatches.
  • The PR finds all four readers of California's non-MAGI asset limit. Adding the Working Disabled Program through WIC 14007.9(a)(1)(C) is a good catch; ACWDL 25-14 page 8 lists the 250% WDP as affected.
  • The new two_people tier is the smallest change that can express the new schedule. Results before July 2027 are identical ($195,000 = $130,000 + $65,000).
  • The timing is honest: a comment above each July 2027 row says that annual variables read January 1, and "Limitations" covers the renewal phase-in.
  • Of 50 small code and parameter changes, the tests catch 38. The MN, MSP and WDP one-person rows are pinned on both sides of the date and the amount, and every WDP formula change is caught.
  • The stacking steps and the #10364 recipe are clear. The changelog fragment is correct, and no partner test is touched.

Critical (Must Fix)

None.

Should Address

SA1. The tests do not pin the new aged, blind and disabled limits of $21,000 and $31,000 to the dollar.

  • Where: ABD/individual.yaml:32 and ABD/couple.yaml:32; the eligible 2028 cases at TA:184-214.
  • Evidence: the eligible cases sit $1,000 under the new limits. With the strict < on main (policyengine_us/variables/gov/hhs/medicaid/eligibility/categories/is_optional_senior_or_disabled_asset_eligible.py:32), a limit of $20,500 or $30,500 passes all 81 cases in the five related test files. The same rows in MN, MSP and WDP are pinned to the dollar.
  • The body chose $20,000 and $30,000 so that the result does not depend on the operator. $20,999 and $30,999 have the same property: they pass at this head and on the tree merged with #10364.
  • Why SA: a missing edge case for an already-tested variable.
  • Fix (ran: both cases pass at the head, and each fails when the limit is $20,500 or $30,500). Append to TA after line 223, or change the cases at TA:184-214 to these amounts:
- name: assets one dollar below the July 2027 CA limit in 2028, eligible
  period: 2028
  input:
    ssi_countable_resources: 20_999
    state_code: CA
  output:
    # 20,999 is under the 21,000 limit that applies from July 2027.
    is_optional_senior_or_disabled_asset_eligible: true

- name: joint filers one dollar below the July 2027 CA couple limit in 2028, eligible
  period: 2028
  input:
    people:
      person1:
        ssi_countable_resources: 15_499
      person2:
        ssi_countable_resources: 15_500
    marital_units:
      marital_unit1:
        members: [person1, person2]
    households:
      household:
        members: [person1, person2]
        state_code: CA
    tax_units:
      tax_unit:
        members: [person1, person2]
        tax_unit_is_joint: true
  output:
    # 15,499 + 15,500 = 30,999 is under the 31,000 couple limit.
    is_optional_senior_or_disabled_asset_eligible: [true, true]

SA2. The couple and multi-person rows have no test before the change, and the new 2024 .inf row has no test.

  • Where: ABD/couple.yaml:32, MN/couple.yaml:52, WDP/two_people.yaml:4,7 and WDP/additional_person.yaml:5.
  • Evidence: each one-person row has a 2027 "still eligible" case (TA:216-223, TMN:469, TW:150). The couple and multi-person rows have only 2028 cases. If one of these four rows starts on 2027-01-01, all 81 cases still pass, and the annual variables apply the cut a year early. If the two_people 2024-01-01 .inf row is removed, all cases also pass, and a two-person WDP household in 2024-2025 gets a $195,000 limit. ACWDL 22-25 page 2 says the limits were "eliminated".
  • Why SA: missing edge cases for already-tested variables (the switch dates).
  • Fix (ran: all five cases pass at the head, and each fails on the change it pins). Append to TA after line 223:
- name: joint filers above the July 2027 CA couple limit in 2027, still eligible
  period: 2027
  input:
    people:
      person1:
        ssi_countable_resources: 15_500
      person2:
        ssi_countable_resources: 15_501
    marital_units:
      marital_unit1:
        members: [person1, person2]
    households:
      household:
        members: [person1, person2]
        state_code: CA
    tax_units:
      tax_unit:
        members: [person1, person2]
        tax_unit_is_joint: true
  output:
    # January 1, 2027 still reads the 195,000 couple limit; 31,000 first applies in 2028.
    is_optional_senior_or_disabled_asset_eligible: [true, true]

Append to TMN after line 484:

- name: Case 21, California senior couple with assets above the July 2027 couple limit is still eligible in 2027.
  period: 2027
  input:
    people:
      person1:
        age: 72
        is_adult_for_medicaid: false
        is_optional_senior_or_disabled_for_medicaid: false
        is_ssi_recipient_for_medicaid: false
        ssi_countable_income: 9_000
        medicaid_medically_needy_medical_expenses: 4_000
        ssi_countable_resources: 15_500
      person2:
        age: 70
        is_adult_for_medicaid: false
        is_optional_senior_or_disabled_for_medicaid: false
        is_ssi_recipient_for_medicaid: false
        ssi_countable_income: 9_000
        medicaid_medically_needy_medical_expenses: 4_000
        ssi_countable_resources: 15_501
    tax_units:
      tax_unit:
        members: [person1, person2]
        tax_unit_is_joint: true
    marital_units:
      marital_unit:
        members: [person1, person2]
    households:
      household:
        members: [person1, person2]
        state_code: CA
  output:
    # Limit 934 x 12 = 11,208. (9,000 - 4,000) x 2 = 10,000 is under it. January 1,
    # 2027 still reads the 195,000 couple limit; 31,000 first applies in 2028.
    is_in_medicaid_medically_needy_category: [true, true]
    is_medically_needy_for_medicaid: [true, true]

Append to TW after line 270:

- name: Case 12, two-person tax unit above the July 2027 two-person limit is still eligible in 2027.
  period: 2027
  input:
    people:
      person1:
        age: 45
        ssi_countable_resources: 15_500
      person2:
        age: 43
        ssi_countable_resources: 15_501
    tax_units:
      tax_unit:
        members: [person1, person2]
    households:
      household:
        members: [person1, person2]
        state_code: CA
  output:
    # January 1, 2027 still reads the 195,000 two-person limit; 31,000 first
    # applies in 2028.
    ca_wdp_asset_eligible: [true, true]

- name: Case 13, three-person tax unit at the 2027 three-person limit is eligible.
  period: 2027
  input:
    people:
      person1:
        age: 45
        ssi_countable_resources: 130_000
      person2:
        age: 43
        ssi_countable_resources: 130_000
      person3:
        age: 10
    tax_units:
      tax_unit:
        members: [person1, person2, person3]
    households:
      household:
        members: [person1, person2, person3]
        state_code: CA
  output:
    # January 1, 2027 reads 195,000 + 1 x 65,000 = 260,000. 130,000 + 130,000
    # + 0 = 260,000 is at it; resources may not exceed it.
    ca_wdp_asset_eligible: [true, true, true]

- name: Case 14, two-person tax unit with large assets is eligible in 2025, when no asset limit applied.
  period: 2025
  input:
    people:
      person1:
        age: 45
        ssi_countable_resources: 500_000
      person2:
        age: 43
        ssi_countable_resources: 500_000
    tax_units:
      tax_unit:
        members: [person1, person2]
    households:
      household:
        members: [person1, person2]
        state_code: CA
  output:
    # ACWDL 22-25 eliminated the limit from January 1, 2024; ACWDL 25-14
    # reinstated it from January 1, 2026.
    ca_wdp_asset_eligible: [true, true]

Suggestions

G1. Move the 2028 aged, blind and disabled cases to the exact limits when #10364 and this PR meet.

  • Where: TA:184-214. The strict < is in is_optional_senior_or_disabled_asset_eligible.py:32 on main; this PR does not change it.
  • Evidence: WIC 14005.40(c)(5) says countable resources "do not exceed" the 14005.62 levels, so $21,000 qualifies. At this head, $21,000 and $15,500 + $15,500 in 2028 return false. #10364 makes California's comparison inclusive. On the merged tree both exact cases pass, and the existing $21,001 and $31,001 cases then catch a limit raised by $1.
  • Why a suggestion: the strict comparison is on main, #10364 fixes it, and the body already plans this step.
  • Fix (ran on the tree merged with #10364: the resolved TA, these cases and the SA cases, 54 passed; it fails at this head by design). The PR that merges second changes the two eligible 2028 cases:
- name: assets at the July 2027 CA limit in 2028, eligible
  period: 2028
  input:
    ssi_countable_resources: 21_000
    state_code: CA
  output:
    # Resources may not exceed 21,000 (WIC 14005.40(c)(5)).
    is_optional_senior_or_disabled_asset_eligible: true

In the couple case, use 15_500 for both people, the name "joint filers at the July 2027 CA couple limit in 2028, eligible", and the comment "15,500 + 15,500 = 31,000 does not exceed the couple limit."

G2. Remove a max_ that can never bind.

  • Where: V:25.
  • Evidence: where(capped_size >= 2, ...) uses the first branch only when capped_size - 2 is 0 or more. Without max_, all 81 cases pass. The repo style drops a min_ or max_ that can never bind.
  • Why a suggestion: dead code with no effect on results.
  • Fix (ran; ruff format --check is clean):
            p.two_people + (capped_size - 2) * p.additional_person,

G3. Correct the ACWDL 21-31 title.

  • Where: WDP/two_people.yaml:16.
  • Evidence: the title says "Asset Limit Changes for Non-MAGI Medi-Cal (Phase I)". The subject on page 1 of the letter is "Increases to the Asset Limits for Non-Modified Adjusted Gross Income Medi-Cal Programs". The link, letter number and pages are correct, so the value is corroborated. #10360 made the same correction in its MSP files.
  • Fix (ran):
    - title: "California DHCS All County Welfare Directors Letter 21-31, Increases to the Asset Limits for Non-Modified Adjusted Gross Income Medi-Cal Programs #page 2-4"

G4. Give additional_person the same letters as two_people.

  • Where: WDP/additional_person.yaml:11-17.
  • Evidence: the $65,000 from 2022-07-01 cites only the DHCS WDP page. ACWDL 21-31 pages 2 and 4 and ACWDL 25-14 pages 1 and 9 state "$65,000 for each additional person" directly, and two_people.yaml already cites these letters.
  • Fix (not run; references only):
    - title: "California DHCS All County Welfare Directors Letter 21-31, Increases to the Asset Limits for Non-Modified Adjusted Gross Income Medi-Cal Programs #page 2,4"
      href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/21-31.pdf#page=2
    - title: "California DHCS All County Welfare Directors Letter 25-14, Reinstatement of Asset Limits for Non-MAGI Medi-Cal Programs #page 1,9"
      href: https://www.dhcs.ca.gov/services/medi-cal/eligibility/letters/Documents/25-14.pdf#page=1

G5. The body's note on a WIC 14005.11 gap is out of date.

  • Where: the PR body, last bullet of "Notes for reviewers"; optionally MSP/individual.yaml:17-18 and MSP/couple.yaml:17-18.
  • Evidence: AB 173 sec. 16 amends the version of WIC 14005.11 from SB 164 sec. 70, so that version "shall become inoperative on July 1, 2027". That is the day sec. 71's version starts, so there is no gap. No value changes.
  • Fix: replace the bullet with "AB 173 (Stats. 2026, ch. 252) sec. 16 moved the earlier WIC 14005.11 to inoperative on July 1, 2027, the day the sec. 71 version starts." Optionally add this reference to both MSP files (not run):
    - title: California Assembly Bill 173 (Statutes of 2026, Chapter 252), Section 16 - Welfare and Institutions Code 14005.11(h), inoperative July 1, 2027
      href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202520260AB173

G6. Mid-year start and renewal phase-in (documented choice).

  • Where: the comments above the July 2027 rows (ABD/*.yaml:31, MN/*.yaml:51, WDP/base.yaml:6, WDP/two_people.yaml:6, WDP/additional_person.yaml:4) and MSP/*.yaml:27.
  • Evidence: new WIC 14005.62(b) and 14005.11(b) apply the new limit to enrolled people from their first annual redetermination on or after July 1, 2027. The annual variables use $130,000 for all of 2027 and $21,000 for all of 2028. So 2027 overstates eligibility for July-December 2027 applicants with $21,000-$130,000 ($31,000-$195,000 for couples), and 2028 understates it for enrollees who renew later in 2028. The monthly MSP understates it for enrollees in that band until renewal, for up to 12 months. No run measures the size.
  • Why a suggestion: a deliberate choice, documented in the YAML comments and "Limitations"; the model has no redetermination-date input.
  • Fix: none needed. Optionally open a tracked issue for the renewal phase-in.

G7. DHCS has not yet issued a county letter on the 2027 limits.

  • Where: the 2027-07-01 rows in all four programs.
  • Evidence: new WIC 14005.62(a)(2) starts the limit after the director's systems determination "and no sooner than July 1, 2027", and (e) requires federal approval. No 2026 letter covers these limits. The FAQ states July 1, 2027; the WDP page still shows $130,000 / $65,000.
  • Why a suggestion: the statutory date is the right default, and the body says so.
  • Fix: open a tracked follow-up to recheck the date and cite the letter when DHCS issues it.

Investigated and cleared

  • Program scope. ABD through WIC 14005.40(c)(5), MSP through the new 14005.11(a), WDP through 14007.9(a)(1)(C). MAGI groups are exempt: no MAGI path reads these parameters.
  • Citations. The chapter, section and subdivision are correct in all nine SB 164 references and the WIC 14007.9(a)(1)(C) references. The bill page has no section anchors, so a bill-level link is right.
  • WDP formula. It equals the old formula before July 2027 (WDP Cases 1 and 9 pass).
  • Periods. Annual variables read January 1; MSP is monthly and switches in July 2027.
  • MSP federal floor. $9,950 / $14,910 in 2026 is below both California schedules, so max_ returns California's amount.
  • additional_person meaning. It now means each person beyond two. Earlier values do not change, and no other file reads it. A saved reform that edits it now changes only households of three or more; a changelog sentence for API users is optional.

Out of scope / follow-up

  • The WDP limits before July 2022 take the 2022 values; ACWDL 21-31 page 1 gives $2,000 per person and $3,000 for two before that. two_people.yaml follows main's base.yaml, so nothing changes against main.
  • WDP/max_people.yaml (not in the diff) cites only the DHCS page. SB 164 secs. 68 and 69 now put the 10-member cap in statute.
  • The ABD, MN and MSP limits hold only one-person and couple amounts, so +$1,550 applies only in WDP (documented).
  • In the stacked PRs' own reviews: the MN tax-unit sums (#10374), the MSP couple test on spm_unit_is_married (#10360), and the ACWDL 21-31 "(Phase I)" title in #10374's MN files and #10364's ABD files.
  • The microsimulation was not run.

Validation Summary

Check Result
CI 8f9c019428: 33 pass, 0 fail
Local tests The four touched test files and ca_wdp_eligible.yaml: 81/81 at the head. At 4579b28e77 (same PR files): Medicaid 738, Medicare 324, CA chhs and dhcs 101, partner healthcare 70 and CA 91 (read-only)
Fix runs SA1, SA2, G2 and G3 at the head: 88 passed (81 + 7); ruff format --check clean. G1 on the tree merged with #10364: 54 passed
Mutation 50 changes: 38 caught; the SA cases catch 7; 2 equivalent; 2 catchable only after #10364; 1 structural (MAGI)
References and law All values corroborate. One wrong title (G3); one out-of-date body note (G5)
Merge trials main and #10374 clean. #10360: TMSP. #10364: TA, recipe holds
Partner contract tests None edited
PR body Accurate apart from G5 and the old head SHAs. axiom: line present (process note, not counted)
Other reviews None

Review Severity: REQUEST_CHANGES

Two should-address test gaps are open (SA1, SA2), and one set of seven cases closes both. There are no critical items and seven suggestions.

Next Steps

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

  1. Add the seven test cases in SA1 and SA2.
  2. Take the suggestions that you agree with. G2, G3 and G4 are small edits.
  3. Run make format, then the four touched test files and ca_wdp_eligible.yaml.
  4. After #10374 and #10360 merge, merge main, remove their two changelog fragments, keep #10360's new MSP Case 21, and renumber this PR's MN and MSP cases.
  5. With #10364, the PR that merges second applies the TA recipe and G1.
  6. Update the body: the AB 173 note (G5) and the head SHAs.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Encode SB 164's July 1, 2027 non-MAGI Medi-Cal asset limit (WIC 14005.62)

2 participants