Add Nevada Child Care and Development Program (CCDP)#8665
Draft
hua7450 wants to merge 5 commits into
Draft
Conversation
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…yEngine#8664) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8665 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 1 14 +13
Lines 23 216 +193
Branches 0 1 +1
==========================================
+ Hits 23 216 +193
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 Opus 4.8 (1M context) <noreply@anthropic.com>
…ource URLs Co-Authored-By: Claude Opus 4.8 (1M context) <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 Nevada's Child Care and Development Program (CCDP) — the DWSS child care subsidy funded through the federal Child Care and Development Fund (CCDF). The subsidy pays a provider-day rate (by region, provider type, and child age) up to the state maximum, less a flat income-tier family copay, capped at actual childcare expenses. Eligibility uses a two-tier State Median Income (SMI) test, Nevada residency, child citizenship, a $1M asset limit, and a qualifying-activity (Purpose of Care) requirement.
Closes #8664.
Regulatory Authority
Source-precedence caveat: The July 2024 Policy Manual's copay (MS 170/180) and income-eligibility sections are outdated — they still describe the pre-October-2024 sliding-scale copay (0-7% of income) and a single 85% SMI eligibility test. The Oct 2024 flat-copay change documented in CC PT 06-25 and the two-tier SMI eligibility in the FFY 2025-2027 CCDF State Plan are authoritative for the current flat copay and the 41%/49% SMI tiers. The Policy Manual is used only for rules that were not superseded.
Eligibility
nv_ccdp_eligible_child:age < child_age_limit(13)nv_ccdp_eligible_child:where(has_developmental_delay, age < 19, age < 13)nv_ccdp_income_eligible: new applicants ≤41% SMI (smi_intake), enrolled families ≤49% SMI (smi_renewal), keyed offnv_ccdp_enrolleddefined_for = StateCode.NVon the eligibility and output variablesnv_ccdp_eligible_childreuses federalis_ccdf_immigration_eligible_childnv_ccdp_eligiblereuses federalis_ccdf_asset_eligible(gov.hhs.ccdf.asset_limit)nv_ccdp_activity_eligible:meets_ccdf_activity_test | is_tanf_enrolled | is_homeless(existing status hooks; no new POC enum input)Income & SMI tiers
Nevada uses State Median Income, not the federal poverty line.
nv_ccdp_smireturns monthly 100% SMI via the federalsmi()helper, pinned to the October-1 chart effective date (the chart updates annually on Oct 1).nv_ccdp_income_eligiblethen applies the tier ratio to monthly SMI:income/smi_intake.yaml).income/smi_renewal.yaml). This is the renewal ceiling and matches the top of the published copay scale exactly.The federal CCDF rules also define an 85% SMI mid-certification-period protection (45 CFR 98.21(a)(1)(ii)): a state may not terminate a family mid-certification until income exceeds 85% SMI. PolicyEngine does not track certification periods at the moment, so this mid-period protection is not enforced. The operative enrolled income ceiling in the model is the 49% renewal tier; the 85% protection is documented as a limitation in
nv_ccdp_income_eligible, not modeled.Benefit Calculation
nv_ccdp_provider_ratelooks uprates/center.yamlorrates/fcc.yaml;nv_ccdp_regionderives the region from county;nv_ccdp_age_groupderives the age band from age in months.nv_ccdp_copay, keyed by % SMI): $0 (≤32.99% SMI), $90 (33-42% SMI), $150 (43-49% SMI). Waived (set to $0) for TANF-NEON referrals (is_tanf_enrolled), CPS/foster placements (is_in_foster_care/receives_or_needs_protective_services), and homeless households (is_homeless).Requirements Coverage
20 of 20 in-scope requirements are covered.
eligibility/child_age_limit.yamlnv_ccdp_eligible_childeligibility/nv_ccdp_eligible_child.yamleligibility/special_needs_child_age_limit.yamlnv_ccdp_eligible_childeligibility/nv_ccdp_eligible_child.yamlincome/smi_intake.yaml,income/smi_renewal.yamlnv_ccdp_income_eligible,nv_ccdp_copayeligibility/nv_ccdp_income_eligible.yaml,copay/nv_ccdp_copay.yamlnv_ccdp_sminv_ccdp_smi.yamlgov.hhs.ccdf.asset_limitnv_ccdp_eligible(is_ccdf_asset_eligible)eligibility/nv_ccdp_eligible.yaml,integration.yamldefined_for = StateCode.NVintegration.yamlnv_ccdp_eligible_child(is_ccdf_immigration_eligible_child)eligibility/nv_ccdp_eligible_child.yamlnv_ccdp_activity_eligibleeligibility/nv_ccdp_activity_eligible.yamlnv_ccdp_activity_eligibleeligibility/nv_ccdp_activity_eligible.yamlnv_ccdpnv_ccdp.yaml,integration.yamlbilling/monthly_billed_days.yamlnv_ccdpnv_ccdp.yaml,integration.yamlrates/center.yaml,rates/fcc.yamlnv_ccdp_provider_ratenv_ccdp_provider_rate.yamlnv_ccdp_regionnv_ccdp_region.yamlage_group/months.yamlnv_ccdp_age_groupnv_ccdp_age_group.yamlcopay/amount.yamlnv_ccdp_copaycopay/nv_ccdp_copay.yamlnv_ccdp_copaycopay/nv_ccdp_copay.yamlincome/countable_income/sources.yamlnv_ccdp_countable_incomeincome/nv_ccdp_countable_income.yamlnv_ccdp_countable_income(child_support_expense)income/nv_ccdp_countable_income.yamleligibility/nv_ccdp_eligible_child.yaml(Supporting input enum
nv_ccdp_provider_typeand thenv_ccdp_enrolledinput boolean each have their own test.)Not Modeled
Microsimulation note
nv_ccdpreturns $0 in microsimulation becausemeets_ccdf_activity_testis an unpopulated input flag in the CPS microdata (false for every unit), sonv_ccdp_activity_eligibleis false everywhere. This is the same data-input artifact that affects sibling CCDF state programs (e.g.wv_child_care_subsidiesis also $0 in microsim for the same reason). It is a known microdata input gap, not a formula bug. The full benefit pipeline — both regions, both provider types, all four age groups, all three copay tiers, both enrollment states, and the copay-waiver path — is verified through the unit and integration tests, which setmeets_ccdf_activity_test: true(oris_homeless: true) and produce the expected non-zero benefits.Verification TODO
Test plan
policyengine-core test policyengine_us/tests/policy/baseline/gov/states/nv/dwss/ccdp/ -c policyengine_us -v).Files Added
Registry edits (2):
policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml— addednv_child_care_subsidiesto the federalchild_care_subsidiesaggregator.policyengine_us/programs.yaml— added the NV CCDPstate_implementationsentry under the CCDF federal program.