Repository navigation
Conversation
Under 10A NCAC 10 .0905 and Chapter 5 of the Subsidized Child Care Assistance policy manual, North Carolina pays for care only when both parents or responsible adults in the household need it, through work, education or training, or an inability to provide care, or when the child needs it for developmental needs or Child Protective Services. nc_scca_entry_eligible had no such test, so a family received a subsidy whether or not anyone in it worked or studied. Add nc_scca_need_eligible and require it in nc_scca_entry_eligible. Work First enrollment, child disability and protective services stand in for the agency's records, and meets_ccdf_activity_test covers job search, absences, part-time study and Child Welfare Services. Part of #9289. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #10691 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 1 2 +1
Lines 29 36 +7
=========================================
+ Hits 29 36 +7
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
PR Review: Require a need for care in North Carolina's child care programPR #10691 (author: MaxGhenis), head Path prefixes:
I read these sources first, before the code:
Page numbers below are PDF file pages. In Chapter 5 the file page is the printed page plus one; in Chapter 7 the two are the same. Each claim says what it rests on: my reading of the code, a hand trace, a source PDF, or a CI log. I ran no Python or tests. SummaryThe fix is needed, and its core matches the rule. On The PR adds
It reuses the generic activity variables and reinvents none. One critical:
Four should items:
Five suggestions: G1 to G5. CI and branch. CI is 38/38 green at the head. The branch is 217 behind main and 2 ahead, and Critical (must fix)C1.
Should addressS1.
S2. Four new terms or list entries are unpinned: deleting any one fails no fixed test (my reading of the YAML, the property test and the partner cases).
S3. The references don't follow CLAUDE.md ("Parameter and variable references"; "Always cite specific regulation sections").
S4. Axiom coverage stops at .0905 and Chapter 5 III.A.
SuggestionsG1. Model the CPS and CWS income waiver in a follow-up (pre-existing; this PR doesn't introduce it).
G2. The need is vacuously true when no responsible adult remains (lines 54-61).
G3. The property test overlaps the YAML and costs more than it needs to (CLAUDE.md "Test design and CI cost").
G4. Share a helper with #10690.
G5. Note how far the Work First stand-in reaches.
Verified correct
Hand checks (13, all at 2026-01 unless noted; 2026 FPG is $21,640 for 2 and $27,320 for 3, so 200% is $3,606.67 and $4,553.33 a month):
Axiom line assessmentThe line is
Two caveats:
CI status
Branch status
Verdict: REQUEST_CHANGES |
DTrim99
left a comment
There was a problem hiding this comment.
Requesting changes: 1 critical, 4 should address, 5 suggestions (details in the report above). The core matches 10A NCAC 10 .0905-.0907 and manual chapters 5 and 7, reuses the generic variables, and gates only the NC program. All 13 hand checks pass.
- Critical: the education path reads only
is_full_time_student. .0905(f) defines training leading to employment as continuation of high school, basic education or its equivalent, and post-secondary or skills training, with no full-time condition; manual III.C sets none either. So a part-time or GED-track parent is denied a need and gets $0.is_part_time_college_studentandis_in_secondary_schoolalready exist, and #10690 reads part-time study. - Should:
- A co-resident parent who files separately is never a responsible adult.
- Several new entries and branches have no case.
- Six manual hrefs differ only by
#page, and the CPS and developmental paths should cite .0906 and .0907. - rulespec-us#2068 defers paths the PR encodes, and no issue tracks them.
North Carolina pays for subsidized child care only when a family needs it. Each parent or responsible adult in the home has to work, study, or have a reason, such as a disability, that keeps them from working and providing care. A family in Work First, or with a child who has a developmental delay or receives protective services, also has a need.
nc_scca_entry_eligibleonmainhas no such test, so a family receives a subsidy whether or not anyone in it works or studies. We addnc_scca_need_eligiblewith the state's test and require it innc_scca_entry_eligible.For example, a Wake County parent of a 3-year-old with a $1,000 monthly child care bill and $30,000 in wages receives $750 in January 2026, on
mainand on this branch. With the same $30,000 from a pension and no job, the parent receives the same $750 onmainand nothing on this branch.We fix Colorado's half of #9289 in #10690.
The rule
Under 10A NCAC 10 .0905(a), the program "shall pay for child care services provided to support: (1) employment of the recipient; and (2) training leading to employment of the recipient." In section II of Chapter 5 of its policy manual, the state adds three more needs: a child's developmental needs, Child Protective Services and Child Welfare Services. In the rest of .0905 and Chapter 5, the state sets whose need counts and what meets it:
Users can set
meets_ccdf_activity_testfor job search and absences under .0905(c) to (e), part-time study, Child Welfare Services under section III.F, and an elderly recipient under .0905(b)(6), which sets no age. We date the earned income sources from the state's readoption of .0905 on March 1, 2019, before the program's earliest parameter.Invariants
test_nc_scca_need_properties.pydraws earnings, studies, disabilities and family makeups and checks five invariants. The first compares the model withadult_has_need, which restates the rule on its own:nc_scca_entry_eligibleimpliesnc_scca_need_eligible, and a family without a need receives nonc_scca.Tests
nc_scca_need_eligible.yaml, among them:nc_scca_need_eligible: truein 9 existing cases whose families have no earnings and would otherwise fail the new test:nc_scca_entry_eligible.yaml;integration.yaml;nc_scca_child_eligible.yaml;nc_scca_maximum_payment.yaml.nc_scca_entry_eligible.yaml, a family with an eligible child and no need fails entry.signatures/nc.yamlandedge_cases/state/nc/scca.yaml, and 9 intest_nc_scca_need_properties.py.Impact
We ran the default dataset for 2026 on this branch and on its base, 040fe56. We estimate that North Carolina's child care subsidies fall from $127.1 million to $2.0 million a year. On
main, 4 North Carolina records receive a payment, with weights summing to 17,825 families. The 2 that lose it account for 12,572 of those families, and nearly all of that weight comes from one family of five, so the estimate rests on one record. In that family, one parent earned $25,047 in 2024 and the other neither worked, studied nor had a disability.As these families pay more of their bills, we estimate that they receive $37.4 million more in SNAP. National household net income falls by $87.7 million, all of it in North Carolina, and national SPM poverty rates don't change. National SPM net income rises by the same $37.4 million, because
spm_unit_benefitscounts SNAP and leaves out North Carolina's subsidy.axiom: TheAxiomFoundation/rulespec-us#2068 queued
🤖 Generated with Claude Code