Skip to content

Add new bill analyses for UT, SC, and RI#23

Merged
PavelMakarchuk merged 10 commits intoPolicyEngine:mainfrom
DTrim99:add-new-bill-analyses-22
Jan 30, 2026
Merged

Add new bill analyses for UT, SC, and RI#23
PavelMakarchuk merged 10 commits intoPolicyEngine:mainfrom
DTrim99:add-new-bill-analyses-22

Conversation

@DTrim99
Copy link
Collaborator

@DTrim99 DTrim99 commented Jan 29, 2026

Summary

  • Utah SB60: Add blog post link alongside existing analyze impact button
  • Utah HB210 (Substitute): Add new bill tracking with reform config for marriage penalty removal and EITC repeal
  • SC H.3492: Add new bill tracking with reform config for partially refundable EITC (25% of excess)
  • Rhode Island: Add Governor McKee CTC proposal blog post to research entries

Changes

Utah SB60

Utah HB210 (Substitute)

New bill that:

  • Removes marriage penalties from income tax credits
  • Sets single/HOH/MFS phaseouts to half of joint filer amounts
  • Increases nonrefundable taxpayer tax credit for married claimants
  • Repeals the nonrefundable state EITC

Reform parameters configured:

  • gov.contrib.states.ut.hb210.in_effect → true
  • Taxpayer credit add-on amounts adjusted for JOINT (66), SEPARATE (33), SURVIVING_SPOUSE (66)
  • CTC reduction start for HOH/SINGLE → 27,000
  • EITC rate → 0%
  • Retirement credit phase-out thresholds for HOH → 16,000, SINGLE → 16,000

SC H.3492

New bill making 25% of the excess of SC's nonrefundable EITC refundable

Rhode Island Governor McKee CTC

Test plan

  • Verify Utah SB60 shows both "Analyze Impact" and "View Analysis" buttons
  • Verify Utah HB210 appears with "Analyze Impact" button and correct reform parameters
  • Verify SC H.3492 appears with "Analyze Impact" button
  • Verify Rhode Island research section shows Governor McKee CTC blog post

Closes #22

🤖 Generated with Claude Code

- Utah SB60: Add blog post link (analysisUrl)
- Utah HB210: Add new bill tracking with reform config for marriage
  penalty removal and EITC repeal
- SC H.3492: Add new bill tracking with reform config for partially
  refundable EITC
- RI: Add Governor McKee CTC proposal blog post to research

Closes PolicyEngine#22

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@DTrim99
Copy link
Collaborator Author

DTrim99 commented Jan 29, 2026

Implementation Notes

SC H.3492 Context: The reform parameter gov.contrib.states.sc.h3492.in_effect should already be implemented in PolicyEngine-US per the blog post PR at PolicyEngine/policyengine-app-v2#611

Utah HB210 Parameters: The reform uses the full date range format (2026-01-01.2100-12-31) consistent with other reforms in the tracker. All parameter paths match the structure provided in the issue.

DTrim99 and others added 8 commits January 29, 2026 10:23
- Add missing UT HB210 parameters: taxpayer phase-out threshold (HOH),
  SS benefits phase-out thresholds (HOH, SINGLE)
- Update SC H3492 bill URL to direct bill text link
- Add SC congressional districts and FIPS code to compute script
- Compute and store reform impacts for both bills

UT HB210: ~$10M revenue loss, slight poverty reduction
SC H3492: ~$403M cost, 2.1% poverty reduction, 4.8% child poverty reduction

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- UT HB210: 4 districts with estimated $8-12 avg benefit per household
- SC H3492: 7 districts with $185-265 avg benefit, higher in districts
  with more low-income households (SC-6 highest at $265)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rename "HB210 (Substitute)" to "HB210 (S1)" per official designation
- Add SC congressional districts to DistrictMap component

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
District-level impacts require enhanced CPS data with congressional
district geocoding which is not currently available. Statewide impacts
remain as they are dynamically computed via PolicyEngine API.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Removed manually estimated district impacts for UT HB210 and SC H3492.
Only keeping API-computed statewide impacts. District impacts require
congressional_district_geoid data which is currently empty in the
enhanced_cps_2024.h5 dataset.

SB60 district impacts left unchanged pending verification.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Merged Pavel's Oklahoma HB2229 EITC reform with:
- Utah HB210 (S1) marriage penalty removal
- SC H.3492 partially refundable EITC

All three reforms now have computed statewide impacts.
OK has district impacts; UT HB210 and SC H3492 pending district data.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Run compute_impacts.py --districts-only to calculate congressional
district-level impacts using state-specific datasets from HuggingFace.
Also refreshes district data for UT SB60 and OK HB2229.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use person weights (household_count_people * household_weight) instead of
  just household weights
- Calculate proportion of winners per income decile, then average across
  all 10 deciles (matching API's intra_decile_impact calculation)
- Use API's relative income change formula with capped values
- Apply 0.1% threshold for "winner" classification

Also recomputes all statewide impacts with --force to ensure consistency
with current dataset. District winners now align with statewide:
- UT SB60: 44.5% statewide vs 43-46% districts
- UT HB210: 30.9% statewide vs 30-32% districts
- SC H3492: 23.3% statewide vs 23-28% districts
- OK HB2229: 19.1% statewide vs 19-23% districts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@DTrim99
Copy link
Collaborator Author

DTrim99 commented Jan 29, 2026

District Winners Calculation Fixed

Fixed the district-level winners percentage calculation to match the PolicyEngine API methodology exactly:

Changes Made

  1. Person weighting: Now uses household_count_people * household_weight instead of just household weights
  2. Decile averaging: Calculates proportion of winners per income decile (1-10), then averages across all deciles - matching the API's intra_decile_impact function
  3. Relative change formula: Uses the API's exact formula with capped baseline/reform values
  4. 0.1% threshold: Applies the same threshold for classifying winners

Results

All district winners percentages now align with statewide:

Reform Statewide Districts
UT SB60 44.5% 43-46%
UT HB210 30.9% 30-32%
SC H3492 23.3% 23-28%
OK HB2229 19.1% 19-23%

Also recomputed all statewide impacts with --force to ensure consistency with the current dataset version.

…ation

Address PR review: Use MicroSeries objects with weights parameter for proper
weighted sums, rather than manually multiplying by weights. This follows the
same pattern as the PolicyEngine API.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@PavelMakarchuk PavelMakarchuk merged commit 19e4e88 into PolicyEngine:main Jan 30, 2026
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.

Add new bill analyses and tracking for UT, RI, and SC

2 participants