Repository navigation
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9744 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 4 12 +8
Lines 76 198 +122
Branches 2 2
==========================================
+ Hits 76 198 +122
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:
|
…order, tests Count survivor_benefits, farm_rent_income and miscellaneous_income under HEAP Manual D.12(a)(13), (14), (27) and (38); stop adding TANF to countable income (state plan item 1.9 leaves it unchecked; TANF receipt still confers categorical eligibility); point the Tier I links at plan page 10; name the Medicare premium variables that are not wired in; place New York between IL and TX in programs.yaml. Rewrite the tests to the shared conventions with fuel bills, derivation comments and end-to-end coverage of categorical, over-income, heat-in-rent and public-housing paths. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Write parameter date keys unquoted, wrap each variable's documentation string across lines, and split the household-size sweeps between files so each size is asserted once: odd sizes in the income-limit test, even sizes in the Tier I maximum test. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
PR Review: New York HEAP regular heating assistancePR #9744: Add New York HEAP regular heating assistance (author: hua7450, head Scope: New York's LIHEAP program, run by OTDA as the Home Energy Assistance Program (HEAP). The PR covers the regular heating benefit only. Direct heaters get a base amount by fuel ($400 utility, $900 oil/kerosene/propane, $635 other), plus $61 for Tier I and $35 for a vulnerable member. Heat-in-rent households get $50 (Tier I) or $45 (Tier II), or the $21 nominal amount in subsidized housing and listed group residences. Crisis, cooling, HERR and clean-and-tune are out of scope. The PR changes 39 files: 15 parameters, 12 variables, 10 test files (41 cases), Overall: the FY2026 values are right. Every amount matches the FY2026 matrix and plan, and all 13 published size 1-13 income limits and Tier I lines reproduce. The FY2025 and FY2024 limits also reproduce from the same formula. Five problems remain:
Path prefixes used below:
Line numbers refer to head Source Documents
Critical (Must Fix)C1. Categorical eligibility treats every SSI recipient in the federal own-household arrangement as "Code A". Code A requires the recipient to live alone.
Should AddressS1. Social Security and railroad benefits count gross, but the manual and the plan count them net of Medicare premiums
S2. A loss in one unearned source offsets wages and other income
S3. The Tier I add-on is backfilled at $61 to periods 2023-2024, where the published matrices pay $41
S4. Four branches have no test that would fail if they brokeCoverage is otherwise strong: all 11 fuels, both income boundaries, ages 59/60 and 5/6, every disability pathway, mixed-status households, and foster and Code C exclusions. These branches are not pinned:
S5. Parameter descriptions use verbs outside the templateThe same pattern was flagged in #9728 (S5) and #9726 (S8). Merged LIHEAP parameters use provides/sets/limits/uses/excludes.
SuggestionsG1. Safety Net Assistance is not a categorical program here (documented)
G2. Point the unknown-fuel $0 at #9754 in code and tests
G3. The Code C exclusion conflicts with 393.4(b) (kept as a suggestion: the PR follows the manual literally)
G4. Use one definition of SSI receipt (kept as a suggestion: outcomes rarely differ today)
G5. Published thresholds are tested at only half the sizes, and size 14 Tier I has no test
G6. The SMI flooring order has a source and is not "inferred"
G7. The
|
DTrim99
left a comment
There was a problem hiding this comment.
Requesting changes per the review comment above: 1 critical (SSI categorical eligibility treats every SSI recipient as Code A "living alone") and 5 should-address items (Social Security/RRB counted gross of Medicare premiums, income losses offsetting other income, Tier I $61 backfilled to FY2023-24 where the matrices pay $41, missing branch tests, parameter descriptions). FY2026 amounts and income limits all match the sources.
- Require Code A SSI recipients to live alone (one individual or one couple) for categorical eligibility and Tier I. - Count Social Security and railroad benefits net of the Medicare Part B premium; floor every unearned source. - Date the Tier I supplement ($41 FY2023-FY2024, $61 FY2025 on) and the base amounts from the FY2024 matrix; verified_years "2024-2026". - Add cases for the living-alone arrangements, FY2024 and FY2025 limits and Tier I lines, a rental loss, an ineligible residence with a bill, heat in rent at 65 and a reported Code C child. - Re-template descriptions, cite 18 NYCRR 393.4 and Attachment 4, and fix the reference anchors. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
# Conflicts: # policyengine_us/programs.yaml
PR Review (round 2): New York HEAP regular heating assistancePR #9744: Add New York HEAP regular heating assistance (author: hua7450). Round 1 reviewed head Summary: the fix commit addresses every round-1 critical and should-address item.
I re-ran the round-1 examples on the new head with computed SSI and Medicare premiums, and each now gives the manual's result. The wider
There are four new suggestions, the largest a residual gap in the living-alone test (G12). Two round-1 suggestions are partly done. CI did not run on this head: the workflow was cancelled before any job started. It needs a re-run (see CI status). Path prefixes as in round 1:
Line numbers refer to head Round-1 items
Re-run of the C1 households (period 2026, computed SSI, gas heat):
Critical (Must Fix)None. Should AddressNone. SuggestionsG12. The living-alone test still lets two SSI recipients who are not a couple count as "living alone"
G13. The HHS poverty guideline notice is miscited as 90 FR 5733
G14. A Tier I test name claims two years but tests one
G15. The rule parameters still show only FY2026 support, although the registry claims FY2024-FY2026
Carried over: G5 (untested halves) and G9 (page text in 11 titles), above. New code in
|
DTrim99
left a comment
There was a problem hiding this comment.
Round 2: all round-1 critical and should items are addressed and verified (Code A living-alone gate, Social Security/RRB net of Part B, per-source loss floors, Tier I $41 for FY2023-24 with verified_years 2024-2026, new branch tests, descriptions). The remaining items are suggestions only. The CI run on f397134 was cancelled before any job ran; I re-ran it, so please confirm it is green before merging.
# Conflicts: # policyengine_us/programs.yaml
Adds New York's regular HEAP heating benefit for FY2024 to FY2026, including income/categorical eligibility, household composition, fuel and heat-in-rent payments, and Tier I/vulnerability supplements. A Tier I oil-heating household receives $961, or $996 with a qualifying vulnerable member.
Fixes #9936.
Implementation
tanfreceipt, with take-up, instead of monthly New York entitlement. TANF is not counted as income because plan item 1.9 leaves its box unchecked and the manual counts a TA grant only for a roomer-budgeted minor (D.11(c)(1)).verified_years: "2024-2026". Earlier results are unverified estimates, with a test of the requested-year guideline lag.Remaining coverage
Medicare Part D premiums are not deducted. Other gaps include recurring receipt at application, Safety Net Assistance receipt, roomer/employee/fleeing-felon distinctions, certification pathways not identified by USDA flags, and detailed income exclusions. January living arrangements approximate application-month status.
Market-rent voucher exceptions, payment timing and previously advanced nominal awards remain partial. An unknown direct-heating fuel returns zero as a coverage gap (#9754). Crisis, cooling and equipment assistance are excluded. The official 2021 manual supplies structural rules; the FY2024–FY2026 documents supply amounts. Archived official copies were used where live OTDA downloads failed.
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.Validation
54 program YAML cases cover all fuel mappings, the Tier II limits at the odd sizes and the Tier I lines at the even sizes plus the size-14 boundary, the FY2024 and FY2025 limits and Tier I lines, the $41 FY2024 add-on, mixed-status households, foster/Code C exclusions (including reported receipt), Code A living alone (an aged parent living with family, an SSI couple, a recipient outside the own-household arrangement), categorical receipt versus entitlement, disability pathways, the Medicare deduction, a rental loss, the ineligible-residence and vulnerable-heat-in-rent branches and integrated benefit amounts. Every case specifies
heating_type.Official sources
axiom: TheAxiomFoundation/rulespec-us#1480 queued