Repository navigation
Description
The model sums each state's regular LIHEAP heating or cooling payment into a national liheap total, which we added in #10730. The total covers 49 states and DC. It leaves out Michigan, whose Home Heating Credit the model already counts as a refundable state credit. The model adds liheap to no income total. household_benefits lists neither liheap nor any state's payment, and spm_unit_benefits counts no modelled LIHEAP payment either. It counts spm_unit_energy_subsidy, an input for the energy assistance a household reports.
For example, take a Texas adult who earns $18,720 in 2026 and pays $1,980 for electric heat and air conditioning. The model computes $1,200 of Texas CEAP for them, and liheap comes to $1,200, as we test in the first case of liheap.yaml. Neither household_net_income nor spm_unit_net_income counts that $1,200, and both keep their value when we set tx_ceap to $0. If a user entered the same $1,200 as reported energy assistance in spm_unit_energy_subsidy, SPM resources would rise by $1,200 and household net income would stay unchanged.
A household calculation shows the gap whenever the model computes a LIHEAP payment, as it does for an eligible household that supplies inputs such as a heating type and a fuel bill. The model shows the payment and changes neither net income measure. Population results from the default microdata do not show the gap yet. The data carry no heating type, fuel bill or cooling expense, and when we ran liheap over the 2026 microdata for #10730, every amount came to $0. Those data carry the survey's energy assistance amounts in spm_unit_energy_subsidy, so SPM resources there count them.
Planned follow-up
We left liheap out of both totals on purpose. In #10729 we wrote that it "has no take-up gate yet", and in #10730 we listed a follow-up PR that will:
- add a take-up input, as SNAP and TANF have;
- list
liheapinhousehold_benefitsbesidehousing_assistance, while SPM benefits keepspm_unit_energy_subsidy, so neither total counts energy assistance twice; - check for cycles, since several state formulas read SNAP, TANF or SSI.
We closed #10729 with #10730, so no open issue tracks that follow-up, and we can track it here.
What Congress and Census set
- Congress has each state use LIHEAP funds to "provide assistance to low income households in meeting their home energy costs" (42 U.S.C. 8624(b)(1)(A)).
- In subsection (f)(1) of the same section, Congress provides that these payments "shall not be considered income or resources" of the household for any purpose under federal or state law. We read that as a rule for taxes and benefit programs, which leaves a net income measure free to count the payment, as the SPM does. No program's income test reads
liheapor a listed payment today, and the follow-up should keep them out of those tests. - Census counts energy assistance among the SPM's noncash benefits (SPM technical documentation, section 4.3.1). Census describes that assistance as LIHEAP "or similar state/local programs" and notes that many households receive a regular benefit and crisis benefits. The CPS ASEC asks about energy assistance over the whole previous year. Census also notes that many households may struggle to report the precise amount paid to a utility or fuel vendor on their behalf.
The SPM choice
Under that plan, we keep the reported input in SPM resources. For housing, the model takes a different route: spm_unit_allocated_housing_subsidy reads the model's own housing_assistance, and spm_unit_capped_housing_subsidy caps it as Census does. The two routes trade off:
- With the reported input, SPM resources in the microdata follow the survey, and no unit counts energy assistance twice. The reported amount can also hold crisis benefits and state or local help, which
liheapleaves out. Oncehousehold_benefitslistsliheap, a reform to a state LIHEAP payment changes household net income but not SPM poverty, and a household calculation's SPM resources leave out the payment the model computes. - With
liheap, a LIHEAP reform moves SPM poverty as a HUD reform does. Until the microdata carry heating inputs, though, the microdata SPM would lose its reported energy assistance and gain $0 of modelled payments.
In the code
liheap.pyaddsgov.hhs.liheap.regular_payments, and we note in its documentation: "Not yet counted in household benefits or net income."regular_payments.yamllists each state's payment variable; Michigan has none.spm_unit_benefits.pyaddsspm_unit_energy_subsidy, andspm_unit_net_incomeaddsspm_unit_benefits.household_benefits.yamllists neitherliheapnorspm_unit_energy_subsidy, andhousehold_net_incomeaddshousehold_benefits.household_state_benefits.yamlalready carries four California utility bill discounts and credits intohousehold_benefits, and the SPM list leaves them out.test_household_spm_resource_parity.pynamesspm_unit_energy_subsidyas counted in the SPM alone, and lines 68 to 72 record those four as counted in household benefits alone.cbo_means_tested_transfers.yamllistsspm_unit_energy_subsidytoo, socbo_household_means_tested_transfersalso counts the reported input.
Activity