From 4a10b79029eba9fa5d0b46a8650880dc6feb2b3c Mon Sep 17 00:00:00 2001 From: PavelMakarchuk Date: Tue, 27 Oct 2026 13:39:45 -0400 Subject: [PATCH 1/2] Require New Hampshire FANF resources to be less than the limit RSA 167:79 III(f) says the assistance group's countable resources "shall be less than the allowable resource limit". nh_fanf_resources_eligible used <=, so a unit with exactly $1,000 (applicant) or $5,000 (recipient) passed. He-W 656.06 gives only the amounts. FAM 403 says resources "cannot exceed the limits"; under the statute-first rule the statute governs, and the manual reading is recorded as backlog item us-nh:fanf-resource-limit-equality. - Use < and cite RSA 167:79, He-W 600 and FAM 403. - Note that is_tanf_enrolled stands in for He-W 656.06(a)(1)'s six-month look-back. - Tests: Cases 2 and 4 (at the limit) are now ineligible; new cases at $4,999 and at the $2,000 limit and $1,999 before July 2022. Co-Authored-By: Claude Opus 5.5 --- ...-nh-fanf-resource-limit-less-than.fixed.md | 1 + .../dhhs/fanf/nh_fanf_resources_eligible.yaml | 44 ++++++++++++++++--- .../eligibility/nh_fanf_resources_eligible.py | 10 ++++- source_conflicts/candidates.yaml | 34 ++++++++++++++ 4 files changed, 82 insertions(+), 7 deletions(-) create mode 100644 changelog.d/fix-nh-fanf-resource-limit-less-than.fixed.md diff --git a/changelog.d/fix-nh-fanf-resource-limit-less-than.fixed.md b/changelog.d/fix-nh-fanf-resource-limit-less-than.fixed.md new file mode 100644 index 00000000000..c8601b93fb5 --- /dev/null +++ b/changelog.d/fix-nh-fanf-resource-limit-less-than.fixed.md @@ -0,0 +1 @@ +Make New Hampshire FANF resource eligibility require countable resources less than the limit, per RSA 167:79 III(f). diff --git a/policyengine_us/tests/policy/baseline/gov/states/nh/dhhs/fanf/nh_fanf_resources_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/nh/dhhs/fanf/nh_fanf_resources_eligible.yaml index bac9435147c..a64ded75848 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/nh/dhhs/fanf/nh_fanf_resources_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/nh/dhhs/fanf/nh_fanf_resources_eligible.yaml @@ -2,7 +2,9 @@ # Resource limits differ for applicants vs recipients: # - Applicants: $1,000 (since 1997) # - Recipients: $5,000 (since 07/01/22, was $2,000 before) -# Source: FAM 403; SR 97-03; BFA SR 22-17 +# Countable resources must be less than the limit (RSA 167:79 III(f)), +# so a unit with resources equal to the limit is ineligible. +# Source: RSA 167:79 III(f); He-W 656.06; FAM 403; SR 97-03; BFA SR 22-17 - name: Case 1, zero resources is eligible. period: 2024-01 @@ -12,14 +14,15 @@ output: nh_fanf_resources_eligible: true -- name: Case 2, applicant resources at limit is eligible. +- name: Case 2, applicant resources at limit is ineligible. period: 2024-01 input: state_code: NH is_tanf_enrolled: false spm_unit_cash_assets: 1_000 output: - nh_fanf_resources_eligible: true + # $1,000 is not less than the $1,000 limit + nh_fanf_resources_eligible: false - name: Case 3, applicant resources above limit is ineligible. period: 2024-01 @@ -30,14 +33,15 @@ output: nh_fanf_resources_eligible: false -- name: Case 4, recipient resources at limit is eligible. +- name: Case 4, recipient resources at limit is ineligible. period: 2024-01 input: state_code: NH is_tanf_enrolled: true spm_unit_cash_assets: 5_000 output: - nh_fanf_resources_eligible: true + # $5,000 is not less than the $5,000 limit + nh_fanf_resources_eligible: false - name: Case 5, recipient resources above limit is ineligible. period: 2024-01 @@ -84,3 +88,33 @@ output: # $999 < $1,000 limit = eligible nh_fanf_resources_eligible: true + +- name: Case 10, recipient at $4,999 is eligible. + period: 2024-01 + input: + state_code: NH + is_tanf_enrolled: true + spm_unit_cash_assets: 4_999 + output: + # $4,999 < $5,000 limit = eligible + nh_fanf_resources_eligible: true + +- name: Case 11, recipient at the $2,000 limit before July 2022 is ineligible. + period: 2022-01 + input: + state_code: NH + is_tanf_enrolled: true + spm_unit_cash_assets: 2_000 + output: + # $2,000 is not less than the $2,000 limit + nh_fanf_resources_eligible: false + +- name: Case 12, recipient at $1,999 before July 2022 is eligible. + period: 2022-01 + input: + state_code: NH + is_tanf_enrolled: true + spm_unit_cash_assets: 1_999 + output: + # $1,999 < $2,000 limit = eligible + nh_fanf_resources_eligible: true diff --git a/policyengine_us/variables/gov/states/nh/dhhs/fanf/eligibility/nh_fanf_resources_eligible.py b/policyengine_us/variables/gov/states/nh/dhhs/fanf/eligibility/nh_fanf_resources_eligible.py index 6f9983a622f..4494d90ee00 100644 --- a/policyengine_us/variables/gov/states/nh/dhhs/fanf/eligibility/nh_fanf_resources_eligible.py +++ b/policyengine_us/variables/gov/states/nh/dhhs/fanf/eligibility/nh_fanf_resources_eligible.py @@ -7,8 +7,10 @@ class nh_fanf_resources_eligible(Variable): label = "New Hampshire FANF resources eligible" definition_period = YEAR reference = ( + "https://gc.nh.gov/rsa/html/xii/167/167-79.htm", + "https://gc.nh.gov/rules/state_agencies/he-w600.html", + "https://www.dhhs.nh.gov/fam_htm/html/403_resource_limits_fam.htm", "https://www.dhhs.nh.gov/sr_htm/html/sr_97-03_dated_02_97.htm", - "https://www.dhhs.nh.gov/fam_htm/newfam.htm", "https://www.dhhs.nh.gov/sites/g/files/ehbemt476/files/documents2/tanf-state-plan.pdf#page=25", ) defined_for = StateCode.NH @@ -18,6 +20,10 @@ def formula(spm_unit, period, parameters): # Resource limits differ for applicants ($1,000) vs recipients ($5,000 as of 07/01/22) p = parameters(period).gov.states.nh.dhhs.fanf.resources resources = spm_unit("spm_unit_cash_assets", period) + # He-W 656.06(a)(1) also treats an applicant who received FANF in any + # one of the previous 6 months as a recipient. The inputs have no + # 6-month look-back, so current enrollment stands in for it. is_enrolled = spm_unit("is_tanf_enrolled", period.first_month) limit = where(is_enrolled, p.recipient_limit, p.applicant_limit) - return resources <= limit + # RSA 167:79 III(f): countable resources "shall be less than" the limit. + return resources < limit diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index e06355446bb..9d08bc9f1be 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -4258,6 +4258,40 @@ candidates: prs: [] state: unreviewed note: Verify whether the still-listed ruling applies during these years despite its obsolete tax base. +- id: us-nh:fanf-resource-limit-equality + program: tanf + years: + from: 2022 + type: calendar + question: Is a New Hampshire FANF assistance group whose countable resources equal its resource limit ($1,000 for + applicants, $5,000 for recipients) resource-eligible? + sources: + - kind: statute + citation: RSA 167:79, III(f) + url: https://gc.nh.gov/rsa/html/xii/167/167-79.htm + - kind: regulation + citation: N.H. Admin. Rules He-W 656.06(a) + url: https://gc.nh.gov/rules/state_agencies/he-w600.html + - kind: manual + citation: NH DHHS Family Assistance Manual 403, Resource Limits (SR 22-17, dated 07/22) + url: https://www.dhhs.nh.gov/fam_htm/html/403_resource_limits_fam.htm + readings: + statute: The assistance group's countable resources "shall be less than the allowable resource limit", so + resources equal to the limit fail the test. + other: Countable resources "cannot exceed the limits", so resources equal to the limit pass. + example: An applicant group with exactly $1,000 in countable resources is ineligible under the statute, which PE-US + follows, and resource-eligible under FAM 403; the same holds for a recipient group with exactly $5,000. + pe_us: + follows: statute + code: + - policyengine_us/variables/gov/states/nh/dhhs/fanf/eligibility/nh_fanf_resources_eligible.py + prs: [] + state: unreviewed + note: He-W 656.06(a)(2) gives only the amounts and no comparison. He-W 656.04(c)(6) uses "exceed the allowable + limit" only to start a grace period for recipients whose excess resources are personal property that cannot + readily be converted to cash; it does not set the eligibility test. RSA 167:79, III(e) uses the same "less + than" wording for the income test, and FAM 611.01 follows it there. FAM 403 versions before SR 22-17 were not + checked, so the conflict may start earlier than 2022. - id: us-nh:ssp-permanent-resident-forty-quarters program: ssi-state-supplement years: From 1668d5b96311b7b54bc8eed0c20255120a40ae47 Mon Sep 17 00:00:00 2001 From: PavelMakarchuk Date: Tue, 27 Oct 2026 13:41:25 -0400 Subject: [PATCH 2/2] Link the NH FANF resource-limit backlog item to its PR Co-Authored-By: Claude Opus 5.5 --- source_conflicts/candidates.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index 9d08bc9f1be..c609fa23f18 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -4285,7 +4285,8 @@ candidates: follows: statute code: - policyengine_us/variables/gov/states/nh/dhhs/fanf/eligibility/nh_fanf_resources_eligible.py - prs: [] + prs: + - https://github.com/PolicyEngine/policyengine-us/pull/10499 state: unreviewed note: He-W 656.06(a)(2) gives only the amounts and no comparison. He-W 656.04(c)(6) uses "exceed the allowable limit" only to start a grace period for recipients whose excess resources are personal property that cannot