Skip to content

Implement Georgia CCAP (Childcare and Parent Services - CAPS)#7958

Draft
hua7450 wants to merge 7 commits intoPolicyEngine:mainfrom
hua7450:ga-ccap
Draft

Implement Georgia CCAP (Childcare and Parent Services - CAPS)#7958
hua7450 wants to merge 7 commits intoPolicyEngine:mainfrom
hua7450:ga-ccap

Conversation

@hua7450
Copy link
Copy Markdown
Collaborator

@hua7450 hua7450 commented Apr 9, 2026

Summary

Implements Georgia Childcare and Parent Services (CAPS) — the state's CCDF-funded child care subsidy program administered by the Department of Early Care and Learning (DECAL). Models eligibility (residency, child age/disability, immigration, income, activity, assets), a 108-cell reimbursement rate table (3 zones x 3 provider types x 4 age groups x 3 care types), income-based family fees with waivers, and Quality Rated provider add-ons.

Closes #7957

Regulatory Authority

Income Eligibility Tests

  • Initial eligibility: gross applicable income <= 50% State Median Income (Appendix A; Policy Manual Ch. 8)
  • Ongoing/redetermination: gross applicable income <= 85% SMI (Appendix A; CCDF Plan)
  • Modeled via ga_caps_enrolled flag: new applicants use 50% SMI threshold; enrolled families use 85% SMI

Income Sources

12 countable income types (Policy Manual Ch. 8):

# CAPS Income Type PolicyEngine Variable
1 Gross wages/salary (incl. commissions, cash bonuses) employment_income
2 Net self-employment income self_employment_income
3 Unemployment compensation unemployment_compensation
4 Worker's compensation workers_compensation
5 Alimony alimony_income
6 Child support (regular/ongoing) child_support_received
7 Veteran's benefits / military allotments veterans_benefits
8 Capital gains capital_gains
9 Rental income rental_income
10 Dividends (regular/ongoing) dividend_income
11 Retirement/pension pension_income
12 Military retirement pay military_retirement_pay

Excluded income (by omission from sources list): TANF, SSI, SSA disability/survivors, adoption supplements, LIHEAP, Census Bureau income, in-kind donations, tax refunds, cash gifts, disaster relief, relative care subsidy, GBI/UBI, AmeriCorps unearned income, DECAL stipends, income from children 17 or younger.

Benefit Calculation

Subsidy formula (Policy Manual Ch. 10):

per_child_weekly = min(CAPS_max_rate, provider_published_rate)
base_monthly = sum(per_child_weekly) * 52/12
net_subsidy = max(base_monthly - family_fee, 0)
total = net_subsidy * (1 + quality_bonus_rate)

Rate table — 3 zones x 3 provider types x 4 age groups x 3 care types = 108 cells (Appendix C):

Zone Provider Infant FT/wk Toddler FT/wk Preschool FT/wk School FT/wk
1 Center $260 $248 $221 $185
1 Family $199 $188 $180 $156
2 Center $165 $160 $150 $140
2 Family $145 $140 $135 $135
3 Center $130 $125 $120 $115
3 Family $120 $110 $105 $94

(Informal rates = Family rates. Part-time daily and before/after school weekly rates also included.)

Family fee tiers (Appendix D):

Income-to-FPL Ratio Fee Rate
<= 10% 0% (no fee)
> 10% to 50% 3% of income
> 50% to 100% 5% of income
> 100% 7% of income (federal cap)
  • Fee is per-family, not per-child
  • Weekly fee = floor(annual_income * rate / 52), converted to monthly
  • Fee waived for minor parents (age <= 17)

Quality Rated add-ons (CCDF Plan FFY 2025-2027):

  • 2-star: 5% bonus on net base payment
  • 3-star: 10% bonus on net base payment

Requirements Coverage

REQ Description Parameter Variable Test
REQ-001 Georgia residency defined_for=StateCode.GA all variables integration.yaml Case 7
REQ-002 Child age <= 12 age_threshold/child.yaml (13) ga_caps_eligible_child eligible_child.yaml Cases 1-3
REQ-003 Disabled child age <= 17 age_threshold/disabled_child.yaml (17) ga_caps_eligible_child eligible_child.yaml Cases 4-6
REQ-004 Child citizenship (INA/45 CFR 98.20) federal is_ccdf_immigration_eligible_child ga_caps_eligible_child eligible_child.yaml Case 8
REQ-008 Initial income <= 50% SMI income/smi_rate/initial_eligibility.yaml (0.5) ga_caps_income_eligible income_eligible.yaml Cases 1-2
REQ-009 Ongoing income <= 85% SMI income/smi_rate/ongoing_eligibility.yaml (0.85) ga_caps_income_eligible income_eligible.yaml Cases 3-5
REQ-010 Very low income priority (50% FPL) Captured by fee tier (REQ-025/REQ-030) ga_caps_family_fee family_fee.yaml Cases 2, 7
REQ-011 Activity: 24 hrs/week activity_requirements/weekly_hours.yaml (24) ga_caps_activity_eligible activity_eligible.yaml Cases 1-6
REQ-012 Asset test ($1M) federal is_ccdf_asset_eligible ga_caps_eligible eligible.yaml Case 4
REQ-013 12 countable income sources income/countable_income/sources.yaml ga_caps_countable_income income_eligible_edge.yaml Case 9
REQ-014 Excluded income types Implicit (omitted from sources) ga_caps_countable_income income tests
REQ-015 4-week annualization method Implicit (PE uses annual income) -- --
REQ-016 Family unit composition SPMUnit entity all SPM-unit variables all SPM-unit tests
REQ-017 3 geographic zones (county-based) zone_1_counties.yaml, zone_2_counties.yaml ga_caps_zone zone.yaml Cases 1-7
REQ-018 Provider type (Center/Family/Informal) enum GACAPSProviderType ga_caps_provider_type maximum_weekly_benefit.yaml Cases 1-9
REQ-019 4 child age groups age_group/*.yaml thresholds ga_caps_age_group age_group.yaml Cases 1-7
REQ-020 Care type (FT/PT/Before-After) enum GACAPSCareType ga_caps_care_type maximum_weekly_benefit.yaml Cases 10-13
REQ-021 108-cell rate table rates/center.yaml, family.yaml, informal.yaml ga_caps_maximum_weekly_benefit maximum_weekly_benefit.yaml (14 cases)
REQ-022 Subsidy = min(max_rate, expenses) - fee -- ga_caps integration.yaml, edge.yaml Cases 1, 5
REQ-023 Quality Rated add-on (5%/10%) quality_rated/bonus_rate.yaml ga_caps, ga_caps_quality_rating edge.yaml Cases 2-4
REQ-024 Family fee is per-family -- (SPMUnit entity) ga_caps_family_fee family_fee.yaml
REQ-025 Fee tiers by FPL ratio (4 tiers) family_fee/rate.yaml ga_caps_family_fee family_fee.yaml Cases 1-4
REQ-026 Weekly fee = floor(income * rate / 52) -- ga_caps_family_fee family_fee.yaml, edge Cases 1-8
REQ-027 Max copay cap 7% family_fee/rate.yaml top bracket ga_caps_family_fee family_fee.yaml Case 1
REQ-029 Fee waiver: minor parents <= 17 family_fee/minor_parent_age.yaml (17) ga_caps_family_fee family_fee.yaml Case 6, edge Case 7
REQ-030 Fee waiver: income <= 10% FPL family_fee/rate.yaml tier 1 (0%) ga_caps_family_fee family_fee.yaml Cases 2, 7
REQ-038 Income limits from SMI/FPL smi_rate/*.yaml + hhs_smi ga_caps_income_eligible income_eligible_edge.yaml Cases 6-8

Not Modeled

What Source Why Excluded
REQ-005: Immunization requirement Policy Manual Ch. 6 Administrative verification, not a financial variable
REQ-006: Proof of identity Policy Manual Ch. 6 Administrative verification, not a financial variable
REQ-007: Priority group membership Policy Manual Ch. 7 Complex categorical; group 13 is catch-all so effectively all eligible families qualify
REQ-028: Fee waiver for DFCS custody Policy Manual Ch. 10 Requires foster/custody input variable not in PolicyEngine
REQ-031: Registration fee ($65/child) Policy Manual Ch. 10 One-time administrative cost, not recurring subsidy
REQ-032: 12-month eligibility period Policy Manual Time-based administrative rule; PE models point-in-time eligibility
REQ-033: Fee protection (no mid-period increases) Policy Manual Time-based administrative rule; requires temporal state tracking
REQ-034: Graduated phase-out Policy Manual Captured by entry vs. ongoing thresholds (REQ-008/REQ-009)
REQ-035: Age transition timing (Monday after birthday) Policy Manual Ch. 10 Intra-month timing; PE uses annual/monthly periods
REQ-036: Disability negotiated rate Policy Manual Ch. 10 Case-by-case administrative decision, no standard formula
REQ-037: 15% QR discount removal Policy Manual Already removed (10/06/2025), before our effective date

Files Added

parameters/gov/states/ga/decal/caps/
  age_threshold/child.yaml
  age_threshold/disabled_child.yaml
  age_group/toddler_min.yaml
  age_group/preschool_min.yaml
  age_group/school_age_min.yaml
  activity_requirements/weekly_hours.yaml
  income/smi_rate/initial_eligibility.yaml
  income/smi_rate/ongoing_eligibility.yaml
  income/countable_income/sources.yaml
  family_fee/rate.yaml
  family_fee/minor_parent_age.yaml
  quality_rated/bonus_rate.yaml
  zone_1_counties.yaml
  zone_2_counties.yaml
  rates/center.yaml
  rates/family.yaml
  rates/informal.yaml

variables/gov/states/ga/decal/caps/
  ga_caps.py
  ga_caps_enrolled.py
  ga_child_care_subsidies.py
  eligibility/ga_caps_eligible.py
  eligibility/ga_caps_eligible_child.py
  eligibility/ga_caps_income_eligible.py
  eligibility/ga_caps_activity_eligible.py
  income/ga_caps_countable_income.py
  copay/ga_caps_family_fee.py
  payment/ga_caps_zone.py
  payment/ga_caps_provider_type.py
  payment/ga_caps_care_type.py
  payment/ga_caps_age_group.py
  payment/ga_caps_quality_rating.py
  payment/ga_caps_maximum_weekly_benefit.py

tests/policy/baseline/gov/states/ga/decal/caps/
  integration.yaml
  integration_edge.yaml
  ga_caps_edge.yaml
  eligibility/ga_caps_eligible.yaml
  eligibility/ga_caps_eligible_child.yaml
  eligibility/ga_caps_eligible_child_edge.yaml
  eligibility/ga_caps_income_eligible.yaml
  eligibility/ga_caps_income_eligible_edge.yaml
  eligibility/ga_caps_activity_eligible.yaml
  eligibility/ga_caps_activity_eligible_edge.yaml
  copay/ga_caps_family_fee.yaml
  copay/ga_caps_family_fee_edge.yaml
  payment/ga_caps_zone.yaml
  payment/ga_caps_age_group.yaml
  payment/ga_caps_maximum_weekly_benefit.yaml
  payment/ga_caps_maximum_weekly_benefit_edge.yaml

Verification TODO

  • Verify reimbursement rates against Appendix C (all 108 cells)
  • Verify income limits against Appendix A (50% SMI / 85% SMI thresholds)
  • Verify family fee tiers against Appendix D (4 FPL brackets)
  • Verify Quality Rated add-ons against CCDF Plan (5%/10% rates)
  • Verify zone county assignments against Appendix C (14 Zone 1 + 46 Zone 2 counties)
  • CI passes

Test Plan

  • 16 test files covering eligibility, income, fees, rates, zones, integration
  • CI passes

hua7450 and others added 4 commits April 8, 2026 23:36
Closes PolicyEngine#7957

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ine#7957)

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
Copy link
Copy Markdown

codecov bot commented Apr 9, 2026

Codecov Report

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

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #7958    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files            1        15    +14     
  Lines           17       250   +233     
==========================================
+ Hits            17       250   +233     
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 3 commits April 9, 2026 01:20
- Remove is_tax_unit_dependent from child eligibility (use age-based check only)
- Exclude children's income from countable income (CAPS Manual §8.4.3)
- Apply quality bonus to net base payment, not gross rate (CCDF Plan §4767)
- Correct quality bonus effective date to 2024-09-29

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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 Georgia CCAP (Childcare and Parent Services - CAPS)

1 participant