Skip to content

Add federal CCDF infrastructure for scaling CCAP to all states#7765

Merged
hua7450 merged 5 commits intoPolicyEngine:mainfrom
hua7450:federal-ccdf-infrastructure
Mar 13, 2026
Merged

Add federal CCDF infrastructure for scaling CCAP to all states#7765
hua7450 merged 5 commits intoPolicyEngine:mainfrom
hua7450:federal-ccdf-infrastructure

Conversation

@hua7450
Copy link
Collaborator

@hua7450 hua7450 commented Mar 12, 2026

Summary

Closes #7764

Creates shared federal-level CCDF variables and parameters so state CCAP implementations don't duplicate identical federal rules. This is the foundation for scaling child care subsidies to all 50 states + DC.

Changes

1. New: is_ccdf_immigration_eligible_child variable

  • Reuses existing federal gov/dhs/immigration/qualified_noncitizen_status parameter (8 USC 1641) and adds a citizen check — no duplicate parameter file
  • Covers: CITIZEN, LPR, REFUGEE, ASYLEE, DEPORTATION_WITHHELD, CUBAN_HAITIAN_ENTRANT, CONDITIONAL_ENTRANT, PAROLED_ONE_YEAR
  • States that follow the federal list can reuse this directly instead of creating their own
  • 11 test cases covering all qualified + ineligible statuses (UNDOCUMENTED, DACA, TPS)

2. New: child_care_subsidies federal aggregator

  • Follows the same pattern as tanf.py — maintains a list of state subsidy variables and sums them
  • Replaces the hardcoded state list in childcare_expenses.py (was ["CA", "CO", "NE", "MA"])
  • Adding a new state now means adding one line to STATE_CHILD_CARE_SUBSIDY_VARIABLES
  • Note: TX CCS is not included — it has a pre-existing entity broadcast issue in microsim that needs to be resolved separately

3. Refactored: childcare_expenses.py

  • Removed inline state list and string manipulation
  • Now references child_care_subsidies aggregator directly

What's NOT in this PR

  • No refactoring of existing state implementations (CA, CO, MA, NE) — they continue to work as-is
  • No changes to RI CCAP (PR Implement Rhode Island CCAP #7739) — that will reference these federal variables in a follow-up

Test plan

  • is_ccdf_immigration_eligible_child tests pass (11 cases: 8 qualified statuses + 3 ineligible)
  • Existing CCDF tests still pass
  • Existing state childcare subsidy tests still pass (CA, CO, MA, NE)
  • Microsimulation tests pass

🤖 Generated with Claude Code

…ll states

Create shared federal-level variables and parameters to avoid duplicating
identical logic across state CCAP implementations. Closes PolicyEngine#7764.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Mar 12, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (752fae4) to head (19ec305).
⚠️ Report is 52 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #7765   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            2         3    +1     
  Lines           13        33   +20     
=========================================
+ Hits            13        33   +20     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

… TX CCS

- Remove duplicate qualified_immigration_statuses.yaml parameter
- Reference gov/dhs/immigration/qualified_noncitizen_status instead
- Fix invalid Cornell LII link for 45 CFR 98.20
- Add TX CCS to child care subsidies aggregator

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@hua7450 hua7450 marked this pull request as ready for review March 12, 2026 17:18
@hua7450 hua7450 requested a review from PavelMakarchuk March 12, 2026 17:18
hua7450 and others added 2 commits March 12, 2026 13:20
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
TX CCS was not in the original childcare_expenses.py list. Adding it to the
aggregator triggers a shape mismatch in microsim. Will wire in separately
once the TX CCS entity issue is resolved.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Collaborator

@PavelMakarchuk PavelMakarchuk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM after yaml file

Use unit:list parameter pattern instead of hardcoded Python list,
consistent with household_benefits and 209 other aggregator variables.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@hua7450 hua7450 merged commit fb570f4 into PolicyEngine:main Mar 13, 2026
9 checks passed
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.

Create federal CCDF infrastructure for scaling CCAP to all states

2 participants