Complete Nebraska Child Care Subsidy implementation - #9186
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9186 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 4 23 +19
Lines 62 415 +353
Branches 0 4 +4
==========================================
+ Hits 62 415 +353
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:
|
Remove unobservable administrative and provider-billing inputs that no other state childcare model carries: registration fees, transportation and summer activity fee add-ons, absence-day billing, and caseworker approval flags. The earned-income disregard now keys on the enrollment flag as the proxy for LB304's 12-continuous-month requirement, the in-home provider condition on observable special-needs or child-count pathways, and the categorical waiver on observed foster care. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Mirror the eligibility/income/rates/fee layout used by other state childcare programs in both the variable and test trees, updating the intra-package Enum import paths accordingly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Address the review's seven critical findings and selected should-address items: - Default the provider type to the licensed-center category and treat unreported care hours as a full-day unit so survey households flow through the rate matrix; reimburse billed expenses when the matrix prices nothing (C1). - Pay the base rate to licensed providers with no reported quality tier (C2). - Guard the in-school child earnings exclusion against unit heads and spouses and extend it to K-12 students (C3, A4). - Replace the hard-coded October 2025 transition tuple with a provider_rate_model_in_effect parameter and drop the now-redundant zero backfills from the rate matrix files (C4). - Correct the age-threshold citations to 392 NAC 2-004(E) (C5), date the 10% earned income disregard to LB359's 2014-07-18 effective date (C6), and date the 7% family fee to the July 2020 State Plan amendment (C7). - Extend the categorical waiver to protective-services cases (A1), round the 85% SMI exit limit to the nearest dollar (A3), and fix reference anchors and sections (A16-A21). - Add coverage: unreported-quality base rate, in-home two-child boundary, the four unasserted license-exempt rate cells, federal aggregator assertions, SMI rounding, teen-head earnings, and expense-fallback cases (A9-A11, A13). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Program Review — Nebraska Child Care Subsidy (rewrite)PR #9186 · Fixes #9185 · Branch: 7 ahead / 0 behind Scope — what it doesThis is a rewrite of an incomplete model, not a fresh program. It converts Nebraska's Child Care Subsidy (CCDF) from a stub into a current-law implementation with:
Sources: Neb. Rev. Stat. § 68-1206 (as amended by LB304, effective 2026-07-18), LB304/LB359 slip PDFs, 392 NAC (Title 392), the FFY2025-27 CCDF State Plan, and the DHHS Subsidy-Rates.pdf 2025-27 rate chart (10 source PDFs total). Note: the rate value audit is a SAMPLE (14 licensed cells + license-exempt + structure), not an exhaustive check of all ~192 licensed cells. See Caveats. Verified correct — the rewrite-risk verificationsThis rewrite deliberately verified the hardest failure modes, and all held up:
Critical (must fix)None. Reclassification note (transparent): our code-pattern validator rated one item CRITICAL — the non-vectorized boolean-mask in-place assignment for the in-home per-child division in Should address1. Vectorize the in-home per-child division (top priority; robustness). in_home_base_per_child = np.zeros_like(in_home_monthly)
has_in_home_children = in_home_child_count > 0
in_home_base_per_child[has_in_home_children] = (
in_home_monthly[has_in_home_children] / in_home_child_count[has_in_home_children]
)
in_home_base_per_child = where(
in_home_child_count > 0,
in_home_monthly / max_(in_home_child_count, 1),
0,
)Our code-pattern validator rated this CRITICAL on robustness grounds; we classify it should-address because it produces no wrong output at current values — but it's the first thing to fix. 2. Confirm the categorical-waiver category list is complete per 392 NAC. (Regulatory) 3. Give 4. Document the microsim downward bias from unpopulated 5. Confirm the 392 NAC 2-004(E) age-13 continuity citation. (Regulatory) 6. Changelog type: 7. 8. Cross-variable Enum imports — confirm import-smoke green. (Code) Test-hardening (MEDIUM): 9. Legacy false-branch eligibility formula is never directly tested. (Tests, MEDIUM-1) 10. 11. No month-varying annual-aggregation case. (Tests, MEDIUM-3) Suggestions
Caveats
Validation summary
Review severity: APPROVE (recommend)Justification: there are 0 true criticals — the code validator's CRITICAL is a currently-correct, provably-float pattern reclassified to should-address; the rate sample is clean; tests are strong with both toggle branches pinned; and every rewrite-risk (deleted-var integrity, YEAR→MONTH, toggle, output contract) was verified. This clears the bar to approve. The top should-address (vectorization robustness) and the changelog-type question are worth the author's eyes before merge, but neither blocks. Next steps
🤖 Generated by /review-program (Claude Code) |
- Vectorize the in-home per-child rate division - Align the 85% SMI exit limit to the October vintage via a new ne_child_care_subsidy_smi variable - Document the categorical waiver legal basis and the unmodeled subsidized guardianship/adoption extension - Document microsimulation defaults on the enrollment input flags - Add a changed changelog fragment for the YEAR-to-MONTH redefinition - Add legacy-path, waiver-withdrawal, SMI-vintage, and month-varying aggregation tests Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…into pr/hua7450/9186
The merge with main left two coverage lines under the CCDF program, one carrying Tennessee and the other Oregon. YAML keeps the last key, so Tennessee dropped out of the coverage list while retaining a complete state entry. Fold both states into a single line. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…into pr/hua7450/9186 # Conflicts: # policyengine_us/programs.yaml
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Summary
This PR replaces the incomplete Nebraska Child Care Subsidy model with a current-law, monthly eligibility and provider-reimbursement model. It preserves the existing annual
ne_child_care_subsidiesoutput by summing the 12 monthly subsidy amounts.Fixes #9185
Regulatory authority
The implementation follows:
Research archived and page-verified 10 official PDFs totaling 328 pages.
Income eligibility tests
Income deductions and exemptions
The model separately sums parameter-listed earned and unearned sources. It excludes mapped tax, nutrition, housing, education, and other noncountable benefits and excludes earnings of an in-school child through age 18 — K-12 or postsecondary, and never a unit head or spouse, so a teen parent's own wages stay counted — following 392 NAC pages 11–14.
After 12 continuous months of receipt — proxied by the monthly enrollment status input — the model disregards 10% of gross earned income only. It uses available net self-employment and farm income as the documented proxy for Nebraska's gross-receipts and allowable-expense calculation. Regular military pay is counted, but available inputs cannot isolate the legally excluded combat-pay portion.
TANF enrollment and approved categorical cases waive the family fee. The model excludes computed Nebraska AABD from countable income to avoid a child-care-benefit dependency cycle.
Income standards
LB304 permanently retains the first three current-law tiers and the 10% earned-income disregard. Above 100% FPL, one monthly family fee equals 7% of gross program income under the approved current-income approximation; the fee applies once across all children.
Benefit calculation
For an eligible family, the monthly model:
Survey defaults keep the program live in microsimulation: an unreported provider defaults to the licensed-center category, unreported daily hours default to a full-day authorization, and a licensed provider with no reported quality rating receives the chart's base rate. The October 2025 transition to the rate matrix is governed by a
provider_rate_model_in_effectparameter rather than dates hard-coded in formulas.The model's only program-specific inputs are provider type, quality tier, enrollment status, and redetermination status, each with precedent in other state childcare models; every other fact derives from observable household variables.
The model transcribes all 192 licensed urban/rural rate cells from the current rate chart. It also models license-exempt family-home rates of $9.90 partial day and $16.50 full day in urban counties, $8.80 and $14.90 in rural counties, and license-exempt in-home care at $13.50 per hour. Billing units are partial day below 5 hours, full day from 5 through under 10 hours, and full plus partial from 10 through 18 hours, subject to 18-hour daily and 60-hour weekly caps.
Special-needs care (per the observable
ne_dhhs_has_special_needsstatus) increases the normal rate by 25%. The model dates the 2025–2027 rate matrix to October 1, 2025 based on the chart label, the current DHHS schedule, and the statutory October 1 rate-setting rule.The final annual
ne_child_care_subsidiesvariable adds monthly results, preserving monthly eligibility, fees, attendance, and provider facts rather than applying one annual determination.Requirements coverage
Not modeled
These groups remain explicit limitations:
The SPM unit and tax-unit head or spouse roles approximate Nebraska's assistance unit and caretakers. The model does not infer shared custody, temporary absence, minor-parent, unborn-child, or placement exceptions.
Historical notes
The 10% earned-income disregard dates to LB359, effective July 18, 2014, and the flat 7% family fee to the State Plan amendment effective July 1, 2020; both predate the PR's target years, so the dated parameters carry those origins without affecting 2025+ results.
LB304 was approved April 14, 2026 and became effective July 18, 2026. It removed the October 1, 2026 sunset that would have reverted initial eligibility to 130% FPL. The implementation therefore keeps the 185% FPL initial threshold, strict below-200% FPL redetermination tier, 10% earned-income disregard, and 85% SMI continuation ceiling after October 1, 2026.
The implementation replaces obsolete citations and earlier rate values with the current Nebraska Legislature, Secretary of State, and DHHS sources. It leaves the existing federal CCDF and household state-benefit registries unchanged.
Files
Variables and tests are organized into
eligibility/,income/,rates/, andfee/subfolders, matching the layout of other state childcare programs.The PR does not include local research under
sources/,uv.lock, partner contract tests, or registry changes.Testing
make format: passed.main(including theweekly_hours_worked_before_lsrdefault change, which Nebraska is unaffected by — its activity test keys on earned income, student status, or the CCDF activity fallback, not work hours).Testing was scoped to the Nebraska Child Care Subsidy paths. No broader state, package, partner-contract, or microsimulation test suite ran locally.