Skip to content

Implement Louisiana Child Care Assistance Program (CCAP)#8624

Open
hua7450 wants to merge 8 commits into
PolicyEngine:mainfrom
hua7450:la-ccap
Open

Implement Louisiana Child Care Assistance Program (CCAP)#8624
hua7450 wants to merge 8 commits into
PolicyEngine:mainfrom
hua7450:la-ccap

Conversation

@hua7450

@hua7450 hua7450 commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

Implements Louisiana's Child Care Assistance Program (CCAP) — the state's CCDF child care subsidy, administered by the Louisiana Department of Education (LDOE).

Closes #8623

Regulatory Authority

Coverage window

February 1, 2022 onward — when the 85% SMI limit, the current rate table, and the flat daily-copay sliding fee scale all took effect. The prior 65%-SMI/graduated-phase-out era (Feb 2021–Jan 2022) is not modeled.

Sliding fee scale as SMI shares

The published dollar charts are derived, not transcribed: every printed cell (5 bands × sizes 2–12 × 5 annual scales = 275 cells) reproduces exactly as round(share × SMI), where SMI is the HHS/ACF state median income by household size (capped at 12) for the federal fiscal year in effect.

  • Band thresholds: $0 / $2 / $3 / $8 / $10 per day at 64% / 69% / 74% / 79% of SMI, with the 85% top band as the eligibility limit (2022 era: 65% / 70% / 75% / 80%) — encoded as a single bracket parameter on income share of SMI
  • Vintage timing (la_ccap_smi): ACF publishes SMI each May/June → values take federal effect October 1 → LDOE adopts them the following February (LDOE Provider Updates memos: "as of February 1, 2024" / "February 3, 2025" / "February 1, 2026"; 2022 Wayback-bracketed). The lookup pins to the prior October 1 (the federal fiscal-year table entry) so the newest scale uses the published SMI rather than CBO uprating past the series end. January uses the prior year's scale.

Eligibility

Requirement Source How Modeled
Eligible child: under 13, or 13–17 if incapable of self-care §503.A.2 age < 13, or (is_incapable_of_self_care | ssi>0) & age < 18; court-supervision route not tracked
Child citizen or qualified alien §503.A.4 is_ccdf_immigration_eligible_child
Gross income ≤ 85% SMI by household size §509.A.3 income ≤ 0.85 × la_ccap_smi
Activity: head + spouse each avg 20 hrs/wk work/training/education or full-time student §509.A.5.a, §103 (TEMP) weekly_hours_worked_before_lsr ≥ 20 | is_full_time_student | is_disabled, per head/spouse
15 hrs/wk for special-needs households §509.A.5.d Threshold drops when a special-needs child is present
Activity waiver: disabled adult; homeless family §509.A.5.a–b is_disabled; is_homeless
Categorical: FITAP+STEP; foster children §505 is_tanf_enrolled (STEP approximated) | is_in_foster_care; bypasses income + activity tests
Assets ≤ $1,000,000 CCDF Plan §2.2.6 is_ccdf_asset_eligible (federal CCDF standard)

Special-needs child (la_ccap_special_needs_child)

§103 "Care for Children with Disabilities" — a child birth–17 with a current IEP or IFSP under IDEA, or receiving SSI — drives the special-needs rate, the copay waiver, and the 15-hr activity reduction. Modeled as is_disabled | has_individualized_education_program | has_developmental_delay (IFSP proxy) | ssi > 0, bounded to age < 18. This is distinct from the narrower §503.A.2 13–17 child test (is_incapable_of_self_care | ssi>0).

Countable income (§509.A.3)

  • Earned (head + spouse only): employment, self-employment, farm operations — each source floored at zero, so a self-employment or farm loss cannot offset gross wages ("gross earnings")
  • Unearned (all members): Social Security, SSI, VA benefits, retirement, disability benefits, unemployment compensation, workers' compensation
  • Child support/alimony counted until April 20, 2025 (dated list parameter), then repealed by LR 51:529
  • No deductions — gross income test

Benefit calculation

Per eligible child in care: max(min(childcare expense, daily rate × days) − daily copay × days, 0)

  • Daily rates (§515.A): 5 provider types × 3 age groups (infant 0, toddler 1–2, regular 3+), +26% special-needs incentive; Military rates updated May 20, 2022
  • Days (la_ccap_monthly_days): full-time care (≥30 hrs/wk) bills day units (childcare_days_per_week × 52/12, capped at 22/month, §103); part-time bills hours prorated against the 30-hour threshold. When both schedule inputs are reported, billing is the lesser of the two — a part-time schedule with attendance days must not bill full-day units
  • Copay: per-child daily amount from the SMI-share bracket, billed × attendance days (see Modeling notes); waived (la_ccap_copay_waived) for families experiencing homelessness, children with disabilities, and categorical households (STEP/foster, who get 100% of the state max rate per §515.B)
  • Reporting outputs: la_ccap_total_payment_rate (state max daily rate × paid days, summed over eligible children) and la_ccap_total_copay (daily copay × paid days) expose the gross authorization and family share alongside the net la_ccap subsidy

Not Modeled (by design)

What Source Why Excluded
90-day job-search waiver (once per 24 months) §509.A.5.e Time-limited certification state
Quality star bonus (0/0/11/16.5/23%) §1109 Paid quarterly to providers; does not affect family copay or subsidy
EHS-CCP copay waiver CCDF Plan §3.3.1.vii Only Early Head Start-Child Care Partnership families are waived (generic Head Start is explicitly unchecked); no EHS-CCP-specific input exists
CNCS / college work-study / disaster-employment income exclusions §509.A.3.a Income subtypes not tracked
Adoption subsidy (countable pre-Apr 2025) §509.A.3.b (pre-2025) Not tracked as an input
Waitlist (Oct 2022+), immunization, HiRE registration, head-of-household citizenship verification (Jan 2026) §513, §503, LR 52:28 Administrative/caseload states
Part-time hourly billing (max 129 hrs/month) §103 Hourly rates unpublished; prorated daily-rate approximation (the 129-hr cap is algebraically redundant given the 30-hr proration)

Modeling notes

  • Copay billed daily × attendance days: the FFY 2022–2024 CCDF Plan §3.1.3.g describes the copay "as a daily rate"; the FFY 2025–2027 plan §3.2.1.b treats the published monthly band as not varying by hours in care. We bill daily band × attendance days, which is exact for full-time care (the dominant case) and slightly under-charges part-time families. (Daily × 22 reproduces the published $44–$220 monthly bands; the 5.25%-of-income ceiling is embedded.)
  • Copay waivers applied across all eras: the waiver footnote first appears on the 2025 scale; we assume the waivers apply throughout the coverage window
  • Waiver is family-level: one qualifying child zeroes the unit's copay
  • ±$1 band boundaries: at exact printed band-top dollars, the share formula can differ from the printed chart by $1 of monthly income for some sizes (the charts are rounded artifacts of the share rule)

Verification TODO

  • 2023 sliding fee scale effective date — encoded 2023-02-01 per LDOE's annual pattern (verified in force by 3/27/2023); exact date unverified (2024/2025/2026 confirmed by LDOE memos, 2022 Wayback-bracketed)
  • Military rates Feb–May 2022 era sourced to LR 47:573, but cannot be covered by tests (Jan/whole-year period restriction)
  • CI passes

Files

policyengine_us/parameters/gov/states/la/ldoe/ccap/   (16 files)
policyengine_us/variables/gov/states/la/ldoe/ccap/    (18 files)
policyengine_us/tests/policy/baseline/gov/states/la/ldoe/ccap/  (17 files)

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

Test plan

  • 108 YAML tests pass locally (unit tests for every formula variable incl. la_ccap_smi vintage pivot, la_ccap_special_needs_child routes, la_ccap_monthly_days, la_ccap_copay_waived, and the total payment-rate/copay outputs + integration scenarios covering era transitions, categorical bypass, negative self-employment income, asset limit, and out-of-state exclusion)
  • CI passes

🤖 Generated with Claude Code

Ref PolicyEngine#8623

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

codecov Bot commented Jun 10, 2026

Copy link
Copy Markdown

Codecov Report

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

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #8624    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files            2        18    +16     
  Lines           36       293   +257     
  Branches         0         1     +1     
==========================================
+ Hits            36       293   +257     
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 6 commits June 10, 2026 11:51
…y waivers

- Replace the 4 transcribed band-top dollar tables (5 eras x 11 sizes)
  with a single bracket on income as a share of state median income:
  64/69/74/79% thresholds (65/70/75/80% in the 2022 era), verified to
  reproduce all 275 published cells exactly as round(share x SMI)
- Replace the income limit dollar table with the documented 0.85 rate
  (LAC 28:CLXV.509.A.3)
- Add la_ccap_smi: monthly HHS SMI with a February pivot matching
  LDOE's scale adoption dates (per LDOE provider-update memos)
- Add la_ccap_copay_waived consolidating the scale-footnote waivers:
  homelessness, disabled children, Head Start enrollment (approximating
  EHS-CCP), and categorical eligibility (STEP/foster)
- Add tests: SMI pivot eras, waiver categories, waiver flow-through,
  4 special-needs rate cells, 2024-scale copay flow (84 tests pass)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… total payment rate and copay variables

- Pin SMI lookup to the prior October 1 so the newest scale uses the
  published table instead of CBO uprating
- Bill part-time care as the lesser of day-based and hours-based units
- Floor each earned income source at zero (gross earnings cannot be
  offset by self-employment or farm losses)
- Add la_ccap_monthly_days, la_ccap_total_payment_rate, la_ccap_total_copay
- Add pre-repeal unearned-income and prior military-rate references

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

# Conflicts:
#	policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml
#	policyengine_us/programs.yaml
- Add la_ccap_special_needs_child (LAC 28:CLXV.103): IEP/IFSP/SSI plus the
  general disability flag, replacing the bare is_disabled in the special-needs
  rate, copay waiver, and 15-hour activity reduction
- Use is_incapable_of_self_care or SSI receipt for the 503.A.2 13-17 child
  route instead of is_disabled
- Document the daily-times-attendance copay modeling choice
- Drop the section 3.2.1.a claim from the copay daily_amount page-42 reference

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

# Conflicts:
#	policyengine_us/programs.yaml
CCDF State Plan FFY 2025-2027 Section 3.3.1 leaves generic Head Start /
Early Head Start enrollment unchecked as a copay-waiver category; only Early
Head Start-Child Care Partnership (EHS-CCP) families are waived (3.3.1.vii).
is_enrolled_in_head_start covers all Head Start enrollees, over-waiving a
population Louisiana does not waive, and there is no EHS-CCP-specific input,
so drop the Head Start route and document EHS-CCP as not modeled.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@hua7450 hua7450 marked this pull request as ready for review June 15, 2026 17:54
Replace the builtin sum() over per-source entity calls (flagged by the
code_health no-builtin-sum check) with add() over two parameter lists:
wage_sources (employment income, never negative) and self_employment_sources
(self-employment and farm net flows, floored at zero so a loss cannot offset
wages per the gross-earnings rule, LAC 28:CLXV.509.A.3.a).

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.

Implement Louisiana Child Care Assistance Program (CCAP)

1 participant