Does the federal income tax bracket create progressive strain as inflation rises? This repository compiles 70+ years of U.S. federal income-tax schedules, CPI-U, chained CPI-U, median family income, standard deductions, and marriage/demographic series, and decomposes the effective tax rate faced by households on constant real income across three distinct indexation regimes.
Paper: paper/main.pdf (6 pages, REVTeX twocolumn)
Data: data/ — 30+ CSVs, all provenance in data/README.md and data/SOURCES_notes.md
Analysis code: analysis/ — reproducible Python pipeline
Figures: paper/figures/ — 10 publication-quality PDFs
A progressive bracket schedule is defined in nominal dollars. Inflation pushes real incomes through successively higher brackets ("bracket creep") unless the schedule itself is re-indexed. Between 1954 and 2025 the U.S. schedule has passed through three distinct indexation regimes:
| Regime | Years | Indexing rule |
|---|---|---|
| I — No indexation | 1954–1984 | Bracket boundaries fixed in nominal dollars; changed only by statute |
| II — CPI-U indexed | 1985–2017 | ERTA-mandated annual CPI-U adjustment |
| III — Chained CPI-U | 2018–present | TCJA switched to C-CPI-U, which runs ~0.25 pp/yr slower |
We ask: on a constant real income, does the federal schedule now tax more or less than it used to?
Less. Much less, on average — but with important regime-specific detail.
The Bracket Strength Index — the effective average statutory tax rate on a household whose real income is held constant at a reference level (2025 dollars) — has fallen substantially across all reference income levels between the 1954–84 and 2018–25 windows.
| Regime | Single filer | Married filing jointly |
|---|---|---|
| I (1954–1984) | 32.9% | 27.1% |
| II (1985–2017) | 23.0% | 20.4% |
| III (2018–2025) | 20.1% | 16.0% |
| Change I → III | −12.8 pp | −11.1 pp |
Statutory rate cuts (1964 Revenue Act, ERTA 1981, TRA86, EGTRRA/JGTRRA, TCJA) have been larger and more frequent than inflation-driven bracket creep. The long-run trajectory is one of a weakening schedule on constant real income.
Between 1969 and 1976 the single-filer schedule was literally unchanged (25 brackets, 70% ceiling), yet the effective rate on a constant real
The effective rate faced by a family at real median income has fallen dramatically:
| Year | Single | MFJ |
|---|---|---|
| 1980 | 21.5% | 21.5% |
| 2024 | 17.4% | 12.6% |
(Gross-income basis; subtracting standard deduction lowers both further.)
The top bracket's real threshold has shrunk even as its rate has fallen:
| 1954 | 2025 | |
|---|---|---|
| Top rate (single) | 91% | 37% |
| Top-bracket threshold (2025-$) | $2.4M | $626k |
The top bracket today catches ~4× more real income than in 1954 even at less than half the rate.
The TCJA switch to chained CPI-U (2018) has already opened a ~1.5% cumulative gap against CPI-U by 2025. Over a full 40-year career, this compounds to a ~10% real-threshold erosion — a mechanical, low-amplitude reintroduction of bracket creep half an order of magnitude weaker than Regime I.
tax analysis/
├── README.md ← this file
├── data/
│ ├── README.md ← full data manifest & caveats
│ ├── SOURCES_notes.md ← agent-compiled provenance for dedn/marriage/AWI
│ ├── tax_brackets/
│ │ ├── single_1954_2025.csv
│ │ ├── married_filing_jointly_1954_2025.csv
│ │ ├── head_of_household_1954_2025.csv
│ │ ├── pre1954_all_filers.csv (1913-1953)
│ │ └── SOURCES_hoh_and_pre1954.md
│ ├── inflation/ 6 series (CPI-U NSA/SA, core, PCE, GDP deflator, C-CPI-U)
│ ├── income_wages/ 9 series (median family/household income, SSA AWI, avg hourly, compensation, min wage)
│ ├── demographics/ 6 series (marriage/divorce history 1890-2023, population, unemployment, birth rate)
│ └── deductions_exemptions/ standard_deduction_and_exemption.csv 1913-2025
├── analysis/
│ ├── tax_calc.py reusable marginal-tax calculator, with smoke tests
│ ├── analyze.py full pipeline: loads data, builds metrics, writes figures
│ └── results/
│ ├── series.csv one row per year 1954-2025, 48 metrics
│ └── summary.json headline numbers for paper
└── paper/
├── main.tex REVTeX twocolumn manuscript
├── main.pdf compiled (6 pp)
└── figures/ 10 PDF figures referenced in paper
# Data downloads are already in data/; if rebuilding:
# - FRED CSVs via https://fred.stlouisfed.org/graph/fredgraph.csv?id=<SERIES_ID>
# - Tax Foundation historical brackets page (see paper refs)
# Run the analysis
python analysis/analyze.py
# Compile the paper
cd paper && pdflatex main.tex && pdflatex main.texRequires Python 3.10+ with pandas, numpy, matplotlib; any LaTeX distribution with revtex4-2.
- Tax Foundation, Historical U.S. Federal Individual Income Tax Rates and Brackets, 1862–2025 — https://taxfoundation.org/data/all/federal/historical-income-tax-rates-brackets/
- Congressional Research Service, Individual Income Tax Rates: 1988 to 2025 Tax Years — Report RL34498 (Jan 2025)
- BLS / FRED, CPI-U (
CPIAUCNS), Chained CPI-U (SUUR0000SA0), PCE (PCEPI) — https://fred.stlouisfed.org - U.S. Census Bureau, Real Median Family Income (
MEFAINUSA672N) — https://fred.stlouisfed.org/series/MEFAINUSA672N - CDC National Vital Statistics System, National Marriage and Divorce Rate Trends, 2000–2023
- Social Security Administration, National Average Wage Index — https://www.ssa.gov/OACT/COLA/AWI.html
- U.S. Census Bureau, Table MS-2 (median age at first marriage, 1890–present)
All per-file provenance, cross-checks, and caveats are in data/SOURCES_notes.md and data/tax_brackets/SOURCES_hoh_and_pre1954.md.
- Ordinary income only. Capital gains, dividends, AMT, phase-outs, credits are excluded.
- Federal only. No state income tax.
- No payroll tax. FICA is today a larger burden than the income tax for median workers; its inclusion would flatten the secular-decline finding.
- Gross-income basis. Subtracting standard deduction lowers every BSI curve by 3–5 pp post-TCJA and 1–3 pp earlier. The deduction CSV is in the repo for readers who wish to re-run net of deductions.
The statements here are descriptive, not normative. "Weaker schedule on constant real income" is not equivalent to "lower real revenue" — nominal incomes grow faster than CPI over long horizons — nor to any claim about vertical equity.
Data is from public-domain federal sources and public secondary compilers. Code and paper released under MIT.