-
Notifications
You must be signed in to change notification settings - Fork 10
Description
Problem
State/district datasets are not calibrated to actual state income tax revenue, leading to potentially large deviations from real-world collections.
Evidence: Ohio deviation
When modeling Vivek Ramaswamy's proposal to eliminate Ohio capital gains tax, we found:
| Metric | PolicyEngine | Actual |
|---|---|---|
| Ohio income tax revenue | $24.4B | ~$10B |
| Deviation | 2.4x | - |
Sources for actual Ohio income tax revenue:
- Policy Matters Ohio: $9.52B for FY2024
- Buckeye Reporter: $1.9B in Q1 2024
Current calibration targets
Per fit_calibration_weights.py, state/CD datasets currently calibrate to:
- SNAP
- Health insurance premiums
- Household counts (stratum_group_id 4)
But not state income tax revenue.
Impact
- Absolute revenue estimates for state tax reforms are unreliable
- Distributional shares (e.g., "83% of benefit goes to top 1%") are likely still valid since they're relative
- Users analyzing state tax policy may be misled by raw revenue numbers
Proposed solution
Add state income tax revenue as a calibration target using Census Bureau's Annual Survey of State Government Tax Collections.
Data source
The Census STC provides individual income tax collections by state annually since 1939. FRED also provides this data in a convenient format (e.g., OHINCTAX for Ohio).
Implementation
- Create
pull_state_income_tax_targets.pyto fetch Census STC or FRED data - Add
state_income_tax_state.csvcalibration target file - Include
state_income_taxin thetarget_filtervariables list infit_calibration_weights.py - Re-run calibration
Related
This was discovered while modeling Ramaswamy's Ohio capital gains tax elimination proposal for PolicyEngine analysis.