Skip to content

Prioritize reported recipients in take-up assignment#512

Open
MaxGhenis wants to merge 1 commit intomainfrom
prioritize-reported-takeup
Open

Prioritize reported recipients in take-up assignment#512
MaxGhenis wants to merge 1 commit intomainfrom
prioritize-reported-takeup

Conversation

@MaxGhenis
Copy link
Contributor

Summary

  • Fix take-up assignment for SSI and SNAP to prioritize reported recipients
  • Anyone with nonzero reported benefits is marked as taking up
  • Adjusted rate for non-reporters calculated to hit aggregate target
  • Preserves overall take-up rate while improving household-level accuracy

Problem

Previously, take-up was assigned randomly across all eligible units at the aggregate take-up rate. This meant that:

  • Households who reported receiving benefits (and clearly do take them up) were sometimes randomly marked as not taking up
  • Non-reporters were randomly marked as taking up

This disconnect between reported receipt and simulated take-up led to inaccurate household-level income, which matters for poverty measurement and distributional analysis.

Solution

For each benefit (SSI, SNAP), the new approach:

  1. Marks all reported recipients as taking up (takes_up = True)
  2. Calculates how many additional take-ups are needed among non-reporters to hit the aggregate target
  3. Assigns take-up to non-reporters at the adjusted rate

This ensures:

  • Aggregate take-up rates are preserved
  • Household-level income better reflects who actually receives benefits
  • Poverty rates are more accurate because the right households receive the right benefits

Benefits affected

  • SSI (ssi_reported at person level, takes_up_ssi_if_eligible)
  • SNAP (snap_reported at SPM unit level, takes_up_snap_if_eligible)

Test plan

  • Verify tests pass (pre-existing failures unrelated to this change)
  • Verify aggregate take-up rates are preserved
  • Verify all reported recipients have takes_up = True

Generated with Claude Code

Previously, take-up was assigned randomly across all eligible units at the
aggregate take-up rate. This meant that some households who reported receiving
benefits (and clearly do take them up) were randomly marked as not taking up,
while non-reporters were randomly marked as taking up.

This change conditions take-up assignment on reported receipt: anyone with
nonzero reported benefits is marked as taking up, then the rate among
non-reporters is adjusted to hit the aggregate target. This preserves the
overall take-up rate while ensuring household-level income is more accurate.

Benefits affected:
- SSI (ssi_reported at person level)
- SNAP (snap_reported at SPM unit level)

Co-Authored-By: Claude Opus 4.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.

1 participant