Repository navigation
Keep New Hampshire FANF's recipient earned income disregard at 50% - #10251
PavelMakarchuk wants to merge 4 commits into
Conversation
recipient_rate rose to 75% from September 2022, citing the TANF State Plan's Cliff Effect Initiative. That was a two-year pilot for participants who started or moved to full-time work. He-W 654.13(e) and FAM 603.01 still set 50% for current recipients, so the 2022-09-01 value is removed and the pilot is noted as not modeled. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #10251 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 4 4
Lines 76 54 -22
Branches 2 0 -2
=========================================
- Hits 76 54 -22
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR Review: Keep New Hampshire FANF's recipient earned income disregard at 50%SummaryThe PR deletes the
Critical (must fix)None. Should address1. Keep the applicant-benefit defect tracked, and don't restate it as intended in the edited comment.
Example: integration Cases 2 and 14 (January 2024, two people, $1,000 a month, not enrolled). The test is 800 ≤ 1,022, so the unit is eligible, and the benefit should be 1,022 − 500 = 522, not 222. Case 13 would be 1,291 − 500 = 791, not 491. Case 11 would be 1,291 − (1,000 − 375) = 666, not 66. The body says this defect "is not changed here", which is a fair scope choice. Two things still need fixing:
Fix, either way:
2. Add the The body has no
Recommended line. File a dispatch-ready
Suggestions
Verified correct
Axiom line assessmentThere is no CI statusAll 29 checks pass at Branch statusThe branch is 2 commits ahead of main (the change on 2026-10-16 and a merge of main on 2026-10-23) and 46 behind. Verdict: REQUEST_CHANGES |
DTrim99
left a comment
There was a problem hiding this comment.
The law checks out: He-W 654.13(e) sets 50% for recipients, the 75% was a 2022-2024 pilot that never entered the rule, and the 2026 readoption keeps 20%/50%; all 14 expectations hand-check. Two should-address items: (1) 'Fixes #9984' would close the only tracker of the applicant-benefit defect (He-W 654.13(d) uses 50% for the benefit, so Case 14 should be 522, not 222), so fix it here or file an issue and reword; (2) there's no axiom line, so please file a pe-parity issue for He-W 654.13 and mark it queued. Three suggestions. Full report in the comment above.
He-W 654.13(c) limits the 20% earned income disregard to the eligibility test of applicants who have not received FANF in the previous 6 months; (d) and (e)(3) compute the benefit of an applicant who passes that test with the 50% disregard. The model used 20% for both the test and the benefit. - nh_fanf_countable_earned_income (benefit) now always uses the 50% rate. - New nh_fanf_countable_earned_income_for_eligibility and nh_fanf_countable_income_for_eligibility keep the 20% rate for the test of units that are not enrolled; nh_fanf_income_eligible reads them. - Cite He-W 654.13(b)-(e) and the 2026 readoption (#14518, Notice 2025-271) in both rate parameters; drop the State Plan Cliff Effect page from the variable references. - Applicant integration cases 2, 6, 11, 13 and 14 move to the 50% benefit; add cases 18 (applicant fails the 20% test) and 19 (applicant at the test limit). Countable earned income Case 6 uses $100/month so it reaches the zero floor again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RSA 167:79 III(e) says the assistance group's net income "shall be less than the payment standard", and FAM 611.01 and He-W 670.03(b)(1) use the same comparison. The `<=` had no effect while the benefit at equality was $0, but with the 50% applicant benefit an applicant whose 20% test income equals the payment standard would get a positive benefit. - nh_fanf_income_eligible uses `<` and cites RSA 167:79 and FAM 611.01. - The eligibility income variables cite FAM 611.01, which describes the 20% applicant test and the 50% grant computation. - nh_fanf_income_eligible.yaml Case 3 (equal) is now ineligible. - Integration Case 19 (applicant at the limit) is ineligible; new Case 20 (just below the limit) gets the 50% benefit, 384.50. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@DTrim99 thank you for the review. Each item and what I did: Should address1. Applicant benefit (He-W 654.13(d)): fixed here, option (a), in 7ca71f1.
One consequence I fixed with it (in 4f594f4): the income test is now strict 2.
Suggestions
Commits and tests
Local results: Out of scope, for a later PR: |
Summary
This PR fixes both defects in #9984 for New Hampshire FANF's earned income disregard (EID). It also makes the income test strict, as the statute says, because the applicant fix makes the equality case matter.
1. Recipients: 50%, not the 75% pilot rate
gov.states.nh.dhhs.fanf.income.earned_income_disregard.recipient_ratechanged from 0.5 to 0.75 on 2022-09-01, citing the TANF State Plan's "Cliff Effect Initiative".nh_fanf_countable_earned_incomeapplied that rate to every enrolled unit. The State Plan and DHHS's Cliff Effect Progress Report (March 2023) describe the rate as a voluntary two-year pilot, October 2022 to September 2024. It covered only participants who started or moved to full-time work.The general rule for recipients is still 50%:
The PR removes the 2022-09-01 value, so the rate is 0.5 throughout, and notes that the pilot is not modeled: the inputs cannot identify pilot participants.
Issue example (2025, three people, $1,500/month earnings, enrolled): countable earnings are $750 instead of $375, and
nh_fanfis $582.50/month instead of $957.50.2. Applicants: 20% for the eligibility test only, 50% for the benefit
nh_fanf_countable_earned_incomeused the 20% applicant rate for both the income test and the benefit of a unit that is not enrolled. The rule uses 20% only for the test:Changes:
nh_fanf_countable_earned_income(the benefit income) now always usesrecipient_rate(50%).nh_fanf_countable_earned_income_for_eligibilityusesapplicant_rate(20%) for units that are not enrolled andrecipient_ratefor enrolled units. Newnh_fanf_countable_income_for_eligibilityadds unearned income, andnh_fanf_income_eligiblereads it. This follows the_for_eligibilitypattern of Indiana TANF, Michigan FIP and Minnesota MFIP.is_tanf_enrolledstands in for He-W 654.13(e)(2), receipt in any one of the previous 6 months, so a former recipient who applies again still gets the 20% test. The inputs have no 6-month look-back; the formula comment says so.Example (January 2024, two people, $1,000/month earnings, not enrolled): the test income is $800, below the $1,022 payment standard, so the unit is eligible. The benefit is 1,022 − 500 = $522 instead of $222.
Both rate parameters now cite He-W 654.13 and the 2026 readoption. The variable no longer cites the State Plan's Cliff Effect page, which does not support the 50% rate.
3. Income test: less than the payment standard
nh_fanf_income_eligibleused<=. RSA 167:79 III(e) says "The assistance group's net income shall be less than the payment standard for the assistance group size", and FAM 611.01 says "If net income is less than the payment standard, the AG is income-eligible". Before this PR the difference had no effect, because the benefit at equality was $0. With the 50% benefit for applicants, an applicant whose 20% test income equals the payment standard would get a positive benefit, so the test is now<.Tests
integration.yaml:integration.yamlCases 7, 9, 12 and 15, andnh_fanf_countable_earned_income.yamlCases 3, 5, 6 and 7.nh_fanf_countable_earned_income.yaml: applicant Cases 2 and 4 now use the 50% benefit rate. Case 6 uses $100/month (50 − 100 → 0), so it reaches the zero floor again.nh_fanf_countable_earned_income_for_eligibility.yaml(5 cases) andnh_fanf_countable_income_for_eligibility.yaml(1 case).nh_fanf_income_eligible.yamlandnh_fanf_eligible.yamlnow setnh_fanf_countable_income_for_eligibilityas the input. Case 3 (income equal to the payment standard) is now ineligible. New Case 5 checks that the test reads the eligibility income, not the benefit income.nh/dhhs/fanfhas 79 passed. All 33 NH test files pass withtest_batched.py --mode per-subdir. The code-health reference, source-conflict and program-registry tests pass (1,017 passed, 10 skipped).Fixes #9984
axiom: TheAxiomFoundation/rulespec-us#1945 queued
🤖 Generated with Claude Code