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>
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.