Skip to content

Add Medicaid LTSS financial eligibility screen (TX, DE, WA) - #9184

Open
MaxGhenis wants to merge 5 commits into
mainfrom
ltss-financial-eligibility
Open

Add Medicaid LTSS financial eligibility screen (TX, DE, WA)#9184
MaxGhenis wants to merge 5 commits into
mainfrom
ltss-financial-eligibility

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Adds an opt-in Medicaid long-term services and supports (LTSS) financial-eligibility screen: an effective-dated 2026 federal chassis with Texas, Delaware, and Washington parameters covering the special income limit routes (300% of SSI in TX/WA; Delaware's 250% route with the $20-disregard mechanics), qualified income trusts, institutional medically-needy budgeting (WA), resource limits, home-equity caps, and spousal impoverishment protections (CSRA floor/half/maximum regimes and MMMNA).

Six new variables (medicaid_ltss_financial_pathway, is_medicaid_ltss_income_eligible, medicaid_ltss_csra_resource_eligible, medicaid_ltss_home_equity_eligible, medicaid_ltss_mmmna, is_medicaid_ltss_financial_threshold_eligible) — deliberately not integrated into is_medicaid_eligible, enrollment/take-up, or Medicaid benefit values. Functional/level-of-care eligibility is out of scope and labeled as such; QIT-adjusted income and countable resources are trusted inputs with the limitation in metadata; unknown HCBS waivers fail closed to unmodeled rather than inheriting statewide rules.

Every parameter value traces to a cited primary source (Texas HHS Appendix XXXI, Delaware's 2026 income-standards notice and LTC regulation, Washington's 2026 standards and WACs) with reference URLs in the YAML metadata; where a state document does not establish a value (e.g., Delaware's numeric home-equity cap), it remains unmodeled rather than inferred.

35 YAML contract tests cover every SIL/resource/home-equity boundary, TX QIT sufficiency both ways, DE's 250% + disregard, WA SIL-failure→institutional-MN, all three CSRA control regimes, an MMMNA non-conversion assertion, home-equity exceptions, identical-household cross-state comparisons, fail-closed unknown-waiver, and vectorized cases.

🤖 Generated with Claude Code

@codecov

codecov Bot commented Jul 31, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (74f045a) to head (02a7c0b).
⚠️ Report is 6 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #9184    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files            3        25    +22     
  Lines           63       338   +275     
  Branches         3         0     -3     
==========================================
+ Hits            63       338   +275     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@DTrim99

DTrim99 commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Program Review

PR #9184 — "Add Medicaid LTSS financial eligibility screen (TX, DE, WA)" (author: @MaxGhenis). Opt-in financial-threshold screen (special income limits/QIT, medically-needy, resource limits, CSRA, home equity, MMMNA) for 2026, deliberately not wired into is_medicaid_eligible, with QIT-adjusted income and countable resources as documented trusted inputs.

Source Documents

# Source URL Pages
1 TX HHS MEPD Handbook, Appendix XXXI — Budget Reference Chart (Rev. 26-2, eff. June 1, 2026) https://fhb.hhs.texas.gov/handbooks/medicaid-elderly-people-disabilities-handbook/appendix-xxxi-budget-reference-chart HTML chart (n/a)
2 DE DMMA Administrative Notice A-14-2025 — 2026 SSI-Related Income Standards and Medicare Premiums https://dhss.delaware.gov/wp-content/uploads/sites/11/2026/06/2026-SSI-Related-Income-Standards-and-Medicare-Premiums.pdf 2
3 WA HCA — Apple Health Income and Resource Standards (1/1/2026) https://www.hca.wa.gov/assets/free-or-low-cost/income-standards-20260101.pdf 7
4 CMS CMCS Informational Bulletin (4/27/2026) — Updated 2026 SSI and Spousal Impoverishment Standards https://www.medicaid.gov/sites/default/files/2026-04/cib04272026.pdf 2
5 Supplementary regulations (HTML/PDF) — WAC 182-513-1395, WAC 182-515-1508 (+1505/1506 cross-checked); DE DSSM, 16 DE Admin Code 20000 (LTC), re-collected clean (83 pp.) https://app.leg.wa.gov/wac/default.aspx?cite=182-515-1505 ; https://regulations.delaware.gov/api/AdminCode/title16/20000/13aee487-1cd1-4726-addf-63603af28a78 n/a / 83
  • Year: 2026 — Scope: PR changes only (merge-base diff, 64 files: 32 parameters, 25 variables, 6 test YAMLs, 1 changelog fragment)

Branch Status

⚠ PR branch is 24 commit(s) behind main. Consider rebasing before merging. Review was scoped to the PR's actual changes — staleness did not affect findings.

Critical (Must Fix)

  1. Delaware can never pass the composite screen — home-equity fails closed even for non-homeowners, and the DE cap is in fact established by DE regulation.
    Files: policyengine_us/variables/gov/hhs/medicaid/eligibility/long_term_care/financial/medicaid_ltss_home_equity_eligible.py (home_cap_is_modeled = (state == TX) | (state == WA), default=0), is_medicaid_ltss_financial_threshold_eligible.py (ANDs home-equity in), tests medicaid_ltss_home_equity_eligible.yaml Case 7 and is_medicaid_ltss_financial_threshold_eligible.yaml Case 2.
    Because DE has no modeled cap, every Delaware applicant returns medicaid_ltss_home_equity_eligible = False absent a residency/hardship exception — including an applicant with home_market_value: 0 — so is_medicaid_ltss_financial_threshold_eligible is false for all DE applicants regardless of income/resources. Delaware is one of the three states the PR adds, yet it can never produce a positive composite result. This is legally wrong on two counts: (a) under 42 USC 1396p(f) the home-equity payment bar applies only to a person with an equity interest in a home — a non-homeowner is not barred (https://www.law.cornell.edu/uscode/text/42/1396p); and (b) the PR's premise that "no DE document establishes a numeric cap" is contradicted by the re-collected DE regulation: DSSM 20320.7.B/E (16 DE Admin Code 20000) bars payment only where equity "exceeds the home equity cap as set by federal regulations" and adopts the CPI-indexed federal-minimum tier ($500,000 base in 2006), i.e., $752,000 for 2026 — the value already present in the PR's own federal/home_equity/minimum.yaml and confirmed on the CMS CIB chart (https://www.medicaid.gov/sites/default/files/2026-04/cib04272026.pdf). Fix: at minimum let zero-equity applicants pass the home-equity component; preferably give DE the federal-minimum $752,000 cap citing DSSM 20320.7.B/E (https://regulations.delaware.gov/api/AdminCode/title16/20000/13aee487-1cd1-4726-addf-63603af28a78).

Should Address

  1. The new home-equity subsystem duplicates the existing federal LTC home-equity chassis.
    Files: medicaid_ltss_home_equity_eligible.py plus seven manual home-input variables (medicaid_ltss_home_market_value/encumbrances/ownership_share/occupied_by_spouse/child_under_21/blind_or_disabled_child/hardship_waiver) and parameters financial/{tx,wa}/home_equity/limit.yaml, financial/federal/home_equity/{minimum,maximum}.yaml.
    The model already implements the 42 USC 1396p(f) bar via is_medicaid_long_term_care_home_equity_eligible and medicaid_home_equity_limit_family_exception (which derive spouse/child residence from actual household structure, is_blind/is_disabled, and age), backed by gov.hhs.medicaid.eligibility.long_term_care.home_equity.limit — which already carries the 2026 value $1,130,000 and 2027/2028 values incl. the H.R.1 (P.L. 119-21) Sec. 71108 change. The new wa/home_equity/limit.yaml (2026-only) will silently diverge from the tracked federal figure in 2027+. Prefer reusing/extending the existing chassis and parameters over the parallel financial/*/home_equity/* tree. (Note: the code-pattern auditor read the new medicaid_ltss_* names as intentionally namespaced trusted inputs; the regulatory reviewer flagged the duplication as blocking. Consolidated here as a strong should-address given the screen is opt-in and un-integrated.)

  2. TX MMMNA regime mismatch — verified (code-path CONFIRMED), informational-value only.
    Files: medicaid_ltss_mmmna.py, test medicaid_ltss_mmmna.yaml (TX state_code).
    Texas sets the community-spouse MMMNA as a single flat figure equal to the federal maximum — TX Appendix XXXI lists exactly one line, "MMMNA also known as Spousal Allowance — $4,066.50", with no minimum and no shelter standard (https://www.hhs.texas.gov/handbooks/medicaid-elderly-people-disabilities-handbook/appendix-xxxi-budget-reference-chart; corroborated by MEPD J-7200). The PR applies the generic federal formula ($2,705 + excess shelter over $811.50, capped at $4,066.50) to all states, and its own TX-coded test pins the federal-formula outputs [2_705, 2_705, 4_066.50] — understating the TX MMMNA by up to $1,361.50/month for low-shelter cases. Verification confirmed medicaid_ltss_mmmna feeds no eligibility output anywhere in the PR (exhaustive consumer trace) — it is a standalone informational quantity, hence should-address rather than critical. Remedies (any one): add a TX flat-maximum branch/parameter; re-scope the test off TX; or explicitly document that state MMMNA regimes are unmodeled and label the variable federal-only. (Open question noted for any follow-up: whether WA pays the maximum flat — check WAC 182-513-1380; DE regime likewise unmodeled.)

  3. Seven federal "chassis" parameters are declared but never referenced.
    Files: financial/federal/ssi_fbr/{individual,couple}.yaml, federal/resources/{individual,couple}.yaml, federal/special_income_limit/maximum.yaml, federal/home_equity/{minimum,maximum}.yaml.
    Flagged independently by three validators. Only federal/csra/{minimum,maximum} and federal/mmmna/* are read by formulas. The orphans also duplicate canonical values living elsewhere (SSI FBR = gov.ssa.ssi.amount; home-equity limit = gov.hhs.medicaid.eligibility.long_term_care.home_equity.limit), inviting drift. Remove them or wire them to real use (the values themselves are all correct per the CMS CIB).

  4. No aged/blind/disabled categorical gate on the SSI-related pathways.
    Files: is_medicaid_ltss_financial_threshold_eligible.py, is_medicaid_ltss_income_eligible.py, medicaid_ltss_financial_pathway.py.
    The 300% special-income level and institutional/medically-needy routes exist only for the SSI-related (aged 65+/blind/disabled) population (42 CFR 435.236, 435.1005; SSA SI 01110). A non-ABD person meeting the thresholds returns True. The model already has is_ssi_aged_blind_disabled. Gate on it, or document the omission prominently in medicaid_ltss_financial_pathway. (Kept at should-address given the PR's explicit financial-only scope.)

  5. MMMNA test coverage: the two load-bearing zero branches and the additive interior are untested.
    File: medicaid_ltss_mmmna.yaml (1 case, 3 people — all landing on the floor or the cap). Missing: has_community_spouse: false → 0; pathway == UNMODELED → 0 (both false branches of the gate prevent phantom spousal allowances and are unverified); an excess-shelter interior point (e.g., shelter $1,811.50 → $3,705) so the minimum + excess arithmetic is checked off-boundary; and shelter one cent below the $811.50 threshold.

  6. Edge-case test gaps on already-tested variables (all six formula variables have coverage; these harden it):

    • Home equity: (value − encumbrances) × share never checked at the cap with non-trivial encumbrance/share (e.g., TX $1,000,000 − $248,000 → exactly $752,000, then +$1); invalid ownership_share (<0 or >1) fail-closed guard unexercised.
    • CSRA: no has_community_spouse: true with assistance_unit_size: 2 case (confirming the couple case bypasses the CSRA branch); no both-spouses-institutionalized case; floor/interior crossovers asserted from one side only (add ±1 brackets to Cases 5–6); no half-snapshot-equals-state-minimum tie.
    • Cross-state: no identical-facts case showing TX/DE/WA divergence on the income pathway (WA flips to medically-needy above the SIL while TX/DE fail) or resource limits, mirroring the existing home-equity cross-state case.
    • Fail-closed defaults: no explicit assistance_unit_size: 0 case; no zero-income-eligible case (lowest tested income is $2,000).
  7. Reference precision and durability (all values corroborate; these make citations self-verifying):

    • federal/mmmna/shelter_threshold_rate.yaml: cite the subsection — 42 USC 1396r-5(d)(4) (excess shelter, 30% of (d)(3)(A)(i)), e.g. https://www.law.cornell.edu/uscode/text/42/1396r-5#d_4 — rather than bare 1396r-5.
    • All 11 federal CMS-bulletin citations: add #page=2 (the standards chart is file-page 2; the link currently lands on the cover letter). WA standards sheet: add #page=7 (LTSS block).
    • DE files: include the notice identifier "DMMA Administrative Notice A-14-2025" in titles (the /wp-content/uploads/ URL will rot on re-issue), and now that the DSSM has been cleanly re-collected, cite the durable sections directly: DSSM 20910.10 (CSRA $25,000 state spousal share), 20100.2.2 (250% SIL), 20240.1/20990 ($20 disregard incl. needs-based carve-out), 20400.11 (Miller trusts).
    • TX: pin "Revision 26-2; Effective June 1, 2026" in the title (living chart). WA csra/state_minimum: note the source stamps $72,529 as "(7/1/25), changes in odd years" — add the odd-year July cycle to the description so the 2026-01-01 date isn't misread as WA's action date.
  8. Style/formatting nits (code-pattern audit): shelter_threshold_rate.yaml value 0.300.3 (trailing zero; the .50 cent values in de/special_income_limit/couple.yaml and federal/mmmna/maximum.yaml are legitimate); parameter descriptions read as full explanatory sentences rather than the terser house pattern ("...under the [Program Name] program").

Suggestions

  1. DE csra/state_minimum ($25,000) — now verified verbatim in DSSM 20910.10 ("$25,000.00 (current state spousal share)", raised from $14,148 by DE SB 99 for applications on/after 10/1/93) and correctly inert in code via max_(state_minimum, federal_minimum) (the federal $32,532 governs, matching 42 USC 1396r-5(f)(2)). Add the DSSM 20910.10 section citation to the YAML and note in the description that the federal floor supersedes it.
  2. period: month metadata on stock parameters (resources, CSRA, home-equity, SIL limits): semantically odd for one-time/stock limits though behaviorally correct for the un-annualized read; consider a label/description note that these are stocks. Same nit applies to the WA waiver booleans.
  3. /2 statutory one-half in medicaid_ltss_csra_resource_eligible.py is the fixed 42 USC 1396r-5(f)(2)(A) spousal share and acceptable as a literal; a csra_share (0.5) parameter is optional for traceability.
  4. Document modeling simplifications: WA WAC 182-515-1507 CN route (no SIL test) and the 182-515-1508(2) / 182-513-1395(5) spend-down fallbacks are unmodeled; WAC 182-513-1395(4)(a) tests "remaining income plus excess resources" against the facility cost while the model omits the excess-resources term (slightly lenient, resources screened separately). A short scope note in the WA variables would lock these in.
  5. Nice-to-have tests: DE mixed needs-based/ordinary income so min_(non_needs_based, 20) binds at an interior value; WA HCBS medically-needy ±1 bracket at the $994 MNIL; medicaid_ltss_setting: UNKNOWN fail-closing to UNMODELED; an unsupported state (e.g., CA) returning UNMODELED/all-false; note that the WA waiver enabled: false branch is reform-only-reachable.
  6. Reference niceties: prefer the canonical app.leg.wa.gov WAC link over the hca.wa.gov landing page for COPES; add WAC 182-513-1100 (SIL definition) to complete the WA rule chain; name the exact table/row in citation titles; note that tx/csra/state_minimum is the federal floor as adopted by TX (the chart's own wording: "the minimum resource amount set by federal law").

Investigated and Cleared

  • DE CSRA state minimum $25,000 — initially flagged critical (uncorroborated, below federal floor); the DSSM PDF was re-collected cleanly (83 pp.) and DSSM 20910.10 states the figure verbatim; the code's federal-floor max_ matches both the DSSM and 42 USC 1396r-5(f)(2). Cleared (residual: Suggestion 1).
  • WA waiver flags (COPES, New Freedom, RSW) — WAC 182-515-1505/1506 confirm these are exactly the three HCS-authorized HCB waivers, and WAC 182-515-1508 + 182-513-1100 confirm the 300%-SSI SIL route. The five DDCS waivers (WAC 182-515-1510) correctly fail closed. Cleared.
  • DE 250% SIL / $20 disregard / QIT regulatory basis — verified against DSSM 20100.2.2, 20240.1, 20990, and 20400.11 (Miller trusts). The DE income + disregard modeling is exactly right. Cleared.
  • MMMNA minimum $2,705 (eff. 7/1/2026) — one reviewer flagged it as an unpublished projection; the collected CMS CIB chart itself lists "Minimum Monthly Maintenance Needs Allowance (Effective 7-1-26): 2,705.00", and 0.30 × 2,705 = the chart's $811.50 housing allowance. Corroborated; cleared. (The Jan–Jun 2026 minimum is documented as intentionally unmodeled.)
  • Test period 2026-07 — flagged as potentially rejected by the YAML runner; all CI checks pass and the MMMNA assertions can only pass if the July-2026 parameters actually resolved, empirically confirming the runner accepts 2026-07. Cleared (mid-year months are novel in this repo's baseline tree, which otherwise uses YYYY / YYYY-01).

Source Audit Summary

Category Count
Parameter values confirmed correct against primary sources 28 (10 income + 18 resources/CSRA/MMMNA/home-equity; every dollar figure exact, Jan-1 vs Jul-1 effective dates correct)
Verified mismatches 1 (TX MMMNA regime — federal formula vs TX flat $4,066.50; code-path CONFIRMED, informational-only, no eligibility impact)
Cleared by verification 5 (DE CSRA $25,000; 3 WA waiver flags; MMMNA 7/1/26 minimum)
Unmodeled items noted (documented scope, not errors) 7 (DE home-equity cap — escalated to Critical 1; WA couple resources; Jan–Jun 2026 MMMNA minimum; WA MNIL sizes 2+; TX CAS/community pathways and couple deeming; DE 30-day acute-care standard; AK/HI figures)

Validation Summary

Check Result
Regulatory Accuracy ⚠ 1 critical (DE home-equity fail-closed contradicts 42 USC 1396p(f) and DSSM 20320.7); all encoded dollar values and boundary arithmetic verified correct
Reference Quality ✔ All 32 parameters cite correct-jurisdiction primary sources; 31/32 corroborated on first pass, 32/32 after DSSM re-collection; durability/anchor improvements recommended
Code Patterns ✔ 0 critical (no hard-coded values, changelog present, vectorization clean, fail-closed defaults documented); 3 should-address style items; home-equity chassis duplication flagged
Test Coverage ✔ All 6 formula variables tested (35 cases, hand-reverified arithmetic); no non-functional boolean tests; edge-case gaps listed above
Source Value Audit ✔ 28 matches / 1 confirmed mismatch (informational-only) across 5 source documents
CI Status ✔ All CI checks passing

Review Severity: REQUEST_CHANGES

One critical issue: the Delaware fail-closed home-equity design means a state the PR adds can never pass the composite screen — including non-homeowners — and the underlying premise (no DE cap exists) is contradicted by DSSM 20320.7.B/E, which adopts the federal-minimum $752,000 cap. Everything else is non-blocking: values are accurate and unusually well sourced, arithmetic is correct at every tested boundary, and the confirmed TX MMMNA mismatch affects an informational quantity only.

Next Steps

To auto-fix issues: /fix-pr 9184


This review was generated by the /review-program multi-agent pipeline (regulatory, reference, code-pattern, and test validators; income and resources source audits; code-path, cross-reference, and external-source verification agents).

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