Skip to content

Add court-supervision childcare eligibility in ME, NC, VA, VT, and WA - #9554

Merged
hua7450 merged 5 commits into
PolicyEngine:mainfrom
hua7450:fix-court-supervision-national-9055
Sep 25, 2026
Merged

hua7450 merged 5 commits into
PolicyEngine:mainfrom
hua7450:fix-court-supervision-national-9055

Conversation

@hua7450

@hua7450 hua7450 commented Sep 20, 2026 •

Copy link
Copy Markdown
Collaborator

Children under court supervision can qualify for child-care assistance after the ordinary age cutoff in Maine, North Carolina, Virginia, Vermont, and Washington. Add that missing route using is_under_court_supervision: under 18 in NC/VA and under 19 in ME/VT/WA. Keep income, activity, immigration, dependency, and payment rules intact; court status does not set disability status or grant disability-based supplements.

Authorities: Maine CCAP rule §§1,2, NC manual Chapter 4 IX, 8VAC20-790-20, Vermont CCFAP rule I.B.6, and RCW 43.216.802(2)(a)(ii). Existing age variables and historical thresholds are retained; birthday and renewal-date continuity are not newly modeled.

Validation: CI runs the affected-program YAML tests, including the court-supervision regressions (mixed-household, waiver, and a full-pipeline benefit case per state); no local runs. make format passed. Partner tests were not changed. The reused age parameters now name both routes in their descriptions and labels and cite each state's approved CCDF Plan 2.2.1(c) election (ME/VT/WA 18.00, NC/VA 17.00) as references. Tests pin where the court route deliberately differs from the disability route (NC keeps the 133% school-age entry rate; VT's child special-health-need service need does not apply) and cover court supervision combined with disability and below age 13.

Related to #9055. Separate from #9543 and #9547. Includes the identical shared input and its two tests so it can merge independently. Nationwide follow-up continues; this PR does not close the issue.

@codecov

codecov Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (909176a) to head (b2a3f18).
⚠️ Report is 37 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #9554   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            4         6    +2     
  Lines           76        93   +17     
  Branches         2         0    -2     
=========================================
+ Hits            76        93   +17     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@hua7450
hua7450 force-pushed the fix-court-supervision-national-9055 branch from 60f9b8d to 2247dbb Compare September 21, 2026 20:12
hua7450 and others added 2 commits September 24, 2026 14:36
…s and tidy tests

- Note in the five reused age parameters that the court-supervision route
  shares the special-needs ceiling, citing each state's rule and its CCDF
  Plan 2.2.1(c) election.
- Correct the Virginia citation to 8VAC20-790-20(A)(1).
- Retype the changelog fragment as "added" since the PR introduces the
  is_under_court_supervision input.
- Drop is_disabled output assertions that only echoed an input default.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@DTrim99

DTrim99 commented Sep 24, 2026

Copy link
Copy Markdown
Collaborator

Program Review

PR #9554 adds a person-level input, is_under_court_supervision (YEAR, bool). It then ORs that input into the child-age test for ME CCAP, NC SCCA, VA CCSP, VT CCFAP and WA WCCC. Each state reuses its existing special-needs or disabled age ceiling for the new route. No parameter values change.

Source Documents

Critical (Must Fix)

None.

In all five states, the governing text puts court supervision in the same age clause as incapacity or special needs, so reusing the existing ceiling matches the law. Every ceiling, boundary test and effective date was checked against the source. The three effective-date concerns were cleared (see PDF Audit Summary).

Should Address

Parameter paths below are relative to policyengine_us/parameters/gov/states/.

  1. Parameter descriptions and labels do not mention court supervision. Each reused ceiling now also sets the court-supervision age limit, but only a # YAML comment says so. The app's parameter editor and /us/metadata never show comments. As a result, a reform that edits a "disabled child age threshold" would also change court-supervision eligibility without the user knowing.

    • nc/ncdhhs/scca/age/limit/disabled.yaml:1 ("...if they have a disability"), label at :6
    • va/dss/ccsp/age_threshold/disabled_child.yaml:1, label at :11
    • vt/dcf/ccfap/age_threshold/special_needs.yaml:1, label at :11
    • wa/dcyf/wccc/eligibility/age_threshold/special_needs_child.yaml:1, label at :12
    • The repo already has a pattern for this: name both routes, as ok/dhs/ccs/eligibility/disabled_child_age_limit.yaml:1, tn/dhs/ccap/eligibility/special_needs_age_limit.yaml:1 and mi/mdhhs/ccap/eligibility/disabled_child_age_limit.yaml:1 do. For example: "Virginia limits the Child Care Subsidy Program to children younger than this age if they are physically or mentally unable to care for themselves or are under court supervision."
    • ME (me/dhhs/ccap/age_limit/special_needs.yaml:1) is optional. Def. 19(f) makes a court-supervised 13-18-year-old a "Child with Special Needs", so the current wording is accurate.
  2. VA Guidance Manual anchor opens the wrong page.

    • va/dss/ccsp/age_threshold/disabled_child.yaml:16 cites §3.3 G at #page=58, which is "Indirect Payments / Self-Employment".
    • §3.3 G "Age of Children" is on #page=52: "under the age of 18 if ... incapable ... or subject to court supervision". This is the passage that settles 8VAC20-790-20(A)(1)'s ambiguous wording in favor of an under-18 cap for court supervision. The same page is at p.52 in the Oct 2024 edition.
    • The href predates this PR, but the PR edited the title two lines above it and now depends on this page, so it is in scope.
    • Also replace https://doe.virginia.gov/home/showpublisheddocument/56270#page=58 in va_ccsp_child_eligible.py:12 with the RIS URL at #page=52. The doe.virginia.gov URL returns 403, has never been archived, and is not linked from the official manual page, so no one can verify it.
  3. The NC parameter's references don't include the sources its new comment relies on.

    • nc/ncdhhs/scca/age/limit/disabled.yaml:3-5 cites only the FFY 2022-24 Plan, with no section number in the title. The new comment at :10-12 relies on Ch. 4 §IX and the FFY 2025-27 Plan.
    • The existing p.83 does corroborate both the value and the court-supervision route: §3.1.1(c) reads "Yes, upper age 17", verified at 600 DPI. So this is a completeness problem, not a missing reference.
    • Fix:
    • nc_scca_child_age_eligible.py:8 swapped the FFY 2022-24 Plan for a manual revised 04/27/2026. Keep both in a tuple so that 2022-2024 periods still have a source; the new integration test runs at 2023-01.
  4. No test pins the places where the court-supervision route deliberately differs from the disabled route.

    • NC. nc_scca_fpg_rate.py:17-19 applies 200% FPL only to preschool-age or is_disabled children. A court-supervised teen without a disability therefore gets 133%.
      • That is correct. Ch. 7 §II.A applies 200% to children with special needs, and NC defines special needs as a DPH/CDSA/LEA determination. Court supervision is a separate §IX exception.
      • The integration case in nc/ncdhhs/scca/court_supervision.yaml:98-132 uses income of $2,150, which is below both limits. Its comment at :127 ("Same household as the disabled 17-year-old integration case") hides the difference.
      • Add a case with income between 133% and 200% FPL that puts a court-supervised 15-year-old next to a disabled 15-year-old. Expected: nc_scca_fpg_rate 1.33 vs 2, and nc_scca_child_eligible false vs true. Also reword :127.
    • VT. vt_ccfap_meets_activity_test.py:27-30 counts only a disabled child as a child special-health-need service need (Regs II.B.1.g). The VT integration case sets both an employed parent (vt/dcf/ccfap/court_supervision.yaml:105) and meets_ccdf_activity_test: true (:118), so it never reaches this logic. Add a case with a non-working parent and expect vt_ccfap_eligible: false.
  5. Two WA tests don't check what their names say (wa/dcyf/wccc/court_supervision.yaml).

    • :133-146 "does not waive activity or pay for no care".
      • The case sets wa_wccc_activity_eligible: false as an input (:140), which skips the formula, and wa_wccc: 0 follows from defined_for.
      • Replace it with two cases:
        • (a) a non-working head plus a court-supervised 17-year-old, expecting wa_wccc_activity_eligible: false and wa_wccc: 0;
        • (b) the :98 household with zero expenses, expecting wa_wccc_eligible: true and wa_wccc: 0.
    • :98-131 "receives ordinary school-age reimbursement".
      • wa_wccc: 400 is expenses minus copay (500 − 100), which is below the rate cap, so the test doesn't show which rate applied.
      • Assert wa_wccc_max_monthly_reimbursement, or raise expenses so the cap binds.
      • Add absolute_error_margin: 0.01; it is the only WA WCCC currency test without one.
      • Add arithmetic comments like the other four states have.
  6. Combination and boundary cases are missing in all five court_supervision.yaml files.

    • No case sets is_under_court_supervision together with is_disabled, and no case applies it to a child under 13.
    • Both cases pass trivially under the current OR, but they would catch a future refactor such as a nested where or a ≥13 floor. WA's formula is also shaped differently from the other four (wa_wccc_eligible_child.py:21-23).
    • One three-child case per state would cover it:
      • a court-supervised 12-year-old → true
      • a court-supervised, disabled child at ceiling − 1 → true
      • a court-supervised, disabled child at the ceiling → false

Suggestions

  1. Turn the "CCDF Plan FFY 2025-2027 section 2.2.1(c)" comments into reference entries (me :4, nc :11-12, va :3-4, vt :4, wa :4-5).
    • All five citations were checked against the approved plans and are accurate. "Upper age N.00" means "through N": ME/VT/WA 18.00 means < 19, and NC/VA 17.00 means < 18. Every ceiling matches.
    • Use the plan links listed under Source Documents.
    • Consider removing numbers restated in comments (nc_scca_child_age_eligible.py:19 "through 17", wa_wccc_eligible_child.py:18 "under 19") so they cannot drift from the parameter values.
  2. ME variable reference and comment.
    • me_ccap_eligible_child.py:10 cites only #page=11. The clause the new logic implements, §2.A.7.c "Be a Child with Special Needs or under court supervision", is on #page=12, verified at 600 DPI.
    • Add that page, and optionally #page=5, as a tuple. Add a one-line comment at :16-17, as the other four states have.
  3. WA citations.
    • The PR removed the comment at wa_wccc_eligible_child.py:18 that cited WAC 110-15-0220(1)(b) for the special-needs route, and reference (:10-13) doesn't include it. Keep a citation that covers both routes, such as WAC 110-15-0005(3)(b)(ii)(A)-(B).
    • In special_needs_child.yaml:16-17, keep WAC 110-15-0220. It is the only provision that defines "verified special need"; the 0005 → 0020 cross-reference points to a section that doesn't define it. But retitle it as the special-needs rate-qualification rule, and consider citing (1)(a), which covers court-supervised 13-18-year-olds.
  4. Document the effective dates.
    • ME 2024-01-01 is supported by the 2019 rule (Def. 22 and §3.A.6) and by ME's FFY 2022-24 Plan §3.1.1(c). The repo cites only the 8/18/2025 rule.
    • For VT, the DCF memo effective 6/30/2024 restates I B 6 unchanged.
    • Adding these as references would record that the dates were checked.
  5. Microsimulation coverage.
    • is_under_court_supervision defaults to False, and no dataset populates it. In microsimulation the new route therefore never fires: court-supervised teens (13-18, or 13-17 in NC/VA) who are not disabled are never age-eligible, which understates eligibility and benefits for that group.
    • The group is small, so accepting this is reasonable. Alternatives are to populate the input in the dataset or to note the limitation in the variable's documentation.
    • The documentation could also say that true means a documented status: NC §IX requires it to be "documented in the case record", and VA §3.3 G requires a copy of the court order.
  6. Test conventions and optional extra tests.
    • The new cases live in root-level court_supervision.yaml files instead of the per-variable test files and integration.yaml. They also skip the Case N, ... names and personN IDs. Add court-supervision eligibility for child-care programs #9543 does the same, so this is acceptable as a convention for the series.
    • The NC flat cases pass is_tax_unit_dependent and immigration_status, which nc_scca_child_age_eligible never reads (for example nc/.../court_supervision.yaml:8-9).
    • Optional additions:
      • a VA two-child copay case (a court-supervised teen raises the copay from $60 to $120 through the per-child count);
      • one case each for ME, VA and VT showing that the dependency and immigration gates still apply to a court-supervised child.
  7. Coordinate with the sibling PRs. See the next section.

Sibling PRs in the #9055 series

Pre-existing issues (out of scope)

  • VA: the RIS-hosted Guidance Manual anchors are consistently 6 pages too high. Examples: age_threshold/child.yaml:13 §3.3 G (Integrate openfisca-us-data #58 should be Add AGI logic #52), §3.5 A (Add Parameters for SNAP Shelter Deduction #69 → Add wiki page with instructions on translating parameter from taxcalc #63), Appendix A (Add SPM income and poverty thresholds #142 → Handle changes in openfisca-us-data #136) and Appendix B (PolicyEngine-US Beta #143 → Add breakdown metadata to parameters #137).
  • ME: there is no 6-week minimum age (Def. 11(a), §2.A.7.a); existing Case 10 treats age 0 as eligible. "Turns 13 during the eligibility period" (§2.A.7.b) is not modeled.
  • WA: the under-13 test is not tied to "the first day of eligibility" (WAC 110-15-0005(3)(b)(i)). This only affects children who stay enrolled across a calendar-year boundary.
  • ME: income/smi_limit.yaml sets 125% SMI from 2024-01-01. The rule in force until 7/1/2024 said 85% (2019 rule §3.A.1), and 125% first appears in the July 2024 emergency rule. This is worth a separate issue.
  • VT: special_needs.yaml and the variable cite 33 V.S.A. § 3512, which contains no age provision; § 3511(1) is the statute that sets "under 13". The variable also cites a blog post for Act 76 instead of § 3512(a)(6).
  • is_disabled as the special-needs proxy: in microdata it is broader than "incapable of self care", because any CPS disability flag sets it. It is narrower than the states' own special-needs definitions (ME Def. 19(a)-(e), VT I B 7, NC ii.a).
  • is_tax_unit_dependent gate: it may exclude court-supervised children in kinship or guardian placements whom no one claims. Examples are ME's family-of-one rule on p.13 and WA's "parental control" requirement.

PDF Audit Summary

Category Count
Confirmed correct 50
Mismatches (code-path confirmed + visually verified, in PR scope) 7 (all documentation; 0 value)
Mismatches rejected (code-path cleared) 6
Unmodeled items 7
Pre-existing issues 5
  • Confirmed correct: 50 items matched across the five audits (ME 13, NC 9, VA 8, VT 10, WA 10). In addition, all 5 FFY 2025-27 plan upper ages matched, and 7 of 9 #page anchors were correct.

  • In-scope mismatches:

    The visual verifier tagged VA1 as pre-existing because the href is old. It is kept in scope because the PR edits that reference block. The VA variable's doe.virginia.gov anchor could not be verified (403) and is folded into Should Run black formatting on docs #2.

  • Investigated and cleared:

    • ME 2024-01-01 start: the 2019 rule in force then includes Def. 22 and §3.A.6 ("less than nineteen ... or is under court supervision"), and ME's FFY 2022-24 Plan §3.1.1(c) says "Yes, 18".
    • NC 2022-10-01 start: FFY 2022-24 Plan p.83 §3.1.1(c) says "Yes, upper age 17".
    • WA 2019-04-26 start: in WSR 19-08-020, "Be under court supervision" is carried-over text, and it also appears in WSR 17-23-017 (eff. 12/4/2017). The RCW dates only from 7/1/2021, but the WAC is enough.
    • WA 0220 vs 0020 citation: 0020 does not define special need.
    • VT annual age vs monthly_age: they produce identical output.
    • ME "documented by a professional": treated as the standard boolean-input assumption, the same as for is_disabled.

    The 2009 VT regulations still govern the 2025-26 tests, because the 6/30/2024 memo restates I B 6 unchanged.

  • Pre-existing: ME M3 (6-week minimum) and M4 (turns 13), VA2 (child.yaml anchor), VT2 (is_disabled proxy) and WA1 (first day of eligibility).

  • Unmodeled:

    • ME Def. 19(a)-(e) special-needs categories, including at-risk children
    • ME family-of-one placement rule
    • NC §IX ii.c, CPS or foster care. Could use receives_or_needs_protective_services or is_in_foster_care.
    • NC §IX ii.d, unsafe situation
    • VT I B 6 committed-child route. Could use is_in_foster_care.
    • WA WAC 110-15-0220(1)(a) special-needs rate add-on. It is not modeled for disabled children either, and it requires a request plus DEL/DSHS review, so the base-rate test is defensible.
    • NC and VA continuation for children who turn 13 during the eligibility period

    These are good candidates for a follow-up issue.

Validation Summary

Check Result
Regulatory Accuracy Pass. All five routes match the governing text; ceilings and effective dates verified.
Reference Quality Needs work. The VA manual anchor is wrong (#58 should be #52); the NC parameter doesn't list the manual or the 2025 plan; the CCDF plan comments have no URLs.
Code Patterns Pass. No hard-coded values; formulas are vectorized; MONTH formulas read YEAR inputs with period.this_year.
Formatting (params & vars) Needs work. Four descriptions and labels don't mention court supervision.
Test Coverage Good, with gaps. Every modified variable has boundary and integration cases. Divergences from the disabled route (NC FPL, VT service need) are not pinned, and two WA tests don't test what their names claim.
PDF Value Audit 50 confirmed, 0 value mismatches, 7 documentation mismatches.
CI Status Pending at review time (4 pass, 0 failing)
Partner contract tests Not touched

Review Severity: COMMENT

There are no critical issues. The five eligibility changes match current law, including values, boundaries and effective dates. The Should Address items cover parameter metadata, one wrong page anchor and test gaps. None of them changes model output.

Next Steps

To auto-fix issues: /fix-pr 9554

@DTrim99 DTrim99 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting changes per the program review above (#9554 (comment)). There are no critical findings: all five states' routes match current law, including values, boundaries and effective dates. There are 6 should-address items:

  • the NC/VA/VT/WA ceiling descriptions and labels don't mention court supervision;
  • the VA Guidance Manual anchor points to #page=58, but the section is on #page=52;
  • the NC references are incomplete;
  • no test covers where the new route differs from the disabled route (NC 133% vs 200% FPL; VT service need);
  • two WA tests don't check what their names say;
  • no state tests court supervision combined with disability, or a court-supervised child under 13.

…n route divergences

- NC, VA, VT and WA age parameters name special needs and court supervision
  in their descriptions and labels; CCDF Plan 2.2.1(c) elections, the NC
  manual and older plan, Maine's 2019 rule and Vermont's 2024 memo are
  references rather than comments.
- Virginia cites Guidance Manual 3.3 G on page 52; Maine and Washington
  cite the clauses implemented.
- Tests pin the NC 133% vs 200% FPL entry split and the VT service-need
  rule, replace WA's input-override activity case, assert the WA rate cap,
  and add court-plus-disability, under-13 and gate cases per state.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@hua7450
hua7450 requested a review from DTrim99 September 24, 2026 19:51
@DTrim99

DTrim99 commented Sep 25, 2026

Copy link
Copy Markdown
Collaborator

Program Review — Round 2

This re-review covers PR #9554 at head b2a3f189ca (b2a3f189ca2a30098e5da35e69e58eb0e3ce2bbc). Round 1 reviewed 98eb6331de and reported 0 critical, 6 should-address and 7 suggestion items. The author responded with one commit, b2a3f189ca ("Address review: name both routes in age parameters, fix citations, pin route divergences"), and no reply comment. The commit touches 14 files: 5 parameter YAMLs, 5 test YAMLs and 4 variable files. The VT variable is unchanged. Every formula is AST-identical to round 1, so model output does not change: the commit edits metadata, references, comments and tests only. This round re-checks each round-1 item at the new head, re-verifies every new or changed reference against its source, hand-checks every new or changed test case, and sweeps the commit for new issues.

Paths are relative to policyengine_us/parameters/gov/states/ (parameters), policyengine_us/variables/gov/states/ (variables) and policyengine_us/tests/policy/baseline/gov/states/ (tests). All line numbers are at b2a3f189ca.

Round-1 items

Item Round-1 severity Status Evidence
S1. Age-ceiling descriptions and labels don't mention court supervision Should address RESOLVED All four now name both routes. NC nc/ncdhhs/scca/age/limit/disabled.yaml:1,10; VA va/dss/ccsp/age_threshold/disabled_child.yaml:1,10 (round 1's suggested sentence verbatim); VT vt/dcf/ccfap/age_threshold/special_needs.yaml:1,10; WA wa/dcyf/wccc/eligibility/age_threshold/special_needs_child.yaml:1,10. Each wording matches its source clause. ME (optional in round 1) keeps its label, and a new comment at me/dhhs/ccap/age_limit/special_needs.yaml:2-5 explains that Def. 19(f) folds court supervision into "Child with Special Needs".
S2. VA Guidance Manual anchor opens the wrong page Should address RESOLVED disabled_child.yaml:14-15 cites §3.3 G "Age of Children" at #page=52. va_ccsp_child_eligible.py:12 now uses the same RIS URL; the unverifiable doe.virginia.gov/.../56270 link no longer appears in the repo.
S3. NC parameter references omit the sources its comment relies on Should address RESOLVED disabled.yaml:4-5 adds Ch. 4 §IX(ii)(a)-(b); :6-7 retitles the FFY 2022-24 Plan as §3.1.1(b)-(c) (#page=83); :8-9 adds the FFY 2025-27 Plan §2.2.1(b)-(c) (#page=18). The comment at :13-15 cites Ch. 4. nc_scca_child_age_eligible.py:8-11 keeps both Ch. 4 and the FFY 2022-24 Plan in a tuple, so the 2023 integration test has a source.
S4. No test pins where court supervision diverges from the disabled route Should address RESOLVED NC nc/ncdhhs/scca/court_supervision.yaml:146-176: two 15-year-olds at $3,500/month, between 133% ($3,027.97) and 200% ($4,553.33) of the 2026 three-person FPL; asserts nc_scca_fpg_rate [1.33, 1.33, 2] and nc_scca_child_eligible [false, false, true], matching Ch. 7 §II.A. The comment at :127-129 is reworded. VT vt/dcf/ccfap/court_supervision.yaml:161-189: a non-working parent with no activity override; asserts vt_ccfap_meets_activity_test: false, vt_ccfap_eligible: false and vt_ccfap: 0, matching Regs II.B.1.g.
S5. Two WA tests don't check what their names say Should address RESOLVED wa/dcyf/wccc/court_supervision.yaml:137-169 computes wa_wccc_activity_eligible from a non-working head instead of setting it as an input. :171-202 covers zero expenses with wa_wccc_eligible: true and wa_wccc: 0. :98-135 adds a comment, absolute_error_margin: 0.01 (:102) and wa_wccc_max_monthly_reimbursement: [0, 1_227.28] (:134), which equals the Region 1 center school-age rate ($53.36 × 23).
S6. Combination and under-13 cases missing in all five files Should address RESOLVED ME me/dhhs/ccap/court_supervision.yaml:142-152 ages [12, 18, 19]; NC :136-144 [12, 17, 18]; VA va/dss/ccsp/court_supervision.yaml:139-149 [12, 17, 18]; VT :136-146 [12, 18, 19]; WA :204-213 [12, 18, 19]. Each asserts [true, true, false] against the ceilings in force (ME/VT/WA 19, NC/VA 18). The WA case exercises both arms of its differently shaped formula.
Sug. 1. Turn CCDF Plan §2.2.1(c) comments into references; drop restated numbers Suggestion RESOLVED References added: ME special_needs.yaml:20-21, NC disabled.yaml:8-9, VA disabled_child.yaml:16-17, VT special_needs.yaml:18-19, WA special_needs_child.yaml:18-19. Variable comments no longer restate ages (nc_scca_child_age_eligible.py:22-23, wa_wccc_eligible_child.py:18-20). Parameter comments still restate the adjacent value, which carries low drift risk.
Sug. 2. ME variable reference and comment Suggestion RESOLVED me_ccap_eligible_child.py:10-14 is a tuple of #page=5, #page=11 and #page=12 (§2.A.7.c). Comment added at :20-21.
Sug. 3. WA citations Suggestion RESOLVED The comment at wa_wccc_eligible_child.py:18-20 cites WAC 110-15-0005(3)(b)(ii)(A)-(B), RCW 43.216.802(2)(a)(ii) and WAC 110-15-0220(1). special_needs_child.yaml:12 retitles 0005 as (3)(b)(ii)(A)-(B); :14 retitles 0220(1) as the special-needs rate qualification rule.
Sug. 4. Document the effective dates Suggestion RESOLVED ME special_needs.yaml:18-19 adds the 2019 rule (Def. 22, §3.A.6), with the comment at :4-5. VT special_needs.yaml:14-15 adds the 6/30/2024 DCF memo. ME's FFY 2022-24 Plan (optional extra support) was not added.
Sug. 5. Microsimulation coverage note in is_under_court_supervision documentation Suggestion UNRESOLVED (optional) The shared variable is unchanged. #9543 has merged, so the file already sits on main byte-identical; any documentation note now belongs in a separate PR against main, not in #9554.
Sug. 6. Test conventions and optional extra tests Suggestion PARTIALLY RESOLVED Gate cases added: ME :154-163, VA :151-160 (dependency and immigration), VT :148-159 (dependency only, correct because VT's immigration test is off from 2024-07-01). Root-level file convention accepted for the series. The NC flat cases still pass unread is_tax_unit_dependent and immigration_status inputs (nc/ncdhhs/scca/court_supervision.yaml:8-9, 20-21, 32-33, 44-45, 56-57, 68-69); the new NC cases omit them. The optional VA two-child copay case was not added.
Sug. 7. Coordinate with sibling PRs Suggestion RESOLVED #9543 merged first, as recommended. The shared files are byte-identical to main (see below). With S1 resolved, the parameter labels now make the reuse of each special-needs ceiling visible.

The author disputed no item.

Shared-file consistency

is_under_court_supervision.py and its test is_under_court_supervision.yaml are byte-identical at the heads of #9554, #9543 (merged), #9547, #9556 and #9555, and on main (f1fbfa8f77). #9547's latest commit, which consolidates its court-supervision routes on a single input, did not change either shared file. #9554's merge-base predates the #9543 merge, so its diff still lists the two files as added, but the content matches main and the merge is clean. No finding.

New issues

Critical

None.

Should address

None.

Suggestions

  1. VT plan anchor covers only part of "(b)-(c)" (vt/dcf/ccfap/age_threshold/special_needs.yaml:18-19). The title cites §2.2.1(b)-(c), but #page=17 shows only (b)(ii) and (c); the (b)(i) "upper age 18.00" line is on #page=16. Retitle as "Section 2.2.1(c)" or anchor #page=16. Round 1 recommended #page=17, so this is cosmetic.
  2. WA description wording (wa/dcyf/wccc/eligibility/age_threshold/special_needs_child.yaml:1). "...to under this age under the Working Connections Child Care program" reads awkwardly. Possible rewording: "Washington limits Working Connections Child Care eligibility to children younger than this age if they have a verified special need or are under court supervision."
  3. ME label consistency (me/dhhs/ccap/age_limit/special_needs.yaml:12). ME is now the only one of the five labels without "court supervision". The label is legally accurate under Def. 19(f); adding "(including court supervision)" would match the other four. Optional.
  4. NC comment points to the wrong case (nc/ncdhhs/scca/court_supervision.yaml:128-129). "See the next case for the divergence" points to the combination case at :136; the divergence case is at :150. Reword to "see the divergence case below".
  5. Unused WA test input (wa/dcyf/wccc/court_supervision.yaml:114, 150, 184). No WA WCCC variable reads childcare_attending_days_per_month. In the zero-expense case (:184, value 0) it suggests "no care", but the zero benefit comes only from spm_unit_pre_subsidy_childcare_expenses: 0 (:188). Harmless; could be dropped.
  6. WA cap derivation (wa/dcyf/wccc/court_supervision.yaml:98-99). The comment could show where $1,227.28 comes from: Region 1 center school-age $53.36/day × 23 full-day units. Optional.
  7. Pre-existing citations next to edited blocks (outside the diff). va/dss/ccsp/age_threshold/child.yaml:13 still cites §3.3 G at #page=58, while its sibling disabled_child.yaml:15 now correctly uses #page=52. vt/dcf/ccfap/age_threshold/special_needs.yaml:16-17 still cites 33 V.S.A. § 3512, which contains no age provision. Both are one-line fixes if the author wants the edited folders to agree.

Value audit

No parameter value or effective date changed between round 1 and b2a3f189ca: 5 of 5 values and 5 of 5 dates match (ME 19 from 2024-01-01, NC 18 from 2022-10-01, VA 18 from 2023-01-01, VT 19 from 2009-02-09, WA 19 from 2019-04-26). No other parameter file changed, so round 1's 50 confirmed items still hold. Re-downloaded source PDFs are byte-identical to the round-1 copies. This round checked 21 new or changed reference and citation entries against their sources: 21 are correct, 1 of them with the minor anchor note in Suggestion 1, and 0 are wrong. Every new or changed test case was traced by hand and matches its expected output. Partner contract tests are not touched, and the changelog fragment is unchanged and valid.

CI

37 of 37 checks pass at b2a3f189ca, including all baseline and contrib shards, Microsimulation, Household API Partners, Lint, the changelog check and codecov patch and project.

Branch status

The branch is 5 commits ahead of and 3 behind main (f1fbfa8f77); this is informational and did not affect any finding.

Review severity: APPROVE

All 6 round-1 should-address items are resolved, the new commit changes no formula, value or date, CI passes in full, and the only open items are 7 optional suggestions plus 2 optional round-1 carry-overs.

@DTrim99 DTrim99 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving per the round-2 review (#9554 (comment)). All 6 round-1 should-address items are resolved:

  • the ceiling descriptions and labels now name court supervision;
  • Virginia now cites Guidance Manual §3.3 G on #page=52, and the North Carolina references are restored;
  • new tests pin the NC 133% vs 200% FPL split and the VT service-need rule;
  • the WA tests are fixed;
  • court-supervision × disability and under-13 cases are added.

Formula logic is unchanged, all 50 round-1 values still hold, the shared is_under_court_supervision files are byte-identical to main, and all 37 checks pass. The remaining suggestions (a VT plan anchor, a few description tweaks, an unused WA input) are optional.

@hua7450
hua7450 merged commit 6be1d41 into PolicyEngine:main Sep 25, 2026
37 checks passed
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.

2 participants