Repository navigation
Count military retirement in KS, MS, NC, NJ and NY LIHEAP income - #10409
Open
PavelMakarchuk wants to merge 2 commits into
Open
PavelMakarchuk wants to merge 2 commits into
PavelMakarchuk wants to merge 2 commits into
Conversation
The five LIHEAP unearned income lists named neither military retirement input, so a household whose only income was military retirement pay or a Survivor Benefit Plan annuity had $0 of countable income. Each program's rule counts retirement and pension benefits (state plan item 1.9) and its manual counts pensions and annuities with no exclusion for these payments, so add military_retirement_income to each list and test both inputs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 23, 2026
Open
Open
PavelMakarchuk
marked this pull request as ready for review
October 23, 2026 21:06
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Five LIHEAP unearned income lists name no military retirement input at all, so a 70-year-old whose only income is $24,000 of military retirement pay, or a military Survivor Benefit Plan (SBP) annuity, has $0 of countable income. Each list counts
pension_income, but that adds onlytaxable_pension_incomeandtax_exempt_pension_income; military retirement pay is the separate inputmilitary_retirement_pay, and an SBP annuity ismilitary_retirement_pay_survivors.military_retirement_incomeadds both.This PR adds
military_retirement_incometo the five lists, with a comment that cites each program's rule:ks/dcf/liheap/income/sources/unearned.yamlms/mdhs/liheap/unearned_income_sources.yamlnc/ncdhhs/lieap/unearned_income_sources.yamlnj/dca/liheap/income/sources/unearned.yamlny/otda/heap/income/sources/unearned.yamlThis is item G3 from DTrim99's review of #10317. #10317 switched the lists that named
military_retirement_payand addedtest_military_retirement_readers.py; that guard cannot catch a list that names neither input. The gap predates #10182.survivor_benefitsdoes not includemilitary_retirement_pay_survivors, so nothing is counted twice.Rule check for each list
All five FY2026 state plans check "Retirement / pension benefits" in item 1.9 (PDF page 6). Each manual counts pensions or annuities, and no exclusion covers military retired pay or an SBP annuity.
The NJ row is the one reading a reviewer may want to check: it treats the handbook's veterans' benefits exclusion as limited to VA benefits, as the state plan words it.
Tests
One new case per state, each with two one-person households aged 70: $24,000 military retirement pay and a $9,600 SBP annuity ($800 a month).
ks/dcf/liheap/income/ks_liheap_countable_income.yamlms/mdhs/liheap/ms_liheap_income.yamlnc/ncdhhs/lieap/nc_lieap_income.yamlnj/dca/liheap/income/nj_liheap_countable_income_person.yamlny/otda/heap/income/ny_heap_countable_income.yamlmain(5 failed, 48 passed in the five files).test_military_retirement_readers.pyandtest_source_conflicts.py: 107 passed.test_aggregate_list_integrity.py,test_parameter_yaml_keys.py,test_reference_urls.pyandtest_no_group_variables_in_person_adds.py: 98 passed.Not changed here
survivor_benefits, although KEESM 13360 and MS Rule 6.11 F count non-Social-Security survivor payments. That is a separate input and a separate gap.Axiom
axiom: TheAxiomFoundation/rulespec-us#1469, #1467, #1466, #1481 and #1480 queued
These are the queued
pe-parityissues for KS, MS, NC, NJ and NY LIHEAP; rulespec-us has no module for any of them yet. Each issue now has a note that adds military retirement income to the request, with the verbatim rule text, the output change, these companion cases and areview_findingaddendum: KS, MS, NC, NJ, NY. For NC, rulespec-us already encodes the FNS 300.02 Annuities, Pensions and Retirement Benefits rows (fns-300-sources-of-income/page-3,page-16,page-18).🤖 Generated with Claude Code