Skip to content

Implement Maryland CCAP (Child Care Assistance Program)#7889

Draft
hua7450 wants to merge 6 commits intoPolicyEngine:mainfrom
hua7450:md-ccap
Draft

Implement Maryland CCAP (Child Care Assistance Program)#7889
hua7450 wants to merge 6 commits intoPolicyEngine:mainfrom
hua7450:md-ccap

Conversation

@hua7450
Copy link
Collaborator

@hua7450 hua7450 commented Mar 26, 2026

Summary

Implements Maryland's Child Care Scholarship (CCS) program in PolicyEngine, including eligibility, income calculation, copayment, provider reimbursement rates, and benefit computation.

Closes #7888

Regulatory Authority

Program Overview

  • Official name: Child Care Scholarship (CCS) Program (formerly "Child Care Subsidy Program")
  • Administration: Maryland State Department of Education (MSDE), Division of Early Childhood, Office of Child Care
  • Funding: CCDF federal block grant + state funds
  • Type: Voucher-based child care subsidy
  • Current caseload: 41,148 children / 27,235 families (Jan 2026, per Feb 2026 briefing)
  • Waitlist: ~4,929 children

Eligibility

Requirement Source How Modeled
Must reside in Maryland COMAR 13A.14.06.03(A)(1) defined_for = StateCode.MD
Child under 13 (non-disabled) COMAR 13A.14.06.02 age < p.age_threshold.child (param = 13)
Child under 19 (disabled) COMAR 13A.14.06.02 age < p.age_threshold.disabled_child (param = 19)
Child is a dependent COMAR 13A.14.06.02 is_tax_unit_dependent
Child is U.S. citizen or qualified alien COMAR 13A.14.06.03(B) is_ccdf_immigration_eligible_child
TCA recipients exempt from income test COMAR 13A.14.06.03(F)(1) is_tanf_enrolled
SSI recipients exempt from income test COMAR 13A.14.06.03(F)(1) ssi > 0
Income at/below 75% SMI (initial) Ch 525/526 of 2022; CCS Brochure countable_income <= hhs_smi * 0.75
Income at/below 85% SMI (continuation) 45 CFR 98.21; CCS Brochure countable_income <= hhs_smi * 0.85 (via md_ccs_enrolled)

Income Calculation

Per COMAR 13A.14.06.03(F)(3)-(8), countable income includes annual gross income from 14 sources:

  • Earned: employment income, self-employment income (after 30% flat deduction per .03(F)(6))
  • Unearned: Social Security, pension, interest, dividends, rental income, alimony, unemployment compensation, workers' compensation, veterans' benefits, disability benefits, capital gains, farm income, military retirement pay
  • Excluded: child support received (per Ch 525/526 of 2022, effective 2022-05-23)
  • Self-employment deduction: 30% flat deduction applied to self-employment income before adding to total (COMAR .03(F)(6))

Income Thresholds

Status SMI Rate Example: Family of 4 Source
Initial eligibility (new applicants) 75% SMI $111,936 Ch 525/526 of 2022; CCS Brochure
Continuation eligibility (enrolled families) 85% SMI $126,861 45 CFR 98.21; CCS Brochure

Historical initial eligibility thresholds (parameterized):

Period SMI Rate Source
2016-01-01 50% MSDE action (raised from 32%)
2019-01-01 65% Ch 595/596 of 2019
2022-05-23 75% Ch 525/526 of 2022

Copayment Structure

Current flat copayments (effective since 2022 legislation, frozen per Ch 717 of 2024):

Service Unit Hours/Day Weekly Copay Source
1-unit (hourly) ≤3 hours $1/week Jan 2025 briefing
2-unit (part-time) >3 to <6 hours $2/week Jan 2025 briefing
3-unit (full-time) ≥6 hours $3/week Jan 2025 briefing

Categorical exemptions (copayment = $0):

Category Source
TCA recipients COMAR 13A.14.06.12(A)(1)
SSI recipients COMAR 13A.14.06.12(A)(1)
SNAP recipients Ch 525/526 of 2022
WIC recipients Ch 525/526 of 2022

Federal cap: Copayment cannot exceed 7% of family gross income (45 CFR 98.45(k)). Not binding in practice with current $1-$3/week amounts, but modeled for completeness.

Copayment assessed for up to 3 children per COMAR 13A.14.06.12; 4th+ child is free.

Provider Reimbursement Rates

Provider reimbursement rate caps are included, covering:

  • Formal rates: 7 market regions (U/V/W/X/Y/Z/BC) x 2 provider types (licensed center, licensed family) x 2 age groups (infant, regular) x 3 service units — based on 60th percentile of 2024 Market Rate Survey, effective 3/1/2026
  • Informal rates: 24 counties x 2 age groups (infant, regular) x 3 service units — based on 70th percentile of March 2021 Market Rate Survey

Summary of 3-unit (full-time) formal rates:

Region Family Regular Family Infant Center Regular Center Infant
U $200 $225 $244 $325
V $175 $200 $200 $264
W $265 $300 $305 $420
X $325 $350 $424 $554
Y $220 $250 $278 $378
Z $170 $185 $207 $297
BC $225 $252 $282 $376

Benefit Formula

benefit = min(max(expenses - copay, 0), max_reimbursement)

Where:

  • expenses = spm_unit_pre_subsidy_childcare_expenses (monthly)
  • copay = weekly copayment * 52/12 (annualized to monthly), summed across up to 3 eligible children
  • max_reimbursement = provider reimbursement rate cap based on region, provider type, child age, and service unit

Not Modeled (by design)

What Source Why Excluded
Activity/work requirement COMAR 13A.14.06.03(E) Administrative verification, not simulatable
Immunization requirement COMAR 13A.14.06.03(D) Health/administrative requirement
Child support cooperation COMAR 13A.14.06.04 Administrative requirement
Service groups / priority levels COMAR 13A.14.06.08 Waitlist management, not simulatable
24-month eligibility period Jan 2025 briefing Administrative period management
Presumptive eligibility Ch 525/526 of 2022 Administrative fast-track process
Historical COMAR copayment tables COMAR 13A.14.06.12 Superseded by 2022 legislation; current $1-$3/week flat amounts apply

Deferred to Follow-up PR

  • Non-traditional rates (evenings/weekends) — separate rate schedule not yet encoded
  • Section 8 copayment waiver — no existing receives_housing_voucher variable in the codebase; requires new input variable

Files Added

policyengine_us/
  parameters/gov/states/md/msde/ccs/
    age_threshold/
      child.yaml                           # Age 13 (non-disabled)
      disabled_child.yaml                  # Age 19 (disabled)
    copay/
      federal_cap_rate.yaml                # 7% federal cap
      max_children_with_copay.yaml         # Up to 3 children
      unit_hours.yaml                      # Service unit hour brackets
      weekly_amount.yaml                   # $1/$2/$3 by unit type
    income/
      countable_income/
        sources.yaml                       # 14 income sources
      self_employment_deduction_rate.yaml  # 30% deduction
      smi_rate/
        initial.yaml                       # 75% SMI (with history: 50%/65%/75%)
        continuation.yaml                  # 85% SMI
    payment/
      formal/
        licensed_center.yaml               # Center rates by region/age/unit
        licensed_family.yaml               # Family rates by region/age/unit
      informal/
        rates.yaml                         # Informal rates by county/age/unit
      infant_age_threshold.yaml            # Infant age cutoff
      baltimore_city_counties.yaml         # Region-county mappings
      region_u_counties.yaml
      region_v_counties.yaml
      region_x_counties.yaml
      region_y_counties.yaml
      region_z_counties.yaml

  variables/gov/states/md/msde/ccs/
    md_ccs.py                              # Main benefit variable
    md_ccs_enrolled.py                     # Input: currently enrolled
    md_ccs_countable_income.py             # Income calculation (adds + SE deduction)
    md_ccs_income_eligible.py              # Income eligibility (initial vs continuation)
    md_ccs_weekly_copay.py                 # Copayment with exemptions + federal cap
    md_ccs_provider_type.py                # Provider type input
    md_ccs_receives_snap.py                # SNAP receipt for copay waiver
    md_ccs_receives_wic.py                 # WIC receipt for copay waiver
    md_child_care_subsidies.py             # State aggregator
    eligibility/
      md_ccs_eligible.py                   # Overall eligibility
      md_ccs_eligible_child.py             # Child-level eligibility
    payment/
      md_ccs_age_group.py                  # Child age group (infant vs regular)
      md_ccs_payment_rate.py               # Provider reimbursement rate lookup
      md_ccs_region.py                     # Market region assignment
      md_ccs_service_unit.py               # Service unit determination

  tests/policy/baseline/gov/states/md/msde/ccs/
    md_ccs.yaml                            # 5 benefit tests
    md_ccs_eligible.yaml                   # 4 eligibility tests
    md_ccs_eligible_child.yaml             # 5 child eligibility tests
    md_ccs_income_eligible.yaml            # 4 income eligibility tests
    md_ccs_countable_income.yaml           # 4 income calculation tests
    md_ccs_weekly_copay.yaml               # 8 copayment tests
    md_ccs_payment_rate.yaml               # 4 payment rate tests
    integration.yaml                       # 7 integration tests
    edge_cases.yaml                        # 37 edge case tests

Totals: 20 parameter files, 15 variable files, 9 test files (78 test cases)

Verification TODO

  • Verify copayment amounts against Jan 2025 briefing / Ch 717 of 2024
  • Verify income thresholds against CCS Brochure
  • Verify reimbursement rates against MSDE rate tables (formal 7-region, informal 24-county)
  • Verify historical SMI rates against Feb 2026 briefing
  • Add md_ccs to spm_unit_benefits.py once verified
  • Add to programs.yaml program registry
  • CI passes

Test plan

  • 78 tests pass (5 benefit + 4 eligibility + 5 child eligibility + 4 income eligibility + 4 income + 8 copayment + 4 payment rate + 7 integration + 37 edge cases)
  • CI passes

hua7450 and others added 2 commits March 26, 2026 11:10
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds eligibility, income calculation, copayment, and provider reimbursement
rate parameters for Maryland's CCS program (COMAR 13A.14.06).

Includes formal rates (7 regions) and informal rates (24 counties),
enum-keyed parameter lookups, and 78 test cases.

Closes PolicyEngine#7888

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Mar 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (e3ff221) to head (66641c5).
⚠️ Report is 9 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #7889   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            4        15   +11     
  Lines          146       242   +96     
=========================================
+ Hits           146       242   +96     
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 4 commits March 26, 2026 12:50
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add region_w_counties.yaml and update md_ccs_region.py
- Add MD CCS to programs.yaml registry
- Add #page=XX to 5 session law PDF references
- Fix continuation.yaml to cite state source as primary
- Document frozen SMI limitation with TODO

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace all broken dsd.maryland.gov URLs with regs.maryland.gov
- Fix continuation.yaml: .03(B) → .03(H) (Income Eligibility Scale)
- Fix self_employment_deduction_rate.yaml: (F)(6) → (F)(8)(a)(i)
- Fix sources.yaml: (F)(3)-(8) → .02 (Gross income definition)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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 Maryland CCAP (Child Care Assistance Program)

1 participant