PolicyEngine / PolicyEngine/policyengine-us

NY SNAP: heating/cooling SUA applied when household reports no separate heating costs — intentional?

Open
#9,104 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
162
Forks
212
Avg merge
3d 3h
Merged PRs (30d)
97

Description

For a NY spm_unit with \`housing_cost\` set and \`heating_cooling_expense = 0\` (household pays no utilities separately from rent), the SNAP calculation still appears to apply the full heating/cooling SUA in the excess-shelter deduction.

**Repro** (policyengine-us 1.774.5, period 2026-07): single adult (30) in NY, \`employment_income\` $16,800/yr, \`housing_cost\` $4,800/yr, \`heating_cooling_expense\` 0 → \`snap = 247.90\`/mo. A textbook computation without any SUA (20% earned-income deduction + standard deduction; $400 rent is below half of net income, so no excess-shelter deduction) gives ~$24/mo. Setting \`heating_cooling_expense\` to a nonzero value produces the same $247.90, suggesting the SUA is applied regardless of the flag.

Is this an intentional imputation (e.g., assuming NY households effectively always qualify for the HCSUA), or should the SUA be gated on the household actually incurring heating/cooling costs separately from rent? If intentional, a note in the variable docs would help downstream comparisons.

Found while extending the engine-vs-PolicyEngine oracle suite in TheAxiomFoundation/finbot-snap-demo (PR #21): separate-heating scenarios agree between our engines; the no-utilities scenario diverges $247.90 vs $24.

Contributor guide

Open the contributing guide

Research direction

Reproduce the stated single-adult New York scenario on policyengine-us 1.774.5 for period 2026-07, comparing heating_cooling_expense values of 0 and nonzero. Trace the SNAP excess-shelter deduction and heating/cooling SUA rules, then compare the result with the no-SUA textbook calculation and the separate-heating oracle scenarios. Done means the behavior is resolved or its intentional policy treatment is documented in the variable docs.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.