Repository navigation
Add Virginia EAP cooling assistance electric bill payment - #10760
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>
Dates the cooling guideline lag from FY2025, fixes the electric bill maximum comment, cites the EIA 2024 average bill in the tests, and adds a retiree case that checks the national liheap total. 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>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
… press report Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ogram prefix Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR Review: Add Virginia EAP cooling assistance electric bill paymentSummaryThis PR adds Virginia EAP Cooling Assistance's electric bill payment as The core of the PR is right. Virginia pays Cooling Assistance on top of Fuel Assistance in the same program year, so listing both payments in the national total does not double count. Every income limit I checked matches the printed tables and the 2026 figures VDSS gave the press. The vulnerable-member routes, the all-SSI exception and the homeless and zero-balance exclusions all follow Chapter J of the manual. The refactor of the two heating helpers is line-for-line identical to main and leaves heating results unchanged. The $600 for 2023 matches the VDSS release. The $365 for 2025 rests on press reports of a VDSS release, and the PR says so. For 2026 and 2027 the PR carries the $365 forward, and it says so in the parameter, the registry and the body. I found two things to fix before merge, both should-address. First, the PR follows the manual and plan where 22VAC40-680-63(B)(1) says otherwise for subsidized households whose heat is included in their rent. It records no source-conflict candidate for that reading, and the body says the regulation "sets the same criteria". Second, the I did not run anything locally. The findings rest on reading the code and sources, on hand traces, and on the CI logs for this head. CriticalNone. Should address1. The PR pays cooling to subsidized households whose heat is in their rent. The regulation excludes them, and no candidate records the choice.
2. No test pins the household-size term.
Suggestions1. Say in the documentation and the body that the annual electricity expense stands in for "the bill".
2. Label the carried-forward maximum as carried forward wherever the tests name it.
3. The UNSPECIFIED gate also turns away households whose heat is in their rent and whose fuel is unknown.
4. Renters whose cooling is included in an unsubsidized rent (application code E) are left out, with no source and no disclosure.
5. Test the vulnerable groups directly instead of through heating points.
Verified correctA separate regular cooling benefit exists in each claimed year.
Heating and cooling are paid to the same household in one year, so there is no double count.
The maximum.
The cooling income limit and the guideline lag.
Hand checks (11 expectations, from the printed tables):
Eligibility terms.
The refactor.
The national total and the registry.
Mutation coverage. By my reading each of these has a case that would fail without it:
Other checks.
Axiom line assessmentThe body says CI statusAll 36 checks pass at Branch status
Verdict: REQUEST_CHANGES |
DTrim99
left a comment
There was a problem hiding this comment.
Requesting two changes; neither is critical, and the core is right. Virginia pays Cooling Assistance in addition to Fuel Assistance ("Households can receive Cooling Assistance in addition to Fuel and Crisis Assistance", manual J.1), so the national total doesn't double count. Every income limit I checked matches the printed tables, the vulnerable-member, SSI, homeless and zero-balance rules follow Chapter J, and the heating refactor is line for line identical to main.
- Subsidized households with heat in the rent. 22VAC40-680-63(B)(1) requires a cooling household to "Meet all of the fuel assistance criteria as set forth in 22VAC40-680-20", and 20(B)(3)(a) makes "Subsidized households whose total heating costs are included in their rent" ineligible. The PR follows manual J.3.a and plan 3.3 instead and pays such a household $365, with no source-conflict candidate, and the description's "22VAC40-680-63 sets the same criteria" isn't accurate. Record the choice. By the repository's ranking the regulation's reading is the default unless the project lead rules otherwise.
- The household-size term has no test, by my reading: every case has only citizen members. The UNDOCUMENTED household in the report closes it.
Five optional suggestions follow; the most useful is saying in the documentation that the annual electricity expense stands in for "the bill". CI is green at a33d3cff29.
|
Ruling by the project lead, 2026-11-13: For Virginia's Cooling Assistance, follow manual J.3.a and FY2026 plan item 3.3: a subsidized household whose heat is included in its rent can receive cooling assistance when it pays its own cooling costs, and is excluded only when its cooling costs are in the rent (plan 3.3: "Subsidized households whose total cooling costs are included in their rent are not eligible for cooling assistance"). The reading of 22VAC40-680-63(B)(1) that would apply 22VAC40-680-20(B)(3)(a)'s exclusion of subsidized households whose total heating costs are included in their rent is not followed. Reason: the plan is the current filing and states the rule in cooling terms; 22VAC40-680-63 took effect in 2003, and section 20 was last amended the same year. Example: one person aged 62 in public housing with $18,000 of Social Security, natural gas heat included in the rent, a separate cooling cost and an $1,800 electric bill receives $365 in 2026 ( |
…n, size pin Addresses DTrim99's round-1 review; upstream main merged first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
This push (head Should address
Suggestions
TheAxiomFoundation/rulespec-us#2190 now names this head and the round-1 CI run, with 25 cases, interpretation 6 citing the ruled candidate, interpretation 11 citing Case 15, companion test 12 updated, companion tests 13 and 14 added, and the UNSPECIFIED item removed. CI is running at |
PR Review (round 2): Add Virginia EAP cooling assistance electric bill paymentHead reviewed: SummaryBoth round-1 should items are closed.
The fix also drops the
Eligible Case 12 pins the change. Only households with an UNSPECIFIED fuel get a different result: $0 before, now the bill up to $365. The body and the case's "Was" comments disclose this, and heating results are unchanged. All 36 checks pass at this head, and CI ran all 25 cases green. The branch merges cleanly with current main, which now includes the Arkansas, Georgia and Oklahoma siblings, and with each of the five open siblings. Two optional suggestions remain. Prior findings
New findingsCriticalNone. Should addressNone. Suggestions1. The project-wide fuel-condition rule has no record. The change does not need one.
2. Update the CI lines in the parity issue. VerifiedThe ruling record (read through the GitHub API). The comment linked from the candidate's note exists. It was posted on 2026-11-13 at 20:24 UTC, from the author's account, under the heading "Ruling by the project lead". The merged rulings for #10762, #10746 and #10748 use the same form, and main's register cites them. It reads:
The stated reason holds. The Historical Notes on the Virginia Law Library pages say 22VAC40-680-63 is "Derived from Virginia Register ..., eff. February 26, 2003", and the last amendment listed for 22VAC40-680-20 is also "eff. February 26, 2003". The ruling came a minute before the fix commit (20:25 UTC), and the reply links it. The candidate
Removing the heating-fuel condition is right for Virginia (reading the sources and the code).
Hand checks of every new or changed expectation. These are hand traces from the 2026 guideline of $15,960 for one person, and CI ran each one green.
No new comment trips the source-conflict ratchet. I read the new comments against the guard's patterns, and CI confirms it.
Other (reading).
AxiomThe body says
The line is valid. Only the CI wording is stale (Suggestion 2). CIAll 36 checks pass at
Branch
Verdict: APPROVE |
DTrim99
left a comment
There was a problem hiding this comment.
Approving (round 2). Both round-1 items are closed:
- The subsidized heat-in-rent question is decided by the project lead's 2026-11-13 ruling, which is on record on this PR (follow manual J.3.a and plan 3.3). The candidate's note links the ruling, and eligible Case 14 pins the reading.
- Eligible Case 15 pins the household-size term.
Removing the fuel gate rests on Virginia's own sources and Case 12 pins it. All 12 new or changed expectations check by hand, CI is green at bd1f8a61d8, and the branch merges cleanly with main and the open siblings. The two suggestions are small; one is a stale CI line in rulespec-us#2190.
Adds Virginia EAP Cooling Assistance's electric bill payment: the bill amount up to the statewide yearly maximum, for households with a member who is 60 or older, under 6, or disabled.
Fixes #10759
Builds on the national LIHEAP total from #10730, merged on 2026-11-12: this PR adds
va_eap_coolingtogov.hhs.liheap.regular_payments.What and why
The EAP manual, Volume IX, Chapter J:
22VAC40-680-63(B)(1) applies all the fuel assistance criteria of 22VAC40-680-20, including 20(B)(3)(a), which makes subsidized households whose heat is in their rent ineligible. Manual J.3.a applies only Chapter B sections 6-8, and plan 3.3 excludes such households only when their cooling is in the rent. The project lead ruled on 2026-11-13 to follow the manual and the plan (candidate
us-va:eap-cooling-subsidized-heat-in-rent; eligible Case 14 pins it). The FY2026 plan uses 150% of the guidelines (3.1). The Clearinghouse matrix explains that Virginia switches to the new income limits each June, for cooling. Home Office sets the maximum each year by broadcast (J.7.g).va_eap_annual_income_limitandva_eap_income_test. Heating results are unchanged.cooling/fpg_year_lag.yaml(0) andva_eap_cooling_income_limit: 2026 is $23,940 for one person, matching the reported $1,995 a month; heating's 2026 limit is $23,472.va_eap_cooling_eligible:has_cooling_expenseand a positive electricity bill;va_eap_cooling: min(electricity bill,cooling/electric_bill_maximum). The maximum is $600 for 2023, the "one-time benefit" in the VDSS release of July 5, 2023, carried into 2024, and $365 for 2025, carried into 2026 and 2027.heating_type, NONE and UNSPECIFIED included, can be paid. Regular heating still pays no unspecified fuel.has_cooling_expenseis required, the input the all-state cooling work uses for a cooling cost.Test plan
Tests were not run locally. This PR now targets
main, so CI runs them.liheaptotal. The $150 monthly test bill is about the EIA 2024 Virginia average residential bill of $148.77.us-va:eap-cooling-subsidized-heat-in-rent(ruled 2026-11-13, Add Virginia EAP cooling assistance electric bill payment #10760 (comment)). The parity issue lists the other readings (no-bill authorizations and the August 15 or 17 deadline).make format(ruff)changelog.d/Not modeled
verified_yearsis "2025".has_cooling_expenseis false for them.axiom: TheAxiomFoundation/rulespec-us#2190 queued
🤖 Generated with Claude Code