Skip to content

Include incapacitated adult care expenses in state TANF dependent care deductions#8982

Merged
hua7450 merged 5 commits into
PolicyEngine:mainfrom
hua7450:tanf-adult-care-expenses
Jul 14, 2026
Merged

Include incapacitated adult care expenses in state TANF dependent care deductions#8982
hua7450 merged 5 commits into
PolicyEngine:mainfrom
hua7450:tanf-adult-care-expenses

Conversation

@hua7450

@hua7450 hua7450 commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds the person-level care_expenses input (care for a disabled/incapacitated adult) to the dependent care deductions of 21 state TANF-family cash assistance programs (23 variables) that previously only counted childcare_expenses. Where the regulation includes incapacitated adults in the per-person cap, they are added to the cap population; where the cap side already included them (TX, VA) only the expense side changes. MT's cap side previously also required the incapacitated adult to be a tax dependent — Mont. Admin. r. 37.78.406(2)(c) imposes no dependency requirement, so this PR drops it (an incapacitated spouse now qualifies; test Case 7 flips 0 → $200).

Closes #8811 (together with #8980 for SNAP and #8981 for TX FPP / HI CDCC / MT tax deduction).

Verification

Every program was verified against its statute or policy manual (verbatim quotes checked against primary sources) before editing:

Program Authority Adult-care rule Adult cap
AK ATAP 7 AAC 45.485(a)(2)(C) incapacitated parent whose needs are in the AU (only) $175/mo
AL Family Assistance Ala. Admin. Code r. 660-2-2-.30(2)(c) "child care or care for an incapacitated adult living in the same home and receiving FA" none (actual cost)
AZ Cash Assistance ARS 46-292(P)(1) "care of an adult or child dependent household member" $175/mo
DC TANF DC Code § 4-205.11(a)(2) + ESA Policy Manual "incapacitated adult living in the same home and receiving TANF or POWER" $175/mo
DE TANF DSSM 4004.2(4) "$175/mo per dependent child or incapacitated adult" $175/mo
GA TANF PAMMS 1615 "care of an incapacitated individual in the home"; "$175 monthly for each individual age two or above" $175/mo
HI TANF State Plan § 10.2.1(D) "cost of care for a disabled adult household member" $175 FT / $165 PT
IL TANF 89 Ill. Adm. Code 112.143(b)(1)(C) "care of an incapacitated adult" is an exception to direct payment, using the care deduction $175/mo (age-2+ tier)
KY K-TAP 921 KAR 2:016 § 5(3)(b)1.b "incapacitated adult living in the home and receiving KTAP" $175 FT / $150 PT (PT not modeled, pre-existing)
MA TAFDC + EAEDC 106 CMR 704.275(A) "$175 per dependent child, age two or older, or incapacitated individual" $175/mo (hours-proportional)
MD TCA COMAR 07.03.03.13.E(3)(c) "each child in the assistance unit or an incapacitated adult living in the home" $200 (100+ hrs/mo) / $100
ME TANF 10-144 CMR ch. 331, Ch. IV § B(2)(b) "each dependent child or incapacitated adult needing care" (manual extends the child-only statute) $175/mo
MN MFIP Combined Manual § 0018.09 "care for a minor child or disabled adult in the unit" (applicant eligibility test only — matches existing model) manual states no adult cap; $175 tier applied
MO Temporary Assistance 13 CSR 40-2.120(6)(A)5 "an incapacitated individual living in the same home as the dependent child, receiving AFDC" $175/mo
MT TANF TANF Manual 602-1 "each minor child or incapacitated adult" (cap side already modeled; this PR drops its extra tax-dependency requirement per Mont. Admin. r. 37.78.406(2)(c)) $200/mo
NH FANF FAM 603.05 "dependent child or incapacitated parent" (only) $175 FT / $87.50 PT
OK TANF OAC 340:10-3-33(b)(3)(B) "$175 for a dependent two years of age and older or for an incapacitated adult" $175/mo
RI Works 218-RICR-20-00-2.15.5(B)(2) "each dependent child or incapacitated adult living in the home and receiving cash assistance" $175/mo
TX TANF 1 TAC § 372.409(a)(3) "$175 monthly for each dependent child age two or older (or incapacitated adult)" (cap side already modeled) $175/mo
VA TANF TANF Manual § 305.3 item 5 "Incapacitated Adult/Child Care Disregard" (cap side already modeled) $175 FT ($120 PT not modeled, pre-existing)
VT Reach Up Rule 2252.2(a) "care for a household member who is a disabled or seriously ill adult" $175/mo per participant
WV Works IMM § 4.5.2.A.2 "dependent child or incapacitated adult care" none

Verified child-only — deliberately unchanged

  • NM Works8.102.520.12(D) NMAC says "child" exclusively.
  • IL AABD — 89 Ill. Adm. Code 113.125(b) is titled "Child Care" with per-child caps only.
  • TN Families First — 1240-1-50-.16(1)(c)5(ii) says "child/dependent" and never mentions incapacitated adults; treated as not established.

Modeling notes

  • "Incapacitated adult" is modeled as is_adult & is_incapable_of_self_care (or is_disabled where the state's operative word is "disabled": HI, MN); "incapacitated parent" (AK, NH) as is_tax_unit_head_or_spouse & is_incapable_of_self_care. VA's manual keys on incapacity ("Incapacitated Adult/Child Care Disregard"), so its pre-existing is_disabled mask was switched to is_incapable_of_self_care.
  • Live-in / receiving-assistance conditions on the cared-for adult (e.g., "receiving TANF") are approximated by SPM unit membership, consistent with how the child side is modeled.
  • Reference URL fixes: DE now cites DSSM 4004.2 (the operative disregard section, not 4008), MD cites the current COMAR source (old dsd.maryland.gov is dead), VA and WV point at the current manuals (old links 404).

Impact

care_expenses defaults to 0, so all existing tests, partner contract tests, and microsimulation results are unchanged unless the input is supplied.

Test plan

  • One new test case per program (23 cases) — each chosen so the old and new formulas produce different values (e.g., adult-care-only household: 0 before, 100/month after)
  • Negative population-filter test per capped program (adult without the qualifying condition adds nothing to the cap), incl. incapacitated non-parent cases for AK/NH and a non-dependent adult for AZ
  • KY/MO above-cap adult cases pinning the $175 age-2+ tier targeted by the cap_age remap
  • CI passes

🤖 Generated with Claude Code

hua7450 and others added 4 commits July 9, 2026 12:39
…e deductions

Adds the person-level care_expenses input (care for a disabled or
incapacitated adult) to 21 state TANF-family cash assistance programs
whose regulations cover adult care but which previously only counted
childcare_expenses: AK ATAP, AL FA, AZ CA, DC TANF, DE TANF, GA TANF,
HI TANF, IL TANF, KY K-TAP, MA TAFDC, MA EAEDC, MD TCA, ME TANF,
MN MFIP, MO TA, MT TANF, NH FANF, OK TANF, RI Works, TX TANF, VA TANF,
VT Reach Up, and WV Works. Where the regulation covers incapacitated
adults in the per-person cap, they are added to the cap population.

Every program was verified against its statute/policy manual before
editing. NM Works, IL AABD, and TN Families First are verified
child-only (or unclear) and left unchanged. Also fixes dead or wrong
reference URLs for DE (DSSM 4004.2), MD (COMAR portal), VA, and WV.

Part of PolicyEngine#8811.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ated adults

KY and MO cap the dependent care disregard on an age schedule that zeroes
out above age 13 (KY) / 18 (MO), reflecting children aging out of care.
Evaluating that schedule at an incapacitated adult's actual age returned
a $0 cap, dropping their care expenses. Both regulations give the
incapacitated adult the standard age-two-or-older rate ($175), so
evaluate the schedule at the age-two threshold for them.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… dependent care deduction

Mont. Admin. r. 37.78.406(2)(c) covers care for each working member's
minor child or incapacitated adult with no dependency requirement, so an
incapacitated spouse now qualifies. Add adult-side edge tests: above-cap
adult care, non-incapacitated adult, and combined child plus adult care.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@hua7450 hua7450 marked this pull request as ready for review July 13, 2026 23:25
@hua7450 hua7450 requested a review from PavelMakarchuk July 14, 2026 15:41
…ing tests

- VA: switch the adult care mask from is_disabled to
  is_incapable_of_self_care per Manual 305.3 item 5 ("Incapacitated
  Adult/Child Care Disregard"), and sweep the VA unit and integration
  tests accordingly.
- Add a negative population-filter test to every capped program (adult
  without the qualifying condition adds nothing to the cap), including
  incapacitated non-parent cases for AK/NH and a non-dependent case
  for AZ.
- KY/MO: add above-cap adult cases pinning the age-2+ $175 tier that
  the cap_age remap targets.
- AL/VT/WV: document that the incapacity/disability flags in the new
  test cases describe the legal scenario while the formulas pool
  care_expenses without a filter, symmetric with the childcare side.
- AZ: drop the inert incapacity flag from the dependent-adult case.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@hua7450 hua7450 requested a review from daphnehanse11 July 14, 2026 20:24
@daphnehanse11

Copy link
Copy Markdown
Collaborator

Program review (automated multi-agent)

Scope

Reviewed all 23 changed variable files, 24 test files, and the changelog fragment in PR #8982 (incapacitated adult care expenses in state TANF dependent care deductions, 22 states). Four regulatory auditors verified every state against primary sources (statutes, admin codes, and 6 PDF manuals), plus a reference validator, code-pattern validator, test-coverage analyst, and two follow-up verifiers. CI is fully green (all suites + changelog check).

Regulatory verification — 22/22 states verified

State Authority verified Verdict Note
AK 7 AAC 45.485(a)(2)(C) Verified Parent-only mask correct; $175 tier
AL Ala. Admin. Code r. 660-2-2-.30(2)(c) Verified Uncapped, as-paid; correct
AZ ARS 46-292(P)(1) Verified Dependency (not incapacity) required; matches
DC DC Code § 4-205.11(a)(2); ESA manual p.297 Verified Any incapacitated adult; $175
DE DSSM 4004.2(4) (4000.pdf#page=6) Verified $175; new reference URL lands on value
GA PAMMS 1615 Verified Cap wording "individual" supports adults
HI State Plan §10.2.1(D) (p.20) Verified "Disabled" wording; $175 FT / $165 PT
IL (TANF) 89 Ill. Adm. Code 112.143(b)(1)(C) Verified, caveat Weakest statutory footing — see Should #2
KY 921 KAR 2:016 §5(3)(b) Verified Age-13 zero-out remap correct, test-pinned
MA TAFDC 106 CMR 704.275(A) Verified $175 older tier, hours-based
MA EAEDC 106 CMR 704.275(A) (shared) Verified Same param/section reuse pre-existing
MD COMAR 07.03.03.13.E(3)(c) Verified $200/$100 hours tiers match
ME 10-144 CMR ch. 331 IV §B(2)(b) Verified Manual extends child-only statute, as PR claims
MN Combined Manual §0018.09 (file p.594) Verified $175 adult cap is a disclosed conservative approx
MO 13 CSR 40-2.120(6)(A)5 Verified Age-18 zero-out remap correct, test-pinned
MT TANF Manual 602-1 Verified $200 cap; mask broadening reg-supported
NH FAM 603.05 Verified Incapacitated parent only; matches
OK OAC 340:10-3-33(3)(B) Verified $175 for incapacitated adult
RI 218-RICR-20-00-2.15.5(B)(2) Verified $175; live-in/receiving approximated
TX 1 TAC 372.409(a)(3) Verified Expense side only; cap pre-existing
VA Manual §305.3 item 5 (#page=175) Verified Incapacity is the operative key; retrofits safe
VT Reach Up Rule 2252.2(a),(c) (p.74) Verified $175 per participant cap
WV IMM §4.5.2.A.2 (#page=590) Verified Uncapped disregard explicitly confirmed
NM (unchanged) 8.102.520.12(D) NMAC Verified child-only Correctly left unchanged
IL AABD (unchanged) 89 Ill. Adm. Code 113.125(b) Verified child-only Correctly left unchanged
TN (unchanged) 1240-01-50 Source unreachable No code change = no risk; re-check later

Critical (must fix)

None.

Should address

  1. MT: PR description mischaracterizes the change. The PR body says MT's "cap side already included them (only the expense side changes)," but policyengine_us/variables/gov/states/mt/dphhs/tanf/income/deductions/mt_tanf_dependent_care_deduction.py (lines 27–29) rewrites the cap mask from is_dependent & (is_child | is_incapable_of_self_care) to (is_dependent & is_child) | (is_adult & is_incapable_of_self_care), dropping the dependency requirement for adults — test Case 7 flips 0 → 200. The broadening is regulation-supported (Mont. Admin. r. 37.78.406(2)(c); manual 602-1 states no dependency requirement), so this is a documentation fix: update the PR body/table to disclose the MT cap-side change (as was done for VA).
  2. IL TANF: confirm the statutory footing for the adult deduction cap. In 89 Ill. Adm. Code 112.143, the operative cap in (b)(2) is worded "per child," and (b)(1)(C) ("For the care of an incapacitated adult") reads as an exception to direct payment rather than an explicit adult deduction cap. The PR body concedes this framing; the ILGA source did not render §112.143 (Cornell text used). Inclusion is defensible but this is the weakest statutory basis in the PR — a maintainer should confirm before merge. File: policyengine_us/variables/gov/states/il/dhs/tanf/il_tanf_countable_earned_income.py (deduction variable).
  3. Adult $175-vs-$200 tier unpinned in most age-based states. Positive tests for AK, AZ, DC, DE, GA, IL, OK, RI, TX, MN, HI, MD, ME use expenses of $100/mo — below every tier — so a schedule that wrongly gave the adult the $200 (<2) tier would still pass. Only KY/MO/MT pin the adult cap with above-cap expenses. Add one above-cap adult case (e.g. expenses 3_600/yr → expect 175) to a representative subset of the age-based states as a regression guard.
  4. Combined child + incapacitated-adult cap interaction tested only in MT. The summed per-person cap with pooled numerator (childcare_expenses + care_expenses) is the most bug-prone interaction. Add one combined case for a representative age-based summed-cap state (e.g. DC, IL, or RI).
  5. AL/WV/VT apply no per-recipient incapacity filter in-formula, relying on care_expenses' input semantics ("disabled adult dependent or spouse"), so the incapacity flags in those tests are cosmetic. Defensible and acknowledged in diff comments, but note the modeling gap explicitly in each variable's docstring (files: al_..._countable_earned_income.py, wv_works_countable_earned_income.py, vt_reach_up_..._deduction.py).

Suggestions

  1. Changelog fragment changelog.d/tanf-adult-care-expenses.changed.md says "21 state ... programs" but the PR covers 22 state groups / 23 variables — reconcile the count.
  2. TX uses bare is_incapable_of_self_care (no is_adult &) in tx_tanf_dependent_care_deduction.py:27,31, diverging from the convention every other capped state follows. Pre-existing and negligible in impact, but easy to align.
  3. Capped states pool all care_expenses on the expense side regardless of the qualifying-population mask, so an ineligible person's care expense can consume another member's cap room (e.g. AZ non-dependent adult). Symmetric with existing childcare behavior and bounded by the cap; could scope the expense side to qualifying recipients for tighter fidelity.
  4. Unmodeled pre-existing conditions, all approximated by SPM-unit membership consistent with the child side: physician verification and employment nexus (GA), FT/PT keyed to applicant vs unit-max hours (HI, MA), in-home/provider-identity bars (ME, MT, VT), "same home as the dependent child" (MO), live-in/"receiving assistance" requirements generally.
  5. Test hygiene: GA/KY/MO/OK new cases drop the Case N, … naming convention; WV Case 6 lists absolute_error_margin before period; consider a note/test locking the dependent-child-with-care_expenses double-count behavior (esp. ME, which special-cases disabled children).
  6. VA: the $175 full-time value is corroborated in Appendix 3 to §305, not on the referenced page 175 itself (which carries the rule text) — optionally add the appendix page.
  7. TN: re-verify 1240-01-50 ("child/dependent only" reading) when tnsosfiles.com is reachable; no code depends on it today.
  8. Most modified variables cite the new incapacitated-adult authority only in code comments with no class-level reference = attribute — matches the pre-existing convention in those files, not a regression.
  9. Minor period-arg style inconsistencies on YEAR booleans (VA is_adult at period; AZ is_tax_unit_dependent at period.this_year) — results unaffected.

Investigated and cleared

  • WV #page=590: initially unreachable to the reference validator (24.6 MB PDF over fetch cap); follow-up download + pdftotext confirmed IMM §4.5.2.A.2 (Dependent Care Deduction) is on file page 590 and that the manual explicitly states "There is not a maximum allowable amount" — the uncapped modeling is correct.
  • MN adult cap: manual §0018.09 states the $200/$175 caps only for child care; code applies the $175 tier to the disabled adult. Conservative (under-counts above $175) and disclosed in the PR — acceptable approximation.
  • VA test retrofits: the is_disabledis_incapable_of_self_care renames in unit tests and integration.yaml preserve all prior expected outputs; no silent behavior change.
  • care_expenses: confirmed a pre-existing Person-level YEAR input (policyengine_us/variables/household/expense/childcare/care_expenses.py); no variable was reinvented, and person→SPM-unit aggregation with YEAR→MONTH ÷12 is correct (tests use 1,200/yr → 100/mo).
  • Period handling: verified clean across all 23 variable files — period.this_year/monthly_age for ages, YEAR dollar flows auto-converted at MONTH consistently on expense and cap sides.
  • References: all 5 changed/added reference URLs (DE, MD, VA, ME, WV) verified correct against page-level content.
  • Deliberately unchanged programs: NM (8.102.520.12(D) NMAC) and IL AABD (89 Ill. Adm. Code 113.125(b)) confirmed child-only; leaving them unchanged is correct.

Validation summary

Check Result
Regulatory accuracy 22/22 states verified against primary sources; 0 mismatches
Reference quality 5/5 changed/added URLs verified correct
Code patterns 0 critical; period handling, vectorization, no hard-coding all clean
Test coverage 0 critical; 3 should-level gaps (tier pinning, combined-cap case, docstring notes)
Changelog fragment Present, correct type; count wording off by one (suggestion)
CI Passing (all suites + changelog check)

Review severity: COMMENT

No blocking issues; the should-address items are PR-description accuracy (MT), one statutory-footing confirmation (IL), and test hardening.


Automated review: 4 regulatory auditors (primary-source verification incl. 6 PDF manuals), reference validator, code-pattern validator, test-coverage analyst, plus follow-up verifiers. Read-only; no code changed.

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

Approving based on the multi-agent review above: 22/22 states verified against primary sources with no regulatory or value mismatches, references confirmed, code patterns and period handling clean, CI green. Remaining items (PR-description accuracy for MT, test hardening) are non-blocking.

@hua7450 hua7450 merged commit 753de8f into PolicyEngine:main Jul 14, 2026
33 checks passed
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.

Add care_expenses to other programs

2 participants