Skip to content

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

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

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

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Jul 31, 2026

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).

Twenty-five new variables — six computed screens (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) plus nineteen documented trusted-input variables — 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. The modeled routes are SSI-related, so the pathway gates on is_ssi_aged_blind_disabled (42 CFR 435.236, 435.1005).

Home equity follows 42 USC 1396p(f): Washington elects the federal maximum and reads the existing tracked home_equity.limit parameter (WAC 182-513-1350(8)(c)); Texas and Delaware apply the CPI-indexed federal minimum via a new home_equity.minimum_limit parameter in the same tree, pinned to published CIB values (TX Appendix XXXI; DSSM 20320.7.B/E). A person with no equity interest passes everywhere; unmodeled states pass at or below the federal minimum and fail closed above it. The community-spouse MMMNA is regime-specific: Texas pays the federal maximum flat (Appendix XXXI; MEPD J-7200), while Delaware and Washington use the federal minimum-plus-excess-shelter formula (DSSM 20910.4–.6; WAC 182-513-1385).

Every parameter value traces to a cited primary source (Texas HHS Appendix XXXI Rev. 26-2, Delaware's DMMA Administrative Notice A-14-2025 and DSSM sections, Washington's 2026 standards and WACs, and the May 2025 / April 2026 CMS CIBs) with reference URLs and page anchors in the YAML metadata.

59 YAML contract tests cover every SIL/resource/home-equity boundary (including encumbrance/ownership-share arithmetic landing exactly at the cap and invalid-share fail-closure), TX QIT sufficiency both ways, DE's 250% + disregard including an interior partial-disregard bind, WA SIL-failure→institutional-MN and the HCBS medically-needy bracket at the $994 income level, all three CSRA control regimes with both-sided ±$1 brackets and the WA half-snapshot tie, per-state MMMNA regimes with the zero branches, the ABD categorical gate, non-homeowner and cross-state comparisons, fail-closed unknown-waiver/unknown-setting/unsupported-state/zero-unit cases, and vectorized cases.

Addresses @DTrim99's review point by point (see the reply below it).

🤖 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 (98fbf36) to head (7cee6cd).
⚠️ Report is 97 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #9184    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files            2        25    +23     
  Lines           52       339   +287     
  Branches         1         0     -1     
==========================================
+ Hits            52       339   +287     
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).

MaxGhenis and others added 3 commits August 19, 2026 11:13
…gate

- Give Delaware the CPI-indexed federal-minimum home-equity cap (DSSM
  20320.7.B/E) via a new long_term_care/home_equity/minimum_limit
  parameter; Texas reads the same minimum and Washington reads the
  existing tracked maximum-tier limit (WAC 182-513-1350(8)(c)).
- Pass zero-equity applicants everywhere (42 USC 1396p(f)(1)(A));
  unmodeled states pass at or below the federal minimum and fail
  closed above it.
- Pay the Texas MMMNA as the flat federal maximum (Appendix XXXI; MEPD
  J-7200); Delaware and Washington keep the federal formula (DSSM
  20910.4-.6; WAC 182-513-1385).
- Gate the SSI-related pathways on is_ssi_aged_blind_disabled (42 CFR
  435.236, 435.1005).
- Delete the seven orphan federal parameters and the parallel
  home-equity parameter tree; cross-reference the annual chassis.
- Sharpen references (CIB subject lines and page anchors, DSSM section
  titles, TX revision stamp, WA odd-year note, 1396r-5(d)(4), canonical
  WAC links) and grow the suite from 35 to 59 tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The docstring-only edit pulled the file into the selective-coverage
report without its tests, tripping codecov/project; the LTSS screen's
docstring carries the cross-reference instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Thanks @DTrim99 — this is an unusually useful review, and sorry it sat for two weeks. Everything below is now on the branch, after merging main in (459 commits, clean). All 59 LTSS tests plus the full gov/hhs/medicaid tree pass locally.

Before touching code I re-verified the statute claims against the primary sources (the collected DSSM PDF, the April 2026 CMS CIB, 42 USC 1396p/1396r-5, P.L. 119-21 §71108, TX Appendix XXXI + J-7200, WAC 182-513-1350/-1380/-1385/-1100, and the WA standards sheet). Your DSSM reading checks out exactly; two details came back different and are noted below.

Critical: Delaware fail-closed home equity — fixed, your reading confirmed

DSSM 20320.7.B bars payment only for "Individuals with equity value in home property that exceeds the home equity cap as set by federal regulations," and the 20320.7.E table ($500,000 in 2006, $506,000 in 2011, $525,000 in 2012, then CPI yearly) tracks the federal minimum tier exactly — the maximum-tier figures for those years appear nowhere in the manual. So DE's cap is the CPI-indexed federal minimum: $752,000 for 2026 per the April 2026 CIB.

Fix as implemented:

  • New parameter gov.hhs.medicaid.eligibility.long_term_care.home_equity.minimum_limit (2025: $730,000; 2026: $752,000), cited to 42 USC 1396p(f)(1)(A)/(C) and the May 2025 / April 2026 CIB charts. It pins published values only — no 2027 projection and no uprating block (I tried the sibling agricultural_limit.yaml's CPI-U uprating, but core indexes it monthly past the last explicit value, drifting the cap to $766,000 by mid-2026; the tests caught it) — so it gets extended when CMS releases each year's standards chart. It lives in the existing chassis tree, next to limit.yaml; the parallel financial/*/home_equity/* tree is deleted entirely.
  • TX and DE read minimum_limit (TX's chart line "Substantial home equity — $752,000" is the federal minimum); WA reads the existing tracked limit.yaml, since WAC 182-513-1350(8)(c) says "The excess home equity limit is the federal maximum allowed" — so WA tracks that parameter's future entries automatically, including the H.R.1 §71108 $1,000,000 non-agricultural cap in 2028 (its 2027 entry is a CPI projection — flagged below). That resolves the divergence concern.
  • Zero-equity applicants now pass everywhere: the 1396p(f)(1)(A) bar attaches only to an equity interest exceeding the cap. Unmodeled states pass at or below the federal minimum (no state may bar below it) and fail closed above it. Tests: a DE boundary triple at $752,000, a DE non-homeowner passing the composite end-to-end, and a CA case showing the floor-pass plus composite fail-closed.

Should-address

  1. Home-equity chassis duplication — parameters fully consolidated (see above): the four financial/*/home_equity/* files are gone and the one new federal value extends the existing tree. I kept the separate medicaid_ltss_home_equity_eligible variable rather than reusing is_medicaid_long_term_care_home_equity_eligible: the chassis is YEAR-period with a single national maximum-tier cap ($1,130,000), which is wrong by $378,000 for TX/DE, and it reads a pre-netted home_equity input — while the screen's decomposed inputs mirror DSSM 20320.7.B/.C arithmetic (market value minus encumbrances, co-owner proration) and carry a hardship input the chassis lacks. Your code-pattern auditor's reading (intentionally namespaced trusted inputs) was the design intent. The screen's docstring now cross-references the chassis and documents the agricultural limit as chassis-only. (I first added a reciprocal note on the chassis variable too, but a docstring-only edit drags that file into the selective-coverage report without its tests and trips codecov/project, so the cross-reference lives on the screen side.)

  2. TX MMMNA — fixed with a TX flat-maximum branch. Appendix XXXI and J-7200 confirm your reading (flat $4,066.50, no minimum line, no shelter standard; the J-7200 worked examples subtract the flat figure). On your open question: WA is a formula state, not flat — WAC 182-513-1380(3)(b) routes to the WAC 182-513-1385(3)(a)/(4) calculation (150% of the two-person FPL plus excess shelter above a 30% standard, capped at the maximum). And DE is also a formula state: DSSM 20910.4 ("150% of Federal Poverty Level for two plus an excess shelter allowance," CPI-indexed cap). So the federal formula stays for DE/WA and TX pays the maximum flat, each with the state citation. Two documented limitations: the 1385(3)(b) offset for the community spouse's own income belongs to the allocation, which stays unmodeled; and the whole variable remains unmodeled before July 2026 (that now defers TX's flat maximum too, which is technically effective 1/1/26 — stated in the docstring).

  3. Seven orphan federal parameters — all resolved: ssi_fbr/* and resources/* deleted (canonical values live at gov.ssa.ssi.amount.{individual,couple} and gov.ssa.ssi.eligibility.resources.limit.{individual,couple}), special_income_limit/maximum deleted, home_equity/minimum moved into the existing tree and wired (TX/DE), home_equity/maximum deleted (limit.yaml is canonical). Only consumed parameters remain under financial/federal/.

  4. ABD categorical gate — added. medicaid_ltss_financial_pathway now requires is_ssi_aged_blind_disabled (42 CFR 435.236, 435.1005); non-ABD applicants are UNMODELED. Every pathway-dependent test case supplies the categorical input, and new cases cover a non-ABD applicant failing end-to-end despite qualifying finances.

  5. MMMNA test gaps — all four added: has_community_spouse: false → 0; UNMODELED pathway → 0; interior excess-shelter point ($1,811.50 → $3,705, on WA where the formula now binds); shelter one cent below the threshold ($811.49 → $2,705). The formula boundary triple moved to DE, TX now asserts the flat maximum at three shelter levels, and a mixed TX/DE case exercises the state branch in one vectorized simulation.

  6. Edge-case gaps — added: TX at-cap with encumbrance/share ($1,000,000 − $248,000 = exactly $752,000, then +$1); invalid ownership shares (1.5, −0.5) failing closed; CSRA couple-unit-with-spouse-flag fail-closed; a genuine two-person both-spouses-institutionalized household at the couple boundary; both-sided ±$1 brackets on the CSRA floor and half-snapshot crossovers; WA half-snapshot-equals-state-minimum tie ($145,058 → $72,529); cross-state above-SIL divergence (TX/DE fail, WA flips to medically needy and passes); zero-income eligible; assistance_unit_size: 0 → UNMODELED.

  7. Reference precision — done, with one correction: shelter_threshold_rate now cites 42 USC 1396r-5(d)(4) with the #d_4 anchor; the CIB citations carry the exact subject line ("Updated 2026 SSI and Spousal Impoverishment Standards…") and #page=2; DE titles carry "DMMA Administrative Notice A-14-2025" and the durable DSSM sections (20910.10 on the CSRA minimum, 20100.2.2 on the SIL and resources, 20240.1 + 20990 on the disregard, 20400.11 in the QIT docs); TX titles pin "Revision 26-2, Effective June 1, 2026"; the WA CSRA description notes the (7/1/25) stamp and July odd-year cycle. The correction: the 1/1/2026 WA standards sheet is a 3-page document with the LTSS block on page 3 (#page=7 looks like a stale anchor from a longer prior edition), so those references use #page=3.

  8. Style — the 0.300.3 fix is in. On the terser-description pattern I went the other direction: several descriptions grew to carry the new section citations and supersession notes from item 7 and the suggestions, which seemed worth more than compression. Happy to terser-ify if you disagree.

Suggestions

Taken: DE CSRA state_minimum now cites DSSM 20910.10 by section title and its description notes the federal floor supersedes the $25,000 state spousal share (the fixed statutory one-half is also now cited as 1396r-5(f)(2)(A) in the CSRA docstring); the WA scope notes are in is_medicaid_ltss_income_eligible (WAC 182-515-1507 CN route unmodeled; the 1395(4)(a) excess-resources term omitted — slightly lenient, resources screened separately; spenddown unmodeled); the nice-to-have tests are in (DE interior partial-disregard bind, WA HCBS MN ±$1 at $994, UNKNOWN setting, unsupported state); the COPES/New Freedom/RSW waiver parameters and the pathway and waiver variables now cite the canonical app.leg.wa.gov WAC, and the SIL parameter cites WAC 182-513-1100; the TX CSRA description uses the chart's own "minimum resource amount set by federal law" wording; the waiver enabled flags are documented as reform-only-reachable.

Declined, with reasons: the broad stock-vs-flow period metadata notes (the field is informational and the un-annualized read is correct; happy to revisit if you feel strongly); the csra_share 0.5 parameter (your review called the literal acceptable — it's the fixed 1396r-5(f)(2)(A) share, now cited in the docstring); and citation titles stop at section/revision granularity rather than naming exact tables and rows.

One thing your review surfaced that's out of scope here: the pre-existing home_equity/limit.yaml and agricultural_limit.yaml 2027 values have no published CMS source — CMS hasn't released 2027 standards — and limit.yaml's April-2026 CIB reference also carries a wrong title and no page anchor. Both are main-side issues, flagged for a separate fix.

CI is green across all 33 checks on the latest run — full suite, microsimulation, partner contract tests, and codecov patch + project.

Re-requesting your review.

@MaxGhenis
MaxGhenis requested a review from DTrim99 August 20, 2026 04:35
@DTrim99

DTrim99 commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Program Review — Medicaid LTSS financial eligibility (TX, DE, WA)

PR #9184 adds an opt-in Medicaid long-term-services-and-supports (LTSS) financial-eligibility screen for TX, DE, and WA plus the federal spousal-impoverishment chassis (28 variables, 24 parameters, 6 YAML test files, effective 2026). The screen reports whether an applicant would clear the LTSS financial thresholds; it does not set actual Medicaid eligibility or a benefit amount. This was reviewed across five independent passes (regulatory, references, code patterns, test coverage, and a full source/value audit). It is an unusually clean, well-documented PR.

Source Documents

Source Used for Verification
CMS CMCS Informational Bulletin, 2026 SSI & Spousal Impoverishment Standards (cib04272026.pdf, chart p.2) Federal CSRA min/max, MMMNA min/max, home equity, 300% SIL Text-extraction audit (pdftoppm unavailable); values confirmed
CMS CMCS Bulletin, 2025 Standards (cib05282025.pdf, p.2) 2025 home-equity floor (730,000) Confirmed
TX MEPD Handbook Appendix XXXI (Rev 26-2, eff 2026-06-01) TX SIL / resources / CSRA / home equity WebFetch-verified
DE DMMA Admin Notice A-14-2025 (2026 SSI-related income standards) DE 250%-SSI income std, $20 disregard, resources Text-verified
WA HCA Apple Health income & resource standards (eff 2026-01-01) + WACs 182-513-1395, 182-515-1505/1508 WA SIL, MNIL, resources, state CSRA, waivers Confirmed

Note: the CMS/DE/WA PDFs were audited via text extraction rather than rendered pages; every value-bearing figure was located in the extracted text.

Branch Status

Branch is 14 commits behind main (8 ahead). CI is passing (33 checks). Recommend a rebase onto main before merge to keep the merge clean. The review was scoped to PR changes only, so branch staleness did not affect any finding.

Critical (Must Fix)

None. No CRITICAL issues across all five passes. In particular:

  • The value audit found zero mismatches — every federal and state figure matches its authoritative source (see Value Audit below).
  • The one item that could have been critical — whether DE should use 300% of SSI instead of 250% — was investigated specifically and is correct as coded. Delaware genuinely elects a 250%-of-SSI special income limit (250% × 994 = 2,485 individual). The 300% figure is a federal ceiling a state may elect up to; DE elects 250%. Do not "fix" this to 300%.

Should Address

Numbered; each is non-blocking but worth resolving before or shortly after merge.

  1. DE couple special income limit may be too strict — confirm the couple basis. is_medicaid_ltss_income_eligible.py:3036-3068; de/special_income_limit/couple.yaml. The SIL group (42 CFR 435.236 / §1902(a)(10)(A)(ii)(V)) is normally an individual institutionalized-person test — each spouse measured against 250% of the individual SSI standard (2,485 each), not a combined couple cap. The PR tests total AU income against 250% of the couple FBR (3,727.50) when assistance_unit_size == 2, which is more restrictive than testing each spouse at 2,485 (4,970 combined) and can under-grant a genuine two-institutionalized-spouse couple. Same modeling choice as TX (5,964 = 2×individual). Confirm against the DE/TX manuals whether the couple SIL is a true couple standard or shorthand for "each spouse at the individual limit"; if the latter, the couple branch is too strict.

  2. No DE AU=2 + $20-disregard test; document the couple-disregard interaction. is_medicaid_ltss_income_eligible.py:3054-3067. The DE $20 general disregard (DSSM 20240.1 / 20990) is applied to combined income while a couple SIL is used — a defensible simplification that compounds with Basic prototype #1 and is untested for AU=2 (Cases 4/5/6/11 only exercise the AU=1 disregard). Add a couple+disregard test to pin the intended behavior and add a one-line doc note.

  3. No end-to-end community-spouse scenario for DE or WA. is_medicaid_ltss_financial_threshold_eligible.yaml. Only TX runs a community-spouse person through the top-level AND (income + CSRA + home-equity together). DE/WA community spouses are exercised only in the isolated CSRA and MMMNA files. Add one DE and one WA end-to-end case (has_community_spouse: true, snapshot, spouse resources, income at SIL, a home) asserting the final is_medicaid_ltss_financial_threshold_eligible.

  4. DE CSRA federal-floor override is not directly tested. medicaid_ltss_csra_resource_eligible.py. DE's CSRA is max_(de.csra.state_minimum=25_000, federal.csra.minimum=32_532) = 32,532, but every snapshot/floor case (5–11) is TX or WA. If the DE state_minimum were wrong or the max_ inverted, no test would catch it. Add a DE community-spouse case with snapshot/2 below 32,532 (e.g. snapshot 60,000 → half 30,000) asserting the floor at 32,532, mirroring TX Case 5.

  5. MMMNA 2026-07-01 temporal boundary is untested. medicaid_ltss_mmmna has only formula_2026_07_01; every MMMNA test uses period: 2026-07. Add a 2026-01 (or 2026-06) case asserting medicaid_ltss_mmmna: 0 before the effective date — the exact boundary the variable's own docstring calls load-bearing.

  6. Community-spouse resources/shelter are trusted per-person inputs, not couple aggregation (confirm intended scope). medicaid_ltss_csra_resource_eligible.py:3320-3327; medicaid_ltss_mmmna.py:3747. The couple resource total is applicant resources + a trusted per-person spouse input; there is no marital-unit/spouse-lookup aggregation, so the total is only correct when the user hand-supplies the spouse allocation. This is a documented "explicit trusted input" modeling-scope decision — flagging for an explicit reviewer sign-off, not a code defect.

  7. MMMNA is computed but never consumed by any eligibility variable (intentional — note in PR description). medicaid_ltss_mmmna.py. Confirmed unwired into income/CSRA/home-equity/top-level AND. This is correct: MMMNA is a post-eligibility spousal-protection standard (42 USC 1396r-5(d)), not an applicant-eligibility deduction, and the docstring says so. Keep as-is; add a one-line PR-description note so reviewers don't mistake the non-wiring for a bug.

  8. DE regulatory-anchor hrefs don't reach the cited DSSM section (all 6 DE params). de/csra/state_minimum.yaml:24, de/income/general_disregard.yaml:43, de/resources/{individual,couple}.yaml, de/special_income_limit/{individual,couple}.yaml. The DSSM href resolves to the entire ~709 KB Title-16/20000 AdminCode PDF with no section anchor or #page=, so clicking does not land on the cited subsection. The DE value remains traceable via the co-cited DMMA A-14-2025 notice. Point the DSSM href at the per-section HTML (or add #page=), or mark the DSSM entry authority-only. Related: the DE resource params cite "DSSM 20100.2.2 – Individuals Whose Income is 250% of SSI" (an income-group subsection) for a resource limit — cite the DSSM resource-limit subsection instead (citation precision; value corroborated by the DMMA notice).

  9. Stock/annual ceilings tagged period: month (metadata inconsistency). federal/csra/{minimum,maximum}.yaml, {tx,de,wa}/csra/state_minimum.yaml, {tx,de,wa}/resources/{individual,couple}.yaml carry period: month though they are resource stock ceilings, while the new home_equity/minimum_limit.yaml correctly uses period: year for the same class. Does not affect the calculation (consuming MONTH variables read the level as-is, no ÷12), but is semantically inconsistent — align the stock/CSRA params to period: year or confirm the month choice is intentional. Separately, the three WA waivers/*/enabled.yaml bool flags also carry a meaningless period: month — consider dropping it.

Suggestions

  1. WA disabled-waiver (enabled: false) branch is never exercised. The three WA waiver flags are reform levers gated by the pathway formula; all tests use baseline enabled: true, so the disabled branch is reform-only-reachable and untested. Add a one-line reform-style test or note that flipping a waiver flag has no regression test.

  2. Home-equity edge cases untested. (a) Exception × invalid ownership share: a qualifying exception with ownership_share: 1.5 still fails closed (valid_ownership_share & (exception | equity<=limit)) — Case 10 tests invalid share without an exception. (b) Encumbrances-exceed-value negative-equity floor: no case has encumbrances > home_market_value to lock in the max_(value − encumbrances, 0) floor. Add one vectorized case each.

  3. Two parallel home-equity variables — confirm intended architecture. The new medicaid_ltss_home_equity_eligible (MONTH, trusted explicit inputs) is genuinely distinct from the pre-existing is_medicaid_long_term_care_home_equity_eligible (YEAR, derived home_equity), and the docstring calls out the distinction. Not a duplicate, but a reviewer should confirm two parallel variables is intended rather than extending the existing one.

  4. Microsim inertness of trusted inputs (report, not prescribe). qit_adjusted_income, cost_of_care, community-spouse resources, home_market_value, medically_needy_expenses, and the occupancy booleans all default to 0/False with no formula. Over survey microdata they default to 0/False, so the whole screen is effectively inert (income-eligible at 0 income, home-equity passes at 0 equity) unless a caller supplies inputs — consistent with the "opt-in screen" framing and it does not set actual eligibility. Direction is fail-toward-nonbinding on assets/equity and toward income-eligible; noting the direction only.

  5. is_ssi_aged_blind_disabled is YEAR, read via period.this_year from MONTH formulas (correct). medicaid_ltss_financial_pathway.py:3388. Correct period pattern; consequence is ABD status can't vary within a year on the monthly screen. Acceptable; worth a one-line doc note.

  6. WA institutional medically-needy test omits the excess-resources term (documented, only-lenient standalone). is_medicaid_ltss_income_eligible.py:3074-3076. WAC 182-513-1395(4)(a) reduces the payment standard by excess resources; the PR screens income-only and gates resources separately in the top-level AND, so the composite is not actually lenient. Clarify the doc's "slightly lenient" caveat refers to the standalone variable, not the composite.

  7. Optional citation polish. Add 42 USC 1396r-5(f)(2)/(d)(3) as a secondary "governing statute" cite on the federal CSRA/MMMNA numeric params (mirroring the exemplary home-equity param, which pairs statute + annual figure). The TX MEPD App XXXI href (HTML, chart is the whole page) has no in-page anchor — low severity.

Value Audit

Every federal and state figure was confirmed against its authoritative source — 0 mismatches.

Figure PR value Source Result
Federal CSRA minimum 32,532 CMS CIB 2026 p.2
Federal CSRA maximum 162,660 CMS CIB 2026 p.2
Federal MMMNA minimum 2,705 (eff 2026-07-01) CMS CIB 2026 p.2
Federal MMMNA maximum 4,066.50 CMS CIB 2026 p.2
Home equity floor 730,000 (2025) / 752,000 (2026) CMS CIB 2025 / 2026 p.2 ✓ (some 3rd-party sites say 731,000 for 2025; CMS says 730,000 — PR correct)
Home equity WA cap (pre-existing home_equity/limit.yaml) 1,130,000 (2026) CMS CIB 2026 p.2 ✓ (param exists in repo, matches WA test boundary)
Federal SIL (individual, 300% SSI) 2,982 CMS CIB 2026
TX SIL ind / couple 2,982 / 5,964 TX MEPD App XXXI
TX resources / CSRA 2,000 / 3,000; 32,532 / 162,660 TX MEPD App XXXI
DE SIL ind / couple (250% SSI) 2,485 / 3,727.50 DE DMMA A-14-2025 250% is correct, not 300%
DE $20 disregard; resources 20; 2,000 / 3,000 DE DMMA A-14-2025
WA SIL ind 2,982 WA HCA 2026
WA medically-needy income level (MNIL) 994 WA HCA 2026 / WAC 182-513-1395
WA state CSRA min; resources ind 72,529; 2,000 WA HCA 2026
Shelter threshold rate 0.30 42 USC 1396r-5(d)(4); % of MMMNA per CIB

Reference quality: 24/24 parameters carry a proper title/href reference dict; jurisdiction is correct throughout (federal CIB for federal values, state agency for state values); CMS/WA PDF refs carry #page= chart anchors; WA WAC sections verified against leg.wa.gov. Only gap is the DE DSSM anchor precision (Should #8).

Validation Summary

Pass Result
Regulatory (LTSS logic: pathway / CSRA / home-equity / MMMNA / income-cap vs medically-needy) Sound within documented simplifications; 0 critical; DE 250% confirmed correct
References 24/24 have proper refs, correct jurisdiction, page anchors; DE DSSM anchor precision (Should #8)
Code patterns 0 critical; no hardcoded values, complete enum coverage with UNMODELED fail-closed, correct changelog/reference format
Test coverage 0 critical; ~61 scenarios, all 4 risky calculators boundary-tested; gaps are community-spouse end-to-end (DE/WA), DE CSRA floor, MMMNA temporal boundary, disabled-waiver branch
Value audit 0 mismatches across all federal + TX/DE/WA figures
CI Passing (33 checks)

Review Severity: APPROVE

No critical issues; the value audit is clean and the LTSS logic is regulatorily sound within its documented simplifications. The Should-Address items are refinements (couple-SIL basis confirmation, test gaps, DE citation anchors, metadata consistency) that can be handled before or shortly after merge. Recommend a rebase onto main and adding a PR-description note that MMMNA is post-eligibility/informational-only.

Reviewed with Claude Code assistance.

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

PR 9184 review — Medicaid LTSS financial eligibility screen (TX, DE, WA)

Recommended severity: COMMENT — 0 CRITICAL, 12 SHOULD ADDRESS, 15 SUGGESTION.

Every parameter value in this PR was audited against its primary source and every one matched.
The two findings that delegate reviewers escalated to CRITICAL were both put through independent
verification and both were disproven. What remains is a set of effective-dating, test-coverage,
citation-hygiene and registry items — real work, none of it blocking, and all of it contained by the
fact that the screen is deliberately not wired into any live model output.


Source Documents

PR 9184 — "Add Medicaid LTSS financial eligibility screen (TX, DE, WA)", author MaxGhenis
Reviewed head SHA 7cee6cd97e24f6a0b18bd119ddf213d08fe69fca
Merge base ac7c612f36849bc09b4fe53ac26cb7f0b55e6de8
Mode full (5 review roles + 3 Phase-5 verifications, 2 PDF audit lanes)
Scope NEW PROGRAM, 56 files, +3,893 lines: 24 parameters, 25 variables, 6 test YAMLs / 59 cases, 1 changelog fragment
CI 33/33 checks pass

Primary sources fetched and read end to end (13 distinct):

# Source Retrieved Rendered
1 WA HCA, Apple Health Income and Resource Standards eff. 1/1/2026 (HCA 19-0096), 3 pp. yes 3/3 pages at 300 DPI
2 DE DMMA Admin Notice A-14-2025, 2026 SSI-Related Income Standards & Medicare Premiums, 2 pp. text only (HTTP 999 WAF) none — see A12
3 CMS CIB 04/27/2026, Updated 2026 SSI and Spousal Impoverishment Standards, 2 pp. yes 2/2 pages
4 CMS CIB 05/28/2025, Updated 2025 SSI and Spousal Impoverishment Standards, 2 pp. yes 2/2 pages
5 TX HHS MEPD Appendix XXXI, Budget Reference Chart, Rev. 26-2 (HTML) yes n/a
6 DE DSSM, 16 DE Admin Code ch. 20000 (83 pp. PDF, text-extracted) yes re-renderable
7–10 42 USC 1396r-5; 42 USC 1396p (incl. the P.L. 119-21 §71108 note); 42 CFR 435.217/.236/.601/.1005 (Cornell LII) yes n/a
11 WAC 182-515-1508, 182-515-1505, 182-513-1395, 182-513-1385, 182-513-1350, 182-513-1100 yes n/a
12 P.L. 119-21 (H.R. 1) §71108, full enacted text (govinfo) yes n/a
13 CMS CIB 11/18/2025, printed pp. 8–10 (§71108 guidance) yes (text proxy; 403 to direct fetch) n/a

All three #page= anchors cited by the PR (WA HCA #page=3, CIB 04/27/2026 #page=2,
CIB 05/28/2025 #page=2) were checked against the rendered page images. All three PDFs have offset
0
(file page == printed page) and every anchor lands on the page carrying the cited figures.

Throughout this report, .../financial/ abbreviates
policyengine_us/{parameters,variables}/gov/hhs/medicaid/eligibility/long_term_care/financial/.


Branch Status

BEHIND=38, AHEAD=8. The branch is 38 commits behind main.

Recommendation: rebase onto upstream/main before merge. This is hygiene, not a correctness
concern — and it is worth doing because a new-program PR that adds a programs.yaml entry (A3) will
want a current registry file to edit against.

Staleness did not affect any finding in this report. Every value check, code read, model run and
grep in this review was executed against the PR snapshot at head
7cee6cd97e24f6a0b18bd119ddf213d08fe69fca. The PR touches only new files in a new parameter/variable
subtree plus one new file (home_equity/minimum_limit.yaml) in an existing tracked tree; no changed
file overlaps anything the 38 upstream commits could have moved, and CI on the head is 33/33 green.


Critical

None. No finding in this review blocks the merge.

That conclusion is not a default — it is the output of three independent Phase-5 verifications, two of
which overturned an escalated CRITICAL. The details are in Investigated and cleared below, and the
reasoning that keeps the surviving items below CRITICAL is:

  • Every audited value is correct. 25/25 parameter values matched their primary source, across two
    independent audit lanes. Zero mismatches, zero differences above the 0.3 flag threshold.
  • No screened eligibility outcome is wrong. The one confirmed wrong number (A1) is a leaf output
    with zero consumers; the composite screen returns the same answer on both sides of the affected
    boundary, proven by model run.
  • The blast radius is contained by design. grep -r "medicaid_ltss" over the whole package
    returns hits only inside .../financial/ and its own test directory. Nothing outside the new tree
    reads any of the 25 new variables; the screen is deliberately not wired into
    is_medicaid_eligible, take-up, or any benefit value. Unmodeled states, settings, waivers and
    assistance-unit sizes all fail closed to UNMODELED, and is_medicaid_ltss_financial_threshold_eligible
    is false for 100% of the population at default inputs.

Should Address

A1 — MMMNA effective dating: the variable returns 0 for January–June 2026, and the parameter that feeds it has no pre-July bracket

(This is the single highest-value item. It merges findings from the code, regulatory, tests and
federal-PDF roles, and carries the CONFIRMED verdict from Phase-5 verification codepath-2.)

Three artefacts combine:

  • .../financial/medicaid_ltss_mmmna.py:35def formula_2026_07_01(...). It is the variable's
    only formula. Every one of the five sibling screens starts at formula_2026_01_01
    (medicaid_ltss_financial_pathway.py:38, is_medicaid_ltss_income_eligible.py:33,
    medicaid_ltss_csra_resource_eligible.py:27, medicaid_ltss_home_equity_eligible.py:31,
    is_medicaid_ltss_financial_threshold_eligible.py:20).
  • .../financial/federal/mmmna/minimum.yaml:3 — sole entry 2026-07-01: 2_705, with no
    2025-07-01 predecessor.
  • .../financial/federal/mmmna/shelter_threshold_rate.yaml:3 — sole entry 2026-07-01: 0.3.

Confirmed at runtime (Phase 5, codepath-2). Identical TX community-spouse household, only the
period changing:

--- TX community spouse @ 2026-03 ---
  medicaid_ltss_mmmna                           = [0.]
  is_medicaid_ltss_financial_threshold_eligible = [ True]

--- TX community spouse @ 2026-08 ---
  medicaid_ltss_mmmna                           = [4066.5]
  is_medicaid_ltss_financial_threshold_eligible = [ True]

$0.00 vs $4,066.50 on identical facts. Texas is the unambiguous case: TX pays the flat federal
maximum, federal/mmmna/maximum.yaml:3 is already dated 2026-01-01: 4_066.50, and CMS CIB
04/27/2026 #page=2 puts that line under the section default "Effective 1-1-26" with no override
(only the minimum MMMNA and the CS housing allowance carry the "(Effective 7-1-26)" stamp). TX MEPD
Appendix XXXI independently states the $4,066.50 spousal allowance with no July stamp, and MEPD J-7200
subtracts it flat in worked examples. So the correct March-2026 Texas answer is fully determined by
parameters already in the tree, and the model returns 0.

Downstream reachability — the reason this is not CRITICAL. Exhaustive grep confirms
medicaid_ltss_mmmna is a leaf output with zero consumers: no variable formula, no adds/subtracts
list and no reform reads it. is_medicaid_ltss_financial_threshold_eligible depends only on
medicaid_ltss_financial_pathway, is_medicaid_ltss_income_eligible,
medicaid_ltss_csra_resource_eligible and medicaid_ltss_home_equity_eligible. Empirically the
composite returns True at both 2026-03 and 2026-08 for the same household. No screened outcome
flips.
This understates a reported post-eligibility spousal protection figure; it does not
misclassify anyone's eligibility.

The behaviour is deliberate and documented (medicaid_ltss_mmmna.py:22-24: "The whole variable is
unmodeled before July 2026 … this also defers the Texas flat maximum, which is otherwise effective
January 1, 2026"). But documenting a wrong number does not make it right, and a user calculating the
LTSS block at 2026-03 gets five live results and one silent zero.

Two companion data-fidelity gaps that must be fixed in the same change:

  1. Missing prior bracket. The operative MMMNA floor for 1/1/2026–6/30/2026 is $2,643.75,
    confirmed verbatim from the rendered CIB 05/28/2025 page 2 image: "Minimum Monthly Maintenance
    Needs Allowance (MMMNA): 2,643.75 … (Effective 7-1-25)"
    , and corroborated independently by the WA
    HCA chart ("CS & Dependent Allowance (7/1/25) $2,644") and TX Appendix XXXI ("Spousal Impoverishment
    Dependent Allowance (effective July 1, 2025): $2,643.75"). Because system.py:116 calls
    backdate_parameters(..., first_instant="2015-01-01"), the single 2026-07-01 entry is copied back
    to 2015 — so the parameter tree asserts $2,705 for Jan–Jun 2026 and for every year back to 2015.
  2. shelter_threshold_rate is dated to an event that did not happen. 30% is statutory and
    time-invariant under 42 USC 1396r-5(d)(4) ("exceeds 30 percent of the amount described in paragraph
    (3)(A)(i)"), unchanged since 1989; the file's only reference is that statute, which carries no
    2026-07-01 event. The date appears to have been copied from the dollar figure it multiplies.

These are one edit deep from becoming live, which is why they belong together. Lowering
formula_2026_07_01 to formula_2026_01_01 — the natural fix for the TX zero — would immediately
apply the backdated $2,705 to DE and WA for Jan–Jun 2026, an overstatement of $61.25/month on the
floor and $18.375/month on the derived shelter threshold ($811.50 applied where $793.13 governs),
with no test catching it because all 59 cases run at period: 2026-07.

Suggested direction: add 2025-07-01: 2_643.75 to minimum.yaml (and its CIB 05/28/2025
reference — already in the PR's citation set on home_equity/minimum_limit.yaml); re-date
shelter_threshold_rate to the statute or an early sentinel; move the variable to
formula_2026_01_01; add YAML cases at period: 2026-03. A narrower alternative, from the
verification report, is to add a formula_2026_01_01 that covers only the TX branch (whose parameter
genuinely is effective 1-1-26) and leaves DE/WA at 0 until July.

A2 — Five implementation mutations survive the entire 59-case test suite

These are coverage gaps, not wrong values. The same role re-derived all 59 expected values by hand
against the formulas and the effective 2026 parameters and found zero arithmetic mismatches; test
mechanics are clean (no absolute_error_margin ≥ 1; every enum literal matches a real member; every
referenced input exists). Nothing in this item says a current output is wrong. It says a regression
would not be caught — and for a new program whose distinctive state rules are its whole value, that
matters.

State × screen coverage (✓ adequate · △ present but non-discriminating · ✗ empty):

Screen TX DE WA Unmodeled
medicaid_ltss_financial_pathway ✓ 5 ✓ 1 (unit size 1 only) ✓ 5 (all 3 waivers) ✓ CA, unknown setting, unknown waiver, non-ABD, size 0
is_medicaid_ltss_income_eligible ✓ 4 ✓ 4 ✓ 4 ✓ 2
medicaid_ltss_csra_resource_eligible ✓ 9 △ 1 — flat resource limits only; no community spouse, no CSRA at all △ 3 — one non-discriminating tie ✓ 1
medicaid_ltss_home_equity_eligible ✓ 7 ✓ 2 ✓ 1 ✓ CA
medicaid_ltss_mmmna ✓ 2 ✓ 3 ✓ 1 ✓ CA
is_medicaid_ltss_financial_threshold_eligible ✓ 4 ✓ 3 ✓ 2 ✓ CA

CSRA regime × state — the sub-matrix that carries the two empty cells:

CSRA regime TX DE WA
Floor controls (½ snapshot < floor) ✓ cases 5 / 9 △ case 11 is the exact tie (½ snapshot = 72_529), so floor and half give the same answer — it discriminates nothing
Half-of-snapshot controls ✓ cases 6 / 10
Federal maximum caps ✓ case 7

The five surviving mutations:

  1. The composite can drop the resource test entirely. is_medicaid_ltss_financial_threshold_eligible.py
    ANDs four terms; delete & person("medicaid_ltss_csra_resource_eligible", period) and all 59 cases
    still pass. No case asserts the composite false with the resource screen as the sole failing
    leg. Income and home equity are both properly isolated (composite cases 1/6 and 2/3); resources are
    not.
  2. Delaware CSRA is a completely empty cell. medicaid_ltss_csra_resource_eligible.py:62 computes
    max_(p.de.csra.state_minimum, p.federal.csra.minimum) = max_(25_000, 32_532) = 32,532, and the
    variable's documentation makes that a load-bearing claim. No DE case sets
    medicaid_ltss_has_community_spouse.
    Replace the max_() with a bare p.de.csra.state_minimum
    and every test passes while every DE couple in the floor regime gets a CSRA $7,532 too low.
  3. Washington's $72,529 floor is never pinned. medicaid_ltss_csra_resource_eligible.yaml: case 11
    uses snapshot 145,058 = exactly 2 × 72,529, so half-of-snapshot equals the state floor and the case
    cannot tell them apart. Replace max_(p.wa.csra.state_minimum, p.federal.csra.minimum) with
    p.federal.csra.minimum and all tests pass while WA — the state with by far the highest floor —
    silently loses ~$40k of spousal protection.
  4. The MMMNA federal maximum never binds. In medicaid_ltss_mmmna.yaml case 2 the shelter figure
    of 2,173 yields 2,705 + (2,173 − 811.50) = exactly 4,066.50. The cap is touched, never exceeded,
    so min_(..., p.federal.mmmna.maximum) can be deleted and the MMMNA grows without limit. (TX is
    flat-at-maximum and cannot cover this.)
  5. Both effective-date boundaries are unpinned. All 59 cases run at period: 2026-07. Renaming any
    formula_2026_01_01formula makes all six screens produce 2026-valued determinations from 2015
    onward — phantom eligibility before the program was modeled — and nothing catches it, because
    backdate_parameters makes every 2026 value resolvable back to 2015. Renaming
    formula_2026_07_01formula_2026_01_01 triggers the A1 trap. This is the fail-closed temporal
    safety property; the fail-closed categorical property (unmodeled state / setting / waiver /
    non-ABD / unit size 0 / invalid ownership share) is well covered.

The tests role supplied ready-to-paste YAML for all five, plus discriminating input tables for the DE
and WA CSRA regimes.

A3 — No policyengine_us/programs.yaml entry

programs.yaml is not touched anywhere in the 56-file diff (verified against the diff; grep -n "ltss\|long_term_care" policyengine_us/programs.yaml returns nothing). CLAUDE.md makes an entry
unconditional for a new program, and this PR adds 24 parameters and 25 variables under a new
parameter_prefix (gov.hhs.medicaid.eligibility.long_term_care.financial) with a natural top
variable (is_medicaid_ltss_financial_threshold_eligible).

Natural placement: a state_implementations: [TX, DE, WA] list under the existing id: medicaid entry
at programs.yaml:153-164, with status: partialcomplete would overstate a screen that is
deliberately not wired into is_medicaid_eligible. If maintainers prefer to defer the registry entry
until the screen is wired in, that is a reasonable call, but it should be a stated decision rather
than an omission
.

A4 — The repo will contain two divergent implementations of 42 USC 1396p(f), and the pre-existing one applies the maximum limit to Texas and Delaware

  • new: .../financial/medicaid_ltss_home_equity_eligible.py:35-39
  • pre-existing: policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medicaid_long_term_care_home_equity_eligible.py:19-23

The new screen correctly implements the (f)(1)(B) State election — WA reads home_equity.limit
($1,130,000, matching the WA HCA chart and WAC 182-513-1350(8)(c) "the federal maximum allowed"), while
TX, DE and every other state read the new home_equity.minimum_limit ($752,000, matching Appendix
XXXI's "Substantial home equity — $752,000" and DSSM 20320.7.B's deferral to federal law). This is
the most valuable thing in the PR.

The pre-existing variable — which is wired into is_medicaid_long_term_care_eligible and exposed
through the API — applies p.home_equity.limit ($1,130,000) to every state. So for a Texas or
Delaware applicant with $900,000 of home equity, the new screen correctly returns ineligible and the
old one returns eligible. Both cite 1396p(f). The PR authored the parameter that fixes the old
variable and did not apply it.

The two also diverge on period (YEAR vs MONTH), equity source (household/assets/home_equity.py vs
max_(market_value − encumbrances, 0) × ownership_share) and exception source
(medicaid_home_equity_limit_family_exception, which derives residency from household composition and
calls itself a proxy, vs three explicit boolean inputs). A related sub-issue: the existing chassis
reads the under-21 boundary from
.../home_equity/family_exception/child_age_threshold.yaml, while the new input bakes "21" into the
variable name and label (medicaid_ltss_home_occupied_by_child_under_21.py:4,7) — so a reform moving
that threshold changes one chassis and not the other.

Fixing the old variable may be out of scope for this PR, but the divergence should at minimum be
recorded: either point the old variable at a state-aware limit here, or open a follow-up issue and
cross-reference it from the new variable's docstring (which currently mentions the old chassis only to
say the agricultural limit "is not modeled here").

A5 — medicaid_ltss_home_equity_eligible is the only screen with no pathway gate, and reads true for the entire population

.../financial/medicaid_ltss_home_equity_eligible.py:61-62 returns
valid_ownership_share & (exception | (applicant_home_equity <= home_equity_limit)). At default
inputs (ownership_share = 0, market value 0, encumbrances 0), valid_ownership_share is True and
0 <= limit, so the variable returns true for every person in every state from 2026-01 onward.
The other three screens all gate on pathway != UNMODELED
(medicaid_ltss_csra_resource_eligible.py:84, medicaid_ltss_mmmna.py:62,
is_medicaid_ltss_income_eligible.py:93).

This changes no existing baseline output today — the only consumer,
is_medicaid_ltss_financial_threshold_eligible.py:27, is itself pathway-gated. The finding is the
inconsistency and the API-visible default, and the direction: permissive is the one that becomes wrong
first if the screen is ever wired in. (Note the regulatory reviewer's counterpoint: applying the
federal minimum to unmodeled states is the legally correct fail-closed default, since 1396p(f)(1)(B)
makes the minimum the floor of the state election. The gate, not the limit selection, is what is
missing.)

A6 — Person-level income and resources are compared against couple-level limits, and the input contract does not say which to supply

  • .../financial/is_medicaid_ltss_income_eligible.py:42,44-60
  • .../financial/medicaid_ltss_csra_resource_eligible.py:36-52
  • .../financial/medicaid_ltss_qit_adjusted_income.py, ..._countable_resources.py, ..._assistance_unit_size.py

Every variable in the PR is entity = Person, and unit-level quantities are carried per person. When
medicaid_ltss_assistance_unit_size == 2, the formulas select p.{tx,de}.special_income_limit.couple
and p.{tx,de}.resources.couple — i.e. a person-level value against a couple-level limit.

The intended convention (each member carries the full unit total) is pinned only by a test:
medicaid_ltss_csra_resource_eligible.yaml:553-617 case 12 gives both spouses 3_000, not 1_500
each. It is stated in exactly one docstring (medicaid_ltss_countable_resources.py:13-14, "for the
applicant or applicant assistance unit") and contradicted by another:
medicaid_ltss_qit_adjusted_income's docstring says "after any qualified income trust treatment and
applicant/spouse ownership allocation", which reads as applicant-only income — and DSSM 20990.1
"ownership allocation" is precisely the rule that splits jointly-titled income between spouses. A user
following that literally, at unit size 2, gets a Texas applicant with $5,900 of individually-allocated
income passing a $5,964 test whose correct comparand is $2,982. That is the over-generous
direction.
The equivalent split-resources entry ($1,500 + $1,500 against the $3,000 couple limit)
passes a screen it should fail, on both members, with no warning.

Either state the convention explicitly in the documentation of all three inputs and add a unit-size-2
test that pins the semantics (the existing couple cases are consistent with either reading), or
aggregate the unit total at a real entity. Related and lower-stakes: medicaid_ltss_mmmna and
medicaid_ltss_community_spouse_* attach the community spouse's quantities to the institutionalized
applicant — coherent and documented, but a household where both spouses are applicants can
double-count the same community-spouse resources, and no test covers that shape.

A7 — home_equity/minimum_limit.yaml has no CPI uprating, so TX and DE freeze at $752,000 indefinitely

.../long_term_care/home_equity/minimum_limit.yaml:3-8 carries 2025-01-01: 730_000 /
2026-01-01: 752_000 and no uprating: block, so 752,000 extends flat forever (verified at runtime:
2027, 2028, 2035 all resolve to 752,000). But 42 USC 1396p(f)(1)(C) indexes that amount annually by
CPI-U rounded to the nearest $1,000, and CMS CIB 11/18/2025 says so in terms: "The minimum home
equity limit will continue to increase based on CPI-U increases until it reaches $1,000,000."

The PR is internally inconsistent about this: sibling agricultural_limit.yaml:12-16 does carry
uprating: gov.bls.cpi.cpi_u with nearest-$1,000 rounding, and limit.yaml hard-codes a CPI
projection for 2027 (1,159,000). So the maximum is projected forward and the minimum is frozen.

Magnitude, using the repo's own gov.bls.cpi.cpi_u from a 752,000 base: 2027 ≈ 766,000; 2028 ≈
784,000; 2032 ≈ 858,000 — roughly 2%/yr low, ~4% low by 2028. Households with TX/DE equity in the
752,000–784,000 band would be screened out in 2028 where the statute would admit them. Real, small,
entirely forward-looking, and in years for which CMS has not published a figure. The fix is to add the
same uprating block as agricultural_limit.yaml.

Do not instead add 2028-01-01: 1_000_000 here — see the ext-1 clearance below; that would be
wrong law.

A8 — Delaware's 250% standard does not reach hospitalized applicants, and the setting enum cannot express the distinction

.../financial/medicaid_ltss_setting.py (enum: UNKNOWN / INSTITUTIONAL / HCBS);
.../financial/medicaid_ltss_financial_pathway.py:57-62.

DSSM 20100.2.2 is explicit: "The 250% standard applies only to nursing facility residents.
Individuals hospitalized for 30 consecutive days may be eligible only if their monthly income is 100%
of the SSI standard or less"
— i.e. $994, not $2,485. INSTITUTIONAL covers both settings, so a
hospitalized Delaware applicant with $2,400/month is screened eligible where DSSM would deny. The
over-inclusive direction is what makes this worth recording.

Minimum fix: a limitation note in the medicaid_ltss_setting or is_medicaid_ltss_income_eligible
docstring naming the hospital carve-out. Complete fix: split the enum (NURSING_FACILITY vs
HOSPITAL). (The same DSSM section also brings HCBS Waiver programs under the 250% standard; the PR
leaves those unmodeled and fail-closed, which is the conservative direction and fine.)

A9 — Citation fixes (six, each with a verified replacement)

Presence is perfect — 24/24 parameters and 25/25 variables carry a reference, all official
government sources, zero jurisdiction mismatches, correct format on both sides (parameters use
structured title:/href: dicts, variables use bare strings or tuples). These are accuracy and
clickability fixes:

  1. DE DMMA PDF href has no #page= — affects de/income/general_disregard,
    de/resources/{individual,couple}, de/special_income_limit/{individual,couple}, plus variables
    is_medicaid_ltss_income_eligible and medicaid_ltss_needs_based_income. Verified: the PDF is 2
    pages and every cited figure is on file page 1. Add #page=1.
  2. DE DSSM href is an opaque UUID API endpoint that downloads an 83-page PDF with no anchor —
    affects 6 parameters and 8 variables. Clicking it starts a download rather than showing the value.
    Verified file pages, ready to paste: DSSM 20100.2.2 → #page=1; 20910.4/.5/.6 → #page=78;
    20910.10 → #page=79; 20990 → #page=81. (20240.1 and 20320.7 are present but their pages were
    not individually confirmed.) A browsable HTML equivalent could not be confirmed —
    regulations.delaware.gov serves a JavaScript shell to automated clients; worth a human check.
  3. de/resources/{individual,couple} cite an income-standard section for a resource limit
    DSSM 20100.2.2 sets the income standard and never states $2,000/$3,000. Verified replacements, read
    directly from the DSSM PDF: DSSM 20800 (file p.76, "The resource limit is $2,000.00") and
    DSSM 20950 (p.79–80, "Compare the remaining resources to the Medicaid resource limit of
    $2,000"
    ).
  4. wa/resources/individual cites WAC 182-513-1395, which does not contain the $2,000 standard
    that WAC defers to WAC 182-513-1350, which this PR already cites elsewhere (on
    medicaid_ltss_home_equity_eligible). Add or substitute it.
  5. federal/mmmna/shelter_threshold_rate's 2026-07-01 date rests on a citation with no July-2026
    event
    (see A1). The July date is corroborable, just not from 42 USC 1396r-5(d)(4): CIB
    04/27/2026 #page=2 carries "Community Spouse Monthly Housing Allowance: (Effective 7-1-26)
    811.50"
    , and 811.50 = 0.30 × 2,705 exactly. Either add that CIB as a second reference or re-date
    the rate to the statute.
  6. All five TX parameters rest on a single mutable "current revision" page.
    fhb.hhs.texas.gov/handbooks/.../appendix-xxxi-budget-reference-chart serves whatever revision is
    current; when 26-3 / 27-1 lands at that URL the citations silently stop showing the 2026 figures.
    Cite a revision-specific permalink if TX HHS publishes one. Separately, fix the title's date: it
    reads "Revision 26-2, Effective June 1, 2026" while the rows it supports are stamped "Effective Jan.
    1, 2026" on the chart itself — which is precisely what makes the 2026-01-01 dating correct (see
    the PDF audit clearance below).

A10 — Parameter metadata: period: month on stocks, on a dimensionless rate, and on booleans; description conventions

period: (12 files): federal/csra/{maximum,minimum}.yaml:7, {tx,de,wa}/csra/state_minimum.yaml:7,
{tx,de}/resources/{individual,couple}.yaml:7, wa/resources/individual.yaml:7,
federal/mmmna/shelter_threshold_rate.yaml:7, wa/waivers/{copes,new_freedom,rsw}/enabled.yaml:7.

Resource limits and community-spouse resource allowances are point-in-time stocks, not monthly
flows — and the consuming code treats them as such (medicaid_ltss_csra_resource_eligible.py:45-49
compares them against quantity_type = STOCK inputs). The repo's comparable parameters
(gov/ssa/ssi/eligibility/resources/limit/{individual,couple}.yaml) omit period entirely, and the
sibling home_equity/*.yaml files in this very tree use period: year. A dimensionless rate is
period: year by convention. For booleans the repo-wide split is 316 period: year vs 28 period: month.

period is display/API metadata and nothing computes wrongly today — but a $162,660 CSRA maximum
labelled "per month" renders as an annualised $1.95M in the parameter browser, and it is the field a
future reader uses to decide whether a value needs ÷12.

Descriptions: five federal files (federal/csra/{maximum,minimum}.yaml:1,
federal/mmmna/{maximum,minimum,shelter_threshold_rate}.yaml:1) are noun phrases with no allowed verb
(limits / provides / sets / excludes / deducts / uses). All 24 files write the acronym
"Medicaid LTSS" in description: (labels may abbreviate; descriptions should spell out "Medicaid
long-term services and supports") and none closes with the conventional "… under the [Full Program
Name] program." de/csra/state_minimum.yaml:1 is a two-clause sentence whose caveat already lives in
the consuming variable's documentation.

A11 — tx/csra/state_minimum.yaml stores a copy of the federal minimum; wa/csra/state_minimum.yaml's date contradicts its own description

  • .../financial/tx/csra/state_minimum.yaml:32026-01-01: 32_532, byte-identical to
    federal/csra/minimum.yaml:3, with its own description saying "Texas adopts the minimum resource
    amount set by federal law". The consumer already takes the max against the federal value
    (medicaid_ltss_csra_resource_eligible.py:62), so this is a wrapper parameter that will silently
    diverge
    the next time CMS updates the standard and only the federal file is touched. Either drop
    the TX file and let max_ fall through, or set it to 0 with a description explaining that Texas
    elects no higher state floor.
  • .../financial/wa/csra/state_minimum.yaml:1-3 — the description states the standards chart "stamps
    July 1, 2025 and revises on a July odd-year cycle", but the value 72_529 is keyed 2026-01-01.
    The WA HCA chart confirms "State Spousal Resources (7/1/25) changes in odd years — $72,529". No
    numeric impact (backdating covers the gap with the same figure, and the consuming formula starts
    2026-01-01), but 2025-07-01 is the faithful key and makes the odd-year cycle self-documenting.
    Same shape, lower stakes: de/csra/state_minimum (DSSM 20910.10 fixes $25,000 for applications
    filed on or after 10/1/93) and de/income/general_disregard ($20 has been the SSI general income
    exclusion since 1974).

A12 — Evidence-quality gap: five Delaware values have no renderable source

This is a verification-process gap, not a suspected error, and it must not be buried.

The Delaware primary source — DMMA Administrative Notice A-14-2025,
https://dhss.delaware.gov/wp-content/uploads/sites/11/2026/06/2026-SSI-Related-Income-Standards-and-Medicare-Premiums.pdf
— returns HTTP 999 (WAF block) to every automated client tried (curl with browser headers, WebFetch,
CORS proxies). There is no Wayback snapshot. No PDF bytes were obtained, therefore no page images
exist and no 600-DPI visual confirmation was possible
for any DE value. All that exists is text
extracted through the r.jina.ai proxy.

Five DE values rest solely on that proxy text:

Parameter Value
de/special_income_limit/individual 2_485
de/special_income_limit/couple 3_727.50
de/resources/individual 2_000
de/resources/couple 3_000
de/income/general_disregard 20

Proxy extraction is lossy, and artefacts are visible in the capture ($1491.00 without a thousands
separator, $ 20.00 with a stray space, a Docusign envelope ID interleaved mid-sentence). None affects
the digits matched, but they demonstrate the mode of failure.

Mitigations, which are substantial:

  • The two SIL values are arithmetically self-checking. The notice states the rate (250%), the base
    ($994 / $1,491) and the products ($2,485 / $3,727.50). 250% × 994 = 2,485 and 250% × 1,491 =
    3,727.50 both reconcile — a corrupted digit in any of the four would break the identity. The
    $994/$1,491 FBR pair is independently confirmed at 300 DPI in the TX chart and the CMS CIB.
  • The 250% rate is independently confirmed by DSSM 20100.2.2 (a separate, separately-extracted
    document) in three places, dating the election to 10/1/1994.
  • $2,000 / $3,000 are independently confirmed by DSSM 20800 and DSSM 20950.
  • The $20 disregard cross-checks internally ($2,485 + $20 = $2,505 and $3,727.50 + $20 = $3,747.50,
    both printed in the notice).

Every DE parameter has either a second document or an internal arithmetic identity behind it, and
there is no positive indication that any DE value is wrong.
But the primary citation in all five
files is a document nobody has rendered.

Action: a human should open the A-14-2025 URL in a normal browser and eyeball the five figures.
The URL is very likely fine interactively — the block is a bot/WAF rule, not a dead link.
de/csra/state_minimum = 25,000 is not affected; it comes from the DSSM, whose PDF bytes were
obtained (83 pp.) and are re-renderable.


Suggestions

  1. Trailing zeros on values. de/special_income_limit/couple.yaml:3 (3_727.503_727.5),
    federal/mmmna/maximum.yaml:3 (4_066.504_066.5), and the matching test literals
    (medicaid_ltss_mmmna.yaml:21,65,87,131,260).
  2. add(...) > 0 over manual OR chains. medicaid_ltss_home_equity_eligible.py:45-59 ORs four
    person-level booleans; medicaid_ltss_csra_resource_eligible.py:76-79 hand-sums two same-entity
    variables.
  3. Enum default members are placed first. MedicaidLTSSFinancialPathway.UNMODELED
    (medicaid_ltss_financial_pathway.py:5) and MedicaidLTSSSetting.UNKNOWN
    (medicaid_ltss_setting.py:5); convention is NONE/default last. (MedicaidLTSSWaiver splits the
    difference.)
  4. Test-file conventions. Two of six files omit the Case N, prefix
    (is_medicaid_ltss_financial_threshold_eligible.yaml, medicaid_ltss_financial_pathway.yaml); all
    six use descriptive person keys rather than person1/person2 (genuinely readable here — worth a
    deliberate decision rather than a default); families: is declared in two files and omitted in
    three for otherwise identical households; is_medicaid_ltss_financial_threshold_eligible.yaml:3
    carries absolute_error_margin: 0.01 where it is needed for a currency assertion in the same case
    but sits alongside boolean-only outputs elsewhere.
  5. The three WA waiver toggles have no false branch under test. All ship
    2026-01-01: true, and medicaid_ltss_financial_pathway.py:24-26 notes the disabled branch is
    reform-only-reachable. A YAML case with a reforms: block flipping one would genuinely cover
    medicaid_ltss_financial_pathway.py:51-55.
  6. Dead defensive code. min_(needs_based_income, income) in is_medicaid_ltss_income_eligible.py
    is untestable — the following max_(income − needs_based_income, 0) already floors the result, so
    no input distinguishes the clamped from the unclamped version.
  7. Additional edge cases worth pinning (all with worked inputs in the tests report): assistance-unit
    size 3+ and negative; ownership share exactly 0 with a high-value home; negative equity
    (encumbrances above market value); TX and WA MMMNA with no community spouse (only DE has that
    case); DE pathway coverage (one case vs TX's five — no DE twin for "TX HCBS cannot use a WA named
    waiver"); home-equity exception branches tested only in TX; home-equity case 9 does not test what
    its name says (both people have ownership_share: 1, so only encumbrances are exercised); and one
    composite case with the applicant and community spouse as two members of one household — 15 of
    59 cases are multi-person but all but one place each person in a separate household, which is
    vectorization across households, not within one.
  8. home_equity/minimum_limit's 2025 value (730_000) is currently untestable, not merely untested:
    its only consumer has formula_2026_01_01. Either drop the 2025 entry or fold it into the pre-2026
    fail-closed case from A2 item 5.
  9. AK/HI need a breakdown before those states can be added. federal/mmmna/minimum.yaml:1
    correctly scopes itself to "the contiguous states and District of Columbia"; CIB 04/27/2026
    #page=2 publishes MMMNA 3,381.25 (AK) / 3,111.25 (HI). gov/hhs/fpg.yaml already carries
    CONTIGUOUS_US / AK / HI keys. No impact today — TX/DE/WA are all contiguous.
  10. Delaware's earned-income disregard sequence is neither modeled nor disclosed. DSSM 20240.3
    applies "$20, then $65, then ½ of remainder" to gross earned income; the code applies only the
    general $20. For the spousal case DSSM 20990 makes the $20 the sole deduction, so the code is
    exactly right there, and LTC applicants rarely have earned income — but the trusted-input contract
    does not tell the user whether to pre-apply 20240.3.
  11. Cross-reference medicaid_ltss_setting to the existing is_in_medicaid_facility. The two are
    independent person-month inputs that can disagree; when they do, the screen silently falls to
    UNMODELED (the safe direction), but a user who has already populated is_in_medicaid_facility
    gets a false screen with no indication why.
  12. Three low-confidence citation details worth a 30-second browser check. Cornell anchors (#d,
    #d_4, #f, #f_1, #f_2, #f_4, #d_4_B) did not surface as element IDs in
    markdown-converted fetches — probably a converter artefact; the underlying subsection content was
    spot-checked and all passed. medicaid_ltss_home_equity_eligible's documentation asserts
    "DSSM 20320.7.B and 20320.7.E" — §20320.7 exists with subsections A–F, but B and E were not
    individually confirmed as the equity-cap subsections. medicaid_ltss_assistance_unit_size cites 42
    CFR 435.601, which governs financial methodologies, not unit composition — consider 435.602/.603
    or 42 USC 1396r-5(b).
  13. Cross-file citation drift on the same CIB. Pre-existing home_equity/limit.yaml cites CIB
    04/27/2026 as .../federal-policy-guidance/downloads/cib04272026.pdf with no page anchor and a
    title that does not match the document's SUBJECT line; the new minimum_limit.yaml cites it as
    .../sites/default/files/2026-04/cib04272026.pdf#page=2 with the correct title. The new file is
    right
    — align the older one while A7 requires touching it anyway.
  14. Heads-up on a conflicting TX label. TX Appendix XXXI labels $4,066.50 the "Minimum Monthly
    Maintenance Needs Allowance (MMMNA) also known as Spousal Allowance", whereas federally $4,066.50
    is the Maximum MMNA and $2,705 is the minimum. The PR takes federal/mmmna/maximum from the
    CIB and is correct; flagged only so a future editor does not "fix" it to match the TX wording.
  15. medicaid_ltss_mmmna has no consumer. Correct for a post-eligibility spousal standard, but it
    means a regression in it can only ever be caught by its own test file — which is what makes A2 item
    4 matter more than it otherwise would.

PDF Audit Summary

Two independent audit lanes covered all 25 parameter values (24 files; home_equity/minimum_limit
carries two dated values).

Federal + WA lane TX + DE lane Total
Values audited 14 11 25
MATCH 14 11 25
MISMATCH 0 0 0
Differences > 0.3 0 0 0
Mismatches rejected (investigated and cleared) 2 of 2 (see below)
Effective-date findings 1 substantive (A1) + 3 cosmetic 1 resolved in the PR's favour + 1 cosmetic
Values with no source support 0 0 0
Values with no renderable source 0 5 (all DE) 5 — see A12

Zero value mismatches across all 25 audited parameters. Selected corroborations:

  • The unusual Delaware 250%-of-SSI special income limit was confirmed from two independent
    sources.
    DMMA A-14-2025 states it verbatim ("The income standard for Long Term Care Programs …
    is equal to 250% of the SSI standard … $2,485.00 for an individual $3,727.50 for a couple"
    ), and
    DSSM 20100.2.2 confirms the election independently and historically ("Effective October 1, 1994,
    the eligibility standard for individuals in nursing facilities and HCBS Waiver programs became 250%
    of the SSI standard"
    ), restated in two further DSSM passages. 42 CFR 435.1005 makes 300% a federal
    ceiling, not a mandate, so a 250% election is lawful. This is not a typo in the PR.
  • The $20 general disregard is applied exactly once — no double-count. The repo stores the bare
    250% figures (2_485 / 3_727.50, not 2_505 / 3_747.50) and subtracts at most one $20 on the income
    side (is_medicaid_ltss_income_eligible.py:71-76), capped at the non-needs-based portion so a
    wholly VA-pension income gets $0 disregard, exactly as the notice requires. The couple boundary lands
    at $3,747.50 (= +$20), not $3,767.50 (= +$40) — the $40-per-couple failure mode is
    structurally unreachable, and the shipped fixtures pin all four boundaries
    (is_medicaid_ltss_income_eligible.yaml cases 4 and 5: 3_727/3_727.50/3_728 → true/true/false and
    3_747/3_747.50/3_748 → true/true/false).
  • TX Revision 26-2's June effective date was resolved in the PR's favour. The handbook header reads
    "Revision 26-2; Effective June 1, 2026" while the values are keyed 2026-01-01 — a five-month gap on
    its face. But the chart carries its own inline effective dates per value block, and they are
    January: "Income — Effective Jan. 1, 2026, total countable income must be no more than the special
    income limit"
    . The June stamp is the handbook revision's publication date; the values it publishes
    are federal SSI COLA-driven standards effective 1/1/2026. Dating them 2026-01-01 is correct and
    is what the cited page's own text supports.
    (Cosmetic follow-up in A9 item 6.)
  • The CIB's date structure is reproduced faithfully. CIB 04/27/2026 #page=2 heads the Spousal
    Impoverishment block "Effective 1-1-26 Unless Otherwise Noted", and exactly two line items carry an
    override — Minimum MMMNA (2,705.00) and CS Monthly Housing Allowance (811.50), both stamped
    "(Effective 7-1-26)". The repo's split (2026-07-01 for mmmna/minimum, 2026-01-01 for everything
    else) matches. The 2026-07-01 stamps are not errors — the PR did not naively take the January
    date, which is the more common mistake.
  • Two-year independent arithmetic on the 30% shelter share. 0.3 × 2,705 = 811.50 = the CIB's
    published 2026 CS Monthly Housing Allowance, exactly; 0.3 × 2,643.75 = 793.125 → 793.13 = the
    2025 CIB's figure, to published rounding. Also stated in WA's own regulation, WAC
    182-513-1385(4)(b)(ii): "The standard shelter allocation is 30 percent of 150 percent of the
    two-person FPL."

Mismatches rejected — investigated and cleared

Both escalated CRITICALs went to Phase-5 verification and both were disproven. Neither is carried
as a finding.

Cleared #1federal/mmmna/minimum backdating $2,705 into a Jan–Jun 2026 window governed by
$2,643.75 is NOT a reachable wrong value.
(This was the federal PDF lane's headline effective-date
item; the correction is material.)

The parameter-level facts all held up: the file has exactly one entry (2026-07-01: 2_705);
system.py:116 backdates it to 2015-01-01; it therefore resolves to 2,705 at 2026-03-01; the correct
window figure is 2,643.75 (confirmed verbatim from the CIB 05/28/2025 page-2 image); and the repo has
no 2025-07-01 entry. What was disproven is that any computed screen consumes it. The parameter's
only consumer is medicaid_ltss_mmmna, which declares formula_2026_07_01; for every month in
2026-01 .. 2026-06 the variable returns its 0 default and never reads the parameter. Model run across
the boundary:

DE shelter=0:     2026-01=0.0  2026-03=0.0  2026-06=0.0  2026-07=2705.0
DE shelter=2173:  2026-01=0.0  2026-03=0.0  2026-06=0.0  2026-07=4066.5
WA shelter=0:     2026-01=0.0  2026-03=0.0  2026-06=0.0  2026-07=2705.0
TX shelter=0:     2026-01=0.0  2026-03=0.0  2026-06=0.0  2026-07=4066.5

There is no month in the disputed window in which any household gets a number derived from 2,705.
The finding is latent, not live — a data-fidelity defect with zero current output impact. It is
carried in A1 at SHOULD ADDRESS precisely because it is one edit deep from becoming live, but it is
not a wrong result today and it is not evidence that the PR published a wrong value.

Cleared #2 — the P.L. 119-21 §71108 / post-2028 home-equity concern (752,000 vs 1,000,000) rests on
a misreading of the amendment.

The claim was that §71108 strikes the 1396p(f)(1)(B) state election and the (C) CPI escalator and
replaces the federal minimum with $1,000,000, making minimum_limit's flat 752,000 wrong for TX, DE
and every non-WA state from 2028. Reading the enacted text directly (govinfo, P.L. 119-21, 139 Stat.
296–297) shows the opposite:

Element Claim Actual
(f)(1)(A) $500,000 indexed minimum implicitly replaced by $1M Untouched — not amended at all
(f)(1)(B) state election "struck" Preserved and expanded — split into cl. (i) agricultural and new cl. (ii) non-agricultural, capped at $1,000,000
(f)(1)(C) CPI escalator "struck" Preserved — amended only to exclude the new (B)(ii) figure from indexation and to deem other indexed amounts capped at $1,000,000

$1,000,000 is a ceiling on the state-elected maximum for non-agricultural homes, not a floor and
not a replacement for the minimum. CMS CIB 11/18/2025 (pp. 8–10) says so in terms: "States will
continue to have the option to impose a limit between the applicable minimum and maximum amounts …
The minimum home equity limit will continue to increase based on CPI-U increases until it reaches
$1,000,000."

Empirically settled by model run at both 2026-01 and 2028-01: a TX household at $900,000 equity —
squarely in the disputed band — is screened out in both years
, which is the correct result, because
Texas applies the federal minimum. Meanwhile the one behavioural change §71108 does produce is
already correctly modeled: WA at $1,000,001 flips True → False between 2026 and 2028 as WA's
elected maximum steps down from 1,130,000 to the new statutory cap.

minimum_limit.yaml extending 752,000 past 2028 is therefore not a wrong threshold. Adding
2028-01-01: 1_000_000 would be wrong law. The PR's three-parameter split (minimum_limit = (A),
limit = (B)(ii) stepping down to $1M at 2028, agricultural_limit = (B)(i) uprating past $1M)
matches the statute and the CIB precisely — if anything this item is evidence the PR handled §71108
with unusual care.
The only residual is the missing CPI uprating on minimum_limit, carried as
A7 at MINOR magnitude.

Also checked and cleared (no finding)

The regulatory reviewer hunted four specific failure modes and found none of them:

  • SIL basis — TX/WA at 300% and DE at 250% all confirmed against their own published charts, with
    the $20 disregard applied at the DSSM 20990 step (before the limit comparison), once per unit, and
    carved out of needs-based income.
  • CSRA regimesmedicaid_ltss_csra_resource_eligible.py:72-75 computes min(max(half, floor), maximum) where 42 USC 1396r-5(f)(2)(A) says max(floor, min(half, maximum)). These are equal for
    every input provided floor ≤ maximum
    , which lines 62-64 guarantee via max_(state_minimum, federal.csra.minimum) and which holds for all three states. Non-obvious, and correct. The
    eligibility test at line 82 is DSSM 20950 rearranged.
  • MMMNA formula — the 30% threshold is taken against the 150%-FPG floor, which is what
    1396r-5(d)(4) means by "30 percent of the amount described in paragraph (3)(A)(i)" — not 30% of
    the maximum and not 30% of the computed MMMNA, the two common ways to get this wrong.
  • Fail-closed behaviour — every route traced. medicaid_ltss_financial_pathway.py:76-88 is a
    select whose non-default arms require state ∈ {TX, DE} or state == WA; everything else falls to
    default=UNMODELED. Three screens independently re-gate on pathway != UNMODELED, so the
    composite cannot return true for an unmodeled state even if one leg were bypassed.
  • ABD categorical gatemedicaid_ltss_financial_pathway.py:48 gates on
    is_ssi_aged_blind_disabled (pure categorical status, no income or resource test) rather than on SSI
    eligibility. That is the correct and non-obvious choice: 42 CFR 435.236 covers ABD individuals who
    "because of their income, would not be eligible for SSI", so an SSI-eligibility gate would exclude
    the very population the SIL group exists to cover.
  • Reinvented variablesmedicaid_ltss_countable_resources is not a duplicate of
    ssi_countable_resources; the repo's established pattern is one countable-resources variable per
    program (17 exist), SSI's is narrower by design, and the docstring says so.
  • WA institutional medically-needy omission — WAC 182-513-1395 tests "remaining income plus
    excess resources
    "; the code tests income only, and the docstring names that omission exactly.
    Resources are screened separately, so the composite is not lenient in the common case. Verified,
    no action.
  • Stale DSSM home-equity figures are encoded nowhere. DSSM 20320.7.E's own chart ends at
    1/1/2012 ($525,000); grep -rn "525_000\|525000\|525,000" over the whole snapshot returns no policy
    hit. Correct.

Validation Summary

Check Result
Files scanned 56 (25 variables, 24 parameters, 6 test YAMLs, 1 changelog)
Parameter values audited vs primary source 25/25 MATCH, 0 mismatches
Parameters with a reference: block 24/24
Variables with a reference 25/25
Jurisdiction mismatches 0 — all TX params cite TX sources, DE→DE, WA→WA, federal→CMS/USC
Source authority 100% official government — no advocacy, news, or secondary sources
Sources fetched successfully 13/13 (DE DMMA via text proxy only — see A12)
#page= anchors verified 3/3 correct, all offset 0
Test cases 59 across 6 files; all 59 expected values re-derived by hand — 0 arithmetic errors
Test mechanics Clean — no absolute_error_margin ≥ 1; all enum literals valid; all referenced inputs exist
Test period coverage All 59 cases at period: 2026-07 — the one month that hides A1
Mutations surviving the suite 5 (see A2)
Hard-coded policy values in formulas 0 — every numeric literal is structural (max_(…,0), unit-size comparisons, the statutory ½ at 1396r-5(f)(2)(A))
TODO / FIXME / placeholder 0
Vectorization Clean — no Python if/and/or/not on arrays; select() always with explicit default
uv run ruff format --check 25 files already formatted
Trusted inputs 19/19 are genuine inputs (no formula/adds); quantity_type = STOCK on exactly the stock quantities
Enum fail-closed Clean — default UNMODELED; composite false for 100% of the population at defaults
Wired into existing outputs Nogrep -r "medicaid_ltss" hits only the new tree and its tests
Changelog fragment Present, correct type and location (changelog.d/ltss-financial-eligibility.added.md)
programs.yaml entry Missing — see A3
CI 33/33 pass
Branch BEHIND=38, AHEAD=8 — rebase recommended, no effect on findings

Review Severity

COMMENT — issues present, none blocking.

Rationale: zero CRITICAL findings survive verification; every audited value is correct; no screened
eligibility outcome is wrong; and the program is genuinely inert with respect to existing model
outputs. The 12 SHOULD ADDRESS items are worth resolving before or shortly after merge, with A1
(MMMNA effective dating), A2 (five surviving mutations) and A3 (programs.yaml) as the
priority three.

Posting note: the run state records a posting constraint of approve-or-request-changes. With no
criticals present, that maps to APPROVE with the comments above, not REQUEST_CHANGES.

Assessment for the maintainer: this is an unusually disciplined PR. Zero hard-coded policy values,
zero TODOs, 100% reference coverage on both parameters and variables, correct fail-closed design, and
three things that are easy to get wrong and that this PR gets right — Delaware's genuinely unusual 250%
SIL with the $20 disregard applied at exactly the right step and exactly once; the excess-shelter
threshold taken against the 150%-FPG floor rather than the maximum; and the 1396p(f)(1)(B) State
election between the federal home-equity minimum and maximum, which the repo's pre-existing LTC screen
does not implement at all. The findings are dating, contract, coverage and registry issues — not
formula errors.


Next Steps

Before merge (recommended):

  1. A3 — add the programs.yaml entry (state_implementations: [TX, DE, WA] under id: medicaid,
    status: partial), or record an explicit decision to defer it.
  2. A1 — fix the MMMNA effective-date complex as one change: add 2025-07-01: 2_643.75 to
    federal/mmmna/minimum.yaml with its CIB 05/28/2025 reference, re-date shelter_threshold_rate
    away from 2026-07-01, and either move medicaid_ltss_mmmna to formula_2026_01_01 or add a
    TX-only January formula. Do not lower the formula start date without adding the 2025 parameter
    entry first
    — that ordering is what keeps the DE/WA $61.25/month error latent.
  3. A2 — add the five discriminating test cases (composite-fails-on-resources-alone; DE CSRA floor;
    WA CSRA floor; MMMNA cap actually binding; pre-2026 fail-closed). Ready-to-paste YAML and input
    tables are in the tests report.
  4. A12 — have a human open the DE A-14-2025 URL in a browser and confirm the five figures. Cheap,
    and it closes the only evidence gap in the audit.
  5. A9 — apply the six citation fixes; each has a verified replacement with a page number.

Before or shortly after merge:

  1. A5, A6 — gate medicaid_ltss_home_equity_eligible on pathway != UNMODELED, and state the
    assistance-unit input contract explicitly in the three affected input docstrings (resolving the
    contradiction with medicaid_ltss_qit_adjusted_income's "ownership allocation" wording).
  2. A7, A10, A11 — add the CPI uprating block to minimum_limit.yaml; correct period: metadata
    on the 12 files; resolve tx/csra/state_minimum's federal duplicate and wa/csra/state_minimum's
    date.
  3. A8 — add the Delaware hospital carve-out to the limitations documentation.

Follow-up issue (out of this PR's scope):

  1. A4 — the pre-existing is_medicaid_long_term_care_home_equity_eligible applies the federal
    maximum to every state, including TX and DE, and it is wired into
    is_medicaid_long_term_care_eligible and exposed through the API. This PR authored the parameter
    that fixes it. Open an issue and cross-reference it from the new variable's docstring.

No action needed: the two cleared items. Do not add 2028-01-01: 1_000_000 to
minimum_limit.yaml, and do not treat the Jan–Jun 2026 parameter resolution as a live wrong value —
both were verified and disproven.

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.

3 participants