Skip to content

Bring child care income limits into line with what states post - #10670

Open
MaxGhenis wants to merge 15 commits into
mainfrom
child-care-posted-limits
Open

MaxGhenis wants to merge 15 commits into
mainfrom
child-care-posted-limits

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

This PR brings policyengine-us's child care income limits into line with what states post. Every limit it changes cites a dated state document, carries effective dates and has tests. It also adds Ohio's Child Care Choice Voucher Program and the priority groups that Georgia's Childcare and Parent Services (CAPS) program requires of new applicants.

What changes

State Main This PR Dated sources
Alabama 180% of poverty for new applicants and 200% for continuing families from 2024 150% and 170% from June 1, 2026 DHR Child Care Fact Sheets, January 1 and June 1, 2026
Idaho 175% for new applicants back to 2015, on the current guideline 130% until April 6, 2023, 175% from then, and 130% from January 13, 2025, on the guideline year the department's table prints IDAPA 16.06.12.070 (2014, 2019, 2022 and current compilations) and .705; DHW release of November 14, 2024; DHW Apply for Child Care page (limits effective October 2025)
Indiana 150%, then 135% from April 5, 2026, on the current guideline The same rates on the guideline year behind each chart: the 2024 guideline from March 31, 2024, the 2025 guideline from May 1, 2025, and the 2026 guideline from April 5, 2026 CCDF State Plan FFY 2025-2027, Amendment 2; FSSA 2025 sliding fee schedule (file dated May 1, 2025); FSSA Income to Get on CCDF and 2026 schedule (April 5, 2026)
Missouri 150% of the current guideline; Transitional Level 3 to 242% 150% of the 2025 guideline through 2026; Transitional Level 3 ends July 1, 2026 DESE eligibility chart headed November 2025, updated July 1, 2026
West Virginia 185% of the current guideline 185% of the 2024 guideline that Appendix A prints Child Care Subsidy Appendix A sliding fee scale (October 1, 2024)
Montana 150% for new applicants and 185% graduated, at every date 185% for new applicants from July 1, 2023 (MCA 52-2-715); 200% graduated from July 1, 2025; each on the guideline year its scale prints MCA 52-2-715 (HB 648, 2023); DPHHS sliding fee scale effective July 1, 2025; Legislative Fiscal Division Child Care Overview (June 2024)
Nevada 41% of state median income for intake and 49% for renewals, back to 2015 85% intake through September 2018, 41% as a stand-in for the poverty-based first tier from October 2018, 85% from July 1, 2022 and 41% from October 1, 2024; renewals at 85% until October 1, 2024, then 49%. Federal funds reimbursed copays from July 1, 2022 through March 2024, the chart effective October 1, 2023 charged 0% to 7% of income from April through September 2024, and the flat $0, $90 or $150 starts October 1, 2024 CCDF State Plans FFY 2022-2024 (amended May 16, 2023) and FFY 2025-2027; DWSS transmittals CC PT 07-23 and 06-25; DSS income chart of October 1, 2026; DWSS copay Q&A (November 2024); Urban Institute CCDF Policies Database tables for 2015-2022
Ohio Publicly Funded Child Care only Adds the Child Care Choice Voucher Program: from November 2025, DCY pays families over the Publicly Funded Child Care intake limit and at or below 200% of poverty a monthly amount by provider type and age, up to the charge; from November 1, 2026 it pays Publicly Funded Child Care's base rates DCY Procedure Letters 21, 36 and 45; LSC final analysis of H.B. 96, Section 423.190
Georgia 50% of state median income for new applicants and 85% for enrolled families, at every date Dated limits for new applicants: 50% from October 2016, 85% from November 1, 2021, 50% from December 16, 2022, 30% from September 1, 2024, 40% from October 6, 2025 and 50% from March 2, 2026. From August 1, 2016, new applicants must belong to a priority group (CAPS/00-7, 7.3.1); DECAL drops the requirement at redetermination (7.3.1.3) CAPS Policy Manual (revised October 5, 2026), CAPS/00-7 and Appendix A; DECAL letters to families and providers dated 2016-2026; DECAL funding restrictions Q&A (2016); CCDF State Plan FFY 2025-2027

The income tests this PR changes round as each chart prints: to the nearest dollar in Alabama, Indiana, Missouri, Montana and West Virginia, and up to the next dollar in Idaho, Georgia's annual chart and Ohio's voucher limit. A family at a chart's printed top passes and a family a dollar over fails. Each of these income tests runs by month and reads its parameters on the month's first day, so a change that starts after the 1st, such as Idaho's January 13, 2025 or Indiana's April 5, 2026, takes effect with the next month.

Georgia's priority groups cover Child Protective Services and court-ordered supervision, children in DFCS custody, domestic violence, children with disabilities, Georgia's Pre-K, TANF, natural disasters, homelessness, very low income (a dated share of poverty, now 50%), Grandparents Raising Grandchildren, minor parents (20 or younger) and student parents (from May 1, 2022). Foster parents of children in DFCS custody skip the income and activity tests (7.5), and parents in Grandparents Raising Grandchildren skip the activity test (7.13).

Invariants

policyengine_us/tests/test_child_care_posted_income_limits.py checks these. It holds a copy of each state's chart as a second implementation, and it runs Hypothesis draws from a fixed seed next to fixed families:

  1. Posted charts. A family at the printed top of each chart passes and a family one dollar over fails, for every family size the chart prints. Nevada prints the nearest dollar of an unrounded share, so its test allows one dollar.
  2. Rules. For every dated rule and any income, a family passes if and only if its income does not exceed the rate times that date's guideline, which the test rounds as the state's chart does. So a family that passes also passes at any lower income.
  3. Enrollment never removes eligibility. A family that passes as a new applicant passes as an enrolled family at the same income, in every state with separate limits. The test also checks each family size from 1 to 6 at the highest income that passes as a new applicant.
  4. Ohio. The voucher pays only families over the Publicly Funded Child Care limit and never pays more than the charge; the test includes families whose charge binds. It never pays a family that Publicly Funded Child Care serves, including homeless families, whom that program serves without its income test. A family that fails both income tests fails both at every higher income. The voucher's own test fails some families at lower incomes on purpose: a family under the intake limit belongs to Publicly Funded Child Care.
  5. Nevada. While the April to September 2024 schedule applied, no family owed more than 7% of income, and sizes above 14 use the 14-person column.
  6. Georgia. Eligibility equals the conjunction of its tests, a priority group never removes eligibility, and enrollment replaces the priority group. The tests also run a fixed grid of 504 families and check that it holds families that fail only one test and enrolled families outside every priority group.
  7. The deck family. A family of three earning $40,000 gets the result each state's chart gives.

YAML tests pin single households on both sides of each dated change.

Impact on results

We ran the default dataset (populace_us_2024.h5, revision populace-us-2024-spm-20260909) for 2026 on main at fb9fd3c4 and on this PR at 8f4fe2b32b. Later commits change only tests and comments, so the results hold at the head.

Main This PR Change
Child care subsidies, all states $1,786.3 million $1,758.4 million −$27.8 million
Georgia $74.3 million under $200 −$74.3 million
Ohio $0 $46.4 million +$46.4 million
Indiana $27.7 million $27.7 million down, under $20
Household net income, all states −$20.8 million
People in poverty 50.2 million 50.2 million none

About 61,000 weighted SPM units change: about 21,000 in Georgia lose and about 40,000 in Ohio gain.

  • Georgia drops to almost nothing. The dataset carries no enrollment, so every family runs as a new applicant, and a new applicant must belong to a priority group; the 40% limit for new applicants from January through March adds to the drop. The run therefore leaves out what CAPS pays enrolled families, who face no priority test, and the figure measures the gate on new applicants, not the program's spending.
  • Ohio gains the voucher's payments for January through October 2026. The dataset carries no hours of care. Publicly Funded Child Care pays only for a child with at least an hour of care a month, so it pays nothing on either side. From November 1, 2026 the voucher pays those same rates, so in the run it pays nothing in November and December. Until then the voucher's chart pays by provider type and age, without hours.
  • Household net income falls by less than subsidies do, because the federal child and dependent care credit and SNAP's dependent care deduction, among other programs, read child care costs net of subsidies.
  • No change elsewhere. Alabama pays only for a child with some hours or days of care, Idaho only for a child with hours, and Missouri and West Virginia per day of attendance. The dataset carries no hours or days, so all four pay nothing on either side. Montana and Nevada pay under $20 in total on either side. The YAML tests pin these states' changes.

What this makes unnecessary in the APPAM deck

posted_limits() and OhioVoucher in slideshows/appam-2026/analysis/household.py (PolicyEngine/policyengine-slides) exist because the model read higher limits than Idaho, Indiana, Missouri and Alabama post and had no Ohio voucher. With this PR, the deck's family (one parent earning $40,000, children aged 1 and 4, $1,500 a month of care) gets the same 2026 result from the model alone:

State Main, no override Main with the deck's override This PR, no override
Alabama $14,568 $6,070 $6,070
Idaho $16,200 $0 $0
Indiana $4,925 $0 $0
Missouri $14,220 $0 $0
Ohio (voucher) $0 $18,000 $18,000

Annual child care subsidy, 2026. The deck should drop all four parameter overrides and OhioVoucher when it moves its policyengine-us pin past this PR. The Idaho, Indiana and Missouri overrides scale a 2025 limit by the 2026 guideline, so on top of this PR they would apply the lag twice and understate those limits. They leave this family's result unchanged only because it exceeds both versions of each limit. The Alabama override repeats this PR's value.

Three states the deck doesn't override change for its family:

  • Georgia: $15,244 to $0. As a new applicant the family fails the 40% limit through March; the model starts the 50% limit with April, the first month that begins after March 2. From April the family passes on income but belongs to no priority group. An enrolled family keeps $15,244.
  • Montana: $16,800 to $16,600. The July 2025 scale prints the 2025 guideline, which puts the family at 150.1% of poverty instead of 146.4%, so its copay rate rises from 3% to 3.5% of income.
  • West Virginia: $15,552 to $15,300. Appendix A's 2024 guideline moves the family up one copay band.

Source conflicts

source_conflicts/candidates.yaml records five source conflicts, and the PR adds no code markers:

  • us-id:iccp-initial-income-limit (ruled): IDAPA 16.06.12.070.01 still prints 175% at application; the department applies 130% to new applicants from January 13, 2025. The model takes the department's 130%: rule 070 lists conditions of eligibility, and rule 705 lets the department reduce child care benefits when it projects a funding shortfall, so the agency breaks the tie.
  • us-mt:best-beginnings-initial-income-limit (ruled): ARM 37.80.202(1) still prints 150%; MCA 52-2-715 requires at least 185%. The model follows the statute from July 1, 2023.
  • us-mt:best-beginnings-graduated-income-limit (ruled): ARM 37.80.202(2) ends graduated eligibility below 185%; the department's July 2025 scale runs it to 200%. The statute leaves the level to the department within the federal limit, and the model follows the scale from July 1, 2025.
  • us-mt:best-beginnings-pandemic-income-limit (unreviewed): the Legislative Fiscal Division's timeline lists 185% for July 2021 through December 2022; the model keeps the rule's 150% for those months.
  • us-wv:ccap-initial-income-limit (unreviewed): the FFY 2025-2027 plan lists 85% of state median income as the maximum initial limit, while the manual and Appendix A print 185% of poverty. The model keeps the manual and Appendix A.

Gaps the sources don't settle

  • Idaho: the copay still reads the current-year guideline while eligibility reads the department's table year. The department applies 130% at recertification too; the model keeps enrolled families on 85% of state median income. Before March 2, 2017 the rule required income below 130%, and the model tests at or below in every year. The 2026 Legislature enacted none of S1374 (155%), S1419 (135%) or H0958 (175%).
  • Indiana: the May 1, 2025 switch to the 2025 guideline rests on the date in the 2025 schedule's file name, the only date we found.
  • Guideline years before the first dated chart: no source dates the guideline year for Indiana before March 31, 2024, for Missouri before October 2025 or for Idaho and Montana before 2025, so the model keeps the current year until then.
  • West Virginia: before October 2024, Urban's 2023 table shows $2,666 a month for three, about 150% of the 2019 guideline, while the model reads 185% back to 2015; and the plan-against-manual question above.
  • Montana: the pandemic months above.
  • Nevada: from October 2018 to June 2022 the state set new applicants' first tier at about 130% of poverty. The model stands in 41% of state median income, which ran up to about four points lower for three in the earlier years. Only Urban's tables cover 2015-2017. The model moves every enrolled family to 49% on October 1, 2024, while the state moved each family at its first renewal after that date.
  • Ohio: in H.B. 96, the General Assembly set November 1, 2026 as the latest date for the voucher's move to Publicly Funded Child Care rates, and the procedure letters name no earlier one, so the model uses the deadline. DCY launched the voucher in April 2024, but the model starts it in November 2025 with Procedure Letter 36's chart. In Letter 36, DCY encourages programs to hold the family's portion to 9% of income without requiring it, and the model charges none.
  • Georgia: DECAL applies each limit by application date, and the model moves every new applicant at the first month that starts on or after the effective date. is_tanf_enrolled stands in for TANF families in employment services and is_full_time_student for enrollment in the listed programs. Before March 26, 2018 enrolled families faced 50% at redetermination; the model reads 85% at every date. The 2020 Essential Services Workforce group and DECAL's discretionary waivers stay out.
  • Maryland: no change. The model's $97,094 for three equals 75% of the state median income that MSDE applies in its February 2026 briefing; the $94,026 that Maryland Family Network and the Department of Legislative Services print uses the federal fiscal 2025 table.
  • Arizona: the model's $3,665 a month for three matches the 2026 Prenatal-to-3 Roadmap's 161% of the 2026 guideline. The Department of Economic Security's own chart sits behind a bot check, so we didn't recheck it.

We left waiting lists, intake freezes and child care take-up for a separate design decision.

Tests

  • YAML: the child care suites for every state this PR touches pass.
  • Python: policyengine_us/tests/test_child_care_posted_income_limits.py (103 tests) and the source-conflict and premium code-health tests pass.
  • Mutants: every one of 129 single-edit mutants makes at least one test fail. Each of 31 rule mutants breaks one rule: a rate, a date, a guideline year, a rounding step or a term in a formula. Each of 98 date mutants undoes one dated change in a parameter this PR adds or changes, or moves the change back to the previous date.

🤖 Generated with Claude Code

MaxGhenis and others added 2 commits November 5, 2026 11:41
…limits

Alabama's June 1, 2026 fact sheet tops the new-applicant scale at 150% of the
poverty guideline and the continuing scale at 170%. Idaho's department moved
new applicants to 130% when it reopened applications on January 13, 2025, and
posts limits on the 2025 guideline. Both formulas now print the same dollars
as the state's table.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…na apply

Each state applies a guideline year that lags the calendar, and each prints the
limit its chart posts only when the model reads that year:

- Missouri: 150% of the 2025 guideline through 2026 ($3,331 for three, not $3,415).
  Transitional Level 3 ends July 1, 2026.
- Indiana: 150% of the 2025 guideline through April 4, 2026 ($3,331), then 135% of
  the 2026 guideline ($3,074).
- West Virginia: Appendix A's 2024 guideline ($3,981 for three at 185%).
- Montana: 185% from July 2023 under MCA 52-2-715, on the 2025 guideline from the
  July 2025 scale ($4,109), with a 200% graduated tier from that scale.

All four round to the nearest dollar, half up, as their tables print.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis

MaxGhenis commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor Author

Maryland belongs on this plan too. Maryland Family Network and the Department of Legislative Services print $94,026 for a family of three at application, 75% of the federal fiscal 2025 median income. Maryland's February 2026 briefing gives $115,587 for four, which matches the model's limit of about $97,000 for three. We haven't settled which limit applies, so we keep the model's limit in the APPAM deck and report the result at $94,026 beside it. Check Maryland's median income vintage before changing the model.

The Maryland entry in slideshows/appam-2026/EVIDENCE.md (PolicyEngine/policyengine-slides) links both sources. The US hub's source-conflicts/RULINGS.md holds the deck's readings for this plan's states under these keys:

  • us-id:ccdf-new-applicant-limit-posted
  • us-al:ccdf-new-applicant-limit-june-2026
  • us-mo:ccs-chart-guideline-year-2026
  • us-in:ccdf-limit-before-april-2026
  • us-md:ccdf-new-applicant-limit-sources-differ

MaxGhenis and others added 5 commits November 6, 2026 09:39
Nevada's limit for new applicants stood at 85% of state median income through
2017, fell to a first tier of about 130% of poverty by October 2018, returned to
85% on July 1, 2022, and fell to 41% on October 1, 2024. Enrolled families kept 85%
until renewals moved to 49% on October 1, 2024.

Copayments follow three dated rules: federal funds reimbursed them from July 1,
2022 through March 2024; the chart effective October 1, 2023 charged 0% to 7% of
gross income from April through September 2024; and the flat $0, $90 or $150 starts
October 1, 2024. The per-size schedules transcribe the state's chart.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Families over the Publicly Funded Child Care intake limit and at or below
200% of poverty qualify for a monthly voucher. Procedure Letter 36 prices
it by age and provider from November 2025, and H.B. 96 moves it to the
program's unenhanced rates by November 1, 2026.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
DECAL's letters date each limit for new applicants: 50% of state median
income from October 2016, 85% from November 1, 2021, 50% again from
December 16, 2022, 30% from September 1, 2024, 40% from October 6, 2025 and
50% from March 2, 2026. Main applied 50% at every date. Enrolled families
keep 85% throughout.

From August 1, 2016, DECAL serves a new applicant only in a priority group
(CAPS/00-7, 7.3.1), and redetermination drops that requirement (7.3.1.3).
The model now checks each group it can observe: protective services and
court supervision, DFCS custody, disability, Georgia's Pre-K, minor and
student parents, TANF, homelessness, very low income, domestic violence,
natural disasters and Grandparents Raising Grandchildren. Foster parents of
children in DFCS custody skip the income and activity tests (7.5), and GRG
parents skip the activity test (7.13).

The income test reads the state median income table at the month, rounds
the annual limit up to the dollar as Appendix A prints it, and compares it
with twelve times monthly income (Manual 8.8.4).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Idaho: IDAPA 16.06.12.070 set 130% of the guideline until April 6, 2023,
  so the model no longer backdates 175% to 2015. New cases pin both sides
  of the 2022 and 2023 limits for a family of three.
- Montana: cite the Legislative Fiscal Division's overview, which dates
  HB 648's 185% to July 2023, and say why the model keeps 150% for the
  pandemic months that overview also lists at 185%.
- candidates.yaml records five source conflicts: Idaho's intake limit,
  Montana's initial, graduated and pandemic limits, and West Virginia's
  plan against its manual.
- A Hypothesis module walks every posted chart and checks the stated
  invariants: the top of each chart passes and a dollar over fails, each
  limit equals its rate times the dated guideline, enrollment never removes
  eligibility, Ohio's two programs stay exclusive, Nevada's 2024 copays stay
  within 7% of income, and Georgia's test equals its conjuncts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis marked this pull request as ready for review November 6, 2026 23:50
MaxGhenis and others added 4 commits November 6, 2026 22:00
The cap check set each child's charge at $2,000 a month, above every
payment in the voucher chart ($375 to $900), so a voucher that ignored
the charge still passed. The test now also runs families whose provider
charges $300 a month and checks that the charge binds for some of them.
It also adds homeless families, whom Publicly Funded Child Care serves
without its income test, and checks that the two programs stay
exclusive for them too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Alabama's and Montana's enrollment flags named the old limits (180% and
200%; 150% and 185%). They now point to the limit parameters instead.
Montana's SMI cap note said the cap binds only from 13 people under a
185% graduated limit. With the 200% graduated limit on the scale's 2025
guideline, the model's January 2026 limits show the cap binding from 11
people for enrolled families and from 12 for new applicants.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No test covered Indiana before its 2024 guideline-year switch or its
August 2023 rate change, so moving either change back to 2015 left
every test passing. Three June 2023 cases now pin the 2023 guideline
and the 127% limit: a family of three qualifies at $2,631 and not at
$2,632.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hypothesis drew two examples from a random seed, so whether a property test
caught a broken rule changed from run to run: Alabama's June 2026 rate and
Georgia's enrollment term each slipped past some runs. The draws now use a
fixed seed. The enrollment property also checks each family size at the
highest income that passes as a new applicant, and the Georgia properties run
on a fixed grid of 504 families and check that the grid holds families that
fail only one test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@DTrim99

DTrim99 commented Nov 7, 2026

Copy link
Copy Markdown
Collaborator

PR Review: Bring child care income limits into line with what states post

Summary

This is a large, carefully sourced PR. I checked at least one value per state against the dated state document. Alabama, Idaho, Indiana, Missouri, West Virginia, Montana, Nevada, Ohio and Georgia all match their charts, and the guideline-year mechanism (fpg(..., year_lag=...) and the new *_fpg variables) is vectorization-safe. The rounding rules match how each chart prints, and most effective dates trace to a primary source. The YAML suite pins nearly every new branch and dated boundary. The changelog fragments are correct. No partner-test files are touched. The merge with main is clean, and the source-conflict ratchet counts don't change.

There is one wrong result. The new Georgia foster-care waiver applies to the whole SPM unit, but CAPS treats a child in DFCS custody as a family unit of one, so the foster family's own children get CAPS without passing the income or activity tests. The should-address items cover:

  • the missing axiom line;
  • four source conflicts that are ruled only in an outside hub and not recorded in the repo;
  • Nevada's 41% stand-in for a poverty-based limit;
  • Ohio's voucher dropping all PFCC add-ons from November 2026;
  • Georgia's very-low-income group reading the new guideline before CAPS adopts it;
  • reference-rule problems;
  • the Python test's missing cost report.

Critical (must fix)

C1. Georgia's DFCS-custody waiver covers the whole family, not just the foster child.

  • Where: ga_caps_income_eligible.py:37-38 and ga_caps_activity_eligible.py:44-51. Both use add(spm_unit, period, ["is_in_foster_care"]) > 0 to waive the income test and the activity test for the entire SPM unit. ga_caps then pays for every eligible child in the unit, and the family fee (an existing unit-wide waiver) is zero.

  • Source: CAPS/00-7, 7.5 (revised 10/05/2026, p. 2) says children in DFCS custody are "counted as a family unit of one and will be considered as custodian and the recipient of services", and "each child eligible for CAPS will have a separate CAPS case". It also says: "Because children in this priority group are considered a family unit of one, foster parents are not required to meet income or activity requirements." https://caps.decal.ga.gov/assets/downloads/CAPS/07-CAPS_Policy-Priority%20Groups.pdf#page=2

  • The test pins the wrong result. ga_caps_eligible_priority_groups.yaml:204 ("DFCS custody waives the income and activity requirements") is a family of three:

    • a non-working 30-year-old;
    • a 2-year-old in foster care;
    • a 4-year-old who is not in foster care.

    The family has $9,000 a month ($108,000 a year), against a January 2026 new-applicant limit of ceil(110,736 × 0.84 × 0.40) = $37,208. The test expects ga_caps_eligible: true, so CAPS pays for the 4-year-old as well. Under 7.5 only the foster child is served without income and activity tests. The family's own child needs its own case that meets income, activity and a priority group.

  • Fix: limit the waiver to DFCS-custody children. For example, ga_caps could pay the foster children unconditionally (fee waived) and the other children only when the family passes the income, activity and priority tests. A smaller fix is to apply the waiver only when every CAPS-eligible child in the unit is in DFCS custody. Add a YAML case with one foster child, one own child and income over the limit that pays only the foster child.

Should address

S1. No axiom line. The PR body has no axiom: line, and this staff PR changes policy in nine states and adds the Ohio voucher and Georgia's priority groups. CLAUDE.md, "Axiom Parity", requires encoded-correct, a rulespec-us PR, or an open, pe-parity-labelled, dispatch-ready rulespec-us issue. axiom: needed is not valid for staff.

S2. Several source conflicts are ruled only in the outside hub, not in source_conflicts/candidates.yaml.

  • What the PR records: five candidates (Idaho, three for Montana, West Virginia), and these are well formed.
  • What the author comment names: further rulings kept in the hub's source-conflicts/RULINGS.md. A file outside the repo does not satisfy CONTRIBUTING.md#source-conflicts ("Every such conflict belongs in the register… The ruling PR records the conflict in source_conflicts/candidates.yaml"). The PR should add these:
    • Alabama (us-al:ccdf-new-applicant-limit-june-2026). The approved FFY 2025-2027 plan (Section 2.2.4, still cited in fpl_initial.yaml) gives 180% at application. Section 2.5.2(c)(iii), cited in fpl_continuing.yaml, gives 200% at continuation. The June 1, 2026 fact sheet prints 150% and 170%. Press coverage of DHR (WBRC, Nov. 7, 2026) also reports that the plan lists about $54,000 a year for four, against the fact sheet's $48,228. The PR follows the fact sheet over the plan. That is the same plan-against-guidance pattern it records for West Virginia.
    • Maryland (us-md:ccdf-new-applicant-limit-sources-differ). The PR finds that MSDE ($97,094 for three) and DLS/Maryland Family Network ($94,026) differ, and says "We haven't settled which limit applies." CONTRIBUTING says a conflict the PR "finds… already in the code" also goes in. Record it as open.
    • Missouri (us-mo:ccs-chart-guideline-year-2026). Manual 2010.045.00 is incorporated by 5 CSR 25-200.060(1). It says income "must not exceed 150% of the federal poverty level", while DESE's chart applies the 2025 guideline through 2026. Record which reading breaks the tie (the agency's chart) and why.
    • Indiana (us-in:ccdf-limit-before-april-2026). Record what the conflict is and the basis for keeping 150% of the 2025 guideline through April 4, 2026. That reading currently rests on a file name (see S6).

S3. Nevada's 41% of SMI stand-in for October 2018 to June 2022 is knowingly off the sourced limit.

  • Where: nv/dwss/ccdp/income/smi_intake.yaml:18.
  • What the sources say: the parameter's own comment says the state's plan documents and NWLC print 130% of the poverty guideline for this period ($27,012 a year for three in February 2019; NWLC prints 45% of SMI). It also says 41% "ran up to about four points higher for three in earlier years".
  • Effect: the PR claims these dates, so a new applicant between 41% and the actual 130%-of-poverty limit is wrongly ineligible from October 2018 through roughly 2020.
  • Fix: model the poverty-based first tier for that window, for example a dated intake FPG rate with an indicator, or record it as a documented not-modelled item. Don't add a dated value that is known not to match.

S4. The Ohio voucher drops every PFCC add-on from November 2026, but H.B. 96 excludes only Step Up to Quality.

  • Where: oh_ccvp_rate.py:21-22 returns oh_ccap_base_rate, the rate before all add-ons.
  • What the statute says: Section 423.190 (LSC final analysis, file p. 10) requires the program to use "the payment rates established for DCY's publicly funded child care program, except that the payment rates must not be enhanced payment rates available for participating in DCY's Step Up to Quality Program". https://www.lsc.ohio.gov/assets/legislation/136/hb96/en0/files/hb96-kid-bill-analysis-as-enacted-136th-general-assembly.pdf#page=10
  • What the code drops: besides Step Up to Quality, the special-needs and non-traditional-hours add-ons under 5180:6-1-10(F)-(G), and arguably the accreditation add-on (D), all of which the statute does not exclude. The voucher serves special-needs children up to age 18, so this hits exactly the families most likely to carry the special-needs add-on.
  • Fix: apply the non-Step-Up-to-Quality add-ons from November 1, 2026, or cite a DCY source that excludes them and record the reading as a candidate.

S5. Georgia's very-low-income group reads the new guideline before CAPS adopts it.

  • Where: ga_caps_priority_group_eligible.py:54-55 uses spm_unit_fpg for the calendar year.
  • What Appendix A says: footnote 1 of the October 5, 2026 Appendix A says "The FPL guidelines in this chart are effective for CAPS on March 2, 2026".
  • The test: ga_caps_priority_group_eligible.yaml:1104 ("Very low income, January 2026, 30 percent, at the limit") passes $683 a month, which is 30% × 27,320 / 12 on the 2026 guideline. CAPS's January 2026 threshold was 30% × 26,650 / 12 = $666.25.
  • Fix: this is the same guideline-year problem the PR fixes in five other states. Add a dated lag for Georgia's very-low-income guideline, with 2026-03-02 back to lag 0, and correct the January to March 2026 tests. Otherwise, document why the current-year guideline stands in.

S6. References that don't resolve or don't follow the CLAUDE.md reference rules.

  • Indiana dead link. in/fssa/ccdf/income/fpg_year_lag.yaml:27 points to .../CCDFSlidingFeeSchedule_w-Copays_2025_050125.pdf. It returns HTTP 404 and has no Wayback snapshot. It is the only basis for the May 1, 2025 switch to the 2025 guideline, a date the PR body's table states as fact. Replace it with a live or archived source, or move the claim to a documented assumption.
  • Same document split into several entries by page. CLAUDE.md: "URLs that differ only by #page= are one source". Use one entry with the title ending #page a,b, or for variable tuples a # PDF pages comment:
    • id/dhw/iccp/income/fpl_rate/initial_eligibility.yaml: IDAPA current, pp. 7 and 18.
    • mt/dphhs/ccap/income/fpg_limit/initial.yaml: Legislative Fiscal Division overview, pp. 4 and 13.
    • ga/decal/caps/priority_groups/student_parent_in_effect.yaml: CAPS/00-7, pp. 9 and 10.
    • ga_caps_activity_eligible.py: CAPS/00-7, pp. 2 and 8.
    • ga_caps_income_eligible.py: Manual, pp. 49 and 52.
    • oh_ccvp.py: Procedure Letter 36, pp. 2 and 4.
    • oh_ccvp_eligible.py: Procedure Letter 36, pp. 3 and 4.
  • Anchors that miss the value.
    • The Nevada FFY 2022-2024 amended plan is cited at #page=51 in smi_intake.yaml:40, smi_renewal.yaml:22 and nv_ccdp_income_eligible.py:13. Page 51 shows the 07/01/2022 effective date, but the 85% table ($5,066 for three) is on file page 50. Use #page=50 with a title ending #page 50-51.
    • oh/dcy/ccap/ccvp/payment.yaml cites Procedure Letter 36 at #page=2 only. The center preschool and school-age rows and the whole family-child-care table ($600/$550/$500/$300) are on page 3, so use a title ending #page 2-3.

S7. The Python invariant test lacks the cost report that CLAUDE.md "Test design and CI cost" requires.

  • What it adds: policyengine_us/tests/test_child_care_posted_income_limits.py adds 103 simulation-building tests. The PR body gives no before/after elapsed time, no peak memory and no CI group.
  • What CI shows: in this head's CI the file runs in Rest (Python shard 6), in the "remaining-2" process. Its 103 tests sum to about 46 s (05:21:25 to 05:22:11; Linux CI, memory not reported).
  • Duplication: two sections duplicate cases the YAML files already pin, which CLAUDE.md says not to add in Python:
    • section 1 (posted chart tops), already pinned at every size in the state YAML files;
    • section 7 (the $40,000 family).
  • What to keep: the cross-state invariants are a reasonable Python use: enrolled ≥ new applicant, Ohio exclusivity and monotonicity, and Georgia conjunction.
  • Fix: report the measurement and CI group in the PR body, and drop or justify the sections that duplicate YAML.

Suggestions

  1. Ohio enrollment payment. Procedure Letter 36 (pp. 2-3) prices an "Initial Enrollment Payment" on top of the monthly payments. For example, the "Total Voucher" of $11,700 for a center infant is 13 × $900, with up to three enrollment payments per child per eligibility year. The model pays only the monthly amount and doesn't say so. Note the omission in payment.yaml/oh_ccvp.py and in the programs.yaml Ohio entry, alongside the April 2024 to October 2025 period the model leaves out.
  2. Future guideline lags are fixed with no source.
    • West Virginia's lag of 2 from 2026 (wv/.../fpg_year_lag.yaml:9) makes 2027 read the 2025 guideline, which no scale prints.
    • Indiana's 2027-01-01: 1 (in/.../fpg_year_lag.yaml:17) is a forecast with no source, and it never switches back in April after 2026.
    • Add a comment that these are extrapolations, or stop the lags where the sources stop.
  3. Georgia Pre-K redetermination exception. DECAL's July 1, 2024 letter required families who entered through the Georgia's Pre-K group to belong to a priority group at redetermination. Its October 6, 2025 letter removed that requirement. The PR body and ga_caps_eligible.py say only that DECAL drops the requirement at redetermination. Document the July 2024 to October 2025 exception as a known gap.
  4. Candidate follows labels.
    • us-mt:best-beginnings-pandemic-income-limit says follows: statute, but no statute is involved; the model follows ARM 37.80.202(1).
    • us-id:iccp-initial-income-limit and us-mt:best-beginnings-graduated-income-limit are state: ruled with follows: conflicting-source. The file's own legend defines that value as "against the statute; the 2026-10-19 rule calls for a model change", which conflicts with a ruling to keep the code.
    • us-wv uses gap-fill where the plan and the manual conflict.
  5. Alabama family size 8 and above. The fact sheet prints one ">=8" column, but the model computes larger limits for 9 or more people. This was already the case on main; capping size at 8 for Alabama's FPG would match the chart.
  6. Ohio rounding guard. oh_ccvp_eligible.py uses np.ceil(oh_ccap_fpg * fpl_rate) without the round-to-cents step every other state in this PR uses. It passes today because the float32 monthly guideline collapses exact multiples, but the guard would make it consistent.
  7. Idaho copay guideline year. Idaho's copay still reads the current-year guideline while eligibility reads the table year. The PR body notes this; a code comment in the copay variable would help.
  8. Ohio programs.yaml entry. The Ohio entry's name is still "Ohio Publicly Funded Child Care". Consider a notes: line describing the voucher's modeled dates and omissions.

Verified correct

Each value below is checked against the source; the arithmetic is shown for the hand-checked expectations.

  • Alabama:
    • The June 1, 2026 fact sheet (dated "(June 1, 2026)") tops at the 141-150% column, $3,110-3,331 for three, and the continuing scale at the 161-170% column, $3,554-3,775.
    • Hand check: 26,650/12 × 1.5 = 3,331.25 → 3,331 passes and 3,332 fails. × 1.7 = 3,775.42 → 3,775 passes and 3,776 fails.
    • The January 1, 2026 sheet prints $2,997-3,173 for two at 180%. Hand check: 21,150/12 × 1.8 = 3,172.50 → 3,173, half up as the code rounds.
    • Alabama already used the prior year's guideline, so no lag parameter is needed.
  • Idaho:
    • The DHW page shows "Maximum monthly income limits, Effective October 2025", $2,888 for three and $2,292 for two. Hand check: 26,650 × 1.3/12 = 2,887.08 → 2,888, and 21,150 × 1.3/12 = 2,291.25 → 2,292, which confirms rounding up.
    • The November 14, 2024 release confirms 130% from January 13, 2025.
    • IDAPA 2014 ("less than… 130%"), the 2022 archive ("cannot exceed… 130%", 3-17-22) and the current 070.01 (175%, 4-6-23) match the dated values. Rule 705's text is as the candidate quotes it.
    • Hand check, Case 8 (Feb 2025): 25,820 × 1.3/12 = 2,797.17 → 2,798 passes and 2,799 fails.
  • Indiana:
    • Plan Amendment 2, 2.2.4: $3,228 for three at 150% (2024 guideline), "effective date… 3/31/2024".
    • FSSA chart "Effective 4/5/2026": $3,074 for three (27,320 × 1.35/12 = 3,073.50 → 3,074, half up), printing sizes 2-15.
    • in_ccdf_fpg.yaml pins every lag boundary.
  • Missouri:
    • The chart "Updated 7/01/2026" prints $3,331 for three (traditional) and $4,775 for Transitional Level 2, with "Transitional Level 3 removed July 1, 2026".
    • Hand check: 2,220.83 × 2.42 = 5,374.42 → 5,374 passes in June 2026, and × 2.15 = 4,774.79 → 4,775 in July 2026.
    • The manual's "subject to appropriation" language covers dropping a level.
  • West Virginia: Appendix A is headed "FY 2024 Federal Poverty Level", with intake caps of $2,322, $3,151 and $3,981 for one, two and three people. Hand check: 15,060/12 × 1.85 = 2,321.75 → 2,322 passes and 2,323 fails (Jan 2026, lag 2).
  • Montana:
    • MCA 52-2-715(1) says "no less than 185%".
    • The scale "Effective 07-01-2025" prints 185% "MAX ENTRY" at $4,109 for three and the 200% "EXIT" at $4,442. Its footnote cites the January 17, 2025 Federal Register, which is the 2025 guideline.
    • Hand checks:
      • Case 6a: 49,308/12 = 4,109 ≤ round(4,108.54) = 4,109.
      • Case 6c: 4,442 ≤ round(4,441.67).
      • August 2023: 24,860/12 × 1.85 = 3,832.58 → 3,833.
  • Nevada:
    • CC PT 07-23 is effective October 1, 2023 at 85% of SMI. 89,325 × 0.84 × 0.85/12 = $5,314.84, the chart's ceiling for three.
    • The chart image matches percent_of_income/size_3.yaml row for row ($2,478 / $2,884 / … / $4,914).
    • Hand checks:
      • three people at $2,885 → 2% = $57.70;
      • three people at $4,915 → 7% = $344.05;
      • three people at $5,314.84 → $372.04, the chart's maximum copay for three;
      • fourteen people at $7,171 → 1% = $71.71.
    • CC PT 06-25 gives 41% intake and 49% renewal, effective October 1, 2025.
    • The amended plan gives $5,066 for three, effective 07/01/2022.
    • October 2026, three people: 105,027 × 0.84 × 0.41/12 = 3,014.27, so 3,014 passes and 3,015 fails.
  • Ohio:
    • Procedure Letter 36 (October 29, 2025) gives center rates of $900/$800/$750/$375 and home rates of $600/$550/$500/$300. The school-age row runs to under 15 (under 18 with special needs). Eligibility is 146-200%, with "Families eligible for PFCC are not eligible for CCVP", and the November 1, 2025 start is confirmed.
    • Procedure Letter 45 gives a $4,554 voucher limit for three from October 1, 2026 (27,320/12 × 2 = 4,553.33 → 4,554).
    • The LSC analysis confirms the November 1, 2026 deadline and the 200% cap.
    • Hand checks: 800 + 750 = 1,550; min(800, 500) + 750 = 1,250.
    • Changing oh_ccap_base_rate to defined_for = StateCode.OH is safe, because oh_ccap_rate_with_addons keeps defined_for = "oh_ccap_eligible_child".
    • The enum defaults (CENTER, PRESCHOOL) are valid payment keys, so the NH Add New Hampshire state supplementation for 2026 #10156 pattern does not apply.
  • Georgia:
    • Funding Q&A: "Beginning August 1, 2016". The letters confirm:
      • 30% of SMI from September 1, 2024;
      • 10% very-low-income from July 1, 2024;
      • 30% very-low-income and 40% of SMI from October 6, 2025;
      • 50% for both from March 2, 2026.
    • Appendix A (October 5, 2026) hand checks:
      • 115,118 × 0.84 × 0.5 = 48,349.56 → $48,350;
      • × 0.85 = 82,194.25 → $82,195;
      • seven people: 115,118 × 1.35 × 0.5 = 77,704.65 → $77,705;
      • very-low-income: 27,320 × 0.5 = $13,660.
    • The 7.14 age (20 or younger), the 7.13 activity exemption and the student-parent date (May 1, 2022) match.
    • January 2026 integration case: 110,736 × 0.68 × 0.4 = 30,120.19 → 30,121.
  • Mutation pinning: Each priority group, the minor-parent boundary (20/21), the student-parent and priority-group start months, the very-low-income dates, the Ohio start and November 2026 switch, the voucher age limits, the Nevada copay regime months and each lag date all have tests on both sides.
  • Vectorization and entities: The guideline-year lag is a scalar parameter, smi() indexes all states, and the NV/GA/OH if branches read only scalar parameters.
  • Ratchet: No file gains conflict-sounding comments. mo_ccs_income_eligible.py stays at its KNOWN_UNMARKED count of 1, and test files are outside the ratchet's scope.
  • Changelog: changelog.d/child-care-posted-limits.added.md and .fixed.md are top-level with valid types.
  • Partner tests: no file under tests/policy/baseline/partners/** changed.

Axiom line assessment

Missing; see S1. The PR changes enacted and administrative eligibility rules in nine states, so n/a would not apply. It needs encoded-correct, a rulespec-us PR, or an open, pe-parity-labelled, dispatch-ready rulespec-us issue.

CI status

gh pr checks 10670 at head 7295789 shows 35/35 passing (Baseline, Contrib, Python Rest shards 1-8, Microsimulation, Household API Partners, PR validation, Package). Nothing is pending.

Branch status

Verdict: REQUEST_CHANGES

@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 review above: 1 critical (Georgia's DFCS-custody income and activity waiver covers the whole family instead of making the foster child a unit of one, per CAPS 7.5), 7 should (no axiom line; source conflicts ruled only outside the repo; Nevada 2018-22 basis; Ohio voucher add-ons; Georgia guideline date; references; Python test cost), 8 suggestions.

MaxGhenis and others added 4 commits November 7, 2026 14:42
- Georgia: serve a child in DFCS custody as a family unit of one, so the
  foster family's own children still face the income, activity and
  priority tests; read the very-low-income guideline from the date CAPS
  takes it up; read each Appendix A chart's median year; and apply the
  Pre-K group's redetermination requirement from July 2024 to October 2025.
- Nevada: test new applicants against 130% of the poverty guideline from
  October 2018 through June 2022, read the median each chart uses, and
  round as each chart prints.
- Maryland: give new applicants and continuing families the scales MSDE
  posts, on the federal fiscal 2025 median.
- Ohio: keep the accreditation, non-traditional-hours and special-needs
  add-ons in the voucher's November 2026 rates, and give the voucher its
  own age groups.
- Indiana: date each guideline year by the effective date its schedule
  prints.
- Missouri and Nevada: round each tier and band top as the chart prints it.
- Alabama: put families of eight or more on the chart's last row.
- Move the posted-chart cases into the state YAML files and keep the
  cross-state invariants in Python.
- Record the Alabama, Maryland and Missouri source conflicts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Indiana: each FSSA schedule caps families at 85% of the state median
  income table that starts the October before its guideline year, rounded
  up to the next dollar. Enrolled families face that cap alone, and new
  applicants face the lower of the cap and the guideline limit, so the cap
  binds from 16 people on the March 2025 schedule and 19 on the April 2026
  schedule.
- West Virginia: Appendix A stops its ten- and eleven-person rows at 85%
  of the October 2024 median ($9,247 and $9,440 a month), the ceiling
  45 CFR 98.20(a)(2)(i) sets, and the model keeps that table while the
  scale stands.
- Pin every size on Indiana's 2025 and 2026 schedules for new applicants
  and enrolled families, and West Virginia's capped sizes from October 2024
  through October 2026.
- Georgia: pin a working, enrolled family that fails only the income test
  beside a child in DFCS custody, so CAPS pays only the foster child's care.
- Draw Indiana and West Virginia families of up to 20 and 11 people in the
  Python rule checks, where the caps bind.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keeps main's new ratchet entries for New Mexico and New York and its ruling
on the Maryland capital gains candidate; Missouri's ratchet entry stays out,
as on this branch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MSDE posts initial and continuation scales for families of two to
twelve. Two new cases check both against PolicyEngine's limits in
March 2026. MSDE rounds each cell, and PolicyEngine computes the limits
from the federal fiscal 2025 state median income, so the two differ by
less than $2 a year. Each case puts income $2 a year below each printed
maximum, which passes, and $2 a year above it, which fails.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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