Skip to content

Prioritize reported recipients in take-up assignment#512

Merged
MaxGhenis merged 2 commits intomainfrom
prioritize-reported-takeup
Mar 4, 2026
Merged

Prioritize reported recipients in take-up assignment#512
MaxGhenis merged 2 commits 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

MaxGhenis and others added 2 commits March 4, 2026 14:05
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>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@MaxGhenis MaxGhenis force-pushed the prioritize-reported-takeup branch from cee5aed to 2abe617 Compare March 4, 2026 19:06
@MaxGhenis MaxGhenis merged commit d13d475 into main Mar 4, 2026
6 checks passed
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