Repository navigation
Limit Hawaii, Vermont and Kentucky TANF dependent care deductions to the care their rules allow - #10254
Limit Hawaii, Vermont and Kentucky TANF dependent care deductions to the care their rules allow#10254PavelMakarchuk wants to merge 8 commits into
Conversation
HAR 17-676-54.1(c)(4) and (d)(4) and the HAR 17-676-2 definition deduct only the cost of care for each incapacitated adult in the household. The formula also deducted the unit's child care expenses and counted children in the per-person cap. Drop the child care side and convert the tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Code Vt. R. 13-170-220-X rule 2252.2 allows the dependent care deduction for the care of a disabled or seriously ill adult household member, and for a child who is not a member of the Reach Up household. ESD Procedure P-2230A step 2 says the same. The formula also deducted the unit's own child care expenses. Drop them and convert the tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e cases 921 KAR 2:016 Section 5(3)(b)1.c allows the dependent care disregard for child care only for a KTAP case that is otherwise ineligible without it; DCBS Operations Manual Vol. III MS 2840 B.1 says CCAP must pay instead if the case remains eligible. The formula disregarded child care for every case. Add ky_ktap_ineligible_without_child_care_disregard, which compares countable income with only the incapacitated adult care disregard against the standard of need (MS 2810 B), and keep child care in the disregard only when it is true. Move the per-person countable earnings and primary-earner allocation into a shared helper so both calculations use the same steps. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR Review: Limit Hawaii, Vermont and Kentucky TANF dependent care deductions to the care their rules allowSummaryThe PR narrows three state TANF dependent care deductions that deducted the unit's
The PR also rewrites or adds YAML cases in all three states and adds a
Three things need fixing:
Sibling PR #10332 rewrites the same Hawaii files (see Branch status). Critical (must fix)None. Should address1. Cap each incapacitated adult's care separately (HI formula and the new KY adult variable). Both rules cap the care of each adult individually:
The code pools both the expenses and the caps:
So one adult's unused cap absorbs another adult's excess. Any member's
The pooling is pre-existing, since main pooled children and adults too. But the PR rewrites exactly these return lines, and the KY adult variable is new code. Fix:
PR #10332's Hawaii formula already caps each adult separately (Branch status). 2. KY: the "otherwise ineligible" boundary follows the manual over the regulation. Follow the regulation, or register the conflict.
The two sources say different things:
At exact equality, the two readings give different results:
Elsewhere the PR follows the regulation over the manual, which is the right call. MS 2840 B.1 (file page 162) would require "The KTAP case would be ineligible without the deduction" for "a child or an incapacitated adult". The regulation lists the incapacitated adult as its own case (1.b), and the PR applies adult care unconditionally. CONTRIBUTING.md ("Source conflicts") ranks the regulation above a manual. Fix (either):
3. Add the The body (head Suggestions
Verified correct
Axiom line assessmentThe line is missing (Should 3).
Recommended line: CI statusAll 27 checks pass at
None is pending or failing. Branch statusThe branch is 5 commits ahead of main (four change commits on 2026-10-16 and a merge of main on 2026-10-23) and 48 behind.
Sibling note. Open PR #10332 (MaxGhenis, "Fix four statute-first benefit bugs ...") also rewrites
Verdict: REQUEST_CHANGES |
DTrim99
left a comment
There was a problem hiding this comment.
The scope fixes are right for all three states (HAR 17-676-54.1 covers adults only; VT 2251.1(e)/2252.2 exclude Reach Up children; 921 KAR 2:016 5(3)(b)1.c), and all 21 expectations hand-check. Three should-address items: (1) the HI formula and the new KY adult variable pool the caps, while both rules cap each adult ($300 + $50 should give 225; the PR gives 350); (2) the KY flag uses '>=' per manual MS 2810 B, but 921 KAR 2:016 4(2)(b) says 'exceeds', so at equality the regulation gives $0 and the PR $48.13 (Case 3); (3) there's no axiom line (HI is #1865; file issues for VT and KY). Branch note: #10332 conflicts in four HI files and already caps per adult, so agree which PR carries the HI fix. Full report in the comment above.
Address DTrim99's review of #10254: - Hawaii and Kentucky cap each incapacitated adult's care separately (HAR 17-676-54.1(c)(4), (d)(4); 921 KAR 2:016 Section 5(3)(b)2). The Kentucky disregard is the adult part plus, for an otherwise ineligible case, child care up to the children's age-based caps. - The Kentucky otherwise-ineligible test uses "exceeds" (Section 4(2)(b)), so income equal to the standard of need does not trigger the child care disregard. - Record three regulation-over-manual readings as source-conflict backlog items (KY standard-of-need equality, KY adult care condition, VT order). - Fix citations (VT rule 2251.1(e), manual page numbers, HI State Plan 10.2.2), reword forced-flag test comments, and add boundary tests and a direct test file for the Kentucky adult disregard. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # source_conflicts/candidates.yaml
|
@DTrim99 thanks for the review. Every item is addressed in efa893e (new head). Item by item: Should address1. Per-adult caps (HI and KY). Fixed in efa893e.
2. KY "exceeds" boundary. Fixed in efa893e with option (a).
3.
Branch note (#10332). Not settled here. The Hawaii result now matches #10332 ($300 + $50 gives 225), but the inputs differ: #10332 adds Suggestions
Tests
🤖 Generated with Claude Code |
PR Review (round 2): Limit Hawaii, Vermont and Kentucky TANF dependent care deductions to the care their rules allowSummaryRound 1 (head All three Should items are fixed:
The five suggestions were applied or deferred with reasons. The deferred items are tracked in #10494, which I accept. Merge resolution. The hand-resolved block in Checks.
There are no open Critical or Should items. One new suggestion: say where KY still pools the children's caps. The CI run at this head is the merged-tree test. See CI status for its result. Prior findings
New findingsCritical: none. Should address: none. Suggestions
Verified
Axiom line assessmentValid. The line is
CI statusRun 40528492432 at
Branch status
All round-1 Critical and Should items are fixed, and no new Critical or Should items were found. Before merging:
Verdict: APPROVE |
hua7450
left a comment
There was a problem hiding this comment.
Requesting changes for the Kentucky equality case. The new no-child-care ineligibility check omits zero-payment ineligibility under 921 KAR 2:016 Section 9(5), which can incorrectly deny the child-care disregard and the entire grant. See the inline finding.
| ) | ||
| countable_unearned = spm_unit("ky_ktap_countable_unearned_income", period) | ||
| standard_of_need = spm_unit("ky_ktap_standard_of_need", period) | ||
| return countable_earned + countable_unearned > standard_of_need |
There was a problem hiding this comment.
[P2] Include zero-payment ineligibility in the child-care counterfactual
The strict > comparison considers Section 4(2)(b), but Section 9(5) of the same regulation makes a zero-payment benefit group ineligible. At equality, that can satisfy the otherwise-ineligible child-care exception in Section 5(3)(b)1.c.
The PR's January 2024 equality case illustrates the lost grant: for an otherwise-qualified household with $375/month earnings, $452/month unearned income and $300/month qualifying unsubsidized care paid to an eligible external caregiver, no-care countable income is $552, equal to need. This flag returns false and the grant is $0. Allowing the capped $175 care disregard yields countable income of $464.50 and a grant calculation of 0.55 * (552 - 464.50) = 48.125 before any separate issuance rounding.
Please include zero-payment ineligibility in this counterfactual and update the equality tests. The us-ky:ktap-standard-of-need-equality conflict candidate also needs Section 9(5); Section 4's wording alone does not establish the claimed regulation/manual disagreement.
Source: 921 KAR 2:016, Sections 4, 5 and 9.
Summary
Three state TANF dependent care deductions subtracted the unit's
childcare_expensesfor its own children, which the state rules do not allow. Each state's change is in its own commit; review fixes are in a later commit.hi_tanf_dependent_care_deduction): HAR 17-676-54.1(c)(4) and (d)(4) deduct "the actual cost for the care of each incapacitated adult living in the same household and receiving financial assistance", up to $175 (full time) or $165 a month. The HAR 17-676-2 definition is the same, and the State Plan 10.2.2 table lists "Cost of care for a disabled adult household member". The formula now deducts each disabled adult'scare_expenses, capped separately at $175 or $165; child care and children no longer count.vt_reach_up_dependent_care_deduction): Reach Up rule 2251.1(e) says child care provided as a Reach Up support service "does not constitute dependent care expenses and is not an allowable deduction". Rule 2252.2 (file pages 74-75) (a) covers a disabled or seriously ill adult household member, and (b) covers only a child who is not a member of the Reach Up household. ESD Procedure P-2230A step 2 says the same. The model does not track children outside the unit, so the formula now deducts onlycare_expenses, up to $175 per participant. A comment invt_reach_up_countable_earned_incomenotes that the order (disregard, then dependent care) follows rule 2251.1(c)(1).ky_ktap_dependent_care_disregard): 921 KAR 2:016 Section 5(3)(b)1 allows the disregard for (a) a child 13 or over, (b) an incapacitated adult, (c) "a KTAP case that is otherwise ineligible for KTAP without the benefit of the disregard for child care", or (d) the month of application. DCBS Operations Manual Vol. III MS 2840 B.1 adds that CCAP must be used instead if the case stays eligible without the deduction. Section 4(2)(b) makes a case ineligible when countable income "exceeds" the standard of need. Changes:ky_ktap_ineligible_without_child_care_disregard: countable income with only the incapacitated adult care disregard, compared with the standard of need. At equality the case is not ineligible: the regulation says "exceeds", although manual MS 2810 B says "is equal to or exceeds". The model follows the regulation.ky_ktap_incapacitated_adult_care_disregard: the incapacitated adult part, which always applies, with each adult's care capped separately at $175 (Section 5(3)(b)2).ky_ktap_dependent_care_disregardis the adult part, plus child care up to the children's age-based caps when the case is otherwise ineligible.ky_ktap_earned_income_helpers.py, soky_ktap_countable_earned_incomeand the new flag use the same steps. Results do not change for the existing variables.Reproduction from the issue (parent with $1,000 a month in earnings, children 5 and 2, $1,530 a month of child care): the deduction is now $0 in all three states, and the benefit equals the no-child-care benefit (HI $518.64, VT $125.56, KY $120.18; before: $788.64, $300.56, $216.43).
Source conflicts
The model follows the regulation where the agency's manual or procedure reads differently. These are recorded as backlog items in
source_conflicts/candidates.yaml(not yet in the rulespec-us register, so the code has no markers):us-ky:ktap-standard-of-need-equality: 921 KAR 2:016 Section 4(2)(b) "exceeds" vs. MS 2810 B "equal to or exceeds".us-ky:ktap-incapacitated-adult-care-condition: Section 5(3)(b)1.b (adult care in every case) vs. MS 2840 B.1 (adult care only if the case is otherwise ineligible).us-vt:reach-up-dependent-care-order: rule 2251.1(c)(1) (disregard, then dependent care) vs. P-2230A (dependent care first).Overlap with #10332
#10332 also rewrites the Hawaii deduction and its tests, and gives the same per-adult result ($300 + $50 gives $225). It reads a new input,
hi_tanf_qualifying_incapacitated_adult_care_expenses; this PR readscare_expensesfor each disabled adult, as the Vermont and Kentucky formulas do. The two branches conflict in four Hawaii files, so only one PR should carry the Hawaii change.Tests
hi_tanf_dependent_care_deduction.yamlrewritten (child care cases now $0; cap and hours cases use a disabled adult; Cases 14-16 cap each adult separately: $300 + $50 gives $225, the part-time cap applies per adult, and a member who is not a disabled adult adds nothing);hi_tanf_countable_earned_income.yamlcases 2-4 use a disabled adult;integration.yamlCase 7 now shows child care does not reduce countable income ($35.76 benefit).vt_reach_up_dependent_care_deduction.yamlrewritten the same way;integration.yamlCase 10 now deducts $0 ($406.10 benefit).ky_ktap_ineligible_without_child_care_disregard.yaml(6 cases): Case 3 (income equal to the standard of need) isfalse, and Case 3b ($1 above) istrue.ky_ktap_incapacitated_adult_care_disregard.yaml(8 cases), including two adults at $300 and $50 (gives $225).ky_ktap_dependent_care_disregard.yaml: per-individual caps (two adults: $225; an unused child cap and an unused adult cap absorb nothing: $175 each) and the equality case ($0).integration.yaml: eligible case ($120.18), otherwise ineligible case (disregard $300, benefit $44.55), and income equal to the standard of need (benefit $0).trueas an input so they keep testing the caps.87f3352256) and pass here.policyengine-core test(batched per subdirectory) onstates/hi/dhs,states/hi/bessd,states/vt/dcfandstates/ky/dcbs, plusstates/oh/dcy/ccap/integration.yaml: 933 passed.tests/code_health/test_source_conflicts.py: 103 passed.Fixes #10208
axiom: TheAxiomFoundation/rulespec-us#1865 queued (HI HAR 17-676-54.1, per-adult caps; re-pin and encoder approval); TheAxiomFoundation/rulespec-us#1949 queued (VT Reach Up rules 2251.1, 2252.2; re-pin and encoder approval); TheAxiomFoundation/rulespec-us#1950 queued (KY 921 KAR 2:016 Sections 4(2)(b), 5(3)(b); re-pin and encoder approval)
🤖 Generated with Claude Code