Implement the New York Child Care Assistance Program under gov/states/ny - #9187
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 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
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…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
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… tests Rate unit and pricing: - Apply 18 NYCRR 415.9(a)'s five-or-fewer-days limb and 415.9(c)'s mandatory six-hour-per-day part-day floor when selecting the base rate. Five hours across six days was priced at a weekly rate plus an excess day ($580.80/wk for a group 1 centre infant) where the regulation gives six part-day rates ($390.00/wk). - Price excess periods under 415.9(d) at the rate for the time the period covers, rather than the weekly rate divided by five, and add the over-twelve-hour excess period. Reproduces the worked example in 24-OCFS-LCM-22 sec. III.5 exactly. Countable income: - Enumerate the 404.5(b)(5) sources instead of pulling market_income, which brought in capital gains against the express exclusion in 404.5(b)(6)(viii). Every other state child care program enumerates its sources this way. - Exclude a dependent child's earnings per 404.5(b)(6)(xiii). - Count railroad retirement, which 404.5(b)(5)(iv) reaches. Eligibility: - Add the 415.1(b)(2)-(3) age extensions for a child with special needs. - Make the protective and preventive services waiver family-level per 415.2(a)(2)(vi)(b), matching the family-share exemption. - Apply the federal immigration test, which 45 CFR 98.20(a)(1)(ii) requires. - Derive the reason for care from hours worked, student status and public assistance enrollment, keeping meets_ccdf_activity_test as the fallback for the pathways that are not individually modeled. The benefit previously evaluated to zero for every household in microsimulation because that input is false throughout the dataset. Also splits the duration parameters so each carries its own unit, prorates expenses across children in paid care, corrects three reference anchors and the family-share citation, and marks the program partial in programs.yaml with the unmodeled rules listed. Test cases go from 63 to 108. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…into ny-ccdf # Conflicts: # policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml
- Add ny_ccap_activity_eligible.yaml covering the work-hours, two-caretaker, student, public assistance and fallback branches - Fix ny_ccap_family_share_exempt documentation: 415.3(e)(1) does list the at-or-below-100%-SIS exception; point the reference at page 19 - Correct 415.2(a)(2) subparagraph citations to (v)(a) and (v)(d) - Note the post-secondary student over-inclusion in ny_ccap_age_eligible and reconcile the programs.yaml note with the public assistance branch Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
PR ReviewReviewed head Caveat: ocfs.ny.gov was unreachable from the review sandbox, so individual rate cells in 🔴 Critical (Must Fix)None. 🟡 Should Address
🟢 Suggestions
Validation Summary
Verdict: COMMENT — approve once the 12-hour boundary is reconciled and the hourly tier is either added or documented as out of scope. |
- ny_ccap_market_rate adds the excess-hour period on each day at or above
the daily maximum hours, per 24-OCFS-LCM-22 sec. III.4 ("12 hours or more")
- Add exactly-12-hour and just-below tests; align docs, the parameter
description, programs.yaml notes and the changelog
- programs.yaml notes: county default bias, the hours/days inputs the benefit
requires, and that the pre-2022 hourly tier no longer exists
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Thanks — addressed in 2372ff7: Should address
Suggestions
Also in 5997301: added |
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
What is modeled
ny_ccap_income_eligibleny_ccap_countable_income(8 sources)ny_ccap_eligible_childny_ccap_family_share,ny_ccap_family_share_exemptny_ccap_market_rate+rates/*.yamlny_ccapAll 240 current rate cells were verified against 24-OCFS-LCM-22 Attachment A.
Not modeled (by design)
backdate_parametersprograms.yamlnotes)Registration
gov/hhs/ccdf/child_care_subsidy_programs.yaml(all blocks) → flows intochild_care_subsidiesgov/household/household_state_benefits.yaml(all eras)programs.yamlCCDF state_implementationsTest plan
test_aggregate_list_integrity.py15/15🤖 Generated with Claude Code