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>
Adds the FY2025 plan, the February 2025 benefit chart and the FY2027 plan as references, a FY2025 case, and an in-rent renter case. Manual section 6.1.3 pays unsubsidized renters with utilities in rent. Marks 2025-2026 verified and 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>
…emoved plan link Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
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 Alabama LIHEAP regular cooling assistanceSummaryThe PR adds Alabama's Regular Cooling payment as The core policy is right. Alabama pays Regular Heating and Regular Cooling to the same household in one program year, so listing both in the national total does not double count. All twelve Electric cells match the chart, the band arithmetic reproduces every printed band top, and the cap figures match HHS's tables. The refactor returns main's values wherever the cap does not bind. CI is green at the head, and the Alabama files ran in Baseline states-shard-2. Three things need fixing. The cap also changes 2025 heating results at sizes 9, 11, 13 and 15, and neither the body, the register note nor any test mentions that change. The body says UNSPECIFIED pays $0 "as in every state LIHEAP program", which is not true on main. And four new terms, including the one that makes cooling use its own income band, are not pinned by any test. CriticalNone. Should address1. The cap changes 2025 heating limits at sizes 9, 11, 13 and 15, and nothing discloses or pins it.
The printed amounts are ADECA's own: "Summarized Eligibility Requirements, Effective October 1, 2024 – February 16, 2025" lists "9 person $7,263 ... 11 person $8,608 ... 13 person $9,953 ... 15 person $11,298" (https://adeca.alabama.gov/wp-content/uploads/LIHEAP-Summarized-Eligibility-Requirements.pdf, page 1), and the PY 2025 chart prints the same figures (https://liheapch.acf.gov/docs/2025/benefits-matricies/AL_BenefitMatrix_2025.pdf). HHS's FY2025 table: https://acf.gov/sites/default/files/documents/ocs/COMM_LIHEAP_IM%202024-02_Att4SMITable.pdf#page=4. Example household: nine people in Alabama with $87,156 of countable income ($7,263 a month), propane heat with a bill, period 2025. On main they are eligible, in band 3 (top $7,263), and receive $500 − $120 + $30 + $100 = $510. At the head they receive $0. The new value is the statutory one, so this is not a wrong result, and 2025 is not a verified heating year. But the body says "Heating results are unchanged except for the cap below" and then lists only "heating FY2026 at sizes 10, 12 and 14". The candidate note Fix: add the 2025 heating sizes and figures to the body and the candidate note, and extend heating Case 2 (period 2025) to sizes 7-15. The expected values, each the PY 2025 printed amount x 12, capped where it exceeds 150% of the 2024 guideline, are:
These are hand traces and still need confirming in CI. 2. The body's "as in every state LIHEAP program" claim for UNSPECIFIED is inaccurate. Two state programs on main pay an UNSPECIFIED household:
Within Alabama the choice is consistent: There is also an interaction with the new rent route. The Fix: reword the body, the code comment and the test comment to say this follows Alabama heating's $0 for an unreported fuel (the #9754 convention, which DC and Illinois do not follow), and label it a PolicyEngine convention rather than an Alabama rule. Optionally, exempt the rent route from 3. Four new terms have no test that would fail without them.
Fix: add these cases. The axiom issue's checklist already names two of them. Suggestions
Verified correct
Axiom line assessment
Several lines need refreshing:
CI statusAll 36 checks pass at Branch statusThe branch is 12 commits behind main. Verdict: REQUEST_CHANGES |
DTrim99
left a comment
There was a problem hiding this comment.
Requesting three changes; none is critical, and the core policy is right. Alabama pays Regular Heating and Regular Cooling once each per program year ("once in the Heating season and once in the Cooling season", manual 3.1), so the national total doesn't double count. All twelve Electric cells match the chart, the band arithmetic reproduces every printed band top, and the cap figures match HHS's tables.
- The cap also changes 2025 heating, undisclosed and untested. The capped helper applies to every heating year. In 2025 (2024 guidelines) the printed limits at sizes 9, 11, 13 and 15 are $6 a year above 150% of the guideline, so a nine-person household at $87,156 goes from $510 to $0. The description and the candidate note list only FY2026 heating and summer 2025 cooling, and the 2025 heating test stops at size 2. Add the sizes to the description and the candidate, and extend the 2025 case (expected values in the report).
- "As in every state LIHEAP program" isn't accurate for UNSPECIFIED: DC and Illinois pay it on main. It does match Alabama heating, so label it a convention. It also turns away the rent-route renters this PR adds when they leave the fuel unknown.
- Four new terms have no test, by my reading: the cooling band reading the cooling limit (every case lands in the same band either way),
size > 0, the two rent-route conjuncts, andis_in_public_housing. Pinning households are in the report.
CI is green at 04096e6a0e.
…ng cases Addresses DTrim99's round-1 review; upstream main merged first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
This push adds the round-1 fixes in
TheAxiomFoundation/rulespec-us#2184 now points at CI is running at |
Adds Alabama's Regular Cooling payment for May through September, from the Electric column of the Payment Assistance Chart effective May 15, 2026.
Fixes #10755
Builds on the national LIHEAP total from #10730, merged on 2026-11-12: this PR adds
al_liheap_coolingtogov.hhs.liheap.regular_payments.What and why
Alabama's Payment Assistance Chart "PY 2026 (Effective May 15, 2026)" (the date is reported from an attachment to the draft FY2027 plan, since removed, with no live copy; FY2026 plan section 3.5, p. 12, adopts the 2026 guidelines on release, and the accepted FY2027 plan's PY2027 chart, section 3.5, p. 12, shows the same 2026-guideline arithmetic) prints 150% of the 2026 guidelines: $1,995 a month for one person and $4,125 for four. Heating in FY2026 uses the 2025 guidelines. The payment is the chart amount minus one month of HUD utility allowance (manual 6.1.1, p. 22), plus the $100 FY2026 IIJA supplement when the payment is positive (plan 3.5, p. 12). One payment per cooling season (manual section 3, p. 9). The plan's $320 to $520 cooling range matches only the Electric column, which this PR uses.
cooling/fpg_year_lag.yaml(0) andal_liheap_cooling_income_limit: 150% of the current year's guideline, monthly, rounded half up.al_liheap_cooling_eligible: household size, income at or below the cooling limit, andhas_cooling_expenseor energy costs included in nonsubsidized rent. Manual 6.1.3 (p. 22): renters of a non-subsidized dwelling "whose home energy costs are included in their rent are eligible for Regular Assistance"; manual 5.3 (p. 17) sets their written proof.al_liheap_cooling: the Electric column (size 1 $440/$410/$320 up to size 4+ $470/$440/$350), minus one month ofhud_utility_allowance, plus the IIJA supplement ($100 in FY2026, $0 from 2026-10-01).verified_yearsis "2025-2026".heating_type: Regular Cooling pays the Electric column whatever the heating fuel, so UNSPECIFIED, NONE (no heating) and every known fuel can be paid. Alabama heating still pays $0 for an unspecified fuel, a PolicyEngine convention (issue 9754) rather than an Alabama rule.has_cooling_expenseis required, the input the all-state cooling work uses for a cooling cost, except for renters whose utilities are included in rent. Those renters are identified by the existingtenant_pays_utilitiesinput (false) with positiverent; no input is added. Heating's rent route readsheat_expense_included_in_rentinstead, so a renter with energy costs in the rent sets both inputs.Test plan
Tests were not run locally. This PR now targets
main, so CI runs them.liheaptotal.al_liheap_income_limit.yaml); new Case 3 asserts the 2025 limits at sizes 7-15, capped at 9, 11, 13 and 15.us-al:liheap-income-limit-above-federal-ceiling(ruled) records the cap; the code follows the statute.make format(ruff)changelog.d/Not modeled
axiom: TheAxiomFoundation/rulespec-us#2184 queued
🤖 Generated with Claude Code