Skip to content

Add Oklahoma Child Care Subsidy Program (CCAP)#8992

Open
hua7450 wants to merge 8 commits into
PolicyEngine:mainfrom
hua7450:ok-ccs
Open

Add Oklahoma Child Care Subsidy Program (CCAP)#8992
hua7450 wants to merge 8 commits into
PolicyEngine:mainfrom
hua7450:ok-ccs

Conversation

@hua7450

@hua7450 hua7450 commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

Implements Oklahoma's Child Care Subsidy Program (the state's CCAP), administered by Oklahoma Human Services (OKDHS) under OAC Title 340, Chapter 40.

Closes #8990

Regulatory Authority

Note: the OKDHS online policy library (oklahoma.gov/okdhs/library/policy/...) now redirects to the JS-rendered rules.ok.gov portal, so OAC sections are cited via okrules.elaws.us, which serves the full rule text.

How Modeled

Component Source How Modeled
Eligible child OAC 340:40-7-3 Age < 13, or < 19 with a disability (is_disabled proxies the 340:40-7-3.1 verification); child immigration status via federal is_ccdf_immigration_eligible_child
Predetermined eligibility OAC 340:40-7-1(b)(1) is_tanf_enrolled or any member with ssi > 0 → income test bypassed and $0 copayment
Income eligibility Appendix C-4 Adjusted monthly income ≤ C-4 threshold by household size (1–10; larger households use the size-10 column)
Adjusted monthly income OAC 340:40-7-11/-12/-13 Countable earned + unearned income (wages, self-employment, SSI, Social Security, UI, workers' comp, child support, alimony, dividends, interest, pensions/annuities, private/employer disability, veterans' benefits, rental income, partnership/S-corp profit shares), minus earnings of children under 18, minus legally binding child support paid; floored at zero and rounded to the nearest dollar per Appendix C-4
Family share copayment Appendix C-4, OAC 340:40-5-1(8)-(9) single_amount bracket per household size (10 files); $0 for predetermined-eligible households
Provider rates Appendix C-4-B Daily rates by star level (1–5) × setting (center/home) × age group × full/part-time; in-home care = 90% of the one-star home rate
Unit type Appendix C-4-B Part-time when childcare_hours_per_day ≤ 4, else full-time
Benefit Appendix C-4 p.1 Sum of per-child daily rate × childcare_attending_days_per_month, capped at the SPM unit's pre-subsidy childcare expenses (family-level pooling, the IN/RI/MA/ND convention), minus copayment, floored at zero
Need factor OAC 340:40-7-8 Every head/spouse employed (wages > 0 or self-employment ≠ 0) or a full-time student; OR TANF-enrolled; OR protective services (receives_or_needs_protective_services); OR meets_ccdf_activity_test fallback

Not Modeled (by design)

What Source Why Excluded
Blended & weekly unit types Appendix C-4-B School-year billing arrangements; weekly pays at the full-time daily rate
Special needs add-on rates ($16/$28 FT, $12/$20 PT) Appendix C-4-B Requires OKDHS moderate/severe certification we don't track
Non-traditional hours (+$14/day), Child Welfare (+$5/day), Community Hope Center rates, absent-day payments Appendix C-4-B Care-schedule/case attributes not tracked
Transitional child care (24 months post-TANF employment) OAC 340:40-7-1 Employment-start-date cohort not tracked
State Supplemental Payment / Refugee cash assistance predetermined pathways OAC 340:40-7-1 Programs not tracked in the model
Court-supervision pathway to age 19; renewal grace periods OAC 340:40-7-3 Court status and certification periods not tracked
Copayment frozen until next renewal Appendix C-4 Enrollment-cohort state not tracked
Self-employment 50% business-expense standard deduction OAC 340:40-7-11(b)(3)(B) Applies to gross receipts; self_employment_income is already net of actual expenses and gross receipts are not tracked
TANF dollars in countable income OAC 340:40-7-11(c)(1) TANF recipients are predetermined eligible, so it has no eligibility effect; avoids a circular dependency through the TANF dependent care deduction
Cash contributions > $30/quarter, recurring lump sums, irregular income, mineral/royalty payments OAC 340:40-7-11(c)(7)-(10) No corresponding tracked income source

Files

parameters/gov/states/ok/dhs/ccs/   (20 files)
variables/gov/states/ok/dhs/ccs/    (16 files)
tests/policy/baseline/gov/states/ok/dhs/ccs/  (8 files)

Registered in gov/hhs/ccdf/child_care_subsidy_programs.yaml and programs.yaml (CCDF state implementation).

Verification

  • Copayment/threshold values verified against Appendix C-4 (10/1/2025) — every cell of all 10 family-size schedules and the income limits checked twice (300 DPI screenshot audit of the served PDF, then re-verified against an independently downloaded copy; 0 discrepancies)
  • Daily rates verified against Appendix C-4-B (1/1/2023) — all 90 center/home rate cells, age-group boundaries, in-home 90% ratio, and part-time threshold checked twice; 0 discrepancies
  • 1/1/2023 C-4-B confirmed as the operative rate schedule (current copy served by OKDHS, retrieved 7/2026, still carries the 1/1/2023 effective date)
  • Reference citations audited: OAC 340:40-7-3 subsection cites corrected to (a) and (b)-(c); income-source comment cites verified against the rule text
  • Historical (pre-10/2025) C-4 copay charts not implemented — parameters are a current-law snapshot (age limits 10/2017, rates 1/2023, copay/income limits 10/2025); earlier periods extrapolate backward
  • CI passes

Test plan

  • 8 test files, 58 cases: eligible child, countable income (incl. pension/veterans/rental sources and nearest-dollar rounding), income eligibility (incl. exact-threshold boundary, size-10 limit, and size-11 fallback), copay (incl. round-up band boundary and size-10/11 schedules), daily rates (all settings, all center and home age groups, part-time, in-home), activity/need factor (all four pathways positive and negative), predetermined eligibility truth table, and 9 integration cases (positive benefit, TANF $0 copay, over-income, expense cap binding, negative self-employment income, two-parent activity failure, over-age child, non-OK household, two-child family-level expense cap)
  • CI passes

🤖 Generated with Claude Code

Implements Oklahoma's Child Care Subsidy Program under OAC 340:40,
administered by Oklahoma Human Services:
- Income eligibility and family share copayments from Appendix C-4
  (10/1/2025), by household size 1-10
- Daily provider rates from Appendix C-4-B (1/1/2023), by star level,
  setting (center/home/in-home), age group, and full/part-time unit type
- Predetermined eligibility (TANF/SSI) with zero copayment
- Need factor (employment, education, protective services, CCDF fallback)
- Adjusted monthly income with minor child earnings exclusion and
  child support paid deduction

Closes PolicyEngine#8990

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

Codecov Report

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

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #8992    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files            1        17    +16     
  Lines           18       279   +261     
==========================================
+ Hits            18       279   +261     
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 Harness.
📢 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 7 commits July 10, 2026 22:53
…, income rounding

- Pool per-child maximum rates and cap at the SPM unit's total childcare
  expenses (IN/RI/MA/ND convention) instead of capping each child at an
  artificial even expense split
- Add pension_income, disability_benefits, veterans_benefits,
  rental_income, and partnership_s_corp_income to countable income per
  OAC 340:40-7-11(b)(3), (c)(2), (c)(6), (c)(11)
- Round adjusted monthly income to the nearest dollar before the
  Appendix C-4 threshold and copayment lookups
- Add regression tests for each fix

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… rounding, dead SSI source

- Register ok_child_care_subsidies in household_state_benefits.yaml so the
  benefit flows into household totals and net income
- Treat unset childcare hours as full time in ok_ccs_time_category,
  matching the declared default instead of halving the rate cap
- Round adjusted income half-up via np.floor(x + 0.5) instead of
  np.round's half-to-even at the Appendix C-4 lookup step
- Drop the dead ssi countable-income source: SSI receipt already makes
  the unit predetermined eligible, bypassing the income test and copay

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…est coverage

- Fix wrong OAC 340:40-7-3 subsection cites in age-limit references ((1)->(a), (2)->(b)-(c))
- Fix income sources comment cites ((1)->(b), (2)->(c), SSI (c)(2)->(c)(3)); cite 340:40-7-12(8)
- Document unapplied 50% self-employment expense deduction (OAC 340:40-7-11(b)(3)(B))
- Drop page numbers from four reference titles (kept in #page= href)
- Add activity-eligible and predetermined-eligible unit test files
- Add exact income-limit boundary, size-10, and size-11 fallback tests
- Add daily-rate cases covering all center and home age groups

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Per OAC 340:40-7-11(b)(3)(B), a business loss is not deducted from other
household income. Add ok_ccs_countable_self_employment_income, which
floors each person's self-employment income at zero, and use it in the
income sources list and the minor-earnings exclusion.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ssion-guard tests

- Cite OAC 340:40-7-5 (citizenship/alienage) alongside 340:40-7-3 in
  ok_ccs_eligible_child, covering the is_ccdf_immigration_eligible_child gate
- Bind gov.dol.minimum_wage to a name in ok_ccs_activity_eligible
- Add integration Case 10: TANF predetermined eligibility overrides a
  failing income test (guards the predetermined | income_eligible OR)
- Add integration Case 11: childless unit is ineligible

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@hua7450 hua7450 marked this pull request as ready for review July 13, 2026 21:35
@hua7450 hua7450 requested a review from PavelMakarchuk July 15, 2026 17:26
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 Oklahoma Child Care Assistance Program (CCAP / Child Care Subsidy)

1 participant