Implement Oregon Employment Related Day Care - #8993
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8993 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 1 31 +30
Lines 18 432 +414
==========================================
+ Hits 18 432 +414
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:
|
- Floor self-employment losses at zero per OAR 414-175-0035(81)(e) - Authorized care hours: 20/40/75 weekly bands, 20h categorical default, 25% travel allowance, 4.3 weekly-to-monthly conversion per OAR 414-175-0023(5) - Part-time billing tier now requires provider part-time billing input per OAR 414-175-0075(3)(b),(c),(e) - Cap hourly billing at the monthly maximum per OAR 414-175-0075 - Add job-loss and at-application copay waivers per OAR 414-175-0023(3)(d),(f) - Restrict supervised-contact exception to multiple-caretaker units - Parameterize education activity age limit; add GED pathway input - Age-13-17 pathway now requires OAR 414-175-0076 high-needs eligibility; add high-needs supplemental payment ($5 hourly / $840 monthly per factor) - Point variable/parameter references at controlling OAR subsections - Document microsim default bias and CNT infant-boundary ambiguity - Untrack sources/working_references.md; fix trailing whitespace - Update/add tests: 88 cases passing Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rlap rule Per OAR 414-175-0076(1) and the OPEN manual (07/2026, pp. 428, 448-449): - High-needs eligibility implies the special-needs rate category, so the supplement adds to the special-needs base rate rather than the ordinary age-based rate. - Monthly authorized hours round up before the 215-hour cap (the worker guide publishes the 20-hour band as 108 hours, not 107.5). - Two-caretaker units count only overlapping work or school hours; the lowest caretaker's hours remain as the maximum-possible-overlap proxy since schedules are not tracked, now documented with the OPEN citation. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
OAR 414-175-0035(21)(a) excludes the earned income of a child, and the OAR 414-175-0015(2)(d) filing group counts earned income only from caretakers. Sum earned sources per person and zero them out for non-caretakers (tax unit heads and spouses). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Replace 14 program-specific input variables with existing repo variables or documented simplifications: - Special needs rate, 13-17 child eligibility, and the second-caretaker exception key on is_disabled, is_incapable_of_self_care, and is_in_foster_care; Expanded Child Welfare is now a formula over is_in_foster_care. - GED study is covered by is_in_secondary_school. - Part-time billing, the high needs supplement, copay waivers, medical leave, and supervised contact are unmodeled, each noted in a formula comment; billing collapses to hourly-vs-monthly full-time thresholds (158 standard, 136 enhanced/licensed). - Reorganize variables into eligibility, income, rates, hours, and copay folders. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Criticals: - Add CCDF immigration eligibility check to or_erdc_eligible_child - Add pre-increase 2024-01-01 FAM/QFM rates from the DELC 7492i (01/24) insert so Jan-Feb 2026 and 2024-2025 no longer backfill the 3/1/2026 increase - Read EXP-CW eligibility at the month period in or_erdc_income_eligible Should-address: - Exclude excused (disabled) second caretakers from the need-hours min() so OAR 414-175-0023(1)(b)(A) families are not denied - Corroborate the 215-hour cap with the rate chart; standardize all OAR references to rule-specific URLs - Document provider area/type data limitations - Add 7 test cases: multi-caretaker min, 20-hour band edge, excused caretaker, unearned income, sub-bracket copay, categorical false, and per-business self-employment flooring Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
PolicyEngine's age-based headship assigns an 18-year-old child as the tax-unit spouse when no real spouse exists, so the head-or-spouse caretaker filter counted their wages. Per OAR 414-175-0015(2)(d), the filing group's children include those under 18 or age 18 attending secondary school, so their earned income stays excluded under OAR 414-175-0035(21)(a). Narrow the filter with a parameterized filing-group child definition. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Program Review — PR #8993 "Implement Oregon Employment Related Day Care" (ERDC)Consolidated report from 8 review passes: regulatory review, reference validation, code-pattern Scope: 31 new parameters and 20 new variables under Source Documents
CriticalNone confirmed. The one CRITICAL claimed by three reviewers was empirically refuted — see Should AddressS1. Missing part-time monthly rate tier (63–135 monthly hours) for enhanced/licensed providersFlagged independently by the regulatory review, the rates PDF audit, and the eligibility audit.
S2. Flat 215-hour cap makes the 75-hour weekly bracket unreachable (216–323-hour band)Eligibility audit mismatch 1. S3. Incomplete 2024 backdating of rates; 2026-03 eligibility/copay values silently active back to 2015The verifier established that policyengine-us backdates every parameter's earliest value to
S4. Test gaps: 2024 rate vintage untested; categorical positive paths only in integration
S5. age_group effective-date inconsistency among siblings citing the same source
S6. Reference hygiene: add OAR citation for age groups; page-anchor the archived insert
Suggestions
Investigated and Cleared
PDF Audit Summary
Verified Correct
Validation Summary
Review SeverityRecommendation: COMMENT (with S1–S3 called out as pre-merge-worthy fixes). Reasoning both ways:
On balance the implementation is accurate to its sources with defensible, mostly documented Next Steps — /fix-pr 8993Priority order for the fixer:
|
PavelMakarchuk
left a comment
There was a problem hiding this comment.
Automated /review-program pass complete — no confirmed criticals; see the missing 63–135-hour part-time rate tier and related items. Detailed findings: #8993 (comment)
…tions Adds the 150 published 2024 rate cells from DELC 7492i (01/24) for the five provider types missing them, backdates the hours thresholds and age-group definitions to 2024-01-01 with OAR 414-175-0075(1) citations, documents the unmodeled part-time monthly tier, the 215-hour cap, and the 2026-03 copay/limit backdating, adds page anchors, and covers the 2024 vintage and categorical paths with new tests. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Program Review — Oregon ERDC (new program)PR #8993 introduces a NEW state program: Oregon Employment Related Day Care (ERDC), the state's CCDF-funded child care subsidy. This is a polished, well-parameterized implementation: the sampled rate/copay audit found 0 mismatches, tests are thorough with no critical gaps, and the code is clean with no hard-coded policy values. There are no critical findings. The two items most worth weighing before merge are (1) the branch is 301 commits behind main (VERY STALE) and must be rebased and re-tested, and (2) the documented AREA_C / CERTIFIED_CENTER default-input bias, reported below per the microsim rule. Scope
Verified correctRate/copay value audit — 0 mismatch (SAMPLE for rates; FULL for copay):
Test thoroughness (no critical gaps): all 7 requested mechanics covered — two-tier income (initial + ongoing boundary pairs), 3-level rate breakdown (21 systematic cases across all areas/providers/ages), copay (sizes 2..8 + >8 clamp + categorical→$0 + below-first-bracket), countable-income exclusions (child earned income, per-business SE floor), hours (all bands, travel, ×4.3, cap, categorical floor, two-caretaker overlap), subsidy + per-child→unit aggregation + federal roll-up (Case 8: Code cleanliness: no hard-coded policy values (every literal traces to a parameter; only Regulatory confirmations: income limits exact (200% FPG initial; max(250% FPG, 85% SMI) ongoing; group size capped at 8) per OAR 414-175-0050(1)(b); eligible-child age thresholds (<13 standard, <18 special-circumstances/filing-group) per OARs -0022/-0015; child earned-income exclusion per -0035(21)(a); hours logic per -0023(5) incl. the OPEN worker guide's 108-hr figure; activity test (work/post-secondary/secondary≤20/two-caretaker disability proxy) per -0023(1); subsidy mechanic (lesser of charge or state max, minus copay) per -0075. Critical (must fix)None. Should address
Suggestions
Caveats
Validation summary table
Review severity: APPROVERecommend APPROVE. Zero criticals across all four reviews, a sample-clean rate audit and a full-clean copay audit, thorough tests, and clean code justify approval; the two things to weigh are the 301-behind staleness (a mechanical rebase-and-retest gate, not a defect) and the AREA_C/CERTIFIED_CENTER default bias (a documented, directional microsim caveat, dampened by the Next steps
🤖 Generated by /review-program (Claude Code) |
Address the review's two HIGH test gaps: an integration case where the activity test is the sole failing eligibility condition (care-need hours supplied directly so the rate and copay gate stay live), and countable income cases covering a mixed earned-plus-unearned unit and three more unearned sources (pension, rental, workers compensation). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
# Conflicts: # policyengine_us/programs.yaml
Closes #8991.
Summary
Modeling notes
or_erdc_provider_areaandor_erdc_provider_typeare direct inputs; the model does not track provider location or license type at the moment, so it defaults toAREA_CandCERTIFIED_CENTER. Because Areas B and C share the same rates, theAREA_Cdefault understates benefits for Area A (metro ZIP) families; supply the input or populate it from data to override.tanfwould create a circular dependency through child care expenses and TANF deductionsReview fixes (round 5)
Criticals:
is_ccdf_immigration_eligible_child) toor_erdc_eligible_child, matching sibling state child care programs (45 CFR 98.20(a)(1)(ii))or_erdc_income_eligibleinstead ofperiod.this_year, matchingor_erdc_categorically_eligibleShould-address:
min()per OAR 414-175-0023(1)(b)(A), guarded to multi-caretaker units so a lone non-working caretaker still yields zero hoursview.action?ruleNumber=414-175-00XX) in place of the division landing pageSources
Validation
py_compile10/10, YAML load 23/23) and confirmed clean by the implementation validatormake formatand Ruff checks passThe broad
make test-yaml-structuraltarget was stopped while it was spending several minutes in an unrelated existing contributed-policy batch; the direct parameter structural/import checks and all Oregon tests passed.