Skip to content

Charge Colorado families one child care parent fee under section 3.124 - #10721

Merged
MaxGhenis merged 6 commits into
mainfrom
co-ccap-parent-fee
Nov 9, 2026
Merged

MaxGhenis merged 6 commits into
mainfrom
co-ccap-parent-fee

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

Under 8 CCR 1403-1 section 3.124, a Colorado county charges each household one monthly parent fee, which it sets from gross countable income, household size and the number of children in care. Main charges that fee once for each eligible child and weights each charge by the child's hours of care a day, so a child with no recorded hours adds nothing. Populace US 2024 records no hours, so on main no Colorado family pays a fee.

With this PR, the model applies the section 3.124 fee formula:

  • 1% of gross countable income plus 14% of income above the federal poverty guideline (3.124(P)(1) and (2)), with the guideline Colorado sets each October 1 under 3.111(H)(2) and (3);
  • $15 for each child in care after the first when income exceeds the guideline (3.124(P)(3));
  • the fee in whole dollars, with the model dropping the cents after each step as the parent fee tool from the Colorado Department of Early Childhood (CDEC) does (3.124(A));
  • 55% of the fee when every child in care receives part-time care (3.124(U) and (W));
  • 20% off when a provider for any child in care rates in the top three quality levels (3.124(H));
  • no fee without income (3.124(I)(7));
  • the marginal rates of 3.124(Q), with no $15 add-on, from August 1, 2028.

Schedules

The model picks the 3.130(C) care unit from hours a day: 0.55 through 5 hours, 1 through 12, 1.55 through 17 and 2 through 24. When a family reports only weekly hours, the model spreads them over the child's days of care in a week. It takes the larger of days a week and attending days a month x 12 / 52, or five weekdays without either. It counts days of care a month as the larger of days a week x 52 / 12 and attending days a month.

The model counts a child as in part-time care below 13 units a month, or at up to 5 hours a day for a child in school aged 6 or older (3.124(W)). A child of that age with only an after-school expense and no recorded hours or days also counts as in part-time care, since that care fills part of a school day. Without recorded hours the model reads a full-time day, and without recorded days a five-day week (21.67 days), so a household with no schedule otherwise pays the full-time fee.

The model counts an eligible child as in care when the child has recorded hours or days of care, or child care or after-school expenses.

Impact

We ran this code and main (040fe5686c) on Populace US 2024, and we estimate that Colorado's child care subsidies for 2026 fall by $66.8 million, from $270.7 million to $203.9 million. Populace records one child care bill for each SPM unit, with no schedule or provider rating, so every household in the run pays the full-time fee with no quality discount. The model splits each bill across the unit's children, so every eligible child in a paying family counts as in care. Each child after the first adds $15 when income exceeds the guideline.

The subsidy falls for all 19 Colorado records that receive one, and 11 of them reach zero. We estimate that SPM units receiving a subsidy fall from about 31,400 to about 18,800. Three records make up 91% of that starting weight.

We estimate that families claim $6.1 million more in federal child and dependent care credits and receive $0.8 million more in SNAP, since the credit and SNAP's dependent care deduction both rise with what families pay for care themselves. We also estimate that household net income falls by $59.9 million and that the national SPM poverty rate holds at 14.52%. No other state changes.

Readings

PolicyEngine reads 3.124(P)(2) to charge 1% of all gross countable income plus 14% of income above the guideline, as CDEC's Above 100% FPG Parent Fee Tool computes it. CDEC's At 100% FPG tool computes 1% of the guideline instead for incomes above it. For example, a family of 3 with $40,000 a year and 2 children in full-time care owes $192 under that formula on the January 2026 guideline and $204 under the Above 100% formula. source_conflicts/candidates.yaml records the difference as us-co:ccap-parent-fee-income-share.

The model also reads:

  • "all children in a household" in 3.124(U) as the children in care, as CDEC's tool asks for the number of children requesting care.
  • the 3.124(Q) table, which skips from 100% to 101% FPL, from 130% to 131% and from 160% to 161%, to start each rate on the first dollar above 100%, 130% and 160% of the guideline.
  • a child in school aged 6 or older as in grades 1 to 12 under 3.124(W), since the model has no grade input.
  • gross countable income below zero as no income.
  • each new guideline and fee table as reaching every household on its first day. Counties update a fee at the next redetermination (3.124(R) and (T)), and the model has no redetermination dates. For example, a family of 3 with $60,000 a year and 2 children in full-time care owes $454 in September 2026 and $446 in October 2026.
  • monthly income and the guideline in cents, as 3.111(H) lists the guideline. For example, a family of 3 with $23,999.64 a year owes $19 in January 2026, since 1% of $1,999.97 comes to $19.9997. CDEC's tools keep annual amounts unrounded, so the fee can differ by $1. For example, a family of 2 with $21,340 a year in January 2026 owes $19 here and $20 under the tool's formula.

Tests

  • YAML cases for each variable. The fee cases match the formula in CDEC's Above 100% FPG tool where they overlap. For example, the formula gives a family of 3 with $40,000 a year and 2 children in full-time care $204 on the January 2026 guideline and $196 on the October 2026 guideline, which CDEC's published tool uses.

  • test_co_ccap_parent_fee_properties.py checks four invariants with Hypothesis, on generated households:

    1. The fee never falls below zero and always comes to whole dollars.
    2. Through July 2028, at a given income and household size, each child in full-time care after the first adds $15 at a provider below quality level 3 when income exceeds the guideline, and nothing when it doesn't.
    3. At a provider below quality level 3, the fee falls to 55% of the full-time fee, without cents, when every child in care receives part-time care, and stays at the full-time fee when any child in care receives full-time care.
    4. A provider in the top three quality levels for any child in care cuts the fee by 20%, without cents. A lower rating, or a rating for a child outside care, changes nothing.

    A differential test compares the model with a reference written from the rule in exact decimal arithmetic, in January and October 2026 and in July and August 2028, on incomes in whole dollars and in cents. The reference uses the model's schedule defaults and, for 2028, its projected guideline.

  • The new Python file adds about 29 seconds to the 28-minute Rest Python shard 4 on Linux CI, whose log reports no peak memory. On a loaded Mac it took 43 seconds and peaked at 1.5 GB, against 23 seconds and 1.2 GB to import the model and build one simulation. It checks generated households across income cents and schedules, which fixed YAML cases can't enumerate.

Overlap with #10723

#10723 adds the same 3.130(C) units (rates/care_unit.yaml) and day count (co_ccap_care_days_per_month) for the rate cap, and caps the fee at the reimbursement rate under 3.124(L). Once both merge, we keep rates/care_unit.yaml and delete parent_fee/part_time/full_time_equivalent_units.yaml. co_ccap_full_time_equivalent_units then reads co_ccap_care_unit x co_ccap_care_days_per_month, co_ccap_care_unit reads co_ccap_care_hours_per_day, and co_ccap_child_in_part_time_care tests co_ccap_care_unit below 1. Both PRs edit court_supervision.yaml case 5: with #10723's $837.42 reimbursement and this PR's $128 fee, the subsidy comes to $709.42.

Not in this PR

  • The model charges the formula fee to the households Colorado exempts under 3.124(I)(3) to (6): Colorado Works households in work activities other than paid employment, child welfare households, families experiencing homelessness during stabilization and protective service households without countable child income. It also leaves out the county waivers and reductions in 3.124(G), (I)(1), (I)(8), (S) and (X).
  • The model leaves out 3.124(V), the majority-of-months rule, since the schedule inputs hold for the whole year and every month gives the same answer.
  • co_ccap_fpg_eligible still tests income against spm_unit_fpg, the calendar-year guideline, rather than the October guideline in co_ccap_fpg.
  • Colorado adopted 3.124(P) to (T) as emergency rules effective July 23, 2026. If its permanent rules move the dates or rates, update the August 2028 entries in parent_fee/income_rate.yaml, marginal_rate.yaml and add_on.yaml.

axiom: TheAxiomFoundation/rulespec-us#2136 queued

🤖 Generated with Claude Code

MaxGhenis and others added 4 commits November 8, 2026 16:16
Compute one household fee from gross countable income: 1% of income plus
14% above the poverty guideline that 3.111(H)(2) and (3) set each
October, $15 for each child in care after the first above it, in whole
dollars, 55% when every child in care is in part-time care, and 20% off
at a top-three provider. Drop the per-child hours multiplier, which gave
a child with no recorded hours a fee of zero.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cases cover the guideline Colorado sets each October, the base fee on
gross income, the $15 fee for each additional child above the
guideline, which children count as in care, full-time-equivalent
units, part-time care under sections 3.124(U) and (W), the quality
discount, and the order in which the fee drops its cents.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Property tests check that the fee is never negative and in whole
dollars, that each child in care after the first adds $15 above the
guideline and nothing else, that the 55% rate applies only when every
child in care is part time, and that a provider in the top three
quality levels cuts the fee by 20%. A differential test compares the
model with an exact-decimal implementation of section 3.124 and CDEC's
parent fee tool.

The differential test found that the 0.001 whole-dollar tolerance
overcharged $1 on whole-dollar annual incomes 1,199 more than a
multiple of 1,200 below the guideline: $1,199 a year gives a base fee
of $0.99917. A tolerance of 0.0005 still covers float32 noise (at most
$0.00017 over 1,450 households) and floors those fees correctly.

The source-conflict candidates record the reading of section
3.124(P)(2): 1% of income, as the rule and CDEC's tool for households
above the guideline compute, not 1% of the guideline.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The fee's full-time equivalent units now take days of care as the larger
of days a week x 52 / 12 and attending days a month, and a five-day week
when neither is reported, as co_ccap_care_days_per_month in #10723 does.
Counties assess the fee on the authorized schedule (8 CCR 1403-1
3.124(V)), and attending days above it count drop-in days (3.130(F)).

The property test's reference implementation reads days the same way and
draws days a week as well as attending days. New cases cover a month with
drop-in days and a weekly schedule above the attending days. Fee
descriptions now say a child "receives" part-time care.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 2 commits November 9, 2026 05:11
Read the fee parameters at the month, so 3.124(Q) starts in August 2028 as
the rule says. Spread weekly hours over the days of care when a family
reports no daily hours, and read after-school care for a child in grade 1
or above as part time. Round income and the guideline to cents and floor
in float64, so $23,999.64 a year gives $19 and an exact $18 fee stays $18.
Narrow invariants 2 and 3 to the households they hold for.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Weekly hours now spread over the same larger day count that units of
care use. YAML cases pin each side of the 12-hour and 17-hour edges and
the after-school rule's day checks. The arithmetic comment and the test
docstring state what the model and the reference do.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

This session admin-merges this PR at af9d7b7bfa, because only the required approving review blocks it and GitHub doesn't let the author approve.

An independent Opus 5.5 agent reviewed this head against section 3.124 and agreed. It asked for changes at caf8fbb21f and 26d55ce93f, and this head answers them. Subfleet has every Codex and Claude lane on hold, so no GPT-6.1 Sol review ran.

At this head, all 36 checks pass, GitHub reports the PR as mergeable, and no review requests changes. The PR's code merged with current main passes the Colorado CCAP YAML cases and the source conflict tests.

@MaxGhenis
MaxGhenis merged commit 14de5b3 into main Nov 9, 2026
36 checks passed
@MaxGhenis
MaxGhenis deleted the co-ccap-parent-fee branch November 9, 2026 13:04
MaxGhenis added a commit that referenced this pull request Nov 9, 2026
#10721 charges the Denver family in Case 24 the $128 fee that
court_supervision.yaml Case 5 computes, so the subsidy falls from
$884.43 to $872.

Co-Authored-By: Claude Opus 5.5 <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.

1 participant