Skip to content

Implement New Jersey CCAP#7811

Draft
hua7450 wants to merge 7 commits intoPolicyEngine:mainfrom
hua7450:nj-ccap
Draft

Implement New Jersey CCAP#7811
hua7450 wants to merge 7 commits intoPolicyEngine:mainfrom
hua7450:nj-ccap

Conversation

@hua7450
Copy link
Collaborator

@hua7450 hua7450 commented Mar 19, 2026

Summary

Implements the New Jersey Child Care Assistance Program (CCAP) in PolicyEngine, covering eligibility, copayment, and provider rate schedules.

Closes #7810

Regulatory Authority

Source Description
N.J.A.C. 10:15-5.2 At Risk Child Care eligibility
N.J.A.C. 10:15-5.3 CCDBG eligibility
N.J.A.C. 10:15-9.1 Co-payment requirements
CCDF State Plan for NJ FFY 2025-2027 Sections 2.2, 2.2.4, 2.5, 3.1-3.3
CC-229 Income Eligibility Schedule FPL tiers by family size (eff. 3/1/2026)
CC-236 Copayment Schedule Copay percentages by tier/care type/child count (eff. 3/1/2026)
CC-230 Maximum Payment Rates Provider rates by type/quality/age/time (eff. 3/1/2025)

Income Eligibility Tests

Three-tier income structure with nj_ccap_enrolled toggle:

Test Threshold Source
Initial eligibility ≤200% FPL CC-229 Tier D; CCDF State Plan Section 2.2.4
Continuing eligibility (redetermination) ≤250% FPL CC-229 Tier E; Important Information p.3-4
Exit threshold (hard cap) 85% NJ SMI CC-229; CCDF State Plan Section 2.5

Additional eligibility requirements:

  • Activity: 30+ hrs/week work, full-time student, or combination (each parent) — N.J.A.C. 10:15-5.2
  • Child age: <13 general, <19 special needs — N.J.A.C. 10:15-5.2
  • Assets: ≤$1,000,000 (federal CCDF limit) — CCDF State Plan Section 2.2.4
  • Immigration: Child must be US citizen or qualified non-citizen — N.J.A.C. 10:15-5.3
  • Homelessness: Copay waived for homeless families — Important Information p.7

Income Deductions & Exemptions

No deductions. Eligibility is based on gross income. Countable income includes wages, self-employment, SS benefits, pensions, unemployment/workers' comp, alimony, child support, dividends, interest, and rental income. Excludes TANF cash benefits (WFNJ).

Source: CCDF State Plan Section 2.2.4c

Copayment Structure

Three FPL tiers with rates varying by care type (FT/PT) and child count (1 vs 2+):

FPL Tier 1 Child FT 1 Child PT 2 Children FT 2 Children PT 1 FT + 1 PT
≤100% FPL waived waived waived waived waived
101-200% FPL 4% 2% 6% 3% 5%
201%+ FPL 5% 2.5% 7% 3.5% 6%
  • 3rd+ child: $0 additional copay — N.J.A.C. 10:15-9.1
  • Cap: 5% of gross income — CCDF State Plan Section 3.1
  • Formula: monthly_copay = annual_gross_income * copay_rate / 12

Implementation uses additive first-child + second-child rate parameters by FPL bracket. Source: CC-236

Provider Rate Schedule

4 provider types x 8 age groups x 2 care types x up to 4 quality tiers:

Provider Type Quality Tiers Age Groups Source
Licensed Child Care Center Base, 3-Star, 4-Star, 5-Star All 8 (school-age: base only) CC-230 p.1
Registered Family Home Base, 3-Star, 4-Star, 5-Star All 8 (school-age: base only) CC-230 p.2
Approved Home (FFN/In-Home) Base only All 8 CC-230 p.3
ACA Summer Youth Camp Base only School-age only (2 groups) CC-230 p.4

Age groups: Infant (0-17 mo), Toddler (18-29 mo), Preschool (30 mo-5 yr), School-Age (5-13 yr), plus special needs variants for each.

Weekly rates stored in parameters; benefit formula: min(expenses - copay, max_reimbursement) where max reimbursement is the sum of per-child weekly rates converted to monthly.

Benefit Calculation

For each eligible child:
  max_weekly_rate = lookup(provider_type, quality_rating, age_group, time_category)

Total max_monthly = sum(max_weekly_rate) * 52 / 12

monthly_copay = min(annual_income * copay_rate / 12, annual_income * 5% / 12)

benefit = max(0, min(pre_subsidy_childcare_expenses - monthly_copay, total_max_monthly))

Source: CC-236, CC-230, Important Information p.2-3

Requirements Coverage

REQ Description Status
REQ-001 NJ residency (defined_for = StateCode.NJ) Covered
REQ-002 Initial income ≤200% FPL Covered
REQ-003 Continuing income ≤250% FPL + graduated phase-out Covered
REQ-004 Exit threshold 85% SMI Covered
REQ-005 Child age <13 / <19 special needs Covered
REQ-006 Child must be dependent Covered
REQ-007 Activity: 30 hrs work or full-time student Covered
REQ-008 12-month eligibility period (informational) N/A
REQ-009 Immigration (reuses is_ccdf_immigration_eligible_child) Covered
REQ-010 Assets ≤$1M (reuses is_ccdf_asset_eligible) Covered
REQ-012 Homelessness copay waiver Covered
REQ-013 Countable income (gross, excludes TANF) Covered
REQ-014 FT/PT definition (30 hrs threshold) Covered
REQ-015 Copay waived ≤100% FPL Covered
REQ-016 Copay rates 101-200% FPL Covered
REQ-017 Copay rates 201%+ FPL Covered
REQ-018 3rd+ child = $0 additional copay Covered
REQ-019 5% gross income copay cap Covered
REQ-020 Copay formula (income * rate / 12) Covered
REQ-022 4 provider types Covered
REQ-023 8 age groups (4 standard + 4 special needs) Covered
REQ-024 Quality tiers: Base/3/4/5-Star; school-age = base only Covered
REQ-025 FT/PT care types Covered
REQ-026-033 Provider rate schedules (all 4 types, all tiers) Covered
REQ-034 Overage (parent pays above max rate) Covered
REQ-035 Special needs surcharge via age group entries Covered
REQ-036 CC-229 values effective 3/1/2026 Covered
REQ-037 85% SMI derivation from hhs_smi Covered

35/37 requirements implemented, 2 excluded:

Not Modeled

REQ Description Reason
REQ-011 CPS exemption from activity requirement No is_cps_referred variable exists
REQ-021 CPS copay exemption No CPS variable exists

Files Added

changelog.d/
  nj-ccap.added.md

policyengine_us/parameters/gov/states/nj/njdhs/ccap/    (18 files)
  activity_requirements/weekly_hours.yaml
  age_group/months.yaml
  age_threshold/child.yaml
  age_threshold/special_needs.yaml
  copay/first_child_ft_rate.yaml
  copay/first_child_pt_rate.yaml
  copay/max_rate.yaml
  copay/second_child_ft_rate.yaml
  copay/second_child_pt_rate.yaml
  income/countable_income/sources.yaml
  income/fpl_rate/continuing_eligibility.yaml
  income/fpl_rate/initial_eligibility.yaml
  income/fpl_rate/smi_exit.yaml
  rates/aca_summer_camp.yaml
  rates/approved_home.yaml
  rates/licensed_center.yaml
  rates/registered_family.yaml
  time_authorization/thresholds.yaml

policyengine_us/variables/gov/states/nj/njdhs/ccap/     (14 files)
  copay/nj_ccap_copay.py
  eligibility/nj_ccap_activity_eligible.py
  eligibility/nj_ccap_eligible_child.py
  eligibility/nj_ccap_eligible.py
  eligibility/nj_ccap_income_eligible.py
  nj_ccap_age_group.py
  nj_ccap_countable_income.py
  nj_ccap_enrolled.py
  nj_ccap_grow_nj_kids_rating.py
  nj_ccap_maximum_weekly_benefit.py
  nj_ccap_provider_type.py
  nj_ccap_smi.py
  nj_ccap_time_category.py
  nj_ccap.py

policyengine_us/variables/gov/states/nj/njdhs/
  nj_child_care_subsidies.py                             (aggregator)

policyengine_us/tests/.../nj/njdhs/ccap/                (11 files, 119 test cases)
  edge_cases.yaml
  integration.yaml
  nj_ccap_age_group.yaml
  nj_ccap_copay.yaml
  nj_ccap_countable_income.yaml
  nj_ccap_eligible_child.yaml
  nj_ccap_eligible.yaml
  nj_ccap_income_eligible.yaml
  nj_ccap_maximum_weekly_benefit.yaml
  nj_ccap_time_category.yaml
  nj_ccap.yaml

Modified existing files:

  • policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml — added nj_child_care_subsidies
  • sources/working_references.md — added NJ CCAP research notes

hua7450 and others added 3 commits March 19, 2026 12:29
Adds eligibility, copay, and provider rate calculations for NJ CCAP
per N.J.A.C. 10:15, CC-229, CC-230, CC-236, and CCDF State Plan.

Closes PolicyEngine#7810

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Mar 19, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (6e5759e) to head (8627feb).
⚠️ Report is 2905 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##             main     #7811       +/-   ##
============================================
+ Coverage   73.43%   100.00%   +26.56%     
============================================
  Files        3943        15     -3928     
  Lines       56969       251    -56718     
  Branches      277         1      -276     
============================================
- Hits        41836       251    -41585     
+ Misses      15101         0    -15101     
+ Partials       32         0       -32     
Flag Coverage Δ
unittests 100.00% <100.00%> (+26.56%) ⬆️

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 4 commits March 19, 2026 14:41
- Add nj_ccap_smi test coverage (4 test cases)
- Activity requirement: 20 hrs at redetermination (was 30 for all)
- Fix 3 wrong CCDF State Plan page numbers
- Fix 3 wrong N.J.A.C. section citations
- Remove incorrect 5% copay cap (CC-236 rates go up to 7% for multi-child)
- Remove homeless copay waiver (not in CCDF State Plan)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- weekly_hours.yaml: Section 2.2.2g → 2.2.2d, #page=22 → #page=21
- weekly_hours_redetermination.yaml: #page=22 → #page=21

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add March 2024 CC-230 rates (effective 2024-01-01) for all 4 provider types
- Add COVID copay waiver (rates=0) for 2024-01-01 through 2024-07-31
- Copay reinstated 2024-08-01 per NJ DHS policy
- Fixes microsimulation failures for 2024/2025 periods

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove duplicate 2025-03-01 entries for approved home (unchanged rates).
Remove duplicate zero entries for ACA summer camp non-school-age groups.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.

Implement New Jersey CCAP

1 participant