Skip to content

Apply the federal 110% poverty floor to Indiana EAP, Maryland MEAP and Riverside County LIHEAP - #10281

Merged
PavelMakarchuk merged 8 commits into
mainfrom
liheap-fpg-floor-in-md-riv
Oct 21, 2026
Merged

PavelMakarchuk merged 8 commits into
mainfrom
liheap-fpg-floor-in-md-riv

Conversation

@PavelMakarchuk

@PavelMakarchuk PavelMakarchuk commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #10279 (merged), which added the shared gov.hhs.liheap.fpg_floor parameter. This branch now has main merged in, so the diff shows only the changes below.

This PR applies the 110% poverty floor of 42 U.S.C. 8624(b)(2)(B) to the three remaining programs whose limits fall below it, as found in the #10279 audit:

Program Floor binds from (size, by year) Example: limit vs floor
Indiana EAP (in_eap_eligible) 2025: 15; 2026: 16; 2027: 16 size 16, PY2026: $104,543 vs $107,965
Maryland MEAP (md_meap_eligible) 2025: 29; 2026: 29; 2027: 29 size 29, FY26: $185,864 vs $186,615
Riverside County LIHEAP (ca_riv_liheap_eligible) 2025: 20; 2026: 21; 2027: 21 size 21, FY2026: $136,088.93 vs $138,215

Each formula follows the #10279 pattern: (income <= limit) | (income < round(1.1 x FPG(size, lagged year), 2)). The guideline is the one that HHS makes mandatory on October 1 of the program year, so model year Y uses the January Y-1 guidelines.

  • Indiana: new gov.states.in.ihcda.eap.eligibility.fpg_year_lag (1 year), with in_eap_household_size.
  • Maryland: reuses md_meap_fpg, which already uses the guideline of the calendar year before the model year. Categorical eligibility still waives the income test.
  • Riverside County: new gov.local.ca.riv.cap.liheap.fpg_year_lag (1 year), with spm_unit_size. California's own printed CSD tables also fall below the floor: at sizes 20-25 in the 2025 table (2025 Final Plan, PDF page 180; size 20 tops out at $10,607.47 a month against a $10,750.67 monthly floor) and at sizes 21-25 in the 2026 table (2026 Final Plan, PDF page 184; size 20 at $11,148.47 is still above the $11,013.75 floor).

Payment effects

  • Indiana: a floor-only household is above the middle income band and receives the higher-income award. For natural gas heat with an electric bill, that is 6 points x $25 + $50 = $200.
  • Maryland: the payment level follows income / FPG, so a floor-only household (below 110% of the guideline) is at Level 4. That pays $360 for gas in FY26.
  • Riverside County: the model has eligibility only, with no Riverside LIHEAP payment variable, so there is no payment test.

Tests

For each program:

  • One cent below, exactly at, and above the floor.
  • A control household one person smaller, where the 60% SMI limit still applies.
  • A lag test with income between the lagged floor and the floor from the current year's guidelines.
  • Floor boundaries in a second year (2025, with the 2024 guidelines).

Payment tests for a floor-only household:

  • in_eap.yaml Case 17: $200, and $0 at the floor.
  • md_meap.yaml Case 15: $360, and $0 at the floor.

policyengine-core test on the IN EAP, MD MEAP and Riverside folders: 158 passed. The parameter and reference URL checks also pass. No partner contract tests read these variables.

Not in this PR

  • A shared floor helper next to liheap_smi_limit to replace the copies of the floor expression.
  • One federal guideline-lag parameter beside fpg_floor in place of the per-state fpg_year_lag parameters.

axiom: 42 U.S.C. 8624(b)(2)(B) in Indiana EAP → TheAxiomFoundation/rulespec-us#1468 queued; in Maryland MEAP → TheAxiomFoundation/rulespec-us#1482 queued; in Riverside County LIHEAP → TheAxiomFoundation/rulespec-us#1840 queued (all blocked on release admission of the signed 42 U.S.C. chapter 94 scope and ingest of the 2024-2025 poverty guideline tables)

🤖 Generated with Claude Code

PavelMakarchuk and others added 6 commits October 19, 2026 11:44
42 U.S.C. 8624(b)(2)(B) bars a state from excluding a household solely on
income below 110% of the poverty level. The 60% SMI limit falls below that
floor in Mississippi from household size 11 (FY2026-FY2027) and in Oregon
from size 19 (PY2025) or 20 (PY2026-PY2027). Both eligibility tests now
accept income below 110% of the poverty guideline that HHS makes mandatory
on October 1 of the program year (one-year lag).

Adds gov.hhs.liheap.fpg_floor, identical to the file in #9968 and #9969,
plus a poverty guideline year lag for each state.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 60% SMI limits fall below 110% of the poverty guideline only for very
large households: DC from size 34 to 39 in 2022-2024, MA from size 30 to 34
and NJ from size 28 to 32 in 2022-2027. The eligibility tests now accept
income below the floor, using the one-year guideline lag. MA reuses
ma_liheap_fpg, which already lags the guideline; DC and NJ get their own
fpg_year_lag parameters.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#10225 replaced the projected 2027 SSA uprating index with the 2026Q3
CPI-W average and set the 2027 SSI federal benefit rate to $1,029. The
NC Special Assistance 2027 case still expected the old projections
($1,436 rate, $1,021.83 FBR), so the states-shard-1 suite fails on main
and on every PR. The uprated rate is now $1,448 and the payment $489.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Cite Rule 6.1 C, the printed 60% SMI table and FY2026 plan assurance (2)
  in the Mississippi floor comment; the printed table itself falls below
  the floor at sizes 11 to 20.
- Point the IM 2023-01 references to the acf.gov archive URL.
- Correct test comments that showed float32-rounded DC and MA limits.
- Add a Mississippi payment test for a household that qualifies only
  through the floor.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 60% SMI limits fall below 110% of the poverty guideline from
household size 15 (2025) or 16 (2026-2027) in Indiana EAP, size 29 in
Maryland MEAP (FY25-FY27), and size 20 (2025) or 21 (2026-2027) in
Riverside County LIHEAP. The eligibility tests now accept income below
the floor, with the one-year guideline lag. Maryland reuses
md_meap_fpg; Indiana and Riverside get fpg_year_lag parameters.

Stacked on #10279, which adds gov.hhs.liheap.fpg_floor.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Base automatically changed from liheap-federal-fpg-floor to main October 19, 2026 20:41

@hua7450 hua7450 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving. I checked the three floors against 42 U.S.C. 8624(b)(2)(B), the HHS poverty guideline memoranda, the Indiana PY2026 manual, the Maryland FY2026 OHEP guidelines and the CSD 2025 and 2026 plans, and recomputed every new case by hand.

  • Pattern. The formulas match 10279. Each uses a strict < against np.round(guideline * fpg_floor, 2) ("less than 110 percent"), ORed with the program's own <= limit, so only the income test is relaxed. Each floor uses the same household size and annual income basis as the program's existing limit: in_eap_household_size, md_meap_household_size through md_meap_fpg, and spm_unit_size as in hhs_smi.
  • Guideline year. The year is right for all three. Model year 2026 reads the 2025 guidelines, which HHS made mandatory for FY26 (IM 2025-02, Attachment 2). CSD's own tables show the same one-year lag: the 2026 table tops group 1 for one person at $1,304.17, which is 15,650 / 12.
  • Binding sizes. The sizes in the comments and the body recompute: Indiana 15 / 16 / 16, Maryland 29, and Riverside 20 / 21 / 21 for 2025 / 2026 / 2027. The floors match HHS's own 110% tables: 83,765 plus 6,050 per member above 12 under the 2025 guidelines, so 107,965 at size 16 and 186,615 at size 29.
  • Payments. Indiana's (2 + 3 + 1) × $25 + $50 = $200 and Maryland's Level 4 gas payment of $360 both recompute. No existing case flips, and no partner test reads these variables.

Nits, none blocking:

  1. The Indiana fpg_year_lag description says "under the Low Income Home Energy Assistance Program". The other parameters in gov.states.in.ihcda.eap say "under the Energy Assistance Program".
  2. The Riverside fpg_year_lag starts 2021-10-01, but its dated references start with FY25 (IM 2024-02). Either date it 2024-10-01 like Indiana and Oregon, or cite the FY22-FY24 memoranda.
  3. In ca_riv_liheap_eligible.py, the comments "(PDF page 180)" and "(PDF page 184)" repeat the page already in each href fragment. Keep just the description.
  4. The lag comments say HHS makes the guidelines mandatory "from the next October 1". The memoranda say October 1 or the start of the grantee's fiscal year, whichever is later. Nothing changes here, since Indiana and CSD both run on the federal fiscal year.
  5. A household that qualifies only through the floor has income above 60% SMI. IHCDA's matrix has no column above that, so in_eap scores the household in the 45-60% column through the select default. That reading appears only in the Case 17 comment; a one-line note in in_eap.py or in_eap_eligible.py would help.
  6. Optional: add 2027 boundary pairs, since the comments state 2027 binding sizes. Indiana size 16: 111,275.99 and 111,276. Maryland size 29: 192,499.99 and 192,500. Riverside size 21: 142,515.99 and 142,516.

Follow-ups for separate PRs:

  • The two new lag files are the fifth and sixth copies of the same federal one-year lag (after DC, MS, NJ and OR from 10279), and the floor expression now appears in eight formulas. The gov.hhs.liheap.fpg_year_lag parameter and floor helper you listed would remove both.
  • Riverside has no CalFresh or CalWORKs categorical eligibility, although CSD's table pays categorically eligible households that are over income (2026 plan). This predates the PR.

@PavelMakarchuk
PavelMakarchuk merged commit 749b24b into main Oct 21, 2026
34 checks passed
@PavelMakarchuk
PavelMakarchuk deleted the liheap-fpg-floor-in-md-riv branch October 21, 2026 16:11
MaxGhenis added a commit that referenced this pull request Oct 21, 2026
Main's #10281 (federal 110% poverty floor for Riverside County LIHEAP) changed files next to this PR's Riverside General Relief files; the merge is clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants