Repository navigation
Add West Virginia LIEAP regular heating assistance - #10618
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #10618 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 1 5 +4
Lines 54 82 +28
Branches 0 1 +1
=========================================
+ Hits 54 82 +28
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR Review: Add West Virginia LIEAP regular heating assistanceSummaryPR #10618 (author: hua7450), head
There are no reviews yet, and the only comment is Codecov's. The rules research matches the code closely. I worked from four sources:
What I checked:
One critical finding. The state's whole-dollar monthly limits are slightly above the federal ceiling of 42 U.S.C. 8624(b)(2)(B) at several household sizes in both claimed years, and the head follows them. This is the North Dakota #10342 C1 pattern. Two should-address items:
Four suggestions. CI is green (36/36), and the merge with CriticalC1. The income test admits households above the 42 U.S.C. 8624(b)(2)(B) ceiling in both claimed years. Where. What goes wrong. Rounding up reproduces West Virginia's printed limits, but at several sizes it lifts the limit above the federal maximum. The law. Payments may go only to households "with incomes which do not exceed the greater of (i) an amount equal to 150 percent of the poverty level for such State; or (ii) an amount equal to 60 percent of the State median income" (42 U.S.C. 8624(b)(2)(B)). HHS publishes the size-adjusted 60% amounts as "Mandatory Use in LIHEAP for FY26" (IM 2025-02 Attachment 4). For West Virginia:
From size 8 on, 150% of the guideline is the larger amount.
At the even FY2026 sizes from 8 up, 150% of the 2025 guideline ends in $0.75 a month, so rounding goes up. FY2027's 2026 guideline gives whole dollars, so sizes 8 and up are exact. Hand examples:
Precedent. This is the North Dakota #10342 C1 pattern: printed 60% SMI limits $2 to $12 above Attachment 4 were critical. The accepted fix capped every band at the federal maximum and recorded a Fix:
Should addressS1. Where. Rule. 21.3.1.A.3: "All sources of income are considered in determining income eligibility" (update 881, page 1727; earlier edition page 1726). Plan item 1.9 checks "Wages". Active-duty basic pay is wages, and it is not on the A.5 exclusion list. Example. One person has $36,000 of basic pay entered as
Precedent. This is the wave's omitted-source pattern (military pay in UT, AK and PA). IA #10292, UT, ND, NV #10432 and AK list Fix.
S2. The zero-size guard in the limit is unpinned. Where. Why no test catches its removal. Without the guard, a West Virginia unit with no qualified members gets a $29,448 limit, because
The wave's mutation rule treats an unpinned guard as should-address (UT #10344 r3 N1, two unpinned zero-standard guards). Fix. Either change is enough:
SuggestionsG1. Record the plan-against-manual choices in The body says no candidate applies. Yet the head makes the same kind of choices that siblings recorded as
G2. Cite the FY2027 plan. DoHS links a submitted FY2027 Detailed Model Plan (report period 10/01/2026 to 09/30/2027) from the LIEAP page. The PR cites only FY2026. The FY2027 plan:
Add it as a second reference and reflect it in the body and the Axiom issue. G3. Housekeeping.
G4. Floor the compressed base.
At extreme rates the base goes negative. With Verified correct
Hand-checked expectations (15):
Axiom line assessment
State of the issue. The issue is OPEN, labelled pe-parity, and was updated 2026-11-02 17:01 UTC.
Updates needed with the fixes:
CI status
Coverage includes:
Branch status
Verdict: REQUEST_CHANGES |
DTrim99
left a comment
There was a problem hiding this comment.
Requesting changes: 1 critical (rounding the monthly limits up puts them above the 42 USC 8624(b)(2)(B) ceiling at several sizes in FY2026 and FY2027; cap at the federal maximum as in North Dakota #10342), 2 should (military basic pay not counted; the zero-size limit guard is untested). Full report in the comment above.
- Stop a monthly limit that rounds up at the federal ceiling in 42 U.S.C. 8624(b)(2)(B). - Count military_basic_pay and pin the zero-size limit. - Cite the FY2027 plan on the limit rates. - Record four source choices 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>
|
Thanks, David.
On C1, I capped at the state's own unrounded amount instead of your max(
|
PR Review (round 2): Add West Virginia LIEAP regular heating assistanceSummaryPR #10618 (author: hua7450), head Every round-1 critical and should item is fixed, and a test pins each fix:
One new should-address item, which the fix commit did not cause. On 2026-11-04, both Income Maintenance Manual files that the PR cites (media 39948 and 40005) return 404. The agency's manual page now links only a new file, whose page numbers are different. The values are unchanged in that file, but every manual Two suggestions. CI is green at the head (38/38), and the branch merges cleanly with current Prior findings
New findingsCriticalNone. Should addressN1. The manual references point to files the agency has removed. What. On 2026-11-04, both URLs return HTTP 404, with and without the query string:
Both opened in round 1 on 2026-11-02. The BFA Income Maintenance Manual page now links a single file, media 40020, as "the current Income Maintenance Manual". Where. The removed URLs appear in:
Why re-pointing to the new file is not enough. Media 40020 has new page numbers. For example:
No anchor carries over to it unchanged. The values themselves have not changed. In media 40020:
Precedent. The wave treats anchors on a URL whose content has moved as should-address, fixed with a Wayback capture. Fix:
SuggestionsN2. Update the test status. The body's test plan still says the 2026-11-03 fixes "have not run locally, and CI validates them", and it leaves "CI passes" unchecked. The Axiom issue's Tests bullet says the same. Run 41724803822 passed all 38 checks at N3. Tidy two candidate entries.
VerifiedThe three round-1 C1 examples, traced at the head:
Hand-checked new and changed expectations:
Mutation checks:
Source-conflict guard:
Unchanged since round 1, and still correct:
Axiom
CI
The three Branch
Verdict: REQUEST_CHANGES |
DTrim99
left a comment
There was a problem hiding this comment.
Requesting changes, round 2: 0 critical, 1 should. The federal-ceiling critical and both shoulds are fixed and pinned. New: both Income Maintenance Manual URLs now return 404, so every manual #page= anchor is dead; switch to the Wayback captures (the report names one with verified anchors). Full report in the comment above.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Bureau for Family Assistance removed both Income Maintenance Manual files. Update 881 keeps its page numbers in the Wayback capture. The only capture of the earlier edition has later page numbers, so its anchors move with it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks, David.
Where this differs from your fix. You suggested keeping the pages verified in round 1, but the capture doesn't have those pages. It is an older upload to the same address (PDF created February 2, 2026; 2,281 pages). The July 2026 file from round 1 (2,273 pages) isn't in the Wayback listing for
The extra page before the appendices fits update 875 (4/1/26), which update 881's change log says removed 21.8. The capture still prints 21.8 on page 1779. Checked in the capture, by text extraction:
Not checked: the July file is gone, so I couldn't compare it with the capture line by line. Numbering against the corpus capture is also unchecked, and the issue says so. Left out of this PR: |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Bureau for Family Assistance also removed the manual files that WV WORKS, Medicaid, one register backlog entry and three dead-URL replacement values cite. Each now names a Wayback capture, and each page anchor was read in that capture. No formula, parameter value or test expectation changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
One addition for this round, David.
Only the links changed. No reference was deleted, and no formula, parameter value or test expectation changed. I read every anchor in its capture, and none moved. On page 405, the payment standard and standard of need columns also match the parameters' latest values. Three things I left as they are:
No tests ran locally, and CI is running on this head. |
PR Review (round 3): Add West Virginia LIEAP regular heating assistanceSummaryPR #10618 (author: hua7450), head N1 is fixed.
N2 and N3 are fixed. The test status in the body and the issue is current. The VA citation now gives A.4 on pages 1734-1735, and the ceiling note now gives the FY2026 amounts for sizes 11-20. The fixes change only links, comments and register text.
One new suggestion (N4), and no critical or should-address item. CI at the head was 13 pass, 13 pending and 0 failing at 18:45 UTC; Contrib had not started. Prior findings
New findingsCriticalNone. Should addressNone. SuggestionsN4. List the two removed URLs as known dead. What. Why it is safe now. No raw link remains, and the guard's pattern skips archived copies: it does not match when a Fix. Add these two entries:
Give each VerifiedLink inventory. The head tree has 60 links to the two files, and each carries one of the two capture prefixes:
Earlier-edition capture (2,281 pages), page by page:
Update 881 capture (2,263 pages). It shows the cited text at every anchor:
The gap between the two earlier files. Update 881's chapter 21 change log lists only two updates dated between the February upload and the July file:
Neither changes the income test, the sources or exclusions, the chart, the factors or Appendix D. So citing the February capture for FY2026 supports the same values. No other change since round 2:
Expectations. No expectation changed; only the five test files' header comments did. I re-derived the expectations tied to round 1 and 2 findings from the values the new earlier-edition capture prints:
Code-health guards on the head (= the merged tree):
Axiom
CI
Passed:
Still pending:
The nine Contrib shards and Codecov have not started yet; Contrib starts only after Baseline passes. Why the risk is low. Since the last fully green run (41724803822 at
Branch
Verdict: APPROVE |
DTrim99
left a comment
There was a problem hiding this comment.
Approving round 3: 0 critical, 0 should. All 60 dead manual links now use verified Wayback captures, and the round-3 commits change only links and comments. CI was 13 pass / 13 pending with no failures at review time; confirm it finishes green before merging. Full report in the comment above.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds West Virginia's Low Income Energy Assistance Program (LIEAP) regular heating payment for FY2026 and FY2027, run by the Department of Human Services (DoHS), Bureau for Family Assistance, under chapter 21 of the Income Maintenance Manual (IMM). The model counts citizens and legal immigrants in the assistance group and every member's gross income except the manual's exclusions, which include Social Security (RSDI) and SSI. The limit is 60% of state median income for one to seven members and 150% of the prior-year poverty guideline from eight ($2,454 a month for one person in FY2026, $2,550 in FY2027). The manual prints that limit rounded to the whole dollar a month, and the model stops it at the unrounded annual amount, the federal ceiling in 42 U.S.C. 8624(b)(2)(B). The payment is the Appendix A base amount for the group's size and monthly income row ($160 for one person in the first row, $5 less per row, $5 more per member) times a fuel factor (1.750 electricity, 1.198 natural gas, 1.089 propane, fuel oil, kerosene, wood and coal), rounded to the cent: $70.79 to $446.25.
Fixes #10617
Regulatory authority
dd844c1891b1...), so its pages are unchanged. The only capture of the earlier edition is an older upload to the same address (PDF created February 2, 2026; 2,281 pages). The July 2026 upload read before (2,273 pages) is no longer public, so earlier-edition pages run later than before: 7 through 21.4.11, 8 for Appendices A and D, because update 875 later removed 21.8, and 1 at chapter 4 Appendix A. In the capture, the 40 FY2026 row tops, the payment grid, the fuel factors, Appendix D and the chapter 4 LIEAP Max column match the model's FY2026 values.Eligibility
defined_for = StateCode.WVis_citizen_or_legal_immigrant; size 0 is ineligiblehas_heating_expense: a positive bill for the named fuel, heat not in rent; callers may set it for a heating charge stated in rent or electricity that runs self-cut wood; subsidized tenants who pay heat directly qualifyCountable income
military_basic_pay), unemployment (total_unemployment_compensation), strike benefits, pensions, military retirement (military_retirement_income, with Survivor Benefit Plan annuities), railroad retirement (railroad_benefits), retirement-account distributions, non-Social Security survivor benefits, general assistance, rental and farm rental income, alimony, child support received, interest, dividends, veterans benefits, workers' compensation, disability benefits, outside cash help (financial_assistance), recurring miscellaneous receipts (miscellaneous_income, the only input able to carry contract, mineral-rights, jury-duty or settlement receipts)tanf, once per householdBenefit
right=True)Source priority and modeling notes
us-wv:liheap-plan-categorical-eligibility). FY2027 plan item 1.4 answers No. The manual counts all sources except its list, so the model counts general assistance, TANF, cash help, VA benefits and minors' earnings, which plan item 1.9 leaves unchecked (the FY2027 plan checks a child's earnings), and excludes nonrecurring lump sums, which 1.9 checks (candidateus-wv:liheap-plan-income-and-benefit-items). The exclusion names only Social Security Administration benefits, so railroad retirement, paid by the Railroad Retirement Board, counts. Board of Review decisions apply 21.3.1.A to a SNAP recipient whose income went unverified (25-BOR-1354, pages 3-4) and with the $4,720 four-person limit (26-BOR-1570, page 4).veterans_benefitsin full, since the input cannot separate Aid and Attendance. Both editions are later than the announcement (the archived earlier PDF was created February 2, 2026, and update 881 takes effect October 1, 2026), and the fact sheets and agency pages do not repeat its line. A veteran with $30,000 in VA benefits and no other income receives $0 under the manual and would receive $280 under the announcement (candidateus-wv:liheap-veterans-benefits, unreviewed).us-wv:liheap-plan-income-and-benefit-items).liheap_smi_limit.us-wv:liheap-income-limit-above-federal-ceiling, following the statute). A three-person FY2026 group with $47,578 receives $0, where the printed $3,965 x 12 = $47,580 would pay $253.75 (wv_lieap.yamlCase 11).wv_lieap.yamlCase 1); it has no input for the FY2026 C.7 third-party payer, whom that edition treats as invulnerable.The registry entry is partial with
verified_years: "2026-2027"; earlier years are unverified backfilled estimates.Not modeled
miscellaneous_incomereads as recurringMicrosimulation:
heating_type, the per-fuel bills and the heat-in-rent fact behindhas_heating_expenseare not in current datasets; callers must supply them.Removed manual links outside LIEAP
BFA's removal also broke citations already on
main, so this PR replaces them too. 16 files change, only in their links:us-wv:medicaid-ssi-related-non-cash-income-at-standardinsource_conflicts/candidates.yamlreplacementvalues inknown_dead_reference_urls/midatlantic.tomlThe links use the same two Wayback captures as above. Each page anchor was read in its capture, and none moved.
wv_works_countable_earned_incomestays on the earlier edition, and the rest use update 881. No reference was deleted, and no formula, parameter value or test expectation changed.Test plan
42 YAML cases in 5 files. CI passed all 38 checks at
b90a7e0726(run 41724803822), including the four state shards that run these cases.2ce7b18468and8f5702ae66change only citations, comments and register text, ande0cdfd5ebamergesmainatcc8f4c9d90. No tests ran locally. All 42 passed in CI at8f5702ae66(run 42083338731, 36 of 36 checks). The merged head adds only newermainand the coverage-line merge.wv_lieap.yaml(12): every heating type at zero income; both years' first two rows and one-person ceiling to the cent; FY2027's $3,427 row; adjacent eleven-person rows; the $147.02 half cent; 20 members at the ceiling and 21 members; direct, subsidized, missing and heat-in-rent costs; a stated rent charge and self-cut wood; a mixed-status group through to the payment; the federal ceiling at FY2026 sizes 3 and 8 and FY2027 size 3.wv_lieap_income_limit.yaml(5): FY2026 and FY2027 limits for sizes 1-11 under the federal ceiling, one multi-unit case per year, the 7/8 switch by qualified members, and an Ohio household.wv_lieap_income_eligible.yaml(4): inclusive ceilings, SNAP, TANF or SSI receipt above the ceiling, unqualified members' income, a zero limit at zero qualified size.wv_lieap_countable_income.yaml(16): minors' and unqualified members' earnings, each listed source including military basic pay, railroad retirement and miscellaneous income, the exclusions, nonrecurring proceeds, per-source loss floors, unemployment and WV WORKS receipt.wv_lieap_household_size.yaml(5): qualified and unqualified members.YAML tests with expected values from the IMM charts, product table and income tables, the agency guidelines, and the HHS SMI and poverty-guideline tables
Source-conflict register entry for a statute reading: the federal ceiling is backlog entry
us-wv:liheap-income-limit-above-federal-ceilinginsource_conflicts/candidates.yaml; no# Source conflictmarker until it is registered. Three source choices with no statute reading are also candidates:us-wv:liheap-plan-categorical-eligibility,us-wv:liheap-plan-income-and-benefit-itemsandus-wv:liheap-veterans-benefitsmake formatChangelog fragment in
changelog.d/CI passes at
b90a7e0726CI passes at
8f5702ae66axiom: TheAxiomFoundation/rulespec-us#1998 queued
🤖 Generated with Claude Code