Skip to content

Implement the New York Child Care Assistance Program under gov/states/ny - #9187

Draft
hua7450 wants to merge 11 commits into
PolicyEngine:mainfrom
hua7450:ny-ccdf
Draft

Implement the New York Child Care Assistance Program under gov/states/ny#9187
hua7450 wants to merge 11 commits into
PolicyEngine:mainfrom
hua7450:ny-ccdf

Conversation

@hua7450

@hua7450 hua7450 commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

Implements New York's Child Care Assistance Program (CCAP) as a proper state program under gov/states/ny/ocfs/ccap/, encoding current law only — the October 2024 market rates and the post-October-2023 policy structure.

Closes #9282

The legacy "federal" CCDF implementation under gov/hhs/ccdf/ (which is actually New York data, and is inert on main — not registered in any benefit aggregate) is left untouched here; its removal is a follow-up tracked in #9283.

Regulatory authority

  • 18 NYCRR Part 415 (Child Care Services) and Part 404 (Eligibility)
  • Social Services Law §§ 410-u, 410-w, 410-x as revised effective October 1, 2023
  • 24-OCFS-LCM-22 (October 2024 market rates), 23-OCFS-ADM-18, 22-OCFS-ADM-18
  • NYS Register, May 1, 2024, Rule Making Activities (OCFS)

What is modeled

Component Rule How modeled
Income limit 85% of state median income, the sole ceiling since 2023-10-01 (SSL 410-w) ny_ccap_income_eligible
Countable income 18 NYCRR 404.5(b)(5); a child's SSI excluded, an adult's counted ny_ccap_countable_income (8 sources)
Eligible child Federal age/asset tests + NY categorical routes: foster care and protective/preventive services eligible without regard to income; homelessness waives the activity test only ny_ccap_eligible_child
Family share 1% of income above the state income standard, $1 weekly minimum, categorical exemptions (public assistance, homeless, foster care, protective services) ny_ccap_family_share, ny_ccap_family_share_exempt
Market rates Oct 2024 schedule: 4 county groups × 5 provider types × 4 age groups × weekly/daily/part-day, excess-day pricing under 415.9(b) ny_ccap_market_rate + rates/*.yaml
Benefit Per-child cap at min(expense share, market rate), less the family share ny_ccap

All 240 current rate cells were verified against 24-OCFS-LCM-22 Attachment A.

Not modeled (by design)

  • Historical eras (pre-Oct-2024 rates, the 200%/300% FPG income limits, the 10% family share) — current law backdates via backdate_parameters
  • Non-traditional-hours/homelessness/accreditation payment differentials, special-needs substituted rates, excess-period payments, Title XX levels, the child-only family-share exception, waitlist rationing (all listed in programs.yaml notes)
  • Provider county (household county proxies; unknown counties default to the lowest-rate group)

Registration

  • gov/hhs/ccdf/child_care_subsidy_programs.yaml (all blocks) → flows into child_care_subsidies
  • gov/household/household_state_benefits.yaml (all eras)
  • programs.yaml CCDF state_implementations

Test plan

  • 68 NY CCAP YAML tests pass (unit tests per variable + integration cases asserting the federal aggregator)
  • 63 federal CCDF YAML tests pass (files restored to main's state)
  • test_aggregate_list_integrity.py 15/15
  • CI passes

🤖 Generated with Claude Code

@codecov

codecov Bot commented Jul 31, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (0eec199) to head (3ad18f4).
⚠️ Report is 9 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #9187    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files            2        12    +10     
  Lines           31       204   +173     
  Branches         0         5     +5     
==========================================
+ Hits            31       204   +173     
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 Harness.
📢 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 8 commits August 2, 2026 01:41
…s, countable income

- Add the 2022-06-01 market-rate era from 22-OCFS-LCM-14 (269 cells); hourly
  rates end the same date via a new part-day minimum-hours parameter
- Replace the 62-county family share schedule with the statutory 10% cap
  (SSL 410-x(6), eff. 2021-04-16, per 21-OCFS-ADM-14); drop the unsourced
  0.1 fallback and the Google Sheets reference
- Exempt families at or below the poverty level from the historical family
  share minimum (18 NYCRR 415.3(e)(1), (e)(4))
- Add NY income eligibility: 300% of FPG through September 2023, 85% of SMI
  after (NYS Register 05/01/2024)
- Broaden CCDF countable income with child support, unemployment and
  workers' compensation, and Social Security; document the TANF omission

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fixes from a source-verified review of the New York Child Care Assistance
Program implementation:

- Income eligibility was 200% of the state income standard through
  2022-07-31, not 300% from 2021-10-01 (22-OCFS-ADM-18), and the 85% state
  median income ceiling binds alongside the 300% limit from 2022-08-01.
- Children placed in foster care and children with an open child protective
  or preventive services case are eligible without regard to income
  (18 NYCRR 415.2(a)(2)(vi)); homelessness waives only the activity test.
- Cap payments per child rather than on pooled SPM unit totals
  (18 NYCRR 415.6(e)(3)).
- Apply the statutory family share exceptions in 18 NYCRR 415.3(e)(1),
  using is_tanf_enrolled to avoid the CCAP to TANF circular dependency.
- Add the 30-hour weekly conjunct to the daily rate unit, price days beyond
  the weekly maximum at the weekly rate divided by five, and apply the
  part-day carve-out for sub-three-hour before and after school care.
- Count SSI and veterans' benefits through a New York countable income
  variable, excluding a child's SSI only from the October 2023 rule.
- Re-key the inherited 19-OCFS-LCM-23 schedule to its stated 2019-05-01
  effective date, and correct four citation defects including a 404 URL
  path and a wrong page anchor.

Consolidate the parameter tree from 29 files to 18: merge the family share
rate into one dated parameter, collapse four booleans that shared the
2023-10-01 effective date into october_2023_reforms, and fold the age_groups
and duration folders into node files.

Add 41 test cases, including boundary coverage for every mid-year switch and
for the formulas that previously passed with the code deleted.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…into ny-ccdf

# Conflicts:
#	policyengine_us/parameters/gov/household/household_state_benefits.yaml
#	policyengine_us/programs.yaml
The merge with main auto-merged child_care_subsidy_programs.yaml without a
conflict, but upstream had added 2024-01-01 and 2025-01-01 blocks. These
lists are full replacements rather than deltas, so ny_child_care_subsidies
existed only in the 2021-01-01 block and dropped out from 2024 onward.

That zeroed child_care_subsidies for New York in the newer blocks, which
failed three integration cases and the aggregate list integrity check.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
is_ccdf_initial_income_eligible and is_ccdf_continuous_income_eligible
have no readers anywhere in the model, tests, or partner contracts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Encode only the post-October-2024 rate schedule and post-October-2023
policy structure under gov/states/ny/ocfs/ccap, dropping the historical
eras and their toggles. Restore the inert federal CCDF implementation
to main's state; its removal moves to a follow-up (PolicyEngine#9283).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…into ny-ccdf

# Conflicts:
#	policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml
#	policyengine_us/programs.yaml
@hua7450 hua7450 changed the title Fix New York CCAP rates and namespace Implement the New York Child Care Assistance Program under gov/states/ny Aug 14, 2026
hua7450 and others added 2 commits August 14, 2026 02:17
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <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.

Encode New York Child Care Assistance Program (CCAP) under gov/states/ny

1 participant