Repository navigation
Pay the DC LIHEAP Regular benefit to cooling-only households - #10742
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replace the placeholder bill with EIA's 2024 DC residential average ($113.23 a month), move the bill-cap case to income level 1, add an UNSPECIFIED cooling case that keeps the legacy adapter, and cite the FY26 benefit matrix. 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 #10742 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 1 3 +2
Lines 37 72 +35
=========================================
+ Hits 37 72 +35
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:
|
PR Review: Pay the DC LIHEAP Regular benefit to cooling-only householdsReviewed at head SummaryThe PR does what its sources support. DOEE runs one Regular benefit a fiscal year for heating and cooling costs, the cooling component is open all year in every plan from FY2024 to FY2027, and it uses the same matrix and the same minimum and maximum as heating. The new route pays a home with One item should be settled before merge: the cooling route is narrower than the PR's stated scope and narrower than the sibling PRs, with no source for the difference and no test on that edge. There are no critical findings. Critical (must fix)None. Should address
Suggestions
Verified correctSources, each opened and read:
Answers to the batch questions:
Hand-checked expectations:
Axiom line assessment
CI statusAll 39 checks pass on the run for head Branch statusThe head is 0 commits behind main and merges cleanly.
Verdict: REQUEST_CHANGES |
DTrim99
left a comment
There was a problem hiding this comment.
Requesting one change. The cooling route is heating_type == NONE only, so a heated home with no heating bill that pays for cooling still gets $0, which is narrower than the title, the DOEE text and the Oregon and Florida siblings, and no test sits on that edge (changing == NONE to != UNSPECIFIED passes every case). Please either widen the route or state the limit in the body and the formula comment, and add the two cases either way (Should Address 1 in the report above).
Everything else holds: one Regular benefit for heating and cooling, the Electric column and the bill cap match main's treatment, all 56 FY2026 Electric and Gas cells match DOEE's matrix, and the income-limit rounding reproduces DOEE's printed limits. The six suggestions are optional. CI is green at 563acb3ee9.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks, David. Widened in |
PR Review (round 2): Pay the DC LIHEAP Regular benefit to cooling-only householdsReviewed at head SummaryThe fix commit does what round 1 asked. The cooling route now takes a household with a known heating type, no heat in the rent, no heating cost and a cooling cost, and pays it the Electric amount explicitly, capped at its electricity bill. Both requested cases are in and are right by hand. No household that main pays gets a different amount, the UNSPECIFIED adapter is unchanged, and heat-in-rent households keep the flat amount. CI is green at the head and the PR's own test files ran there. One item is open. The fix adds three terms that no committed case exercises: the explicit Electric amount, the heat-in-rent guard and the known-type guard. I removed each in turn on the head tree and all 30 cases in Prior findings
New findingsCriticalNone. Should address
Suggestions
VerifiedWhat rests on what: "ran" means a local run on the head tree (the 30 committed cases plus ten probe households, then seven one-term variants of the formula); "by hand" means traced from the code and the matrix values on main; CI results are from the job logs.
Axiom
A few sentences are left from the earlier head and can go with the next edit: the Objective still says "a home with no heating"; the Tests line says 28 cases with 5 new (the head has 30, 7 of them new for cooling); case 5's derivation says "The cooling route needs CIAll 39 checks pass on the run for head BranchThe head is 11 commits behind main and merges cleanly. Main now includes the sibling PRs #10732, #10736, #10738 and #10740. The open siblings #10730, #10734 and #10762 each test-merge cleanly with this head. #10730 still edits only the Verdict: REQUEST_CHANGES |
DTrim99
left a comment
There was a problem hiding this comment.
Requesting one change: three short test cases. The fix does what round 1 asked. The cooling route now takes a known heating type with no heat in the rent, no heating cost and a cooling cost, and pays the Electric amount explicitly, capped at the electricity bill. Both requested cases are in and right by hand, and no household that main pays gets a different amount.
The fix added three terms that no committed case exercises. With each removed in turn, all 30 cases in dc_liheap_payment.yaml still pass (run on the head tree):
- the explicit Electric amount: a gas-heated home with no gas bill and a cooling cost should get $440, and gets $1,193 without the term;
- the heat-in-rent guard: a heat-in-rent tenant with a cooling cost should keep the flat $200, and gets $440 with no cap without it;
- the known-type guard: an unspecified type on the deprecated GAS row with no gas bill should stay at $0.
The three households are written out in the report above (New findings, Should Address 1), and all three pass at the head as written. The comment above the unspecified-fuel case also still says the route keys on NONE only. Two optional suggestions follow. CI is green at fe22688810.
Add a gas-heated home with no gas bill and a cooling cost (Electric $440, not the Gas row), a heat-in-rent tenant with a cooling cost (flat $200), and an unspecified type on the deprecated GAS row with no gas bill ($0). Reword the comment above the unspecified-fuel case, the changelog fragment and the dc_liheap_heating_type documentation for the widened route. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks, David. In
No formula changed. |
PR Review (round 3): Pay the DC LIHEAP Regular benefit to cooling-only householdsReviewed at head SummaryThe fix commit closes the one open item from round 2. It adds the three cases I asked for, with the inputs and expected values I gave. By my reading, each case fails if its term is removed from No formula changed. The commit touches the payment test file, the changelog fragment and the The PR's test files ran and passed in CI at this head, including 33 payment cases. The branch merges cleanly with current main, which now includes the income-level floor from #10730. I ran nothing locally this round. Each claim below rests on one of three things, and says which:
No findings are open. Prior findings
The three mutation results come from reading the head formula. Each matches what round 2 got when it ran the same household against the same formula with that term removed: $1,193, $440 with no cap, and $440. New findingsCriticalNone. Should addressNone. SuggestionsNone. Verified
Axiom
A few small leftovers can go with the next edit; none blocks:
CIAll 38 checks pass on run 43298495938 for head
BranchThe head is 28 commits behind main and merges cleanly. Since round 2, main has taken #10730 and #10734.
Verdict: APPROVE |
DTrim99
left a comment
There was a problem hiding this comment.
Approving. The three cases I asked for are in, with the inputs and expected values I gave, and by my reading each fails if its term is removed: the explicit Electric amount ($440, not the Gas $1,193), the heat-in-rent guard (the flat $200), and the known-type guard ($0). Both suggestions are taken, and no formula changed. CI is green at d684d7d68f, and the branch merges cleanly with main, which now has #10730's income-level floor beside this PR's cooling block.
Pays DC's regular LIHEAP benefit to households whose only energy cost is cooling.
Fixes #10741
What and why
DOEE says "LIHEAP assists income-eligible District households with heating and cooling energy costs", with a one-time regular benefit between $200 and $1,800 for FY2026 (DOEE LIHEAP page, April 2026 archive; the page now shows FY2027's $250 minimum). Its FAQ says "The energy program is designed to help with your heating/cooling costs" (Q3). The FY2026 plan runs heating and cooling from October 1, 2025 to September 30, 2026 (item 1.1).
dc_liheap_eligiblehas no fuel condition. On main, though,dc_liheap_paymentcaps the matrix amount atheating_expense, which is $0 for a home with no heating, so a cooling-only household got $0.dc_liheap_paymentnow uses:cooling_only = (heating_type != UNSPECIFIED) & ~heat_in_rent & (heating_expense == 0) & has_cooling_expenseexpense_cap = where(cooling_only, pre_subsidy_electricity_expense, heating_expenses)Everything else is unchanged:
The payment reference now also cites the FY26 benefit matrix. The registry entry gains a note.
Income limit.
dc_liheap_eligiblecompared income with an unrounded 60% of state median income, which admitted a whole-dollar income $1 above DOEE's published limits at some sizes (FY2026: 80,870.09 against $80,869 for two people, 99,898.34 against $99,897 for three, 156,983.11 against $156,982 for six). It now uses HHS's 60% amounts, rounded down by household size (liheap_smi_limit), which match DOEE's limits. This also changes heating eligibility for households within that dollar.Test plan
Tests were not run locally; CI runs them.
dc_liheap_eligible.yamlCase 6). Comments in Cases 1, 3 and 5 now show the rounded-down limits; no expected value changes.make format(ruff)changelog.d/Test wages use DC's $17.95 minimum wage from July 1, 2025: 15 hours a week is $14,001 and 5 hours a week is $4,667. The electricity bill of $1,358.76 a year is EIA's 2024 DC average residential bill of $113.23 a month (Table 5A).
Not modeled
pre_subsidy_electricity_expensewhen that total is $0. Removing it is tracked in issue 9754 and would change existing results.axiom: TheAxiomFoundation/rulespec-us#2179 queued
🤖 Generated with Claude Code