Skip to content

Document or seed the unsourced SNAP exemption inputs (pregnancy, homelessness, foster-care history, incapacity) #351

Description

@daphnehanse11

Parent: #248

Problem

Four person-level inputs that SNAP work-requirement rules read have no CPS ASEC source at all, and no populace issue tracks them. Each silently takes its engine default (False) in every Populace output, so the exemption channels they drive can never fire in microsimulation:

  • is_pregnant — ABAWD exemption, 7 U.S.C. 2015(o)(3)(E). Not asked in the ASEC.
  • is_homeless (household) — pre-HR1 ABAWD exemption (removed by OBBBA §10102, restored under the pre-OBBBA counterfactual reform in Add pre-OBBBA SNAP ABAWD work requirements counterfactual reform policyengine-us#8944). The CPS samples the housed population; the literally homeless are out of frame by design.
  • was_in_foster_care — pre-HR1 former-foster-youth exemption (7 CFR 273.24(c)(9), added by FRA 2023, removed by OBBBA). No ASEC item.
  • is_incapable_of_self_care — feeds the general work-registration incapacity/caregiving exemptions. No direct ASEC item.

This is distinct from #244 (inputs whose raw ASEC surfaces exist and are now mapped by the eligibility_inputs stage). These four have no measured source, so the deliverable is the #249 pattern: an explicit, documented assumption visible in release diagnostics rather than an invisible default.

Why this matters for OBBBA SNAP work-requirement analysis

The pre-OBBBA counterfactual restores exactly three exemption channels: homeless, veteran, and former foster youth. Veterans now work through veterans_benefits (#350). The other two — plus pregnancy — will contribute zero to any population-level estimate, which biases the counterfactual in a known direction: it understates pre-OBBBA eligibility, and symmetrically understates how many people OBBBA's exemption removals affected. USDA/CBO scoring of §10102 attributed meaningful savings to the homeless and veteran exemption removals specifically, so a silent zero here is a real accuracy gap, not a corner case.

Proposed scope

  • Add reviewed entries for the four columns to the default-stuck-column register (US_DEGENERATE_INPUT_REVIEWED_EXCLUSIONS) with reasons citing this issue, so the Gate releases on input columns stuck at the engine default #286 gate documents the assumption instead of silently passing.
  • Decide per input whether rate-based seeding is wanted and defensible, or whether a documented always-False assumption is the honest ceiling:
    • homelessness: HUD PIT counts exist, but the CPS frame excludes the unsheltered population — seeding housed records as "homeless" misrepresents who they are; likely document-only.
    • pregnancy: NCHS birth rates by age could seed a share of women of childbearing age; plausible if wanted.
    • foster-care history: NYTD/AFCARS aged-out counts exist for the under-25 population; plausible if wanted.
    • incapacity: possibly proxied from the ASEC disability battery; needs a design decision to avoid double-counting with is_disabled.
  • Whatever the decision, record it in release diagnostics/metadata per the SNAP OBBBA work requirements: restore data inputs needed for household exposure analysis #248 acceptance criteria ("remaining unsupported inputs are explicitly documented").

Acceptance criteria

  • None of the four inputs relies on an undocumented default: each is either seeded with a cited source or explicitly registered as an unsupported assumption visible in release diagnostics.
  • OBBBA SNAP work-requirement research can cite which exemption channels are modeled (age, hours, disability, student, parent/child, veteran, discretionary, waivers) and which are documented as absent (pregnancy, homelessness, foster-care history, incapacity).

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions