Conversation
Adds ks_liheap: eligibility (150% of prior-year FPG on a citizenship-adjusted household size, categorical TANF/SSI/SNAP route, energy vulnerability and subsidized heat-in-rent exclusion), countable gross income, and the published FY2025 (100%) and FY2026 (80% adjusted) benefit matrices by fuel, income band, utility rate tier, dwelling type and household size group, with the $100/$130 minimum benefit. Sources: KEESM 13000-13400; Kansas LIHEAP State Plans FFY2025/FFY2026; LIHEAP Clearinghouse Kansas benefit matrices FY2025/FY2026. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A6rihVz3MtZQKCzzkCib35
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9663 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 4 16 +12
Lines 76 253 +177
Branches 2 1 -1
==========================================
+ Hits 76 253 +177
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:
|
Fold the mixed-state vectorized case into ks_liheap.yaml, drop the review_regressions file and the boundary and lookup cases that duplicated coverage held elsewhere, and assert eligibility alongside the zero benefit where a case exercises an ineligibility gate. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Replace every undated keesm/current link in the Kansas LIEAP variables and parameters with the October 2024 and January 2026 editions, name the edition in parameter reference titles, and point the test-file headers at the same editions with combined page anchors. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Brings in the shared federal poverty guideline helper with year_lag (PolicyEngine#9731). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… limit Replace the Kansas-only tools/liheap.py helper with fpg(..., year_lag=...) from the shared helper merged in PolicyEngine#9731. The 150% rate, separately rounded monthly increment and eight-person breakpoint stay in ks_liheap_income_limit, which reproduces the previous results for FY2025-FY2027 at every household size. Also records the verified-years note on ks_liheap and the KEESM 13330 household-size comment. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…come Replace the deprecated dividend_income alias in the formula and send qualified_dividend_income in the tests that used it. Expected values are unchanged. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Program ReviewPR #9663: Add Kansas LIEAP regular heating assistance (hua7450, branch The review checked eligibility, countable income, the 150% FPG income limit, the FY2025 and FY2026 benefit matrices and the minimum benefit against KEESM and the two LIHEAP state plans. It also checked code patterns, references and test coverage. All 2,021 audited source values match. The open items are a microsimulation data gap, one missing flooring step, and documentation and test hygiene. Source Documents
Branch StatusThe branch is 13 commits ahead of Path abbreviations used below:
Critical (Must Fix)None.
Should Address1.
2. Rental losses offset wages and other income although Kansas tests gross income (missing flooring step)
3. Parameter descriptions depart from the description template
4. Reference page anchors that miss part of the cited content
5. Two edge paths have no test
6. Test comments, case labels and number formatting
7. The
Suggestions1. The FY2026 $130 minimum rests on a plan field labelled "estimated"
2. The SPM unit understates income where several units share an address
3. Self-employment income uses net profit instead of gross receipts minus the larger of 25% or actual costs
4. Household size counts every §1641 qualified status
5. Unmapped countable sources
6. Defaults when household inputs are omitted (these also apply in microsimulation once Should 1 is resolved)
7. Comment on the effective date of the FY2026 values
8. Citation completeness
9. Redundant fourth
10. Further test coverage (optional)
11.
12. Naming across the batch
PDF Audit Summary
Validation Summary
Review Severity: REQUEST_CHANGESThe review found 0 critical items, 7 should-address items and 12 suggestions. No value mismatches were found. Changes are requested for the should-address items. Next Steps
|
DTrim99
left a comment
There was a problem hiding this comment.
Requesting changes per the program review above (#9663 (comment)): 0 critical, 7 should-address items, 12 suggestions. All 2,021 audited parameter values match the FY2025/FY2026 sources. Run /fix-pr 9663 or address the should-address list.
|
Thanks for the review, @DTrim99. Replies on four of the should-address items: Should 1, heating inputs absent from the microdata. We will change the default Should 2, rental losses. Should 4, combined page anchors. I don't want redundant links to the same document within one reference list, so each source stays a single entry. A note in the title naming the pages is sufficient. Should 7, |
…bels and edge cases - Re-template 14 parameter descriptions and name the pages in combined reference anchors - Cite the FY2025 plan, KEESM 13361 and the July 2025 edition; fix the FY2025 matrix and plan anchors that missed pages - Drop the redundant select branch in ks_liheap_fuel_category; note the household-size interpretation and the estimated $130 minimum - Fix four test page cites and the 80 percent comment, renumber case labels, format numbers - Add cases for heat in rent with an unspecified fuel, negative countable income and strike, general assistance and workers' compensation income Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Pushed f09ef1f (plus a merge of main) with should-address 3, 5 and 6, the three anchors in 4 that missed pages, and suggestions 1, 4, 7, 8, 9 and 10. Items 1, 2, the anchor split and 7 are answered above; suggestions 5, 11 and 12 are left for a separate decision. |
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Program Review — Round 2PR #9663: Add Kansas LIEAP regular heating assistance (hua7450, branch
Round 1 (posted 2026-10-01) found 0 critical items, 7 should-address items and 12 suggestions. Results of the delta:
Path abbreviations:
Line numbers refer to Round-1 Should-Address Items: Status
Critical (Must Fix)None.
Should Address (remaining)1. Microsimulation deferral is not tracked (round-1 Should 1)
2. Comma page ranges in reference hrefs (round-1 Should 4)
3.
Suggestions
Round-1 Suggestions 2, 3 and 6 were disclosures that needed no change. Verification of Claimed Suggestion Fixes
Details for Suggestion 8:
Delta Verification
Branch Status
CI Status
Review Severity: REQUEST_CHANGESThe review found 0 critical items, 3 remaining should-address items and 7 suggestions.
|
DTrim99
left a comment
There was a problem hiding this comment.
Round 2 (#9663 (comment)): 4 of 7 round-1 should items resolved (3, 5, 6 fixed; rental-income floor accepted as consistent with repo practice). Remaining: track the heating_type default follow-up (issue or PR-body note), use valid single-page #page=X anchors (14 links use #page=X,Y), and queue a pe-parity rulespec-us issue for the axiom line. No value or expectation changes; new edge cases verified against the source tables.
Give every multi-page reference a single page in the link, with the pages named in the title or in a comment. Count partnership and S corporation income as earned income, floored at zero like the other business sources (KEESM 6300 and 6313), and farm rental income as unearned income (KEESM 6313). State the exact effective-date range in the rounding comment and correct two test header page cites. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Thanks for the second round. Fixes are in Should-address
Suggestions
|
Program Review — Round 3PR #9663: Add Kansas LIEAP regular heating assistance (hua7450, branch
Round 2 found 0 critical items, 3 remaining should-address items and 7 suggestions. Results of the delta:
Path abbreviations:
Line numbers refer to Round-2 Should-Address Items: Status
Verification of Claimed Suggestion Fixes
Delta Verification
Critical (Must Fix)None. Should Address (remaining)None. All three round-2 items are fixed (see the status table). Suggestions
Branch Status
CI Status
Review Severity: APPROVE0 critical and 0 remaining should-address items; all three round-2 items are fixed. The two failing checks (Full Suite - Baseline ssa-usda and states-shard-3) are runner kills (exit 143) in shards with no Kansas files: every batch that completed passed, and a re-run was killed the same way (states-shard-3 batches peaking at 9.4-10.6 GB RSS). The same two shards also fail on |
DTrim99
left a comment
There was a problem hiding this comment.
Round 3 (#9663 (comment)): all round-2 should items fixed; 0 critical, 0 should remaining. The two failing CI shards are runner kills unrelated to this PR (same failure on main).
What and why
Add Kansas LIEAP regular heating assistance for the FY2025 and FY2026 seasons: household and income eligibility, heating-cost responsibility, countable income, and benefit tables by fuel, monthly income, vendor tier, dwelling type, and household size. The program registry marks coverage as partial.
The income limit applies a reformable 150% rate to the federal poverty guidelines through the shared
fpg()helper'syear_lagargument (#9731). Kansas keeps its one-year guideline lag, monthly rounding increment, and eight-person breakpoint inks_liheap_income_limit. FY2025 matches the 2024 guidelines at cent precision; FY2026 matches whole-dollar rounding of the 2025 guidelines, with a separately rounded $688 increment above eight people. The calculation reproduces the published limits without a stored dollar table. The lag and the rounding are inferred from the published tables in KEESM 13362, which state the 150% rate and the additional-person amount but no rounding instruction.Income calculations preserve the child-earnings exclusion and the season-specific interest and dividend exemptions. Employer disability benefits count as unearned income: KEESM 13361 lists the only exempt incomes, and employer disability benefits are not among them. Reusing income verified for SNAP or TANF does not waive the household income test.
Every KEESM citation points at the October 2024 and January 2026 editions rather than the undated current manual, so each season's values trace to the text in force at the time.
Household and immigration basis
KEESM 13320 defines the energy-purchasing household, with specific membership exceptions; the SPM unit is an approximation. KEESM 13330 requires at least one citizen or qualified alien and expressly includes refugees and asylees among qualified categories. For excluded members, it says they “will not be considered in determining household size, although the income from such members will be counted in determining total household income.” The model therefore uses qualified-member size but counts excluded members' otherwise countable income in full, without headcount proration. Ordinary source/age exclusions still apply. SNAP receipt can establish the alienage requirement, but its narrower status test is not substituted for Kansas's own rule. Documentary categories and special household arrangements remain partial. This language is present in both the October 2024 KEESM 13320–13330 and January 2026 edition.
Self-employment approximation
Count existing
self_employment_income,sstb_self_employment_income, andfarm_operations_incomedirectly alongside wages. Each source is floored at zero, following KEESM 7122.1, which bars deducting a self-employment loss from other income. Earnings of children under 18 are excluded. There is no additional business-expense deduction, no new gross or expense input, no negative missing-data default, and no separate self-employment wrapper.For example, an adult reporting $15,000 in wages and $4,000 in net business income has $19,000 in modeled countable earnings. The $4,000 is not reduced again by 25%.
This approximates the legal rule: KEESM 13360 uses gross receipts less a 25% standard expense deduction, with an elected allowable-actual-cost alternative. Existing tax-net inputs cannot reproduce every outcome under that rule. Callers with the exact Kansas amount can supply countable earned or household income directly.
PR #9665 (shared self-employment inputs) is closed, and nothing here depends on it. The broader shared self-employment design is deferred to #9682 and is outside the all-state LIHEAP effort.
Coverage and unresolved evidence
Validation
The first review-fix commit (
f09ef1fdd7) re-templated 14 parameter descriptions, added FY2025 plan, KEESM 13361 and July 2025 edition citations, dropped a redundantselectbranch, recorded the household-size interpretation and the estimated $130 minimum, fixed test page cites and case labels, and added coverage for heat in rent with an unspecified fuel (paid from the Other table, $639), negative countable income (band 1), and strike benefits, general assistance and workers' compensation ($7,200). The second review-fix commit gives every multi-page reference a single page in the link with the pages named in the title, states the exact effective-date range in one comment, and counts two more sources: partnership and S corporation income as earned income (floored at zero like the other business sources, KEESM 6300 and 6313) and farm rental income as unearned income (KEESM 6313). CI validates the current head.Microsimulation: the datasets carry no heating inputs, so population totals are $0 until the default heating type changes. That change affects API partners and is tracked separately in #9754; callers must send
heating_typewith the matching fuel bill.axiom: TheAxiomFoundation/rulespec-us#1469 queued
🤖 Generated with Claude Code