Skip to content
6 changes: 6 additions & 0 deletions changelog_entry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- bump: minor
changes:
added:
- California CalWORKs Stage 2 (C2AP) child care subsidy for former CalWORKs recipients within 24 months of leaving cash aid.
- California CalWORKs Stage 3 (C3AP) child care subsidy for former CalWORKs recipients who exhausted Stage 2 eligibility.
- California Alternative Payment Program (CAPP) child care subsidy for income-eligible families who never received CalWORKs.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
description: California exempts families below this share of State Median Income from child care family fees.
values:
2023-10-01: 0.75

metadata:
unit: /1
period: year
label: California child care family fee exemption threshold
reference:
- title: California Welfare and Institutions Code Section 10290(e)(2)
href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?sectionNum=10290.&lawCode=WIC
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
description: California caps child care family fees at this share of adjusted monthly income.
values:
2023-10-01: 0.01

metadata:
unit: /1
period: month
label: California child care family fee cap
reference:
- title: California Welfare and Institutions Code Section 10290(e)(2)
href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?sectionNum=10290.&lawCode=WIC
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
description: California limits child care subsidy eligibility to this share of State Median Income for CalWORKs Stage 2, Stage 3, and CAPP programs.
values:
2011-07-01: 0.7
2017-10-01: 0.85

metadata:
unit: /1
period: year
label: California child care income limit as share of SMI
reference:
- title: SB 70 (2011) Section 8263.1 - Lowered income limit from 75% to 70% SMI
href: https://leginfo.legislature.ca.gov/faces/billNavClient.xhtml?bill_id=201120120SB70
- title: AB 99 (2017) Section 8263.1 - Raised income limit from 70% to 85% SMI
href: https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=201720180AB99
- title: California Welfare and Institutions Code Section 10271.5
href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?sectionNum=10271.5.&lawCode=WIC
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
description: California counts these income sources for child care subsidy eligibility.

values:
2000-01-01:
# Earned income
- employment_income
- self_employment_income
# Public assistance
- ca_tanf
# Unemployment and disability
- unemployment_compensation
- workers_compensation
- ca_state_disability_insurance
# Social Security (excluding SSI)
- social_security
# Support payments
- child_support_received
- alimony_income
# Retirement and veterans
- pension_income
- veterans_benefits
# Investment income
- interest_income
- dividend_income
- capital_gains
- rental_income

metadata:
unit: list
period: year
label: California child care countable income sources
reference:
- title: California Code of Regulations Title 5 Section 18078(w)
href: https://www.law.cornell.edu/regulations/california/5-CCR-18078
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
description: California limits CalWORKs Stage 2 child care eligibility to this number of months after leaving cash aid.
values:
1998-01-01: 24

metadata:
unit: month
period: year
label: California CalWORKs Stage 2 time limit
reference:
- title: California Welfare and Institutions Code Section 10372
href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?sectionNum=10372.&nodeTreePath=16.4.19&lawCode=WIC
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
- name: Case 1, never received CalWORKs, income eligible, CAPP eligible.
period: 2025-01
input:
people:
person1:
age: 30
immigration_status: CITIZEN
employment_income: 48_000
person2:
age: 5
immigration_status: CITIZEN
spm_units:
spm_unit:
members: [person1, person2]
was_calworks_recipient: false
households:
household:
members: [person1, person2]
state_code: CA
output:
# Never received CalWORKs + income eligible = CAPP eligible
ca_capp_eligible: true

- name: Case 2, formerly received CalWORKs, not eligible for CAPP.
period: 2025-01
input:
people:
person1:
age: 30
immigration_status: CITIZEN
employment_income: 48_000
person2:
age: 5
immigration_status: CITIZEN
spm_units:
spm_unit:
members: [person1, person2]
was_calworks_recipient: true
months_since_calworks_exit: 12
households:
household:
members: [person1, person2]
state_code: CA
output:
# Ever received CalWORKs = not eligible for CAPP (use Stage 2 or 3)
ca_capp_eligible: false

- name: Case 3, income above 85 percent SMI, not eligible for CAPP.
period: 2025-01
input:
people:
person1:
age: 30
immigration_status: CITIZEN
employment_income: 120_000
person2:
age: 5
immigration_status: CITIZEN
spm_units:
spm_unit:
members: [person1, person2]
was_calworks_recipient: false
households:
household:
members: [person1, person2]
state_code: CA
output:
# Income too high
ca_capp_eligible: false

- name: Case 4, no age-eligible children, not eligible for CAPP.
period: 2025-01
input:
people:
person1:
age: 30
immigration_status: CITIZEN
employment_income: 48_000
person2:
age: 16
immigration_status: CITIZEN
spm_units:
spm_unit:
members: [person1, person2]
was_calworks_recipient: false
households:
household:
members: [person1, person2]
state_code: CA
output:
# No age-eligible children (child is 16, threshold is typically 13)
ca_capp_eligible: false

- name: Case 5, adult only household, not eligible for CAPP.
period: 2025-01
input:
people:
person1:
age: 30
immigration_status: CITIZEN
employment_income: 48_000
spm_units:
spm_unit:
members: [person1]
was_calworks_recipient: false
households:
household:
members: [person1]
state_code: CA
output:
# No children at all = not eligible
ca_capp_eligible: false

- name: Case 6, zero income fails work requirement, not CAPP eligible.
period: 2025-01
input:
people:
person1:
age: 30
immigration_status: CITIZEN
employment_income: 0
person2:
age: 5
immigration_status: CITIZEN
spm_units:
spm_unit:
members: [person1, person2]
was_calworks_recipient: false
households:
household:
members: [person1, person2]
state_code: CA
output:
# Zero income fails work requirement (earned_income > 0)
ca_capp_eligible: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
- name: Case 1, CAPP payment uses RMR structure.
period: 2025-01
input:
people:
person1:
age: 30
immigration_status: CITIZEN
employment_income: 48_000
ca_calworks_child_care_provider_category: CHILD_CARE_CENTER
ca_calworks_child_care_time_category: MONTHLY
ca_calworks_child_care_full_time: true
pre_subsidy_childcare_expenses: 24_000
person2:
age: 3
immigration_status: CITIZEN
ca_calworks_child_care_provider_category: CHILD_CARE_CENTER
ca_calworks_child_care_time_category: MONTHLY
ca_calworks_child_care_full_time: true
pre_subsidy_childcare_expenses: 24_000
spm_units:
spm_unit:
members: [person1, person2]
was_calworks_recipient: false
households:
household:
members: [person1, person2]
state_code: CA
output:
# Child (person2) receives payment based on RMR ceiling
# RMR for 3-year-old at child care center, full-time monthly: ~1,253
# pre_subsidy_childcare_expenses: 24,000 annual / 12 = 2,000/month
# Payment = min(1,253, 2,000) = 1,253
# Adult (person1) does not receive child care payment
ca_capp_payment: [0, 1_253.26]
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
- name: Case 1, income below 75 percent SMI, exempt from fees.
period: 2025-01
input:
people:
person1:
age: 35
employment_income: 48_000
person2:
age: 33
person3:
age: 5
spm_units:
spm_unit:
members: [person1, person2, person3]
households:
household:
members: [person1, person2, person3]
state_code: CA
output:
# Monthly SMI for family of 3: 7,761.53
# 75% SMI: 5,821.15
# Monthly income: 48,000 / 12 = 4,000
# 4,000 < 5,821.15 = exempt
ca_child_care_family_fee: 0

- name: Case 2, income above 75 percent SMI, fee is 1 percent of income.
period: 2025-01
input:
people:
person1:
age: 35
employment_income: 72_000
person2:
age: 33
person3:
age: 5
spm_units:
spm_unit:
members: [person1, person2, person3]
households:
household:
members: [person1, person2, person3]
state_code: CA
output:
# Monthly SMI for family of 3: 7,761.53
# 75% SMI: 5,821.15
# Monthly income: 72,000 / 12 = 6,000
# 6,000 >= 5,821.15 = not exempt
# Fee: 6,000 * 0.01 = 60
ca_child_care_family_fee: 60

- name: Case 3, zero income, exempt from fees.
period: 2025-01
input:
people:
person1:
age: 35
employment_income: 0
person2:
age: 33
person3:
age: 5
spm_units:
spm_unit:
members: [person1, person2, person3]
households:
household:
members: [person1, person2, person3]
state_code: CA
output:
# Zero income < 75% SMI = exempt
ca_child_care_family_fee: 0

- name: Case 4, income exactly at 75 percent SMI, fee applies.
period: 2025-01
absolute_error_margin: 0.1
input:
people:
person1:
age: 35
# 3-person SMI: 7,761.53/month, 75% = 5,821.15/month
# Annual: 5,821.15 * 12 = 69,854
employment_income: 69_854
person2:
age: 33
person3:
age: 5
spm_units:
spm_unit:
members: [person1, person2, person3]
households:
household:
members: [person1, person2, person3]
state_code: CA
output:
# Income exactly at 75% SMI: uses < for exempt, so fee applies
# Fee: 5,821.17 * 0.01 = 58.21
ca_child_care_family_fee: 58.21

- name: Case 5, income one dollar below 75 percent SMI, exempt.
period: 2025-01
input:
people:
person1:
age: 35
# 75% SMI = 69,854 annual, so 69,840 is below
employment_income: 69_840
person2:
age: 33
person3:
age: 5
spm_units:
spm_unit:
members: [person1, person2, person3]
households:
household:
members: [person1, person2, person3]
state_code: CA
output:
# Income just below 75% SMI = exempt
ca_child_care_family_fee: 0
Loading