Skip to content

andsalazar/FederalBudgetAnalysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Structural Breaks in the Distributional Incidence of U.S. Federal Fiscal Policy, FY2000–2025

Author: Andy Salazar
Date: March 2026
Status: Working Paper
Paper: output/FINDINGS_v3_restructured.md  |  PDF: output/reports/


Overview

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

Replication

Prerequisites

  • 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

Quick Start

# 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).

Data Availability

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.

Project Structure

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

Data Sources

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

Citation

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}}
}

License

About

Replication package: "The Distributional Consequences of Federal Fiscal Policy, FY2000–FY2025" — Salazar (2026)

Topics

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE-CODE
Unknown
LICENSE-PAPER

Stars

Watchers

Forks

Packages

 
 
 

Contributors