Author: Andy Salazar
Date: March 2026
Status: Working Paper
Paper: output/FINDINGS_v3_restructured.md | PDF: output/reports/
This repository contains the data, code, and replication materials for "Structural Breaks in the Distributional Incidence of U.S. Federal Fiscal Policy, FY2000–2025."
The paper provides a unified distributional analysis of U.S. federal fiscal policy combining:
- 26 annual observations of CBO historical budget data (FY2000–FY2025)
- Census Bureau income distribution series (24 annual observations)
- CPS ASEC microdata for 8 benchmark years (1.4 million person-records) plus the full CPS ASEC 2024 (115,836 persons)
- Treasury Monthly Treasury Statement administrative data
- BLS Consumer Expenditure Survey 2023 spending shares
- 12 CPI sub-indices tracking tariff-affected goods through January 2026
Key findings:
- The FY2025 customs revenue spike (z = 25.8) and interest-crowding ratio (z = 2.4) are statistically identified structural breaks from quarter-century trends
- The bottom 50% (136.6M persons) bear a combined fiscal burden of $182B ($1,331/person, 10.6% of pretax income) from spending cuts and tariff consumer burden
- Under the SCOTUS tariff revocation + 15% legislative replacement (Section 12), the B50 burden nearly doubles to $320B ($2,341/person, 18.7%) under central estimates
- Price stickiness implies tariff revocation provides zero consumer relief — the burden shifts from Treasury to corporate margins
- Results are robust across 21 analytical specifications spanning 6 robustness dimensions
- Python 3.11+ (tested on 3.13.5)
- Free API keys: FRED, Census Bureau
- ~25 GB disk space (for database and microdata)
- Optional: Pandoc + MiKTeX for journal-quality PDF generation
# 1. Clone and set up environment
git clone https://github.com/andsalazar/FederalBudgetAnalysis.git
cd FederalBudgetAnalysis
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux/macOS
pip install -r requirements.txt
# 2. Configure API keys
cp .env.example .env
# Edit .env with your FRED and Census API keys
# 3. Run tests (no API keys needed)
python -m pytest tests/ -v # 59 tests
# 4. Collect data (requires API keys + network)
python run_pipeline.py
# 5. Run all analyses
python run_25year_analysis.py
python run_counterfactual_analysis.py
python run_tariff_incidence_analysis.py
python run_real_analysis.py
python run_robustness_checks.py
python run_scotus_tariff_scenario.py
# 6. Generate figures and PDF
python generate_charts.py
python generate_new_figures.py
python generate_real_charts.py
python generate_scotus_figures.py
python generate_pdf.py # Requires Pandoc + LaTeX
python generate_pdf.py --engine xhtml2pdf # Fallback (no LaTeX needed)Or use the Makefile: make all (install → test → data → analysis → figures → report).
| File | Size | Included in Repo | Acquisition |
|---|---|---|---|
data/raw/Annual_CY_February2026.csv |
0.1 MB | ✅ | CBO Historical Budget Data download |
data/raw/51134-2026-02-Historical-Budget-Data.xlsx |
0.1 MB | ✅ | CBO Historical Budget Data download |
data/processed/*.csv |
< 1 MB | ✅ | Generated by analysis scripts |
output/tables/*.json |
< 1 MB | ✅ | Generated by analysis scripts |
output/figures/*.png |
6.8 MB | ✅ | Generated by figure scripts |
output/reports/*.pdf |
15.5 MB | ✅ | Generated by generate_pdf.py |
data/federal_budget.db |
8.5 MB | ❌ | Run python run_pipeline.py (requires FRED API key) |
data/external/cps_asec_2024_microdata.csv |
14.2 MB | ❌ | Run python acquire_cps_asec.py (requires Census API key) |
Files marked ❌ exceed GitHub's recommended size limits or require API access. They are regenerated deterministically by the acquisition scripts listed above.
FederalBudgetAnalysis/
├── output/
│ ├── FINDINGS.md # Main paper (Markdown source)
│ ├── figures/ # 49 publication-quality figures
│ │ ├── 01–10_*.png # Descriptive budget (FY2015–2025)
│ │ ├── fig1–fig9_*.png # Distributional impact
│ │ ├── 25yr_*.png # 26-year structural trends
│ │ ├── fig11–fig20_*.png # Analytical figures
│ │ ├── fig21–fig24_*.png # SCOTUS scenario (Section 12)
│ │ └── real_*.png # Real-terms supplementary
│ ├── tables/ # JSON/CSV analysis outputs
│ └── reports/ # Rendered PDFs
│
├── src/ # Core library
│ ├── analysis/ # Econometric models (ITS, structural breaks)
│ ├── collectors/ # Data collectors (FRED, Treasury, CBO)
│ ├── database/ # SQLite schema & ORM
│ ├── visualization/ # Chart generation
│ └── utils/ # Config loader
│
├── tests/ # 59 unit tests (pytest)
├── docs/ # Methodology, literature review, pre-registration
├── data/ # Raw, processed, and external data
├── notebooks/ # Exploratory Jupyter notebooks
│
├── run_25year_analysis.py # 26-year structural trends & break tests
├── run_counterfactual_analysis.py # CBO counterfactual & distributional attribution
├── run_tariff_incidence_analysis.py # CPI pass-through & DWL estimation
├── run_real_analysis.py # Real-terms spending analysis
├── run_robustness_checks.py # 6-dimension robustness battery (21 specs)
├── run_scotus_tariff_scenario.py # SCOTUS revocation + 15% tariff scenario
├── run_services_control_test.py # Traded goods vs. services control test
├── compute_b50_calibration.py # CEX→CPS B50 quintile mapping
├── generate_charts.py # Descriptive budget figures (1–10)
├── generate_new_figures.py # Analytical figures (28–37)
├── generate_real_charts.py # Real-terms figures (42–49)
├── generate_scotus_figures.py # SCOTUS scenario figures (38–41)
├── generate_pdf.py # Markdown → PDF rendering
├── config.yaml # Central configuration
├── requirements.txt # Python dependencies
└── Makefile # Reproducibility pipeline
| Source | Series | Observations | Period |
|---|---|---|---|
| FRED | 48 macro + 12 CPI + 11 NIPA | ~53,000 | 1947–2026 |
| Treasury Fiscal Data | MTS Tables 5 & 9 | ~11,000 | 2015–2025 |
| CBO | Historical Budget Data (67 series) | ~4,700 | 1962–2035 |
| Census Bureau | CPS ASEC microdata (9 years) | ~1.5M records | 2002–2023 |
| Census H-2 | Household income quintile shares | 24 annual | 2000–2023 |
| BLS CEX | Consumer Expenditure Survey 2023 | Table 1101 | 2023 |
If you use this code or data, please cite:
@techreport{salazar2026structural,
title={Structural Breaks in the Distributional Incidence of {U.S.} Federal Fiscal Policy, {FY2000--FY2025}},
author={Salazar, Andy},
year={2026},
month={March},
type={Working Paper},
institution={SSRN},
number={6285038},
url={https://papers.ssrn.com/sol3/papers.cfm?abstract_id=6285038},
note={Replication package: \url{https://github.com/andsalazar/FederalBudgetAnalysis}}
}- Code: MIT License
- Paper and documentation: CC BY 4.0
- Data: Subject to original source terms (see
data/README.md)