Skip to content

Replace manual negative income targets with SOI controls#1141

Merged
MaxGhenis merged 1 commit into
mainfrom
replace-manual-negative-income-targets
May 27, 2026
Merged

Replace manual negative income targets with SOI controls#1141
MaxGhenis merged 1 commit into
mainfrom
replace-manual-negative-income-targets

Conversation

@MaxGhenis
Copy link
Copy Markdown
Contributor

@MaxGhenis MaxGhenis commented May 26, 2026

Summary

  • Remove the rough hard-coded negative household market income amount/count controls from the legacy loss matrix.
  • Add SOI all-return negative AGI amount/count targets and positive-valued taxable SOI loss-component AGI-bin targets.
  • Wire the same loss-component targets into the DB/new calibration path and default target config.

Target shape

  • 2024 get_soi selects 2023 negative AGI rows, uprated to about -$150.6B and 2.20M returns.
  • Adds 134 positive-valued taxable loss-component AGI-bin targets across business, capital gains, estate, partnership/S-corp, and rent/royalty losses.

Tests

  • uv run ruff check policyengine_us_data/utils/loss.py policyengine_us_data/db/etl_irs_soi.py tests/unit/calibration/test_loss_targets.py tests/unit/test_etl_irs_soi_overlay.py tests/unit/calibration/test_target_config.py
  • uv run pytest tests/unit/calibration/test_loss_targets.py tests/unit/test_etl_irs_soi_overlay.py tests/unit/calibration/test_target_config.py

@MaxGhenis MaxGhenis force-pushed the replace-manual-negative-income-targets branch 3 times, most recently from 0e1175e to 620fbc2 Compare May 27, 2026 12:02
@MaxGhenis MaxGhenis force-pushed the replace-manual-negative-income-targets branch from 620fbc2 to eb6a0c2 Compare May 27, 2026 12:06
@MaxGhenis MaxGhenis merged commit 8fd8eed into main May 27, 2026
14 checks passed
@MaxGhenis MaxGhenis deleted the replace-manual-negative-income-targets branch May 27, 2026 12:49
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