Skip to content

Implement Maine CCAP (Child Care Assistance Program)#7757

Open
hua7450 wants to merge 9 commits intoPolicyEngine:mainfrom
hua7450:me-ccap
Open

Implement Maine CCAP (Child Care Assistance Program)#7757
hua7450 wants to merge 9 commits intoPolicyEngine:mainfrom
hua7450:me-ccap

Conversation

@hua7450
Copy link
Collaborator

@hua7450 hua7450 commented Mar 11, 2026

Summary

Implements Maine's Child Care Affordability Program (CCAP) in PolicyEngine, including eligibility determination, market rate lookups by provider type/region/age group, and parent copayment calculation.

Closes #7756

Federal CCDF Infrastructure Reuse

This PR leverages federal CCDF variables from #7765:

  • is_ccdf_immigration_eligible_child — replaces state-specific immigration check
  • is_ccdf_asset_eligible — replaces state-specific asset check
  • child_care_subsidy_programs.yaml — ME added to federal program list

All variables use definition_period = MONTH. The aggregator me_child_care_subsidies remains YEAR.

Regulatory Authority

Eligibility Tests

Child Eligibility (§2.A)

  • Child must be under age 13 (under 19 for special needs children)
  • Child must be a tax unit dependent
  • Child must have qualifying immigration status. Uses federal is_ccdf_immigration_eligible_child (citizen or qualified alien per 8 U.S.C. §1641)

Income Eligibility (§2.C.1)

  • Family countable income must be at or below 125% of State Median Income (SMI) for the family's size
  • SMI is determined using HHS State Median Income tables, updated October 1 each year

Asset Eligibility (§2.C.1)

  • Family assets must not exceed $1,000,000

Activity Eligibility (§2.A.6)

  • Parent must be employed, attending an educational program, or job training program
  • Disabled parents are exempt
  • Both parents in two-parent households must meet the requirement
  • No minimum hours specified — any participation qualifies
  • Source: 10-148 C.M.R. Chapter 6 §2.A.6

Countable Income Sources (§2.C.3-4)

Earned income: employment income, self-employment income, farm income, rental income

Unearned income: Social Security, pensions, retirement distributions, disability benefits, SSI, TANF, veterans benefits, military retirement pay, unemployment compensation, workers compensation, interest income, dividend income, child support received, alimony, capital gains

Parent Copayment (§5)

Fee Schedule (§5.B.1)

The parent fee is a percentage of weekly income based on the family's SMI percentage:

SMI Range Fee Rate
0-30% 0%
30-35% 1%
35-40% 2%
40-45% 3%
45-55% 4%
55-65% 5%
65-75% 6%
75-90% 7%
90-100% 8%
100-110% 9%
110%+ 10%

Fee Caps (§5.A.2)

  • Below 85% SMI: capped at 7% of weekly income
  • At or above 85% SMI: capped at 10% of weekly income

Weekly fee is floored (rounded down), then converted to monthly.

Market Rates (§4.D)

Market rates vary by four dimensions:

  • Provider type: Licensed Center, Licensed Family, License Exempt
  • Region: Region 1 (Cumberland, Sagadahoc, York), Region 2 (all other counties)
  • Age group: Infant (<12 mo), Toddler (12-35 mo), Preschool (3-4 yr), School Age (5+)
  • Time category: Full-time (30+ hrs/week), Part-time (<30 hrs/week)

Source: May 2025 Market Rate Schedule

Note: Some counties have specific rate exceptions beyond the 2-region model (e.g., Kennebec preschool center at $267 full-time). The current implementation uses the standard 2-region rates.

Benefit Calculation (§5)

benefit = min(actual_expenses - parent_fee, sum_of_market_rates_for_eligible_children)

Where sum_of_market_rates is the total weekly market rate for all eligible children, converted to monthly.

Not Modeled

  • Activity requirements (20+ hrs/week work/education) — not simulatable
  • Provider-specific quality ratings / accreditation bonuses (QRIS Star 3-5 differentials)
  • QRIS quality discount on parent fee (10%/20% for Star 4/5)
  • Absence day tracking
  • Transitional benefits / redetermination periods
  • School-age rate transition timing (September 1 / October 15 rule)
  • County-specific market rate exceptions

TANF Interaction

Updated me_tanf_child_care_deduction to use childcare_expenses (post-subsidy) instead of spm_unit_pre_subsidy_childcare_expenses. TANF should deduct what families actually pay after CCAP subsidies. No circular dependency because me_ccap uses spm_unit_pre_subsidy_childcare_expenses (pre-subsidy), and TANF income is excluded from CCAP countable income.

Files Added

policyengine_us/
├── parameters/gov/states/me/dhhs/ccap/
│   ├── age_groups/ (infant_max_months, toddler_max_months, preschool_max_years)
│   ├── age_limit/ (child, special_needs)
│   ├── asset_limit.yaml
│   ├── copay/ (rate, cap_threshold, cap/below_85_smi, cap/above_85_smi)
│   ├── hours/full_time_threshold.yaml
│   ├── income/ (smi_limit, countable_income/sources)
│   ├── market_rate/ (licensed_center, licensed_family, license_exempt)
│   ├── qualified_alien_statuses.yaml
│   └── region_1_counties.yaml
├── variables/gov/states/me/dhhs/
│   ├── ccap/
│   │   ├── me_ccap.py (benefit calculation)
│   │   ├── copay/ (me_ccap_parent_fee, me_ccap_smi_percentage)
│   │   ├── eligibility/ (me_ccap_eligible, me_ccap_eligible_child, me_ccap_income_eligible, me_ccap_asset_eligible, me_ccap_immigration_status_eligible)
│   │   ├── income/ (me_ccap_countable_income, me_ccap_smi)
│   │   └── payment/ (me_ccap_market_rate, me_ccap_provider_type, me_ccap_region, me_ccap_age_group, me_ccap_time_category)
│   └── me_child_care_subsidies.py
└── tests/policy/baseline/gov/states/me/dhhs/ccap/
    ├── copay/ (me_ccap_parent_fee, me_ccap_smi_percentage)
    ├── eligibility/ (me_ccap_eligible, me_ccap_eligible_child, me_ccap_income_eligible, me_ccap_asset_eligible, me_ccap_immigration_status_eligible)
    ├── integration.yaml
    ├── me_ccap.yaml
    └── payment/ (me_ccap_market_rate, me_ccap_region, me_ccap_age_group, me_ccap_time_category)

164 tests, all passing.

hua7450 and others added 2 commits March 11, 2026 14:49
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add parameters, variables, and tests for Maine's CCAP program including:
- Eligibility (income, assets, immigration status, child age)
- Market rates by provider type, region, age group, and time category
- Parent copayment calculation based on SMI percentage
- Integration with childcare_expenses subsidy system
- Update ME TANF child care deduction to use pre-subsidy expenses

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Mar 11, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (19ec305) to head (421c12f).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #7757    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files            3        14    +11     
  Lines           33       239   +206     
  Branches         0         2     +2     
==========================================
+ Hits            33       239   +206     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

hua7450 and others added 7 commits March 11, 2026 17:40
- Replace all 404 URLs (old maine.gov/sos/cec path) with working DHHS rule PDF
- Fix market rate section citations from §3 (Waitlist) to §4.D (Reimbursement)
- Add market rate PDF as secondary reference for rate parameters
- Update page numbers to match new 57-page PDF layout

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Change parameter start dates from 2024-07-01 to 2024-01-01 so
  microsim 2024 run can find all parameters
- Add 2024-01-01 entries to market rate files (previously only 2025-05-19)
- Remove tanf from countable income sources to break circular dependency:
  tanf → childcare_expenses → me_ccap → me_ccap_countable_income → tanf
- Update integration test Case 1 to reflect TANF exclusion

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…terns

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@hua7450 hua7450 marked this pull request as ready for review March 16, 2026 05:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Maine CCAP (Child Care Assistance Program)

1 participant