Skip to content

Scale NJ CCAP copay by children actually in care#8068

Merged
MaxGhenis merged 1 commit intoPolicyEngine:mainfrom
MaxGhenis:fix-nj-ccap-copay-attending-children
Apr 18, 2026
Merged

Scale NJ CCAP copay by children actually in care#8068
MaxGhenis merged 1 commit intoPolicyEngine:mainfrom
MaxGhenis:fix-nj-ccap-copay-attending-children

Conversation

@MaxGhenis
Copy link
Copy Markdown
Contributor

Summary

Follow-up to #7811. The New Jersey CCAP copay schedule (CC-236) scales the family co-payment by the number of children actually receiving subsidized care, applying a first-child rate for one child in care and a first + second rate for two in care. The initial implementation counted all age- and immigration-eligible children, so a family with two eligible children but only one in subsidized care would be charged at the two-child rate instead of the one-child rate.

The fix gates the per-child count on an "in care" signal (childcare_hours_per_week > 0, evaluated at the year), following the existing pattern in va_ccsp_copay.py and sc_ccap_copay.py. The CPS-exemption check still references is_eligible_child, so the protective-services waiver is unchanged.

Regulatory authority

  • N.J.A.C. 10:15-9.1 -- Co-payment requirements (per-child rates apply to children receiving care).
  • CC-236 Copayment Schedule -- first-child / second-child rates.
  • See Implement New Jersey CCAP #7811 for the full program description.

Regression tests

Added two cases to nj_ccap_copay.yaml:

  • Case 11: two eligible children, only one FT in care, income in the 101-200% FPL tier -- now returns the 1-child FT rate (2%) -> $51.67/mo, not the 2-child FT rate (3%) -> $77.50/mo.
  • Case 12: two eligible children, only one PT in care -- now returns the 1-child PT rate (1%) -> $33.33/mo.

Both tests fail on main and pass after this change. All 126 NJ CCAP tests and all 450 NJ-state tests pass.

Test plan

  • New regression cases fail without the fix
  • New regression cases pass with the fix
  • All NJ CCAP tests pass (126/126)
  • All NJ state tests pass (450/450)

Follow-up to PolicyEngine#7811.

The New Jersey CCAP copay schedule (CC-236) applies the first-child
rate for one child in care, and a first+second rate for two. The
initial implementation in PolicyEngine#7811 counted *eligible* children rather
than children *actually attending care*. A family with two age-and-
immigration-eligible children but only one using subsidized care
would be charged at the two-child rate instead of the one-child rate.

This follows the established pattern from VA CCSP (va_ccsp_copay.py)
and SC CCAP (sc_ccap_copay.py), gating the per-child count on an
"in care" flag derived from `childcare_hours_per_week > 0`. The CPS
exemption still keys off `is_eligible_child` so the logic there is
unchanged.

Regression tests:
 * Case 11: two eligible children with one FT in care -> first-child
   FT rate only (2%).
 * Case 12: two eligible children with one PT in care -> first-child
   PT rate only (1%).

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

codecov bot commented Apr 18, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (05d5d97) to head (c9039bd).
⚠️ Report is 7 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #8068    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files           18         1    -17     
  Lines          353        29   -324     
  Branches         4         0     -4     
==========================================
- Hits           353        29   -324     
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.

@MaxGhenis MaxGhenis merged commit 3c399c7 into PolicyEngine:main Apr 18, 2026
15 checks passed
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.

1 participant