Background
The "federal" CCDF implementation under gov/hhs/ccdf/ is actually a legacy New York encoding: its market rates (amount.yaml), copay percentages (copay_percent.yaml), and county clusters (county_cluster.yaml) are New York OCFS data cited to NY documents. It is inert on main — spm_unit_ccdf_subsidy is not listed in child_care_subsidy_programs.yaml or any benefit aggregate, so it contributes $0 to every household.
Once New York has a proper state implementation (#9282), these files should be removed.
Scope — delete
Parameters:
parameters/gov/hhs/ccdf/amount.yaml (NY market rates, 938 lines)
parameters/gov/hhs/ccdf/copay_percent.yaml
parameters/gov/hhs/ccdf/county_cluster.yaml (NY counties)
Variables:
ccdf_age_group, ccdf_market_rate, ccdf_county_cluster, spm_unit_ccdf_subsidy, spm_unit_total_ccdf_copay, is_ccdf_home_based
is_ccdf_initial_income_eligible, is_ccdf_continuous_income_eligible (orphan input stubs with zero readers)
Tests:
tests/policy/baseline/gov/hhs/ccdf/: ccdf_age_group.yaml, ccdf_copay.yaml, ccdf_county_cluster.yaml, ccdf_market_rate.yaml, spm_unit_ccdf_subsidy.yaml
Partner analytics-coverage tests do not reference any of these (verified by a green Household API Partners run with them deleted).
Keep — genuinely shared federal infrastructure
is_ccdf_asset_eligible, is_ccdf_immigration_eligible_child, meets_ccdf_activity_test, is_ccdf_age_eligible, is_enrolled_in_ccdf, child_care_subsidies + their parameters (asset_limit, age_limit, income_limit_smi, child_care_subsidy_programs) — used by many state programs.
ccdf_duration_of_care — retained for Idaho ICCP (id_iccp_time_category), its only consumer; its hour thresholds originated in a NY market-rate letter, so it should eventually be re-homed under Idaho with its own parameters and citation.
Out of scope
The is_ccdf_eligible → is_ccdf_income_eligible → ccdf_income_to_smi_ratio → ccdf_income chain and is_ccdf_reason_for_care_eligible have no state consumers either, but they are asserted in partner analytics-coverage contract tests (tests/policy/baseline/partners/analytics_coverage/). Removing them is a partner-facing API change that needs partner notification first — leave them in place for now.
Background
The "federal" CCDF implementation under
gov/hhs/ccdf/is actually a legacy New York encoding: its market rates (amount.yaml), copay percentages (copay_percent.yaml), and county clusters (county_cluster.yaml) are New York OCFS data cited to NY documents. It is inert on main —spm_unit_ccdf_subsidyis not listed inchild_care_subsidy_programs.yamlor any benefit aggregate, so it contributes $0 to every household.Once New York has a proper state implementation (#9282), these files should be removed.
Scope — delete
Parameters:
parameters/gov/hhs/ccdf/amount.yaml(NY market rates, 938 lines)parameters/gov/hhs/ccdf/copay_percent.yamlparameters/gov/hhs/ccdf/county_cluster.yaml(NY counties)Variables:
ccdf_age_group,ccdf_market_rate,ccdf_county_cluster,spm_unit_ccdf_subsidy,spm_unit_total_ccdf_copay,is_ccdf_home_basedis_ccdf_initial_income_eligible,is_ccdf_continuous_income_eligible(orphan input stubs with zero readers)Tests:
tests/policy/baseline/gov/hhs/ccdf/:ccdf_age_group.yaml,ccdf_copay.yaml,ccdf_county_cluster.yaml,ccdf_market_rate.yaml,spm_unit_ccdf_subsidy.yamlPartner analytics-coverage tests do not reference any of these (verified by a green Household API Partners run with them deleted).
Keep — genuinely shared federal infrastructure
is_ccdf_asset_eligible,is_ccdf_immigration_eligible_child,meets_ccdf_activity_test,is_ccdf_age_eligible,is_enrolled_in_ccdf,child_care_subsidies+ their parameters (asset_limit,age_limit,income_limit_smi,child_care_subsidy_programs) — used by many state programs.ccdf_duration_of_care— retained for Idaho ICCP (id_iccp_time_category), its only consumer; its hour thresholds originated in a NY market-rate letter, so it should eventually be re-homed under Idaho with its own parameters and citation.Out of scope
The
is_ccdf_eligible→is_ccdf_income_eligible→ccdf_income_to_smi_ratio→ccdf_incomechain andis_ccdf_reason_for_care_eligiblehave no state consumers either, but they are asserted in partner analytics-coverage contract tests (tests/policy/baseline/partners/analytics_coverage/). Removing them is a partner-facing API change that needs partner notification first — leave them in place for now.