Implement Kentucky Child Care Assistance Program (CCAP)#8620
Draft
hua7450 wants to merge 4 commits into
Draft
Conversation
Add changelog fragment for the Kentucky Child Care Assistance Program (CCAP). Closes PolicyEngine#8619. Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8620 +/- ##
============================================
+ Coverage 77.77% 100.00% +22.22%
============================================
Files 1 14 +13
Lines 9 244 +235
============================================
+ Hits 7 244 +237
+ Misses 2 0 -2
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:
|
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements Kentucky's Child Care Assistance Program (CCAP) — the state's subsidy that helps low-income working families, families involved with child protective services, and families in approved workforce-training pay for child care. The implementation covers eligibility, the 85% State Median Income (SMI) income test, county-region provider rates from the DCC-300 chart, the per-day family copay schedule, and the net subsidy that flows into the federal
child_care_subsidiestotal.Closes #8619
Regulatory Authority
Administering agency: Cabinet for Health and Family Services (CHFS) → Department for Community Based Services (DCBS) → Division of Child Care (DCC). Repo agency directory is
dcbs, matching the existinggov/states/ky/dcbs/ssp/.Eligibility Tests
A household qualifies when its child passes the technical-eligibility tests and the family satisfies at least one activity/need pathway and (unless exempt) the income test.
defined_for = StateCode.KYchained throughky_ccap_eligibleis_ccdf_immigration_eligible_childky_ccap_eligible_child:age < child_age_limit(13), or< special_needs_child_age_limit(19) when the childis_disabled/has_developmental_delayky_ccap_activity_eligible: single parent ≥20 hrs/wk, or two adults combined ≥40 hrs/wk with the lesser worker ≥5 hrs/wk, usingweekly_hours_worked_before_lsris_tanf_enrolledbypass (also breaks the CCAP↔TANF circular dependency)ky_ccap_income_eligibleexempts the family from the income test when a child in the unitis_in_foster_careThe activity test reads
weekly_hours_worked_before_lsr(notweekly_hours_worked) to avoid a labor-supply-response circular dependency. There is no asset/resource test in 922 KAR 2:160, so none is applied.Income Eligibility
The operative income test is gross monthly income ≤ 85% of Kentucky SMI, by family size (§9(5), citing 42 U.S.C. 9858c(c)(2)(N); confirmed by DCC-113 effective 2023-10-01). The dollar table is transcribed directly from DCC-113:
We transcribed Kentucky's own table rather than computing
hhs_smi × 0.85because PolicyEngine's federalhhs_smifor Kentucky is stale (its last entry is FFY2020), whereas DCC-113 uses a newer SMI publication; the federal-derived figure is off by roughly $250–$470/month. The boundary is inclusive (income at or below 85% SMI qualifies). Protection & Permanency families are exempt from this test (§8(3)).Income Deductions & Exemptions
Countable income is the gross income of the applicant and responsible adult (§8(2)), assembled as a positive
sourceslist inincome/countable_income/sources.yaml(employment, self-employment, farm, Social Security, unemployment and workers' compensation, pensions, alimony, child support received, dividends, interest, rent, veterans' benefits, military retirement). The two §8(5) deductions — legally-obligated child support paid out, and self-employment operating costs — are already netted by the underlying PolicyEngine income variables (self_employment_incomeis net of expenses; child support paid is captured in PE's support variables), so no separate subtraction list is needed.The 38 excluded income categories in §8(4)(a)–(ll) — including SNAP, housing subsidies, LIHEAP, EITC, foster-care payments, K-TAP child-only payments, educational grants/scholarships, and a child's SSI (§8(4)(ll)) — are handled by omission: they simply are not in the positive sources list.
tanfis deliberately omitted as well, both because it is excluded under §8(4) and to keep the CCAP↔TANF cycle broken (categorical eligibility comes fromis_tanf_enrolled).Benefit Calculation
The subsidy is computed per child, per day, then converted to a monthly amount by the child's days in care.
ky_ccap_daily_ratelooks up the maximum daily rate keyed by rate region × provider type × age group × day length. Kentucky's 120 counties collapse to 10 distinct rate regions (the DCC-300 chart shows only 10 unique 24-value rate vectors);ky_ccap_rate_regionmapscounty_strto a region vianp.isin. There are four provider types (Licensed Type I, Licensed Type II, Certified, Registered), three age groups (Infant/Toddler under 3, Preschool 3–<6, School-age ≥6, derived from age viaage_group/months.yaml), and two day lengths (full day ≥5 hrs, part day <5 hrs, derived viarates/full_day_min_hours.yaml).+$1/dayfor a child with a special need, added inky_ccap_daily_benefit.min(provider charge, DCC-300 max + add-ons), where the per-day charge derives frompre_subsidy_childcare_expenses.ky_ccap_copayis a per-day fee looked up by monthly countable income band × family size (2 / 3 / 4 / 5+) × number of children needing care (1 vs 2-or-more), implemented as bracket scales. Families with monthly income ≤ $899 pay $0. The per-day copay is capped at $25/day for families with more than five members (§11(3)(b),copay/max_daily.yaml).max(min(charge, rate + add-ons) − copay, 0), summed across children in care and multiplied by each child's days of care per month.ky_ccap(SPMUnit, MONTH) is the household total;ky_child_care_subsidies(YEAR) aggregates it and feeds the federalchild_care_subsidies.Requirements Coverage
All 19 in-scope requirements are implemented; the remaining items are documented as not-modeled (see below).
ky_ccap_eligibleeligibility/ky_ccap_eligible.yamlky_ccap_eligible_childeligibility/ky_ccap_eligible_child.yamleligibility/child_age_limit,special_needs_child_age_limitky_ccap_eligible_childeligibility/ky_ccap_eligible_child.yamleligibility/single_parent_activity_hours,couple_activity_hours,min_secondary_worker_hoursky_ccap_activity_eligibleeligibility/ky_ccap_activity_eligible.yamlky_ccap_income_eligibleeligibility/ky_ccap_income_eligible.yamlky_ccap_activity_eligibleeligibility/ky_ccap_activity_eligible.yamlincome/smi_limit/main,additionalky_ccap_income_eligibleeligibility/ky_ccap_income_eligible.yamlincome/countable_income/sourcesky_ccap_countable_incomeky_ccap_countable_income.yamlky_ccap_countable_incomeky_ccap_countable_income.yamlky_ccap_countable_incomeky_ccap_countable_income.yamlcopay/size_2,size_3_one_child,size_3_two_or_more,size_4_one_child,size_4_two_or_more,size_5_plus_one_child,size_5_plus_two_or_moreky_ccap_copayky_ccap_copay.yamlcopay/max_dailyky_ccap_copayky_ccap_copay.yamlrates/licensed_type_i,licensed_type_ii,certified,registered,full_day_min_hours,regions/region_1–region_10,age_group/monthsky_ccap_daily_rate,ky_ccap_rate_region,ky_ccap_child_age_category,ky_ccap_day_length,ky_ccap_provider_typeky_ccap_daily_rate.yaml,ky_ccap_rate_region.yaml,ky_ccap_child_age_category.yaml,ky_ccap_day_length.yamlsupplements/special_careky_ccap_daily_benefitky_ccap_daily_benefit.yamlky_ccap_daily_benefitky_ccap_daily_benefit.yamlky_ccapky_ccap.yaml,integration.yamlky_child_care_subsidiesky_child_care_subsidies.yamlgov/hhs/ccdf/child_care_subsidy_programs.yamlprograms.yamlentryprograms.yaml(CCDFstate_implementations)Not Modeled
These provisions are excluded by design and documented in the relevant variable docstrings using "we don't track X at the moment" framing.
Microsimulation Note
On the CPS-based dataset the statewide
ky_ccaptotal is $0, and this is a dataset characteristic rather than an implementation defect. All 542 Kentucky households in the CPS carry a single county value (ADAIR_COUNTY_KY, whichky_ccap_rate_regioncorrectly maps to Region 2), and the 40 Kentucky households that have child care expenses fail an eligibility gate (income above 85% SMI, no qualifying activity, or child age ≥13) on this synthetic data. The variable computes cleanly over the full population with no NaN or crash. The positive-benefit pipeline is exercised end to end by the unit and integration tests (rate lookup, copay, and net subsidy), e.g. a Jefferson County (Region 4) test household produces a non-zeroky_ccap_daily_benefit.Historical Notes
Parameters start at recent dates because they reflect the current published policy:
Files Added
Modified registry files:
policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml— addsky_child_care_subsidiesto the federal CCDFaddslist.policyengine_us/programs.yaml— adds the KYstate_implementationsentry under the federal CCDF program.Test plan
🤖 Generated with Claude Code