Implement Virginia Child Care Assistance Program (CCAP)#7933
Draft
hua7450 wants to merge 4 commits intoPolicyEngine:mainfrom
Draft
Implement Virginia Child Care Assistance Program (CCAP)#7933hua7450 wants to merge 4 commits intoPolicyEngine:mainfrom
hua7450 wants to merge 4 commits intoPolicyEngine:mainfrom
Conversation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #7933 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 1 11 +10
Lines 15 165 +150
Branches 1 0 -1
==========================================
+ Hits 15 165 +150
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
- Activity min hours: 20 → 8 (Guidance Manual Section 1.1) - Remove fabricated Medicaid/WIC income waiver (only TANF per 8VAC20-790) - Young child age threshold: <= 5 → < 6 (fixes float comparison) - Remove orphaned qualified_immigration_statuses.yaml - Fix all #page= references (~30 pages off) and section format (dotted → letter) - Add 2025-07-01 copay scale tests (period: 2026-01) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Activity proxy: is_in_k12_school → is_full_time_student (covers post-secondary) - Fix 3 section/page references in parameter YAML - Remove stale Medicaid/WIC test comment - Changelog: CCAP → CCSP Co-Authored-By: Claude Opus 4.6 (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 Virginia's Child Care Subsidy Program (CCSP) in PolicyEngine, including eligibility determination, locality-grouped income tests, copayment calculation (both current 2023 and new 2025-07-01 scales), and benefit computation.
Closes #7932
Regulatory Authority
Program Overview
Eligibility
va_ccsp_child_eligible:age < p.child(param = 13)va_ccsp_child_eligible:where(is_disabled, p.disabled_child, p.child)is_ccdf_immigration_eligible_childdefined_for = StateCode.VAon all variablesis_ccdf_asset_eligibleva_ccsp_activity_eligible:weekly_hours_worked >= p.min_hours_per_weekORis_full_time_student, checked on head/spouseva_ccsp_enrolledbare input switches income test from FPG entry to SMI exit limitFederal CCDF variables reused (2):
is_ccdf_immigration_eligible_child-- child citizenship/immigration statusis_ccdf_asset_eligible-- $1M federal asset testIncome Eligibility
Virginia uses a dual FPG/SMI income test with locality-based thresholds.
New applicants (not enrolled): income must not exceed a percentage of the Federal Poverty Guideline based on locality group:
Locality group is modeled as a bare input enum (
va_ccsp_locality_group) defaulting to Group III (most generous). Full locality-to-group mapping (Appendix Z, 133 localities) is deferred.Young child exception: families with a child age 5 or younger also qualify at 85% SMI regardless of locality group -- the income limit is
max(FPG limit, 85% SMI).Enrolled families (at redetermination): income limit is 85% of State Median Income (SMI) regardless of locality group.
Categorical waivers:
is_tanf_enrolled(8VAC20-790-30(A))va_ccsp_income_test_waived-- can be added in a follow-upCountable income (
va_ccsp_countable_income): usesadds/subtractspattern with 13 income sources (employment, self-employment, child support received, Social Security, pension, unemployment, workers' comp, veterans benefits, disability, interest, dividends, rental, alimony) minus child support paid. 30 categories of income are excluded by omission per 8VAC20-790-40(C)(1).Copayment
Current Scale (Jan 1, 2023 -- June 30, 2025)
Source: Guidance Manual Appendix B; VECF Budget Language Summary
New Scale (effective July 1, 2025)
Source: FY26 Copayment One Pager; HB30 Item 126 #2h; 8VAC20-790 (amended Nov 19, 2025)
Both scales are encoded in
per_child_scale.yamlwith date-keyed thresholds. The.infthreshold technique makes 2025-only brackets unreachable under the 2023 scale.Benefit Calculation
Simplified: no Maximum Reimbursable Rate (MRR) ceiling. MRR varies by provider type, child age, and locality (~240 rate cells) and is deferred for future implementation.
Requirements Coverage (23 in-scope)
Coverage: 22/23 fully covered, 1 partial (REQ-017 Medicaid/WIC deferred).
Not Modeled (by design)
is_tanf_enrolledFiles Added
Review History
Two rounds of automated program review (
/review-program) were conducted:Round 1: 8 critical issues identified and fixed:
min_hours_per_weekparameterRound 2: 0 critical issues. All requirements verified covered.
Test Plan