Repository navigation
Conversation
Sum each state's regular LIHEAP payment in a new liheap variable, add an Illinois regular heating payment without crisis assistance, add a Michigan Home Heating Credit registry entry, and record each state's cooling treatment in its registry note. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add regular_payments.yaml to the aggregate-list integrity test, which checks that each member exists, is state-gated and is not dropped between year blocks. Say that Rhode Island plans no regular cooling payment, since its FY2027 plan still allows a leftover-funds cooling grant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Points the Register reference at its first cited page, describes the guideline lag by benefit year, checks the national liheap total, and records the cooling income boundary in the source-conflict candidates. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The national `liheap` total evaluates every state's formula over a mixed-state population, which no household test does. Two patterns on main raised errors there: - 26 formula files passed options=[ADD] to an entity call. Core's Microsimulation.calculate_add rejects the keyword an entity call passes. The option is redundant: a plain read already sums a monthly variable over the year through the same Core function. - The DC and Illinois payment formulas look up a matrix by an income level that is 0 for households outside the state. Add the floor Maryland and Kansas already use. Also: - Reword the North Dakota registry note: the state reserves an optional direct cooling payment, so its cooling component is not only equipment. - Add a `liheap` case with Texas, DC and Illinois households in one simulation. - Add a code-health check against options=[ADD] and options=[DIVIDE]. - Check that every state payment in the LIHEAP registry entry is in the list `liheap` sums. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
PolicyEngine/policyengine-core#647 fixes the cause in Core: it lets a Microsimulation accept the keyword an entity call passes with options=[ADD] or options=[DIVIDE]. Once that is released the option works again, so a check that bans it here would be wrong. The 26 formula files stay without the option, which was redundant and lets `liheap` run on today's Core. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…ogram prefix Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR Review: Add Oklahoma LIHEAP regular summer cooling assistanceReviewed at head SummaryThe policy is right. Oklahoma runs a regular summer cooling component separate from winter heating, pays one household both in a year, and the four amounts, the two size groups, the $700/$701 edge, the 130% gross test and the fiscal-year mapping all match OAC 340:20-1-10, 340:20-1-11, 340:20-1-20, Appendix C-7-A page 2, the FY2025-FY2027 plans and the July 2025 and July 2026 OKDHS releases. The income-test refactor leaves every heating result unchanged. I found no wrong result. Three things need fixing before merge, none of them a change to the formula: two new terms have no test that would fail without them, the new source-conflict candidate is marked 0 critical, 3 should, 6 suggestions. CriticalNone. Should address1. Two new terms have no test that would fail without them. (a) Rounding before the band lookup,
(b)
2. The new candidate is marked
3. An existing candidate still points at the file the income test left.
Suggestions
Verified correctRegular cooling benefit in each claimed year. OAC 340:20-1-3(b) lists "summer cooling assistance during the summer cooling application period" as its own component. Plan item 1.1: cooling 07/15/2025-09/30/2025 (FY2025 page 4), 07/14/2026-09/30/2026 (FY2026 page 4), 07/13/2027-07/16/2027 (FY2027 page 4). FY2026 item 1.2 budgets 37% heating and 36% cooling (prior year 38.73% and 45.59%). OKDHS opened enrollment on July 15, 2025 and July 14, 2026 and closed the 2026 window on July 17, as the body says. Funding is first come, first served (OAC 340:20-1-20(c)); the body discloses that. Heating and cooling in one year. Both are paid; see the quotes in suggestion 3. Only pre-authorization is limited to one component per fiscal year (OAC 340:20-1-12(1); FY2027 plan page 13). Listing Amounts. Appendix C-7-A page 2 (footer 10/1/2021, the only edition; the FY2026 benefits matrix repeats it): size 1, $0 - $700, $500; size 1, $701 - ineligible, $385; 2 or more, $0 - $700, $650; 2 or more, $701 - ineligible, $425. Eligibility. Plan item 3.1 sets 130% of the HHS Poverty Guidelines for cooling in all three plans, the same as item 2.1; that is above the 110% federal floor and below the 150% / 60% SMI ceiling. The July 2026 release prints $1,696 / $2,292 / ... / $5,867, the FY2026 Appendix C-7 limits, and the July 2025 release prints $1,632 for one person, so calendar year Y reads fiscal year Y for both heating and cooling. Responsibility for the cooling cost is required (OAC 340:20-1-10(e), (h)(1)). The rule has no age, disability or medical condition for cooling; (j) is an optional priority only. Refactor. National total and registry. Mixed-state and keyed lookups. Periods. All new variables are YEAR and read YEAR variables; no Mutation coverage that is in place. Four amount cells (Cases 1-4, 7, 8); the 700/701 edge (Case 2); size 1 against 2 (Cases 2, 3); income test (Case 6, eligible Cases 2-4, income-eligible Case 1 with half-up rounding and the inclusive limit); Hand checks (2026 unless noted; earned income deduction $240 x 12 = $2,880 per worker):
References. Each anchor opens on the cited text: C-7-A page 2; FY2026 plan pages 4, 9, 11, 12; FY2027 plan page 16; Oklahoma Register Vol. 42 No. 20 PDF pages 574-576 and 588-589. Parameter descriptions, labels, units and periods follow the house pattern; tests sit in variable-named files; the changelog fragment is Axiom line assessment
CI statusAll 36 checks pass at Branch status12 commits behind main, mergeable. A test merge with current main ( Verdict: REQUEST_CHANGES |
DTrim99
left a comment
There was a problem hiding this comment.
Requesting three changes; none touches the formula. The policy is right: Oklahoma pays winter heating and summer cooling as separate components, one household can get both in a year, and the four amounts, the two size groups, the $700/$701 edge, the 130% gross test and the fiscal-year dating all match the rule, Appendix C-7-A and the plans. The income-test refactor leaves every heating result unchanged.
- Two new terms have no test that would fail without them, by my reading: the half-up rounding before the band lookup (a household with net monthly income of $700.50 gets $385 with it and $500 without), and
size > 0(the zero-size case already fails the income test). Two worked households are in the report above (Should Address 1). - The new candidate
us-ok:liheap-cooling-income-boundaryis markedruledwith no ruling on record. The reading is sound; record who ruled and when, or set it tounreviewed. - A stale path from the refactor.
us-ok:liheap-medicare-premium-income-teststill namesok_liheap_eligible.pyfor the gross income test, which now lives inok_liheap_income_eligible.py.
Six optional suggestions follow. CI is green at 85d9e9b766.
|
Ruling by the project lead, 2026-11-13: For Oklahoma's summer cooling benefit, follow OKDHS Appendix C-7-A (page 2), which OAC 340:20-1-20(d) names for the benefit amounts: net monthly income of "$0 - $700" receives the larger amount and "$701 - ineligible" the smaller one. Plan section 3.5's "under $700" is not followed at the $700 edge. Reason: the regulation points to the appendix, and the heating table's "$401 - $700" band is read the same way. Example: a one-person household with net monthly income of exactly $700 receives $500; test Case 2 pins $700 and $701. |
Addresses DTrim99's round-1 review; upstream main merged first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks, David. Should address
Suggestions
Tests were not run locally. CI is running at |
Adds Oklahoma's Summer Cooling Program payment: $500 or $385 for one person, $650 or $425 for two or more, by net monthly income.
Fixes #10747
Builds on the national LIHEAP total from #10730, merged on 2026-11-12: this PR adds
ok_liheap_coolingtogov.hhs.liheap.regular_payments.What and why
OAC 340:20-1-20(d) points to Appendix C-7-A for the amounts, "based on the household's net income and household size". Appendix C-7-A page 2 prints the Summer Cooling Program table: $500 (one person) and $650 (two or more) at net monthly income of $0 to $700, and $385 and $425 at $701 and up. OAC 340:20-1-20(d)(1) gives the same amount to renters with utilities in rent. The OKDHS release of July 14, 2026 says "Only one payment per year, per household is allowed for the summer cooling program". It prints the same FY2026 monthly income limits heating uses (130% of the 2025 guidelines), so cooling shares heating's guideline year. The July 15, 2025 release prints the FY2025 limits ($1,632 for one person). One household can receive both components in a year: OAC 340:20-1-10(c)(4) allows "one authorization per household for each application-based assistance period", 340:20-1-20(b) requires a household pre-authorized for winter heating to "complete an application for summer cooling and be approved", and the OKDHS LIHEAP page says "Only one payment per household is allowed per program component."
ok_liheap_income_eligibleholds the income test, moved unchanged fromok_liheap_eligible.ok_liheap_cooling_eligible: household size, the income test andhas_cooling_expense.ok_liheap_cooling: the Appendix C-7-A page 2 amount for the household's net monthly income (the heating code'sok_liheap_net_income, rounded half up) and size. New parameters undercooling/. Net income of exactly $700 gets the higher amount: C-7-A prints "$0 - $700", while the plan says "under $700".heating_type. The amount depends only on household size and net income (OAC 340:20-1-10(i)(2)), so every value can be paid, including NONE (no heating) and UNSPECIFIED.has_cooling_expenseis required, the input the all-state cooling work uses for a cooling cost.has_cooling_expensetrue stands for the verified surcharge or utility portion of the rent (340:20-1-20(d)(2); plan item 3.3), as heating's positive surcharge bill does.Test plan
Tests were not run locally. This PR now targets
main, so CI runs them.liheaptotal.us-ok:liheap-cooling-income-boundary(ruled 2026-11-13 by the project lead; ruling record) records the $700 boundary: Appendix C-7-A, which OAC 340:20-1-20(d) names, over the plan's "under $700".make format(ruff)changelog.d/Not modeled
axiom: TheAxiomFoundation/rulespec-us#2186 queued
🤖 Generated with Claude Code