Complete Illinois CCAP copays and provider payment rates - #9189
Open
hua7450 wants to merge 14 commits into
Open
Conversation
Remove four features that were not genuinely modeled, each replaced by a one-line comment at the site: - 70% attendance rule (il_ccap_approved_eligible_days_per_month plus rates/attendance/threshold). The variable was input-only with no default, so the ratio was always 0 in microsimulation and the rule never fired; reimbursement now reads childcare_attending_days_per_month directly. - Table B school-age part-day copay schedule (school_age_months, school_age_reduction_rate, school_age_minimum, school_age_maximum and il_ccap_all_children_school_age_part_day). - $1 child care worker copay (il_ccap_child_care_worker and child_care_worker_amount). Input-only, so no household received it. - il_ccap_royalty_income, which this repo does not model. Drop copay/exempt_amount: the exemption is structural, so the select branch is a bare 0 rather than a parameter that can only hold zero. Convert the nine table_a bracket files from inline flow-mappings to block form, matching the 804 bracket files already in the repo (none used inline), and drop 55 redundant 2026-07-01 entries whose values were unchanged from 2025-07-01 - including all 36 in licensed_center and license_exempt_center, where Illinois left center rates flat for FY2027. Point the six rates/duration parameters at IL444-4343 page 1, which states the hours-to-rate-unit rules. They previously cited IDHS 06.05.01, which publishes only the price grid and does not support those values. Verified every Table A bracket and provider rate for both effective dates against the IDHS 7/1/2025 and IDEC 7/1/2026 charts by evaluating the parameter tree: 177 and 179 bracket lower bounds, all matching. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…into pr/hua7450/9189
The upstream merge added 2024-01-01 and 2025-01-01 blocks to child_care_subsidy_programs.yaml for NC and DC, copying the program list as it stood before this branch added Illinois. Git merged both sides without a conflict, leaving il_child_care_subsidies present only in the 2021-01-01 block, so child_care_subsidies returned 0 for an Illinois family from 2024 onward while il_child_care_subsidies was nonzero. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
hua7450
marked this pull request as ready for review
August 13, 2026 03:59
Review-response round 2, covering the copay and provider-payment findings. Copay: - il_ccap_copay applied the $1 minimum by comparing income to a calendar-year spm_unit_fpg, while Table A's bands are frozen at the preceding July's guideline. From January the override fired above the in-force chart's minimum band and could only lower the copay, understating it by $17-$53 per month. Table A's first bracket already encodes the same 100% FPL rule at the correct vintage, so the override is replaced by a floor at the minimum amount, which also covers the zero and negative income path. - Remove copay/fpl_reduced_rate.yaml, whose only reader was that comparison. - Drop the spm_unit_fpg pin from every copay test, since the formula no longer reads it, and add three regression cases at family sizes 2, 5 and 8 that sit in the window where the override previously fired. - State what Table B and the child care worker copayment are in the in-code notes, and cite 23 Ill. Adm. Code 2060.310(b) for the latter. Payment rates: - Cite IDHS 06.05.01 for the 2025-dated daily rate unit rules, which were supported only by the IDEC schedule effective July 1, 2026. - Pair the transient June 2025 memo with the permanent IDHS rate chart in the home rate and county group files. - Correct the attendance rule note, which covers centers as well as homes, and state the 69.5% threshold. - Widen daily rate coverage from one licensed home cell to five across both vintages, all county groups, age groups and duration categories, and assert the license-exempt center age-two and Group 2 cells. - Drop il_ccap_provider_type from three reimbursement cases that never read it, and rename the two whose names asserted a distinction they could not test. Cite each source document once rather than repeating a URL per page. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
A non-January month period does not accept scalar inputs, so the three cases asserting the Table A vintage against a live poverty guideline crashed the simulation builder. Run them across 2026 with the assertion keyed to March, which is the window the copayment defect occupied, and restate the incomes annually. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
… care override il_ccap_copay was defined only for Illinois, so every Illinois SPM unit reported a positive Table A copayment regardless of whether it had an eligible child, met the work requirement, or passed the income test. Its only consumer is gated, so no subsidy was wrong, but the variable is exposed and reads as a real assessed charge. Gate it on il_ccap_eligible and establish eligibility in the copayment tests. il_ccap_protective_care_override carried no explanation of what it was for. Name the exemption groups it stands in for, none of which has a PolicyEngine analogue: families transitioning from IDCFS Intact Family Services, families whose parent is called into active military duty, parenting youth in care, and families served by the Extended Family Support Program. Record that it defaults to false, and replace the deprecated documentation field with a comment. Cite 89 Ill. Adm. Code 50.310 through its JCAR page, and note that Part 50 transferred to 23 Ill. Adm. Code 2060 at 50 Ill. Reg. 9842. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The unmodeled items the entry listed are deliberate scope decisions rather than gaps, and this repository does not track them, so the note and the partial status came off. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Halve the Table A copayment through a 0.5 rate parameter from September through May when every child in care is age 5 to 13, enrolled in school, and approved for part-day care, per IDHS CCAP Policy 04.02.01. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The is_in_k12_school variable imputes enrollment for ages 5 through 17, so the non-enrolled case must override it to false. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR extends the existing Illinois Child Care Assistance Program (CCAP) model from eligibility-only coverage to monthly family copayments, maximum base provider rates, and ordinary child care subsidy payments. It also updates countable income, continuing-family income eligibility, immigration treatment, benefit aggregation, and program metadata.
Fixes #9188.
Regulatory authority
The implementation uses the following official Illinois sources:
Income eligibility tests
Income deductions and exemptions
The countable-income calculation maps the official non-exempt categories to 11 model inputs: wages, farm and non-farm self-employment income (including specified-service self-employment), rental income, dividends, interest, pensions, veterans benefits, unemployment compensation, and workers compensation. It excludes the income categories identified as exempt in Illinois policy, fully deducts child support paid through a rate parameter, and floors countable income at zero.
The model excludes all child earned income (wages and farm income) as the approved approximation because the data do not identify whether a child is the CCAP applicant. Tests cover adult income, child earnings, child support paid, rental income, missing income, and a negative net amount.
Copayments
is_in_k12_schoolimputation (ages 5 through 17 assumed enrolled) unless specified.Copay tests pin the exact published cells at each table threshold, one dollar above and below, the July 2025 activation boundary, and the July 2026 Table A transition. Table B tests cover the school-year window boundaries and each disqualifying condition: a full-day sibling, a child below school age, no school enrollment, an enrolled special-needs teenager above the school-age limit, and no child in care.
Benefit calculation
The model classifies each eligible child by four provider types, three county groups, three age groups, and daily care duration. It applies the official 2025 and 2026 maximum base rates for part-day, full-day, full-plus-part-day, and two-full-day care.
For each eligible child, the model:
pre_subsidy_childcare_expensesat that maximum.The subsidy pays base provider rates only, so
il_ccapis a base-payment estimate; actual payments can also include quality and seniority add-ons. The PR publishes the result as monthlyil_ccap, adds annualil_child_care_subsidies, and registers the Illinois amount in the federal child care subsidy aggregator.Not modeled
Historical notes
The modeled payment schedules begin July 1, 2025, gated by an
in_effectparameter, and carry the July 1, 2026 histories. Illinois transferred program administration from IDHS to IDEC on July 1, 2026; this PR retains the existinggov.states.il.dhs.ccappath to avoid an unrelated model-tree migration. The current IDEC provider page supplies the current program context.Files
This PR changes 69 program files: 61 added and 8 updated.
policyengine_us/programs.yamland add one towncrier fragment.Testing
make format: passed.main.Testing was scoped to the Illinois CCAP paths; no broader package or microsimulation suite ran locally.