From 04d7239c7155dd6efb418ae0dfcf414703904ed4 Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 21 May 2026 17:24:38 -0400 Subject: [PATCH] Add Arizona child care assistance program --- changelog.d/added/8370.md | 1 + .../hhs/ccdf/child_care_subsidy_programs.yaml | 1 + .../household/household_state_benefits.yaml | 4 + .../az/hhs/ccap/age_group/infant_max.yaml | 12 ++ .../az/hhs/ccap/age_group/preschool_max.yaml | 12 ++ .../az/hhs/ccap/age_group/toddler_max.yaml | 12 ++ .../gov/states/az/hhs/ccap/copay/daily.yaml | 29 ++++ .../hhs/ccap/eligibility/child_age_limit.yaml | 12 ++ .../ccap/income/countable_income/sources.yaml | 31 ++++ .../az/hhs/ccap/income/max_family_size.yaml | 12 ++ .../az/hhs/ccap/income/threshold/level_1.yaml | 39 ++++++ .../az/hhs/ccap/income/threshold/level_2.yaml | 39 ++++++ .../az/hhs/ccap/income/threshold/level_3.yaml | 39 ++++++ .../az/hhs/ccap/income/threshold/level_4.yaml | 39 ++++++ .../az/hhs/ccap/income/threshold/level_5.yaml | 39 ++++++ .../az/hhs/ccap/income/threshold/level_6.yaml | 39 ++++++ .../az/hhs/ccap/income/threshold/level_7.yaml | 39 ++++++ .../gov/states/az/hhs/ccap/rates/center.yaml | 21 +++ .../az/hhs/ccap/rates/certified_family.yaml | 21 +++ .../states/az/hhs/ccap/rates/group_home.yaml | 21 +++ .../az/hhs/ccap/rates/quality_multiplier.yaml | 14 ++ .../states/az/hhs/ccap/rates/relative.yaml | 21 +++ .../az/hhs/ccap/rates/special_needs.yaml | 15 ++ .../hhs/ccap/school_age_summer/end_month.yaml | 11 ++ .../ccap/school_age_summer/start_month.yaml | 12 ++ .../gov/states/az/hhs/ccap/az_ccap.yaml | 69 +++++++++ .../gov/states/az/hhs/ccap/az_ccap_copay.yaml | 66 +++++++++ .../az/hhs/ccap/az_ccap_daily_rate.yaml | 67 +++++++++ .../az/hhs/ccap/income/az_ccap_fee_level.yaml | 63 +++++++++ .../ccap/income/az_ccap_income_eligible.yaml | 65 +++++++++ .../gov/states/az/hhs/ccap/integration.yaml | 132 ++++++++++++++++++ .../states/az/hhs/az_child_care_subsidies.py | 11 ++ .../gov/states/az/hhs/ccap/az_ccap.py | 20 +++ .../states/az/hhs/ccap/az_ccap_age_group.py | 43 ++++++ .../gov/states/az/hhs/ccap/az_ccap_copay.py | 27 ++++ .../az/hhs/ccap/az_ccap_copay_exempt.py | 23 +++ .../states/az/hhs/ccap/az_ccap_daily_rate.py | 46 ++++++ .../states/az/hhs/ccap/az_ccap_enrolled.py | 9 ++ .../az/hhs/ccap/az_ccap_max_reimbursement.py | 19 +++ .../az/hhs/ccap/az_ccap_provider_type.py | 19 +++ .../ccap/az_ccap_quality_enhanced_provider.py | 13 ++ .../hhs/ccap/az_ccap_special_needs_child.py | 18 +++ .../eligibility/az_ccap_activity_eligible.py | 22 +++ .../hhs/ccap/eligibility/az_ccap_eligible.py | 17 +++ .../eligibility/az_ccap_eligible_child.py | 19 +++ .../ccap/income/az_ccap_countable_income.py | 12 ++ .../az/hhs/ccap/income/az_ccap_fee_level.py | 29 ++++ .../ccap/income/az_ccap_income_eligible.py | 15 ++ .../hhs/ccap/income/az_ccap_income_limit.py | 22 +++ sources/working_references.md | 94 +++++++++++++ 50 files changed, 1475 insertions(+) create mode 100644 changelog.d/added/8370.md create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/age_group/infant_max.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/age_group/preschool_max.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/age_group/toddler_max.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/copay/daily.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/eligibility/child_age_limit.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/income/countable_income/sources.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/income/max_family_size.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_1.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_2.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_3.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_4.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_5.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_6.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_7.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/rates/center.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/rates/certified_family.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/rates/group_home.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/rates/quality_multiplier.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/rates/relative.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/rates/special_needs.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/school_age_summer/end_month.yaml create mode 100644 policyengine_us/parameters/gov/states/az/hhs/ccap/school_age_summer/start_month.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/az_ccap.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/az_ccap_copay.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/az_ccap_daily_rate.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/income/az_ccap_fee_level.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/income/az_ccap_income_eligible.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/integration.yaml create mode 100644 policyengine_us/variables/gov/states/az/hhs/az_child_care_subsidies.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_age_group.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_copay.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_copay_exempt.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_daily_rate.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_enrolled.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_max_reimbursement.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_provider_type.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_quality_enhanced_provider.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_special_needs_child.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/eligibility/az_ccap_activity_eligible.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/eligibility/az_ccap_eligible.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/eligibility/az_ccap_eligible_child.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_countable_income.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_fee_level.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_income_eligible.py create mode 100644 policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_income_limit.py create mode 100644 sources/working_references.md diff --git a/changelog.d/added/8370.md b/changelog.d/added/8370.md new file mode 100644 index 00000000000..00fbfb6aa6a --- /dev/null +++ b/changelog.d/added/8370.md @@ -0,0 +1 @@ +Add the Arizona Child Care Assistance Program. diff --git a/policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml b/policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml index ed0f0a42c7d..6f17a569fb4 100644 --- a/policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml +++ b/policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml @@ -2,6 +2,7 @@ description: The federal government counts these state programs as child care su values: 2021-01-01: - ak_child_care_subsidies # Alaska Child Care Assistance Program (PASS) + - az_child_care_subsidies # Arizona Child Care Assistance Program - ca_child_care_subsidies # California Child Care - co_child_care_subsidies # Colorado Child Care Assistance Program - ct_child_care_subsidies # Connecticut Care 4 Kids diff --git a/policyengine_us/parameters/gov/household/household_state_benefits.yaml b/policyengine_us/parameters/gov/household/household_state_benefits.yaml index b74241a36b5..d76c6319ef2 100644 --- a/policyengine_us/parameters/gov/household/household_state_benefits.yaml +++ b/policyengine_us/parameters/gov/household/household_state_benefits.yaml @@ -34,6 +34,8 @@ values: - al_ssp # Alaska benefits - ak_ssp + # Arizona benefits + - az_child_care_subsidies # Florida benefits - fl_oss # Idaho benefits @@ -101,6 +103,8 @@ values: - al_ssp # Alaska benefits - ak_ssp + # Arizona benefits + - az_child_care_subsidies # Florida benefits - fl_oss # Idaho benefits diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/age_group/infant_max.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/age_group/infant_max.yaml new file mode 100644 index 00000000000..4413a2007a8 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/age_group/infant_max.yaml @@ -0,0 +1,12 @@ +description: Arizona limits child age to this threshold under the Child Care Assistance Program. +values: + 2025-11-01: 1 + +metadata: + unit: year + period: year + label: Arizona CCAP infant age group maximum age + reference: + - title: Arizona DES Maximum Reimbursement Rates for Child Care + href: https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/age_group/preschool_max.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/age_group/preschool_max.yaml new file mode 100644 index 00000000000..5ced7b8f453 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/age_group/preschool_max.yaml @@ -0,0 +1,12 @@ +description: Arizona limits child age to this threshold under the Child Care Assistance Program. +values: + 2025-11-01: 6 + +metadata: + unit: year + period: year + label: Arizona CCAP age 3-5 age group maximum age + reference: + - title: Arizona DES Maximum Reimbursement Rates for Child Care + href: https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/age_group/toddler_max.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/age_group/toddler_max.yaml new file mode 100644 index 00000000000..85d6cd56d7e --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/age_group/toddler_max.yaml @@ -0,0 +1,12 @@ +description: Arizona limits child age to this threshold under the Child Care Assistance Program. +values: + 2025-11-01: 3 + +metadata: + unit: year + period: year + label: Arizona CCAP age 1-2 age group maximum age + reference: + - title: Arizona DES Maximum Reimbursement Rates for Child Care + href: https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/copay/daily.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/copay/daily.yaml new file mode 100644 index 00000000000..b9ea117a8ce --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/copay/daily.yaml @@ -0,0 +1,29 @@ +description: Arizona provides this amount as the daily copay under the Child Care Assistance Program. +metadata: + unit: currency-USD + period: day + label: Arizona CCAP daily copay by fee level + breakdown: + - range(0,8) + breakdown_labels: + - Fee level + reference: + - title: Arizona DES Child Care Assistance Gross Monthly Income Eligibility Chart and Fee Schedule FFY 2026 + href: https://des.az.gov/sites/default/files/dl/CCA-0229AFY26.pdf#page=1 +0: + 2025-10-01: 0 +1: + 2025-10-01: 0.5 +2: + 2025-10-01: 0.5 +3: + 2025-10-01: 0.5 +4: + 2025-10-01: 1 +5: + 2025-10-01: 1.5 +6: + 2025-10-01: 2.5 +7: + 2025-10-01: 2.5 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/eligibility/child_age_limit.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/eligibility/child_age_limit.yaml new file mode 100644 index 00000000000..aca899a474b --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/eligibility/child_age_limit.yaml @@ -0,0 +1,12 @@ +description: Arizona limits child age to this threshold under the Child Care Assistance Program. +values: + 2025-10-01: 13 + +metadata: + unit: year + period: year + label: Arizona CCAP child age limit + reference: + - title: Arizona DES How to Apply for Child Care Assistance + href: https://des.az.gov/services/child-and-family/child-care/how-apply-for-child-care-assistance + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/income/countable_income/sources.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/countable_income/sources.yaml new file mode 100644 index 00000000000..f1dc2223b58 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/countable_income/sources.yaml @@ -0,0 +1,31 @@ +description: Arizona uses these income sources as countable income under the Child Care Assistance Program. +values: + 2025-10-01: + - employment_income + - self_employment_income + - sstb_self_employment_income + - farm_operations_income + - unemployment_compensation + - workers_compensation + - child_support_received + - alimony_income + - veterans_benefits + - pension_income + - retirement_distributions + - social_security + - disability_benefits + - interest_income + - dividend_income + - rental_income + - capital_gains + +metadata: + unit: list + period: year + label: Arizona CCAP countable income sources + reference: + - title: Arizona Administrative Code R6-5-4914 Income Eligibility + href: https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=28 + - title: Arizona Administrative Code R6-5-4914 Excluded Income + href: https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=31 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/income/max_family_size.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/max_family_size.yaml new file mode 100644 index 00000000000..06ef17aee17 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/max_family_size.yaml @@ -0,0 +1,12 @@ +description: Arizona limits family size to this threshold under the Child Care Assistance Program. +values: + 2025-10-01: 12 + +metadata: + unit: person + period: year + label: Arizona CCAP maximum income table family size + reference: + - title: Arizona DES Child Care Assistance Gross Monthly Income Eligibility Chart and Fee Schedule FFY 2026 + href: https://des.az.gov/sites/default/files/dl/CCA-0229AFY26.pdf#page=1 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_1.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_1.yaml new file mode 100644 index 00000000000..f3bcb14e926 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_1.yaml @@ -0,0 +1,39 @@ +description: Arizona limits gross income to this amount under the Child Care Assistance Program. +metadata: + unit: currency-USD + period: month + label: Arizona CCAP fee level 1 income threshold + breakdown: + - range(0,13) + breakdown_labels: + - Family size + reference: + - title: Arizona DES Child Care Assistance Gross Monthly Income Eligibility Chart and Fee Schedule FFY 2026 + href: https://des.az.gov/sites/default/files/dl/CCA-0229AFY26.pdf#page=1 +0: + 2025-10-01: 0 +1: + 2025-10-01: 1_110 +2: + 2025-10-01: 1_499 +3: + 2025-10-01: 1_888 +4: + 2025-10-01: 2_278 +5: + 2025-10-01: 2_668 +6: + 2025-10-01: 3_057 +7: + 2025-10-01: 3_447 +8: + 2025-10-01: 3_837 +9: + 2025-10-01: 4_226 +10: + 2025-10-01: 4_616 +11: + 2025-10-01: 5_005 +12: + 2025-10-01: 5_395 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_2.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_2.yaml new file mode 100644 index 00000000000..787b1870932 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_2.yaml @@ -0,0 +1,39 @@ +description: Arizona limits gross income to this amount under the Child Care Assistance Program. +metadata: + unit: currency-USD + period: month + label: Arizona CCAP fee level 2 income threshold + breakdown: + - range(0,13) + breakdown_labels: + - Family size + reference: + - title: Arizona DES Child Care Assistance Gross Monthly Income Eligibility Chart and Fee Schedule FFY 2026 + href: https://des.az.gov/sites/default/files/dl/CCA-0229AFY26.pdf#page=1 +0: + 2025-10-01: 0 +1: + 2025-10-01: 1_305 +2: + 2025-10-01: 1_763 +3: + 2025-10-01: 2_221 +4: + 2025-10-01: 2_680 +5: + 2025-10-01: 3_138 +6: + 2025-10-01: 3_596 +7: + 2025-10-01: 4_055 +8: + 2025-10-01: 4_513 +9: + 2025-10-01: 4_971 +10: + 2025-10-01: 5_430 +11: + 2025-10-01: 5_888 +12: + 2025-10-01: 6_346 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_3.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_3.yaml new file mode 100644 index 00000000000..62f2d0f42d1 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_3.yaml @@ -0,0 +1,39 @@ +description: Arizona limits gross income to this amount under the Child Care Assistance Program. +metadata: + unit: currency-USD + period: month + label: Arizona CCAP fee level 3 income threshold + breakdown: + - range(0,13) + breakdown_labels: + - Family size + reference: + - title: Arizona DES Child Care Assistance Gross Monthly Income Eligibility Chart and Fee Schedule FFY 2026 + href: https://des.az.gov/sites/default/files/dl/CCA-0229AFY26.pdf#page=1 +0: + 2025-10-01: 0 +1: + 2025-10-01: 1_762 +2: + 2025-10-01: 2_381 +3: + 2025-10-01: 2_999 +4: + 2025-10-01: 3_618 +5: + 2025-10-01: 4_237 +6: + 2025-10-01: 4_855 +7: + 2025-10-01: 5_475 +8: + 2025-10-01: 6_093 +9: + 2025-10-01: 6_711 +10: + 2025-10-01: 7_331 +11: + 2025-10-01: 7_949 +12: + 2025-10-01: 8_568 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_4.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_4.yaml new file mode 100644 index 00000000000..f6fd19ee667 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_4.yaml @@ -0,0 +1,39 @@ +description: Arizona limits gross income to this amount under the Child Care Assistance Program. +metadata: + unit: currency-USD + period: month + label: Arizona CCAP fee level 4 income threshold + breakdown: + - range(0,13) + breakdown_labels: + - Family size + reference: + - title: Arizona DES Child Care Assistance Gross Monthly Income Eligibility Chart and Fee Schedule FFY 2026 + href: https://des.az.gov/sites/default/files/dl/CCA-0229AFY26.pdf#page=1 +0: + 2025-10-01: 0 +1: + 2025-10-01: 1_893 +2: + 2025-10-01: 2_557 +3: + 2025-10-01: 3_221 +4: + 2025-10-01: 3_886 +5: + 2025-10-01: 4_551 +6: + 2025-10-01: 5_215 +7: + 2025-10-01: 5_880 +8: + 2025-10-01: 6_544 +9: + 2025-10-01: 7_208 +10: + 2025-10-01: 7_874 +11: + 2025-10-01: 8_538 +12: + 2025-10-01: 9_202 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_5.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_5.yaml new file mode 100644 index 00000000000..3f5bba0e772 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_5.yaml @@ -0,0 +1,39 @@ +description: Arizona limits gross income to this amount under the Child Care Assistance Program. +metadata: + unit: currency-USD + period: month + label: Arizona CCAP fee level 5 income threshold + breakdown: + - range(0,13) + breakdown_labels: + - Family size + reference: + - title: Arizona DES Child Care Assistance Gross Monthly Income Eligibility Chart and Fee Schedule FFY 2026 + href: https://des.az.gov/sites/default/files/dl/CCA-0229AFY26.pdf#page=1 +0: + 2025-10-01: 0 +1: + 2025-10-01: 2_023 +2: + 2025-10-01: 2_733 +3: + 2025-10-01: 3_443 +4: + 2025-10-01: 4_154 +5: + 2025-10-01: 4_864 +6: + 2025-10-01: 5_574 +7: + 2025-10-01: 6_286 +8: + 2025-10-01: 6_996 +9: + 2025-10-01: 7_706 +10: + 2025-10-01: 8_417 +11: + 2025-10-01: 9_127 +12: + 2025-10-01: 9_837 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_6.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_6.yaml new file mode 100644 index 00000000000..e0ca4e45098 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_6.yaml @@ -0,0 +1,39 @@ +description: Arizona limits gross income to this amount under the Child Care Assistance Program. +metadata: + unit: currency-USD + period: month + label: Arizona CCAP fee level 6 income threshold + breakdown: + - range(0,13) + breakdown_labels: + - Family size + reference: + - title: Arizona DES Child Care Assistance Gross Monthly Income Eligibility Chart and Fee Schedule FFY 2026 + href: https://des.az.gov/sites/default/files/dl/CCA-0229AFY26.pdf#page=1 +0: + 2025-10-01: 0 +1: + 2025-10-01: 2_154 +2: + 2025-10-01: 2_909 +3: + 2025-10-01: 3_665 +4: + 2025-10-01: 4_422 +5: + 2025-10-01: 5_178 +6: + 2025-10-01: 5_934 +7: + 2025-10-01: 6_691 +8: + 2025-10-01: 7_447 +9: + 2025-10-01: 8_203 +10: + 2025-10-01: 8_960 +11: + 2025-10-01: 9_716 +12: + 2025-10-01: 10_471 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_7.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_7.yaml new file mode 100644 index 00000000000..d536774e5bf --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/income/threshold/level_7.yaml @@ -0,0 +1,39 @@ +description: Arizona limits gross income to this amount under the Child Care Assistance Program. +metadata: + unit: currency-USD + period: month + label: Arizona CCAP fee level 7 income threshold + breakdown: + - range(0,13) + breakdown_labels: + - Family size + reference: + - title: Arizona DES Child Care Assistance Gross Monthly Income Eligibility Chart and Fee Schedule FFY 2026 + href: https://des.az.gov/sites/default/files/dl/CCA-0229AFY26.pdf#page=1 +0: + 2025-10-01: 0 +1: + 2025-10-01: 3_978 +2: + 2025-10-01: 5_202 +3: + 2025-10-01: 6_426 +4: + 2025-10-01: 7_649 +5: + 2025-10-01: 8_874 +6: + 2025-10-01: 10_098 +7: + 2025-10-01: 10_327 +8: + 2025-10-01: 10_557 +9: + 2025-10-01: 10_786 +10: + 2025-10-01: 11_015 +11: + 2025-10-01: 11_244 +12: + 2025-10-01: 11_474 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/center.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/center.yaml new file mode 100644 index 00000000000..74eb8b26658 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/center.yaml @@ -0,0 +1,21 @@ +description: Arizona provides this amount as the daily reimbursement rate under the Child Care Assistance Program. +metadata: + unit: currency-USD + period: day + label: Arizona CCAP child care center daily reimbursement rate + breakdown: + - az_ccap_age_group + reference: + - title: Arizona DES Maximum Reimbursement Rates for Child Care + href: https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1 +INFANT: + 2025-11-01: 64.15 +TODDLER: + 2025-11-01: 48.70 +PRESCHOOL: + 2025-11-01: 42 +SCHOOL_AGE_SUMMER: + 2025-11-01: 35 +SCHOOL_AGE_SCHOOL_YEAR: + 2025-11-01: 25 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/certified_family.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/certified_family.yaml new file mode 100644 index 00000000000..37546899a3d --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/certified_family.yaml @@ -0,0 +1,21 @@ +description: Arizona provides this amount as the daily reimbursement rate under the Child Care Assistance Program. +metadata: + unit: currency-USD + period: day + label: Arizona CCAP certified family or in-home daily reimbursement rate + breakdown: + - az_ccap_age_group + reference: + - title: Arizona DES Maximum Reimbursement Rates for Child Care + href: https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1 +INFANT: + 2025-11-01: 40 +TODDLER: + 2025-11-01: 30 +PRESCHOOL: + 2025-11-01: 30 +SCHOOL_AGE_SUMMER: + 2025-11-01: 25 +SCHOOL_AGE_SCHOOL_YEAR: + 2025-11-01: 20 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/group_home.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/group_home.yaml new file mode 100644 index 00000000000..78eabb7ee9d --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/group_home.yaml @@ -0,0 +1,21 @@ +description: Arizona provides this amount as the daily reimbursement rate under the Child Care Assistance Program. +metadata: + unit: currency-USD + period: day + label: Arizona CCAP group home daily reimbursement rate + breakdown: + - az_ccap_age_group + reference: + - title: Arizona DES Maximum Reimbursement Rates for Child Care + href: https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1 +INFANT: + 2025-11-01: 40 +TODDLER: + 2025-11-01: 36 +PRESCHOOL: + 2025-11-01: 35 +SCHOOL_AGE_SUMMER: + 2025-11-01: 30 +SCHOOL_AGE_SCHOOL_YEAR: + 2025-11-01: 21 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/quality_multiplier.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/quality_multiplier.yaml new file mode 100644 index 00000000000..1dcb963de73 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/quality_multiplier.yaml @@ -0,0 +1,14 @@ +description: Arizona uses this share to increase provider rates under the Child Care Assistance Program. +values: + 2025-11-01: 1.4 + +metadata: + unit: /1 + period: year + label: Arizona CCAP quality enhanced rate multiplier + reference: + - title: Arizona DES Contracted Child Care Centers and Group Homes Rates FAQs + href: https://des.az.gov/services/child-and-family/child-care/des-contracted-child-care-provider-resources + - title: Arizona DES Maximum Reimbursement Rates for Child Care + href: https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/relative.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/relative.yaml new file mode 100644 index 00000000000..e24622628a5 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/relative.yaml @@ -0,0 +1,21 @@ +description: Arizona provides this amount as the daily reimbursement rate under the Child Care Assistance Program. +metadata: + unit: currency-USD + period: day + label: Arizona CCAP non-certified relative daily reimbursement rate + breakdown: + - az_ccap_age_group + reference: + - title: Arizona DES Maximum Reimbursement Rates for Child Care + href: https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1 +INFANT: + 2025-11-01: 15 +TODDLER: + 2025-11-01: 15 +PRESCHOOL: + 2025-11-01: 15 +SCHOOL_AGE_SUMMER: + 2025-11-01: 15 +SCHOOL_AGE_SCHOOL_YEAR: + 2025-11-01: 15 + diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/special_needs.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/special_needs.yaml new file mode 100644 index 00000000000..dfacc162637 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/rates/special_needs.yaml @@ -0,0 +1,15 @@ +description: Arizona provides this amount as the daily special needs reimbursement rate under the Child Care Assistance Program. +values: + 2025-11-01: 89.81 + +metadata: + unit: currency-USD + period: day + label: Arizona CCAP special needs daily reimbursement rate + reference: + - title: Arizona DES Maximum Reimbursement Rates for Child Care + href: https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1 + - title: Arizona DES Child Care Provider Registration Agreement + href: https://des.az.gov/sites/default/files/dl/CCA-1210B.pdf#page=5 + - title: Arizona DES Child Care Provider Registration Agreement, Children with Special Needs + href: https://des.az.gov/sites/default/files/dl/CCA-1210B.pdf#page=13 diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/school_age_summer/end_month.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/school_age_summer/end_month.yaml new file mode 100644 index 00000000000..7aad7444043 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/school_age_summer/end_month.yaml @@ -0,0 +1,11 @@ +description: Arizona sets this threshold as the end month under the Child Care Assistance Program. +values: + 2025-11-01: 7 + +metadata: + unit: month + period: year + label: Arizona CCAP school-age summer rate end month + reference: + - title: Arizona DES Maximum Reimbursement Rates for Child Care + href: https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1 diff --git a/policyengine_us/parameters/gov/states/az/hhs/ccap/school_age_summer/start_month.yaml b/policyengine_us/parameters/gov/states/az/hhs/ccap/school_age_summer/start_month.yaml new file mode 100644 index 00000000000..7d412f23734 --- /dev/null +++ b/policyengine_us/parameters/gov/states/az/hhs/ccap/school_age_summer/start_month.yaml @@ -0,0 +1,12 @@ +description: Arizona sets this threshold as the start month under the Child Care Assistance Program. +values: + 2025-11-01: 5 + +metadata: + unit: month + period: year + label: Arizona CCAP school-age summer rate start month + reference: + - title: Arizona DES Maximum Reimbursement Rates for Child Care + href: https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1 + diff --git a/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/az_ccap.yaml b/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/az_ccap.yaml new file mode 100644 index 00000000000..91f4f4e217d --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/az_ccap.yaml @@ -0,0 +1,69 @@ +- name: Case 1, center infant benefit with copay. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + person2: + age: 0 + childcare_attending_days_per_month: 20 + az_ccap_provider_type: CENTER + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_pre_subsidy_childcare_expenses: 20_000 + households: + household: + members: [person1, person2] + state_code: AZ + output: + # min($20,000 / 12, $64.15 * 20) - ($0.50 * 20) = $1,273. + az_ccap: 1_273 + +- name: Case 2, copay exempt family receives full capped reimbursement. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + person2: + age: 0 + childcare_attending_days_per_month: 20 + az_ccap_provider_type: CENTER + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_pre_subsidy_childcare_expenses: 20_000 + is_tanf_enrolled: true + households: + household: + members: [person1, person2] + state_code: AZ + output: + az_ccap_copay_exempt: true + az_ccap: 1_283 + +- name: Case 3, expenses below reimbursement cap limit the benefit. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + person2: + age: 4 + childcare_attending_days_per_month: 20 + az_ccap_provider_type: CENTER + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_pre_subsidy_childcare_expenses: 6_000 + households: + household: + members: [person1, person2] + state_code: AZ + output: + # min($6,000 / 12, $42 * 20) - ($0.50 * 20) = $490. + az_ccap: 490 diff --git a/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/az_ccap_copay.yaml b/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/az_ccap_copay.yaml new file mode 100644 index 00000000000..bc19578565b --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/az_ccap_copay.yaml @@ -0,0 +1,66 @@ +- name: Case 1, fee level 1 copay for one child. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + person2: + age: 4 + childcare_attending_days_per_month: 20 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: AZ + output: + az_ccap_copay: 10 + +- name: Case 2, fee level 5 copay for one child. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 48_000 + person2: + age: 4 + childcare_attending_days_per_month: 20 + person3: + age: 2 + person4: + age: 1 + spm_units: + spm_unit: + members: [person1, person2, person3, person4] + households: + household: + members: [person1, person2, person3, person4] + state_code: AZ + output: + az_ccap_copay: 30 + +- name: Case 3, copay exempt family has no copay. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + person2: + age: 4 + childcare_attending_days_per_month: 20 + receives_or_needs_protective_services: true + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: AZ + output: + az_ccap_copay_exempt: true + az_ccap_copay: 0 diff --git a/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/az_ccap_daily_rate.yaml b/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/az_ccap_daily_rate.yaml new file mode 100644 index 00000000000..428d18ba9b3 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/az_ccap_daily_rate.yaml @@ -0,0 +1,67 @@ +- name: Case 1, center infant base rate. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 0 + childcare_attending_days_per_month: 20 + az_ccap_provider_type: CENTER + households: + household: + members: [person1] + state_code: AZ + output: + az_ccap_daily_rate: 64.15 + +- name: Case 2, center preschool quality enhanced rate. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 4 + childcare_attending_days_per_month: 20 + az_ccap_provider_type: CENTER + az_ccap_quality_enhanced_provider: true + households: + household: + members: [person1] + state_code: AZ + output: + az_ccap_daily_rate: 58.80 + +- name: Case 3, special needs rate for a quality provider. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 4 + childcare_attending_days_per_month: 20 + az_ccap_provider_type: CENTER + az_ccap_quality_enhanced_provider: true + is_disabled: true + households: + household: + members: [person1] + state_code: AZ + output: + az_ccap_special_needs_child: true + az_ccap_daily_rate: 89.81 + +- name: Case 4, relative provider rate. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 6 + childcare_attending_days_per_month: 20 + az_ccap_provider_type: RELATIVE + households: + household: + members: [person1] + state_code: AZ + output: + az_ccap_daily_rate: 15 diff --git a/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/income/az_ccap_fee_level.yaml b/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/income/az_ccap_fee_level.yaml new file mode 100644 index 00000000000..bee8862c258 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/income/az_ccap_fee_level.yaml @@ -0,0 +1,63 @@ +- name: Case 1, family of two at fee level 3. + period: 2026-01 + input: + people: + person1: + age: 30 + employment_income: 24_000 + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: AZ + output: + az_ccap_fee_level: 3 + +- name: Case 2, family of four at fee level 5. + period: 2026-01 + input: + people: + person1: + age: 30 + employment_income: 48_000 + person2: + age: 4 + person3: + age: 2 + person4: + age: 1 + spm_units: + spm_unit: + members: [person1, person2, person3, person4] + households: + household: + members: [person1, person2, person3, person4] + state_code: AZ + output: + az_ccap_fee_level: 5 + +- name: Case 3, enrolled family can reach fee level 7. + period: 2026-01 + input: + people: + person1: + age: 30 + employment_income: 44_000 + person2: + age: 4 + person3: + age: 2 + spm_units: + spm_unit: + members: [person1, person2, person3] + az_ccap_enrolled: true + households: + household: + members: [person1, person2, person3] + state_code: AZ + output: + az_ccap_fee_level: 7 diff --git a/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/income/az_ccap_income_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/income/az_ccap_income_eligible.yaml new file mode 100644 index 00000000000..f398be8c779 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/income/az_ccap_income_eligible.yaml @@ -0,0 +1,65 @@ +- name: Case 1, non-enrolled family at initial threshold is income eligible. + period: 2026-01 + input: + people: + person1: + age: 30 + employment_income: 43_980 + person2: + age: 4 + person3: + age: 2 + spm_units: + spm_unit: + members: [person1, person2, person3] + households: + household: + members: [person1, person2, person3] + state_code: AZ + output: + # $43,980/year = $3,665/month, the family-size-3 initial threshold. + az_ccap_income_eligible: true + +- name: Case 2, non-enrolled family above initial threshold is not income eligible. + period: 2026-01 + input: + people: + person1: + age: 30 + employment_income: 44_000 + person2: + age: 4 + person3: + age: 2 + spm_units: + spm_unit: + members: [person1, person2, person3] + households: + household: + members: [person1, person2, person3] + state_code: AZ + output: + az_ccap_income_eligible: false + +- name: Case 3, enrolled family above initial threshold but below ongoing threshold is income eligible. + period: 2026-01 + input: + people: + person1: + age: 30 + employment_income: 44_000 + person2: + age: 4 + person3: + age: 2 + spm_units: + spm_unit: + members: [person1, person2, person3] + az_ccap_enrolled: true + households: + household: + members: [person1, person2, person3] + state_code: AZ + output: + az_ccap_income_eligible: true + diff --git a/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/integration.yaml new file mode 100644 index 00000000000..79a6ba92f91 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/az/hhs/ccap/integration.yaml @@ -0,0 +1,132 @@ +- name: Case 1, zero-income family with infant in center care. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + person2: + age: 0 + childcare_attending_days_per_month: 20 + az_ccap_provider_type: CENTER + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_pre_subsidy_childcare_expenses: 20_000 + households: + household: + members: [person1, person2] + state_code: AZ + output: + az_ccap_eligible_child: [false, true] + az_ccap_income_eligible: true + az_ccap_eligible: true + az_ccap_copay: 10 + az_ccap: 1_273 + +- name: Case 2, non-enrolled family above initial income limit is ineligible. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 44_000 + person2: + age: 4 + childcare_attending_days_per_month: 20 + az_ccap_provider_type: CENTER + person3: + age: 2 + spm_units: + spm_unit: + members: [person1, person2, person3] + spm_unit_pre_subsidy_childcare_expenses: 20_000 + households: + household: + members: [person1, person2, person3] + state_code: AZ + output: + az_ccap_income_eligible: false + az_ccap_eligible: false + az_ccap: 0 + +- name: Case 3, enrolled family above initial income limit remains eligible. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 44_000 + person2: + age: 4 + childcare_attending_days_per_month: 20 + az_ccap_provider_type: CENTER + person3: + age: 2 + spm_units: + spm_unit: + members: [person1, person2, person3] + spm_unit_pre_subsidy_childcare_expenses: 20_000 + az_ccap_enrolled: true + households: + household: + members: [person1, person2, person3] + state_code: AZ + output: + az_ccap_income_eligible: true + az_ccap_fee_level: 7 + az_ccap_eligible: true + # min($20,000 / 12, $42 * 20) - ($2.50 * 20) = $790. + az_ccap: 790 + +- name: Case 4, quality enhanced provider increases the reimbursement cap. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + person2: + age: 4 + childcare_attending_days_per_month: 20 + az_ccap_provider_type: CENTER + az_ccap_quality_enhanced_provider: true + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_pre_subsidy_childcare_expenses: 20_000 + households: + household: + members: [person1, person2] + state_code: AZ + output: + # min($20,000 / 12, $58.80 * 20) - ($0.50 * 20) = $1,166. + az_ccap: 1_166 + +- name: Case 5, special-needs child with quality provider receives the special-needs rate. + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + person2: + age: 4 + childcare_attending_days_per_month: 20 + az_ccap_provider_type: CENTER + az_ccap_quality_enhanced_provider: true + is_disabled: true + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_pre_subsidy_childcare_expenses: 24_000 + households: + household: + members: [person1, person2] + state_code: AZ + output: + az_ccap_special_needs_child: [false, true] + # min($24,000 / 12, $89.81 * 20) - ($0.50 * 20) = $1,786.20. + az_ccap: 1_786.20 diff --git a/policyengine_us/variables/gov/states/az/hhs/az_child_care_subsidies.py b/policyengine_us/variables/gov/states/az/hhs/az_child_care_subsidies.py new file mode 100644 index 00000000000..6cacebc83da --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/az_child_care_subsidies.py @@ -0,0 +1,11 @@ +from policyengine_us.model_api import * + + +class az_child_care_subsidies(Variable): + value_type = float + entity = SPMUnit + unit = USD + label = "Arizona child care subsidies" + definition_period = YEAR + defined_for = StateCode.AZ + adds = ["az_ccap"] diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap.py b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap.py new file mode 100644 index 00000000000..7a70e08ada7 --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap.py @@ -0,0 +1,20 @@ +from policyengine_us.model_api import * + + +class az_ccap(Variable): + value_type = float + entity = SPMUnit + unit = USD + label = "Arizona Child Care Assistance Program benefit" + definition_period = MONTH + defined_for = "az_ccap_eligible" + reference = ( + "https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1", + "https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=39", + ) + + def formula(spm_unit, period): + max_reimbursement = add(spm_unit, period, ["az_ccap_max_reimbursement"]) + childcare_expenses = spm_unit("spm_unit_pre_subsidy_childcare_expenses", period) + copay = spm_unit("az_ccap_copay", period) + return max_(min_(childcare_expenses, max_reimbursement) - copay, 0) diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_age_group.py b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_age_group.py new file mode 100644 index 00000000000..ace259da181 --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_age_group.py @@ -0,0 +1,43 @@ +from policyengine_us.model_api import * + + +class AZCCAPAgeGroup(Enum): + INFANT = "Under age 1" + TODDLER = "Age 1 or 2" + PRESCHOOL = "Age 3 through 5" + SCHOOL_AGE_SUMMER = "Age 6 through 12, May through July" + SCHOOL_AGE_SCHOOL_YEAR = "Age 6 through 12, August through April" + + +class az_ccap_age_group(Variable): + value_type = Enum + entity = Person + possible_values = AZCCAPAgeGroup + default_value = AZCCAPAgeGroup.PRESCHOOL + definition_period = MONTH + label = "Arizona Child Care Assistance Program age group" + defined_for = StateCode.AZ + reference = "https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1" + + def formula(person, period, parameters): + p = parameters(period).gov.states.az.hhs.ccap + age = person("age", period.this_year) + month = period.start.month + is_summer = (month >= p.school_age_summer.start_month) & ( + month <= p.school_age_summer.end_month + ) + return select( + [ + age < p.age_group.infant_max, + age < p.age_group.toddler_max, + age < p.age_group.preschool_max, + is_summer, + ], + [ + AZCCAPAgeGroup.INFANT, + AZCCAPAgeGroup.TODDLER, + AZCCAPAgeGroup.PRESCHOOL, + AZCCAPAgeGroup.SCHOOL_AGE_SUMMER, + ], + default=AZCCAPAgeGroup.SCHOOL_AGE_SCHOOL_YEAR, + ) diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_copay.py b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_copay.py new file mode 100644 index 00000000000..21daef00478 --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_copay.py @@ -0,0 +1,27 @@ +from policyengine_us.model_api import * + + +class az_ccap_copay(Variable): + value_type = float + entity = SPMUnit + unit = USD + label = "Arizona Child Care Assistance Program copay" + definition_period = MONTH + defined_for = StateCode.AZ + reference = ( + "https://des.az.gov/sites/default/files/dl/CCA-0229AFY26.pdf#page=1", + "https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=33", + ) + + def formula(spm_unit, period, parameters): + p = parameters(period).gov.states.az.hhs.ccap.copay + person = spm_unit.members + fee_level = spm_unit("az_ccap_fee_level", period) + eligible_child = person("az_ccap_eligible_child", period) + attending_days = person("childcare_attending_days_per_month", period.this_year) + per_child_copay = p.daily[fee_level] * attending_days * eligible_child + return where( + spm_unit("az_ccap_copay_exempt", period), + 0, + spm_unit.sum(per_child_copay), + ) diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_copay_exempt.py b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_copay_exempt.py new file mode 100644 index 00000000000..b504b522d4a --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_copay_exempt.py @@ -0,0 +1,23 @@ +from policyengine_us.model_api import * + + +class az_ccap_copay_exempt(Variable): + value_type = bool + entity = SPMUnit + label = "Arizona Child Care Assistance Program copay exempt" + definition_period = MONTH + defined_for = StateCode.AZ + reference = ( + "https://des.az.gov/sites/default/files/dl/CCA-0229AFY26.pdf#page=1", + "https://des.az.gov/services/child-and-family/child-care/how-apply-for-child-care-assistance", + "https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=33", + ) + + def formula(spm_unit, period, parameters): + person = spm_unit.members + tanf_enrolled = spm_unit("is_tanf_enrolled", period) + protective_services = spm_unit.any( + person("receives_or_needs_protective_services", period.this_year) + ) + foster_care = spm_unit.any(person("is_in_foster_care", period)) + return tanf_enrolled | protective_services | foster_care diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_daily_rate.py b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_daily_rate.py new file mode 100644 index 00000000000..6d203d24835 --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_daily_rate.py @@ -0,0 +1,46 @@ +from policyengine_us.model_api import * +from policyengine_us.variables.gov.states.az.hhs.ccap.az_ccap_provider_type import ( + AZCCAPProviderType, +) + + +class az_ccap_daily_rate(Variable): + value_type = float + entity = Person + unit = USD + label = "Arizona Child Care Assistance Program daily reimbursement rate" + definition_period = MONTH + defined_for = "az_ccap_eligible_child" + reference = ( + "https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1", + "https://des.az.gov/services/child-and-family/child-care/des-contracted-child-care-provider-resources", + ) + + def formula(person, period, parameters): + p = parameters(period).gov.states.az.hhs.ccap.rates + provider_type = person("az_ccap_provider_type", period) + age_group = person("az_ccap_age_group", period) + quality = person("az_ccap_quality_enhanced_provider", period) + special_needs = person("az_ccap_special_needs_child", period) + base_rate = select( + [ + provider_type == AZCCAPProviderType.CENTER, + provider_type == AZCCAPProviderType.GROUP_HOME, + provider_type == AZCCAPProviderType.CERTIFIED_FAMILY, + provider_type == AZCCAPProviderType.RELATIVE, + ], + [ + p.center[age_group], + p.group_home[age_group], + p.certified_family[age_group], + p.relative[age_group], + ], + default=p.center[age_group], + ) + quality_rate = where( + provider_type == AZCCAPProviderType.RELATIVE, + base_rate, + base_rate * p.quality_multiplier, + ) + regular_rate = where(quality, quality_rate, base_rate) + return where(special_needs & quality, p.special_needs, regular_rate) diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_enrolled.py b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_enrolled.py new file mode 100644 index 00000000000..378cecfa523 --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_enrolled.py @@ -0,0 +1,9 @@ +from policyengine_us.model_api import * + + +class az_ccap_enrolled(Variable): + value_type = bool + entity = SPMUnit + label = "Enrolled in Arizona Child Care Assistance Program" + definition_period = MONTH + defined_for = StateCode.AZ diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_max_reimbursement.py b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_max_reimbursement.py new file mode 100644 index 00000000000..8727d4b945b --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_max_reimbursement.py @@ -0,0 +1,19 @@ +from policyengine_us.model_api import * + + +class az_ccap_max_reimbursement(Variable): + value_type = float + entity = Person + unit = USD + label = "Arizona Child Care Assistance Program maximum reimbursement" + definition_period = MONTH + defined_for = "az_ccap_eligible_child" + reference = ( + "https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1", + "https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=39", + ) + + def formula(person, period, parameters): + daily_rate = person("az_ccap_daily_rate", period) + attending_days = person("childcare_attending_days_per_month", period.this_year) + return daily_rate * attending_days diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_provider_type.py b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_provider_type.py new file mode 100644 index 00000000000..0b1daee56c9 --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_provider_type.py @@ -0,0 +1,19 @@ +from policyengine_us.model_api import * + + +class AZCCAPProviderType(Enum): + CENTER = "Child care center" + GROUP_HOME = "Group home" + CERTIFIED_FAMILY = "Certified family home or certified in-home provider" + RELATIVE = "Non-certified relative provider" + + +class az_ccap_provider_type(Variable): + value_type = Enum + entity = Person + possible_values = AZCCAPProviderType + default_value = AZCCAPProviderType.CENTER + definition_period = MONTH + label = "Arizona Child Care Assistance Program provider type" + defined_for = StateCode.AZ + reference = "https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1" diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_quality_enhanced_provider.py b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_quality_enhanced_provider.py new file mode 100644 index 00000000000..ef49628fede --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_quality_enhanced_provider.py @@ -0,0 +1,13 @@ +from policyengine_us.model_api import * + + +class az_ccap_quality_enhanced_provider(Variable): + value_type = bool + entity = Person + label = "Arizona Child Care Assistance Program quality enhanced provider" + definition_period = MONTH + defined_for = StateCode.AZ + reference = ( + "https://des.az.gov/services/child-and-family/child-care/des-contracted-child-care-provider-resources", + "https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1", + ) diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_special_needs_child.py b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_special_needs_child.py new file mode 100644 index 00000000000..fa9799b9db2 --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/az_ccap_special_needs_child.py @@ -0,0 +1,18 @@ +from policyengine_us.model_api import * + + +class az_ccap_special_needs_child(Variable): + value_type = bool + entity = Person + label = "Arizona Child Care Assistance Program special needs child" + definition_period = MONTH + defined_for = StateCode.AZ + reference = ( + "https://des.az.gov/sites/default/files/dl/CCA-1210B.pdf#page=5", + "https://des.az.gov/sites/default/files/dl/CCA-1210B.pdf#page=13", + ) + + def formula(person, period, parameters): + return person("az_ccap_eligible_child", period) & person( + "is_disabled", period.this_year + ) diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/eligibility/az_ccap_activity_eligible.py b/policyengine_us/variables/gov/states/az/hhs/ccap/eligibility/az_ccap_activity_eligible.py new file mode 100644 index 00000000000..499894a68ee --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/eligibility/az_ccap_activity_eligible.py @@ -0,0 +1,22 @@ +from policyengine_us.model_api import * + + +class az_ccap_activity_eligible(Variable): + value_type = bool + entity = SPMUnit + label = "Eligible for Arizona Child Care Assistance Program based on activity" + definition_period = MONTH + defined_for = StateCode.AZ + reference = ( + "https://des.az.gov/services/child-and-family/child-care/how-apply-for-child-care-assistance", + "https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=25", + ) + + def formula(spm_unit, period, parameters): + person = spm_unit.members + head_or_spouse = person("is_tax_unit_head_or_spouse", period.this_year) + working = person("weekly_hours_worked", period.this_year) > 0 + student = person("is_full_time_student", period.this_year) + unable_to_care = person("is_disabled", period.this_year) + eligible_person = working | student | unable_to_care + return spm_unit.sum(head_or_spouse & ~eligible_person) == 0 diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/eligibility/az_ccap_eligible.py b/policyengine_us/variables/gov/states/az/hhs/ccap/eligibility/az_ccap_eligible.py new file mode 100644 index 00000000000..217e179f185 --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/eligibility/az_ccap_eligible.py @@ -0,0 +1,17 @@ +from policyengine_us.model_api import * + + +class az_ccap_eligible(Variable): + value_type = bool + entity = SPMUnit + label = "Eligible for Arizona Child Care Assistance Program" + definition_period = MONTH + defined_for = StateCode.AZ + reference = "https://des.az.gov/services/child-and-family/child-care/how-apply-for-child-care-assistance" + + def formula(spm_unit, period, parameters): + has_eligible_child = add(spm_unit, period, ["az_ccap_eligible_child"]) > 0 + income_eligible = spm_unit("az_ccap_income_eligible", period) + asset_eligible = spm_unit("is_ccdf_asset_eligible", period.this_year) + activity_eligible = spm_unit("az_ccap_activity_eligible", period) + return has_eligible_child & income_eligible & asset_eligible & activity_eligible diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/eligibility/az_ccap_eligible_child.py b/policyengine_us/variables/gov/states/az/hhs/ccap/eligibility/az_ccap_eligible_child.py new file mode 100644 index 00000000000..21512134e3d --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/eligibility/az_ccap_eligible_child.py @@ -0,0 +1,19 @@ +from policyengine_us.model_api import * + + +class az_ccap_eligible_child(Variable): + value_type = bool + entity = Person + label = "Eligible child for Arizona Child Care Assistance Program" + definition_period = MONTH + defined_for = StateCode.AZ + reference = ( + "https://des.az.gov/services/child-and-family/child-care/how-apply-for-child-care-assistance", + "https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1", + ) + + def formula(person, period, parameters): + p = parameters(period).gov.states.az.hhs.ccap.eligibility + age = person("age", period.this_year) + attending_days = person("childcare_attending_days_per_month", period.this_year) + return (age < p.child_age_limit) & (attending_days > 0) diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_countable_income.py b/policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_countable_income.py new file mode 100644 index 00000000000..2d16c6aa097 --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_countable_income.py @@ -0,0 +1,12 @@ +from policyengine_us.model_api import * + + +class az_ccap_countable_income(Variable): + value_type = float + entity = SPMUnit + unit = USD + label = "Arizona Child Care Assistance Program countable income" + definition_period = MONTH + defined_for = StateCode.AZ + reference = "https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=28" + adds = "gov.states.az.hhs.ccap.income.countable_income.sources" diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_fee_level.py b/policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_fee_level.py new file mode 100644 index 00000000000..5679e5e649a --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_fee_level.py @@ -0,0 +1,29 @@ +from policyengine_us.model_api import * + + +class az_ccap_fee_level(Variable): + value_type = int + entity = SPMUnit + label = "Arizona Child Care Assistance Program fee level" + definition_period = MONTH + defined_for = StateCode.AZ + reference = "https://des.az.gov/sites/default/files/dl/CCA-0229AFY26.pdf#page=1" + + def formula(spm_unit, period, parameters): + p = parameters(period).gov.states.az.hhs.ccap.income + family_size = spm_unit("spm_unit_size", period.this_year) + capped_size = clip(family_size, 1, p.max_family_size) + income = spm_unit("az_ccap_countable_income", period) + return select( + [ + income <= p.threshold.level_1[capped_size], + income <= p.threshold.level_2[capped_size], + income <= p.threshold.level_3[capped_size], + income <= p.threshold.level_4[capped_size], + income <= p.threshold.level_5[capped_size], + income <= p.threshold.level_6[capped_size], + income <= p.threshold.level_7[capped_size], + ], + [1, 2, 3, 4, 5, 6, 7], + default=0, + ) diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_income_eligible.py b/policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_income_eligible.py new file mode 100644 index 00000000000..efa6439cb66 --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_income_eligible.py @@ -0,0 +1,15 @@ +from policyengine_us.model_api import * + + +class az_ccap_income_eligible(Variable): + value_type = bool + entity = SPMUnit + label = "Eligible for Arizona Child Care Assistance Program based on income" + definition_period = MONTH + defined_for = StateCode.AZ + reference = "https://des.az.gov/sites/default/files/dl/CCA-0229AFY26.pdf#page=1" + + def formula(spm_unit, period, parameters): + return spm_unit("az_ccap_countable_income", period) <= spm_unit( + "az_ccap_income_limit", period + ) diff --git a/policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_income_limit.py b/policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_income_limit.py new file mode 100644 index 00000000000..eedd8e774d2 --- /dev/null +++ b/policyengine_us/variables/gov/states/az/hhs/ccap/income/az_ccap_income_limit.py @@ -0,0 +1,22 @@ +from policyengine_us.model_api import * + + +class az_ccap_income_limit(Variable): + value_type = float + entity = SPMUnit + unit = USD + label = "Arizona Child Care Assistance Program income limit" + definition_period = MONTH + defined_for = StateCode.AZ + reference = "https://des.az.gov/sites/default/files/dl/CCA-0229AFY26.pdf#page=1" + + def formula(spm_unit, period, parameters): + p = parameters(period).gov.states.az.hhs.ccap.income + family_size = spm_unit("spm_unit_size", period.this_year) + capped_size = clip(family_size, 1, p.max_family_size) + enrolled = spm_unit("az_ccap_enrolled", period) + return where( + enrolled, + p.threshold.level_7[capped_size], + p.threshold.level_6[capped_size], + ) diff --git a/sources/working_references.md b/sources/working_references.md new file mode 100644 index 00000000000..f3c72699a22 --- /dev/null +++ b/sources/working_references.md @@ -0,0 +1,94 @@ +# Arizona Child Care Assistance Program (CCAP) Working References + +Workflow prefix: `az-ccap` +Issue: https://github.com/PolicyEngine/policyengine-us/issues/8370 + +## Official Sources + +1. Arizona Department of Economic Security, "How to Apply for Child Care Assistance" + - URL: https://des.az.gov/services/child-and-family/child-care/how-apply-for-child-care-assistance + - Key text: Program helps families pay for child care for children under age 13 so parents/guardians can work, attend school, or participate in eligible activities. Assistance is also available for children experiencing homelessness and children referred by DCS or Tribal child welfare. + - Eligibility page states families are required to cost-share based on family size and income. + - Eligibility page states child care assistance is available to families at or below 165% FPL with children birth through age 12 who live in Arizona and meet listed eligible activities/needs. + - DES does not consider income for referrals from TANF Jobs, Department of Child Safety, or Tribal child welfare. + - Ongoing recipients must report income above 85% of SMI; redetermination occurs every 12 months. + +2. Arizona DES, "Child Care Assistance Gross Monthly Income Eligibility Chart and Fee Schedule FFY 2026", CCA-0229A, effective October 1, 2025. + - URL: https://des.az.gov/sites/default/files/dl/CCA-0229AFY26.pdf#page=1 + - Initial application gross monthly income maximum: at or below 165% FPL, fee levels L1-L6. + - Redetermination gross monthly income maximum: at or below 85% SMI, fee levels L1-L7. + - Family-size table, monthly thresholds: + - Size 1: L1 0-1,110; L2 1,111-1,305; L3 1,306-1,762; L4 1,763-1,893; L5 1,894-2,023; L6 2,024-2,154; L7 3,978. + - Size 2: L1 0-1,499; L2 1,500-1,763; L3 1,764-2,381; L4 2,382-2,557; L5 2,558-2,733; L6 2,734-2,909; L7 5,202. + - Size 3: L1 0-1,888; L2 1,889-2,221; L3 2,222-2,999; L4 3,000-3,221; L5 3,222-3,443; L6 3,444-3,665; L7 6,426. + - Size 4: L1 0-2,278; L2 2,279-2,680; L3 2,681-3,618; L4 3,619-3,886; L5 3,887-4,154; L6 4,155-4,422; L7 7,649. + - Size 5: L1 0-2,668; L2 2,669-3,138; L3 3,139-4,237; L4 4,238-4,551; L5 4,552-4,864; L6 4,865-5,178; L7 8,874. + - Size 6: L1 0-3,057; L2 3,058-3,596; L3 3,597-4,855; L4 4,856-5,215; L5 5,216-5,574; L6 5,575-5,934; L7 10,098. + - Size 7: L1 0-3,447; L2 3,448-4,055; L3 4,056-5,475; L4 5,476-5,880; L5 5,881-6,286; L6 6,287-6,691; L7 10,327. + - Size 8: L1 0-3,837; L2 3,838-4,513; L3 4,514-6,093; L4 6,094-6,544; L5 6,545-6,996; L6 6,997-7,447; L7 10,557. + - Size 9: L1 0-4,226; L2 4,227-4,971; L3 4,972-6,711; L4 6,712-7,208; L5 7,209-7,706; L6 7,707-8,203; L7 10,786. + - Size 10: L1 0-4,616; L2 4,617-5,430; L3 5,431-7,331; L4 7,332-7,874; L5 7,875-8,417; L6 8,418-8,960; L7 11,015. + - Size 11: L1 0-5,005; L2 5,006-5,888; L3 5,889-7,949; L4 7,950-8,538; L5 8,539-9,127; L6 9,128-9,716; L7 11,244. + - Size 12: L1 0-5,395; L2 5,396-6,346; L3 6,347-8,568; L4 8,569-9,202; L5 9,203-9,837; L6 9,838-10,471; L7 11,474. + - Minimum required copayment per child in care: + - L1-L3: $0.50 daily rate. + - L4: $1.00 daily rate. + - L5: $1.50 daily rate. + - L6-L7: $2.50 daily rate. + - TCC: no copay assigned beyond the 3rd child in the family. + - Daily rate applies for 15 minutes or more. + - DCS/Foster Care, Jobs Program, and working Cash Assistance families may not have a fee level or minimum required copay, but may owe charges above state reimbursement maximums or provider additional costs. + +3. Arizona DES, "Maximum Reimbursement Rates for Child Care", CCA-1227A, effective November 1, 2025. + - URL: https://des.az.gov/sites/default/files/dl/CCA-1227A.pdf#page=1 + - Centers daily rates / quality rates: + - Under 1: $64.15 / $89.81. + - Age 1-2: $48.70 / $68.18. + - Age 3-5: $42.00 / $58.80. + - Age 6-12: summer $35.00 / $49.00; school-year $25.00 / $35.00. + - Group homes daily rates / quality rates: + - Under 1: $40.00 / $56.00. + - Age 1-2: $36.00 / $50.40. + - Age 3-5: $35.00 / $49.00. + - Age 6-12: summer $30.00 / $42.00; school-year $21.00 / $29.40. + - Certified family homes and certified in-home providers daily / CDA quality / quality rates: + - Under 1: $40.00 / $54.00 / $56.00. + - Age 1-2: $30.00 / $40.50 / $42.00. + - Age 3-5: $30.00 / $40.50 / $42.00. + - Age 6-12: summer $25.00 / $33.50 / $35.00; school-year $20.00 / $27.00 / $28.00. + - Non-certified relative provider rate: birth through age 12, $15.00 daily. + - Special needs rate: birth through age 12, $89.81 daily. + - Daily rate is paid when attending for 15 minutes or more. + - Quality rate: 3-, 4-, or 5-star Quality First, approved national accreditation, or Head Start performance standards program-wide receive 40% increase; family child care providers with CDA receive 35% increase. + - School-age children receive summer daily rate during May-July and school-year rate during August-April. + +4. Arizona Administrative Code, Title 6, Chapter 5, Article 49, Child Care Assistance. + - URL: https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=24 + - R6-5-4911 general eligibility: applicant/recipient must comply with procedural requirements and provide complete truthful information; rule defines eligible applicant/child and allowable providers. + - URL: https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=25 + - R6-5-4912 eligible activities/needs include employment, education/training, teen parent high school/GED/remedial education, treatment plan for inability to care, drug/alcohol rehabilitation or court-ordered community service, and shelter case plan. + - URL: https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=28 + - R6-5-4914 income eligibility: some applicants may receive assistance without regard to income; income eligibility uses gross monthly countable income; countable income includes wages, self-employment, unemployment, workers compensation, alimony/spousal maintenance, child support, veterans benefits, monthly gifts, gambling/lottery, and other non-excluded income. + - URL: https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=31 + - R6-5-4914 excluded income includes loans, tax refunds, EITC, SNAP/USDA food value, WIC/school lunch/child nutrition benefits, foster care maintenance, adoption subsidy, educational loans/grants/scholarships/work-study, and earnings of a child under 18 attending high school/training who is not a minor parent needing care. + - URL: https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=32 + - R6-5-4914 income calculation: calculate each income source separately, add sources to total monthly income, convert non-monthly income to monthly, anticipate income from most recent 30-day period, and convert fixed weekly/biweekly/semimonthly income using 4.3, 2.15, and 2 multipliers. + - URL: https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=33 + - R6-5-4915: fee level is based on family size and monthly gross countable income; copayment is per child based on fee level and number of children needing care; no fee/copayment for Jobs participants, working Cash Assistance participants needing child care, or families referred by CPS/DDD (current DES page uses DCS/Tribal child welfare). + - URL: https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=39 + - R6-5-4925: Department shall pay for authorized child care at a rate not exceeding Appendix B reimbursement rates. + - URL: https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=39 + - Appendix A contains child care assistance gross monthly income eligibility chart and fee schedule. + - URL: https://apps.azsos.gov/public_services/Title_06/6-05.pdf#page=41 + - Appendix B contains maximum reimbursement rates for child care. + +## Existing PolicyEngine References + +- `policyengine_us/variables/gov/states/nh/dhhs/ccap`: complete CCAP pattern for eligibility, cost share, payment rates, and subsidy = min(pre-subsidy expense, payment rate) - family cost share. +- `policyengine_us/variables/gov/states/ak/dpa/ccap`: complete CCAP pattern with provider categories, age groups, copay, rates, special needs, and state-level registration in CCDF totals. +- `policyengine_us/variables/gov/states/sc/dss/ccap`: provider types, age groups, time categories, copay tiers, quality levels, and weekly benefit patterns. +- Existing input variables likely reusable: `pre_subsidy_childcare_expenses`, `spm_unit_pre_subsidy_childcare_expenses`, `childcare_days_per_week`, `childcare_hours_per_day`, `childcare_hours_per_week`, `is_tanf_enrolled`, `is_parent`, `age`, `immigration_status`, `is_disabled`, `employment_income`, `self_employment_income`, `unemployment_compensation`, `child_support_received`, `alimony_income`, `veterans_benefits`, `workers_compensation`, `pension_income`, `spm_unit_size`, `spm_unit_fpg`. + +## Fetch Notes + +- Local `curl` downloads from `des.az.gov` and `apps.azsos.gov` returned Cloudflare challenge HTML, not PDFs. The source text and page numbers above were available through indexed official-source access. No official source was excluded for lack of access.