Skip to content

Add New Hampshire Child Care Assistance Program (CCAP)#7760

Open
hua7450 wants to merge 11 commits intoPolicyEngine:mainfrom
hua7450:nh-ccap
Open

Add New Hampshire Child Care Assistance Program (CCAP)#7760
hua7450 wants to merge 11 commits intoPolicyEngine:mainfrom
hua7450:nh-ccap

Conversation

@hua7450
Copy link
Collaborator

@hua7450 hua7450 commented Mar 12, 2026

Summary

Implements the New Hampshire Child Care Scholarship Program (Employment-Related) in PolicyEngine, covering eligibility, income testing, cost share, payment rates, and benefit calculation.

Closes #7759

Regulatory Authority

Eligibility Tests

Test Rule Implementation
Income <= 85% SMI He-C 6910.06(b) Monthly gross income vs hhs_smi * 0.85 / 12
TANF categorical eligibility He-C 6910.06(a)(1) is_tanf_enrolled bypasses income test
Child age < 13 He-C 6910.07(b)(3) monthly_age < child_age_limit (156 months)
Disabled child age < 18 He-C 6910.07(e) where(is_disabled, 216, 156) months
Citizenship/immigration He-C 6910.07(b)(2) 4 qualified statuses (CITIZEN, LPR, REFUGEE, ASYLEE)
Activity requirement He-C 6910.07(f) All heads/spouses must be employed, student, or disabled
Asset test ($1M) He-C 6910.06(f) Reuses federal is_ccdf_asset_eligible
NH residency He-C 6910.07(b)(1) Implicit via defined_for = StateCode.NH

Income

Countable income (He-C 6910.06(b),(e)): Monthly gross income from the adds pattern summing:

  • employment_income, self_employment_income, farm_income, social_security, pension_income, retirement_distributions, unemployment_compensation, workers_compensation, child_support_received, alimony_income, interest_income, dividend_income, rental_income, veterans_benefits, disability_benefits, capital_gains

Self-employment: Net income after IRS-allowable deductions (He-C 6910.06(d)).

Exclusions (He-C 6910.06(c)): TANF payments, foster care, adoption subsidies, educational assistance, grandparent income (3-generation), caretaker relative income, VISTA, dependent child student earnings, child SSI -- handled by omission from sources list.

Cost Share / Copay Schedule

Per He-C 6910.18, Table 6910.19 and SR 24-08:

Step FPG Range Weekly Cost Share
1 <= 100% FPG $0
2 > 100% to <= 138% FPG $5
3 > 138% FPG to 85% SMI 7% of monthly income / 4.33
  • Cost share is per-family (CCDF State Plan Section 3.2.1), divided equally among eligible children for per-child payment calculation
  • Implemented as two bracket parameters: weekly_flat_amount.yaml (FPG ratio → $) and income_share_rate.yaml (FPG ratio → %)

Service Level

Per He-C 6910.07(o),(p) and Form 2533 page 2:

Level Parent Activity Hours
Full-time 31 or more hours/week
Half-time > 15 to <= 30 hours/week
Part-time 1 to 15 hours/week
  • Service level is based on parent's work hours, not childcare hours (He-C 6910.07(o))
  • Two-parent households: use the parent with the lowest hours (He-C 6910.07(p))
  • Implemented as a single bracket parameter: authorized_hours.yaml

Payment Rates

All rates from BCDHSC Form 2533 (75th percentile MRS, eff. August 26, 2024):

Age categories (He-C 6910.17(i), Form 2533):

  • Infant: Birth-17 months
  • Toddler: 18-35 months
  • Preschool: 36-78 months
  • School Age: 79-155 months

Licensed Center weekly rates (Form 2533):

Age Full-time Half-time Part-time
Infant $344.42 $266.65 $133.32
Toddler $317.26 $245.62 $122.81
Preschool $280.00 $216.78 $108.39
School Age $236.25 $182.90 $91.45

Licensed Family weekly rates (Form 2533):

Age Full-time Half-time Part-time
Infant $250.00 $193.55 $96.78
Toddler $250.00 $193.55 $96.78
Preschool $250.00 $193.55 $96.78
School Age $200.00 $154.84 $77.42

Derived rates (He-C 6910.17(c)-(d)):

  • License-exempt in-home: 70% of licensed family rate
  • License-exempt center: 50% of licensed center school-age rate (Form 2533)
  • Exempt center: no payments for children under 72 months (Form 2533)

Disability supplement (He-C 6910.17(g)):

  • Full-time: $100/week, Half-time: $75/week, Part-time: $50/week
  • "In addition to" base rates -- added outside min(charge, WSR) per regulation text

Benefit Calculation

Per He-C 6910.17(e),(g) and Form 2533 page 2:

base_payment = max(0, min(provider_charge, WSR) - cost_share_per_child)
per_child_weekly = base_payment + disability_supplement
monthly_benefit = sum_over_eligible_children(per_child_weekly * 52 / 12)

Where:

  • provider_charge = pre_subsidy_childcare_expenses converted to weekly
  • WSR = payment rate for provider type / age category / service level (Form 2533)
  • cost_share_per_child = family cost share / number of eligible children
  • disability_supplement = additional amount per He-C 6910.17(g), outside the min

Requirements Coverage

REQ Description Status
REQ-001 Income <= 85% SMI Covered
REQ-002 TANF categorical eligibility Covered
REQ-005 Child age < 13 Covered
REQ-006 Disabled child age extension Covered
REQ-007 NH residency Covered
REQ-008 Citizenship/immigration status Covered
REQ-010 Parent activity requirement Covered
REQ-017 Asset test ($1M) Covered
REQ-020 Gross income calculation Covered
REQ-029 TANF payment exclusion Covered
REQ-030 Self-employment net income Covered
REQ-031 Step 1 -- $0/week <= 100% FPG Covered
REQ-032 Step 2 -- $5/week <= 138% FPG Covered
REQ-033 Step 3 -- 7% income > 138% FPG Covered
REQ-034 Monthly-to-weekly /4.33 conversion Covered
REQ-035 Cost share per child (equal division) Covered
REQ-037 Full-time >= 31 hours/week Covered
REQ-038 Half-time > 15 to <= 30 hours/week Covered
REQ-039 Part-time 1 to <= 15 hours/week Covered
REQ-042 Two-parent lowest hours Covered
REQ-043 Age categories (4 brackets) Covered
REQ-044 Licensed center/family rates from Form 2533 Covered
REQ-045 Exempt in-home 70% of family rate Covered
REQ-046 Exempt center 50% of school-age center rate Covered
REQ-047 Exempt center no children under 72 months Covered
REQ-048 Payment = min(charge, WSR) - cost share Covered
REQ-049 Disability supplement as additional payment Covered

27/27 in-scope requirements covered.

Not Modeled

Excluded due to being administrative, time-bound, enrollment-dependent, or requiring data not available in PolicyEngine:

  • Alternative eligibility paths: TANF-related medical assistance, NHEP with TANF pending
  • Activity types: Job search, training/education, basic education, NHEP, mental health treatment
  • Income exclusions: 9 specific exclusions individually not modeled -- handled by omission from sources
  • Household composition: Assistance group rules, two-adult common child
  • Service level adjustments: Commute time, school-age half-time cap during school year
  • Administrative: 12-month eligibility period, 92-day continued assistance, job search time limits, training lifetime limits, $50 registration fee, waitlist, absentee allotment
  • Cost share: Family cap over 12 months
  • Provider: Child linked to enrolled provider, quality differentials (Licensed Plus / GSQ)

Test Coverage

114 test cases across 12 files:

File Cases Coverage
nh_ccap.yaml 10 Benefit formula, rate vs charge cap, cost share split, disability, floor at zero
nh_ccap_eligible.yaml 11 All 4 eligibility prongs, age boundaries, disability extension
nh_ccap_eligible_child.yaml 11 Age limits, disability, immigration, dependency
nh_ccap_income_eligible.yaml 10 Income below/above 85% SMI, TANF bypass, boundary values
nh_ccap_immigration_status_eligible_person.yaml 6 4 eligible + 2 ineligible statuses
nh_ccap_activity_eligible.yaml 7 Employed, student, disabled, non-qualifying, two-parent, child-not-affected
nh_ccap_child_age_category.yaml 10 All 4 categories, boundary ages
nh_ccap_cost_share.yaml 10 All 3 steps, FPG boundary transitions
nh_ccap_payment_rate.yaml 15 All 4 provider types, exempt center age guard, Form 2533 values
nh_ccap_disability_supplement.yaml 4 All 3 service levels + non-disabled
nh_ccap_service_level.yaml 10 Parent activity hours, two-parent minimum, all boundaries
integration.yaml 9 End-to-end eligibility + rates + cost share + benefit

hua7450 and others added 2 commits March 11, 2026 20:50
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Mar 12, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (19ec305) to head (990cea6).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #7760    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files            3        15    +12     
  Lines           33       246   +213     
==========================================
+ Hits            33       246   +213     
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 Sentry.
📢 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.

hua7450 and others added 9 commits March 11, 2026 22:42
- Fix broken reference URLs (gencourt.nh.us → Cornell LII) in all 31 files
- Correct school-age licensed center rates to MRS 75th percentile ($236.25)
- Correct school-age licensed family rates to MRS 75th percentile ($200)
- Add integration test with positive benefit amount end-to-end
- Add disability supplement test in benefit calculation context

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
He-C 6910.03(y) defines full-time as "greater than 30 hours" (not >= 30).
He-C 6910.03(aa) defines half-time as "greater than 15 hours" (not >= 15).
Fix operators and update 4 boundary test cases.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add nh_ccap_activity_eligible tests (7 cases: employed, student,
  disabled, non-qualifying, two-parent, child-not-affected)
- Fix service level subsection citations: He-C 6910.07(m)/(n) → (o)
- Fix rate table section number: Table 4.4.1 → Section 4.3.2, Table 1
- Add CCDF State Plan 2025-2027 as corroborating reference to all 17
  parameter files with #page= citations
- Add amendment register (eff. 4-30-24, #13951) to all He-C titles
- Fix description verbs: defines → sets, counts → uses
- Remove explanatory text from step_2_amount description
- Fix step_2_amount period metadata: year → week
- Add reference field to nh_child_care_subsidies aggregator
- Improve income source reference to cite He-C 6910.06(b)-(c),(e)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
All NH CCAP parameter dates changed from 2024-07-01/2024-08-26 to
2024-01-01. The framework's parameter tree caching during microsim
init requires parameters to cover the test year start date. Rate
files note the actual effective date (2024-08-26) in a comment.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rates:
- Fix all 16 HT/PT rates from Form 2533 (were FT/2 and FT/4, actual
  ratios are ~77.4% and ~38.7%)
- Fix toddler FT center rate: $317.36 → $317.26
- Add Form 2533 as reference with #page= citations
- Remove (eff. 4-30-24, #13951) from all He-C reference titles
- Fix State Plan section/page numbers (immigration 2.2.7, age
  categories #page=53, child age limits Section 2.2.1 #page=19,
  remove non-existent Section 2.4.3 from service levels)

Service level:
- Activity-based: uses parent's weekly_hours_worked instead of
  childcare_hours_per_week per He-C 6910.07(o)
- Two-parent minimum: uses lowest hours per He-C 6910.07(p)
- Single bracket parameter (authorized_hours.yaml) replaces
  full_time_hours.yaml + half_time_hours.yaml
- Split into nh_ccap_authorized_activity_hours.py (SPMUnit) +
  nh_ccap_service_level.py (Person)

Cost share:
- Bracket parameters: weekly_flat_amount.yaml + income_share_rate.yaml
  replace 4 separate step files
- Formula: flat.calc(fpg_ratio) + income * rate.calc(fpg_ratio)

Exempt center:
- Uses school-age center rate as base (not age-matched rate)
- Blocks children under 72 months (parameterized)
- Parameterized min age: exempt_center_min_age_months.yaml

Benefit formula:
- Disability supplement moved outside min(charge, WSR) per
  He-C 6910.17(g) "in addition to the standard rates"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@hua7450 hua7450 marked this pull request as ready for review March 16, 2026 20:49
@hua7450 hua7450 requested a review from PavelMakarchuk March 16, 2026 20:49
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 New Hampshire Child Care Assistance Program (CCAP)

1 participant