Skip to content

Add Arizona Child Care Assistance Program#8373

Draft
hua7450 wants to merge 4 commits into
PolicyEngine:mainfrom
hua7450:az-ccap
Draft

Add Arizona Child Care Assistance Program#8373
hua7450 wants to merge 4 commits into
PolicyEngine:mainfrom
hua7450:az-ccap

Conversation

@hua7450
Copy link
Copy Markdown
Collaborator

@hua7450 hua7450 commented May 21, 2026

Summary

Fixes #8370.

Adds Arizona's Child Care Assistance Program (CCAP), including:

  • Eligibility for Arizona families with an eligible child under age 13 who is a citizen or qualified noncitizen (CCDF, 45 CFR 98.20).
  • Initial and ongoing income eligibility using the DES FFY 2026 fee schedule.
  • az_ccap_enrolled to apply ongoing/redetermination eligibility through 85% SMI.
  • DES daily copays by fee level, with formula-based copay exemptions for employed Cash Assistance families, protective services, and foster care pathways.
  • A without-regard-to-income (categorical) eligibility pathway for the same families (R6-5-4914(A)).
  • DES reimbursement rates by provider type, child age group, quality status, formula-derived special-needs child status, and school-age season.
  • Monthly subsidy calculation as max(0, min(pre-subsidy childcare expenses, state maximum reimbursement) - copay).

Regulatory Authority

  • Arizona DES child care assistance eligibility page.
  • DES CCA-0229A, Child Care Assistance Gross Monthly Income Eligibility Chart and Fee Schedule FFY 2026.
  • DES CCA-1227A, Maximum Reimbursement Rates for Child Care, effective November 1, 2025.
  • Arizona Administrative Code Title 6, Chapter 5, Article 49.
  • DES Child Care Provider Registration Agreement CCA-1210B for special-needs definition and enhanced-rate criteria.

Income Eligibility Tests

  • Non-enrolled applicants use fee levels L1-L6, corresponding to the initial 165% FPL limit.
  • Enrolled recipients use az_ccap_enrolled and may qualify through fee level L7, corresponding to the ongoing 85% SMI limit.
  • Family sizes 1-12 use the DES FFY 2026 monthly gross income thresholds.

Eligible Activity

  • Employment (full or part-time) qualifies under R6-5-4912(A)(1).
  • Education and training qualify an adult only when paired with an average of at least 20 hours/week of work (R6-5-4912(A)(3)); education alone qualifies only teen parents under age 20 (R6-5-4912(A)(4)).
  • Inability to provide care (is_disabled) qualifies.

Income Deductions And Exemptions

  • Countable income uses PolicyEngine income variables matching R6-5-4914(F) countable income categories, including SSI, railroad retirement, and general assistance.
  • A minor student's earnings (wages and self-employment, including SSTB and farm) are excluded (R6-5-4914(G)(13)); lump-sum capital gains from property sales are excluded (R6-5-4914(G)(3)).
  • Child support paid for dependents residing outside the household is deducted (R6-5-4914(H)).
  • Countable income is rounded down to the whole dollar (R6-5-4914(I)).

Standards And Benefit Calculation

  • Copay is a daily per-child amount by fee level and attendance days.
  • az_ccap_categorically_eligible (used for both the income-test bypass and the copay exemption) is formula-based from is_tanf_enrolled combined with an employed head/spouse, receives_or_needs_protective_services, and is_in_foster_care.
  • az_ccap_special_needs_child is formula-based from eligible child status and is_disabled; the enhanced special-needs rate additionally requires a quality-enhanced (3-5 star / accredited) provider per CCA-1210B.
  • Reimbursement uses provider type, child age group, school-age season, quality enhanced rate (+40%), and the flat special-needs rate.

Requirements Coverage

  • Covered: Arizona residence, child age, citizenship/qualified-noncitizen status, activity (with the adult education work requirement), initial and ongoing income limits, countable income sources and deductions, family-size thresholds, fee levels, daily copays, formula-based copay exemptions, the categorical without-regard-to-income pathway, provider/age/season rates, quality rate, formula-based special-needs rate, final subsidy formula, and CCDF/state-benefit aggregation.
  • Out of scope by user decision: the CDA-only (+35%) enhanced rate and the TCC no-copay-beyond-third-child rule.
  • Not modeled: waiting lists, verification workflow, provider contract status, nonpayment sanctions, overpayments, appeals, exact administrative notices, time limits, gambling/lottery income (no PolicyEngine variable), and the Jobs/rehabilitation/court-ordered/shelter activity pathways (employment, education, and inability-to-care are modeled).

Modeling Limitations And Future Work

  • Historical backdating. Only the FFY 2026 schedule is modeled (income/fee effective 2025-10-01, rates effective 2025-11-01). As with the other state CCAP implementations, earlier periods back-extrapolate these values rather than using period-correct historical rates, so simulations before late 2025 are approximate. This program may need historical rate/threshold backdating in the future.
  • Summer rate test coverage. The school-age summer rate (May-July) is applied correctly inside the monthly calculation and flows through to the annual benefit, but it cannot be asserted in an isolated unit test: mid-year monthly test periods are disallowed (tests use January or whole-year periods) and currently trigger a policyengine-core cache-key issue. The annual total still exercises the seasonal split (verified: a 7-year-old attending a center 10 days/month reimburses $3,300 across 2026 = 9 school-year months at $25/day + 3 summer months at $35/day).

Files

  • policyengine_us/parameters/gov/states/az/hhs/ccap/...
  • policyengine_us/variables/gov/states/az/hhs/ccap/...
  • policyengine_us/variables/gov/states/az/hhs/az_child_care_subsidies.py
  • policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/...
  • policyengine_us/programs.yaml (CCDF state implementation registration)
  • changelog.d/8370.added.md

Validation

  • policyengine-core test policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap -c policyengine_us
  • make format

Known failing tests: none.

@hua7450 hua7450 force-pushed the az-ccap branch 2 times, most recently from a2a08c2 to 5ce3ba2 Compare May 21, 2026 21:28
@codecov
Copy link
Copy Markdown

codecov Bot commented May 21, 2026

Codecov Report

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

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #8373    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files            5        19    +14     
  Lines           62       268   +206     
==========================================
+ Hits            62       268   +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 3 commits June 1, 2026 14:52
Critical fixes:
- Correct copay daily rates at fee levels 2/3/4/6 to match CCA-0229AFY26
- Add categorical income-test bypass for foster/DCS/TANF families
  (R6-5-4914(A)) via new az_ccap_categorically_eligible
- Remove capital_gains from countable income (excluded by R6-5-4914(G)(3))
- Add is_ccdf_immigration_eligible_child to eligible-child (45 CFR 98.20)
- Correct regulation page anchors in parameters and variables

Should-address:
- Exclude minor-student earnings (R6-5-4914(G)(13)) and deduct child
  support paid (R6-5-4914(H)) from countable income
- Register Arizona in programs.yaml CCDF coverage and state_implementations
- Strip #page=1 anchors from the single-page CCA-1227A; improve citations
- Document special-needs rate gate, CDA tier (not modeled), age<13 limit,
  TCC copay rule (not modeled), and activity pathways
- Add test coverage: provider types, age groups, fee levels, direct unit
  tests, categorical bypass, and roll-up (21 -> 72 passing cases)

Remove working_references.md transcription.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…into az-ccap

# Conflicts:
#	policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml
#	policyengine_us/programs.yaml
- Count SSI, railroad retirement, and general assistance as countable
  income (R6-5-4914(F)(5),(8))
- Round countable income down to the whole dollar (R6-5-4914(I))
- Exclude all of a minor student's earnings, including SSTB and farm
  self-employment, not just wages (R6-5-4914(G)(13))
- Restrict the without-regard-to-income / fee-exempt categorical treatment
  for Cash Assistance families to those employed (R6-5-4914(A)(2))
- Require adults using education as their activity to work >=20 hours/week;
  education alone qualifies only teen parents under 20 (R6-5-4912(A)(3)-(4))
- Move the changelog fragment to a top-level path (changelog.d/8370.added.md)
- Add tests: SSI counted, farm-earnings exclusion, whole-dollar floor,
  teen-parent activity, corrected adult-student activity

Co-Authored-By: Claude Opus 4.8 (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.

Add Arizona Child Care Assistance Program

1 participant