Skip to article frontmatterSkip to article content

Revenue Impacts

This chapter presents the quantitative results of the analysis of eight Social Security benefit taxation reform options. All estimates represent changes in federal tax revenue, with projections extending through 2100.

We present conventional scoring estimates as our primary results, which incorporate labor supply behavioral responses based on Congressional Budget Office elasticities (doubled for workers aged 65+). Static estimates without behavioral responses are provided for comparison. Positive values indicate revenue increases (deficit reducing), while negative values indicate revenue losses (deficit increasing). All values are in billions of dollars.

Scoring Methodology

We present two types of conventional scoring estimates:

Conventional scoring (primary results) incorporates labor supply elasticities based on CBO estimates, with elasticities doubled for workers aged 65 and older based on meta-analysis findings. This captures behavioral responses to changes in effective tax rates.

Static scoring assumes no behavioral responses to policy changes, isolating the pure mechanical effect.

For most options, conventional and static estimates differ by less than 5%. The main exceptions are the Roth-style swap options (Options 5 and 6), which show larger differences (7-27%) due to the behavioral effects of taxing employer payroll contributions on labor supply decisions.

10-Year Impacts (2026-2035)

The following table presents the 10-year budgetary impact for each option. Conventional scoring (incorporating labor supply responses) represents our primary estimates, with static scoring (no behavioral responses) shown for comparison:

Loading...

The following chart visualizes the 10-year impacts, comparing static and conventional scoring:

Loading...

75-Year Fiscal Impacts (2026-2100)

The following table presents the complete 75-year cumulative fiscal impact for each reform option. These long-term projections reveal how policies that appear revenue-positive in standard 10-year budget windows may evolve over longer time horizons as demographic trends intensify.

Loading...

Key observations from long-term projections

The 75-year projections reveal several important patterns. Options that raise revenue in the 10-year window continue to do so over longer horizons, with the magnitude of revenue gains increasing substantially. Option 2 (85% taxation), for example, grows from 429billionover10yearsto429 billion over 10 years to 15 trillion over 75 years, reflecting both nominal growth and the expanding share of Social Security benefits in the economy as the population ages.

Most notably, the Roth-style swap options (5 and 6) show complex long-term trajectories. Both options are initially revenue-positive, with cumulative gains peaking around 2051 at approximately 1.4trillion.However,demographicpressurescausethesegainstoerodeoversubsequentdecades.By2070,cumulativerevenueturnsnegative,ultimatelyreaching1.4 trillion. However, demographic pressures cause these gains to erode over subsequent decades. By 2070, cumulative revenue turns negative, ultimately reaching -23.5 trillion (Option 5) and -$22.3 trillion (Option 6) by 2100. These patterns reflect the fundamental asymmetry between eliminating a revenue source tied to a growing retiree population while adding one tied to a workforce growing more slowly relative to retirees.

The scale of these long-term impacts underscores the importance of demographic considerations in evaluating Social Security taxation policies. Options that appear revenue-positive in standard budget windows and even remain positive for multiple decades can create substantial long-term fiscal challenges as the worker-to-retiree ratio declines and benefit obligations grow.

75-year cumulative impact comparison

The following chart presents the total cumulative revenue impact over the complete 75-year projection window for all reform options, using conventional scoring:

Loading...

Annual impacts over time

The following chart shows how annual revenue impacts evolve across the complete 75-year projection period:

Loading...
# Calculate key statistics for Key Findings
from IPython.display import display, Markdown

# 10-year totals
ten_yr_data = df[df['year'].between(2026, 2035)]
opt1_10yr = ten_yr_data[(ten_yr_data['reform_name'] == 'option1') & (ten_yr_data['scoring_type'] == 'dynamic')]['revenue_impact'].sum()
opt5_10yr_static = ten_yr_data[(ten_yr_data['reform_name'] == 'option5') & (ten_yr_data['scoring_type'] == 'static')]['revenue_impact'].sum()
opt5_10yr_dynamic = ten_yr_data[(ten_yr_data['reform_name'] == 'option5') & (ten_yr_data['scoring_type'] == 'dynamic')]['revenue_impact'].sum()
opt6_10yr_static = ten_yr_data[(ten_yr_data['reform_name'] == 'option6') & (ten_yr_data['scoring_type'] == 'static')]['revenue_impact'].sum()
opt6_10yr_dynamic = ten_yr_data[(ten_yr_data['reform_name'] == 'option6') & (ten_yr_data['scoring_type'] == 'dynamic')]['revenue_impact'].sum()
opt7_10yr_static = ten_yr_data[(ten_yr_data['reform_name'] == 'option7') & (ten_yr_data['scoring_type'] == 'static')]['revenue_impact'].sum()
opt7_10yr_dynamic = ten_yr_data[(ten_yr_data['reform_name'] == 'option7') & (ten_yr_data['scoring_type'] == 'dynamic')]['revenue_impact'].sum()
opt8_10yr_static = ten_yr_data[(ten_yr_data['reform_name'] == 'option8') & (ten_yr_data['scoring_type'] == 'static')]['revenue_impact'].sum()
opt8_10yr_dynamic = ten_yr_data[(ten_yr_data['reform_name'] == 'option8') & (ten_yr_data['scoring_type'] == 'dynamic')]['revenue_impact'].sum()

# 75-year totals (static)
opt5_75yr = df[(df['reform_name'] == 'option5') & (df['scoring_type'] == 'static')]['revenue_impact'].sum()
opt6_75yr = df[(df['reform_name'] == 'option6') & (df['scoring_type'] == 'static')]['revenue_impact'].sum()

# Peak values
opt5_data = df[(df['reform_name'] == 'option5') & (df['scoring_type'] == 'static')].copy()
opt5_data['cumulative'] = opt5_data['revenue_impact'].cumsum()
opt5_peak = opt5_data['cumulative'].max()

opt6_data = df[(df['reform_name'] == 'option6') & (df['scoring_type'] == 'static')].copy()
opt6_data['cumulative'] = opt6_data['revenue_impact'].cumsum()
opt6_peak = opt6_data['cumulative'].max()

# Generate markdown with calculated values
markdown_text = f"""## Key Findings

1. **Labor Supply Responses vs Static Scoring**: For most options, labor supply responses produce results within 5% of static scoring, confirming that behavioral responses have limited impact on these estimates.

2. **Option 1 (Full Repeal)**: Loses approximately ${abs(opt1_10yr)/1000:.1f} trillion over 10 years, representing the revenue currently generated from Social Security benefit taxation.

3. **Option 8 (100% Taxation)**: Raises the most revenue at ${opt8_10yr_static:.0f}-{opt8_10yr_dynamic:.0f} billion over 10 years, as expected since it taxes a larger portion of benefits than the current 85% maximum.

4. **Option 7 (Eliminate Senior Deduction)**: Shows impact only in 2026-2028 (${opt7_10yr_static:.0f}-{opt7_10yr_dynamic:.0f} billion), then zero impact as the deduction expires in 2029.

5. **Option 5 (Roth-Style Swap)**: Raises net revenue of ${opt5_10yr_dynamic:.0f}-{opt5_10yr_static:.0f} billion over 10 years despite eliminating benefit taxation, because taxing employer payroll contributions generates more revenue than is lost. This reflects the larger tax base of current workers versus retirees above income thresholds. Over 75 years, cumulative revenue peaks at ${opt5_peak/1000:.1f} trillion before moderating to ${opt5_75yr/1000:.1f} trillion as demographic pressures intensify.

6. **Option 6 (Phased Roth-Style)**: Shows a complex pattern, initially raising substantial revenue (${opt6_10yr_dynamic:.0f}-{opt6_10yr_static:.0f} billion over 10 years). The phased implementation produces higher early-period gains, with cumulative revenue peaking at ${opt6_peak/1000:.1f} trillion before moderating to ${opt6_75yr/1000:.1f} trillion over 75 years. Annual revenue becomes negative after 2050, but cumulative totals remain positive throughout.
"""

display(Markdown(markdown_text))
Loading...

Year-by-year data

Download the complete year-by-year data (2026-2100) for all reform options:

Download: revenue_impacts_with_payroll_pct.csv

The file contains revenue impacts with economic context from SSA 2025 Trustees Report Table VI.G6:

  • reform_name: Reform option (option1-option8)

  • year: Projection year (2026-2100)

  • revenue_impact: Net revenue impact in billions

  • scoring_type: “conventional” (with labor supply responses) or “static” (no behavioral responses)

  • taxable_payroll: OASDI taxable payroll in billions (SSA Table VI.G6)

  • gdp: Gross Domestic Product in billions (SSA Table VI.G6)

  • pct_of_payroll: Revenue impact as % of taxable payroll

  • pct_of_gdp: Revenue impact as % of GDP

The table below shows sample years for Option 1 (Full Repeal):

# Generate downloadable data file with economic context
import pandas as pd

# Load SSA economic projections
ssa_econ = pd.read_csv('../data/ssa_economic_projections.csv')
df_download = df.merge(ssa_econ, on='year')

# Fix terminology
df_download['scoring_type'] = df_download['scoring_type'].replace({'dynamic': 'conventional'})

# Calculate percentages
df_download['pct_of_payroll'] = (df_download['revenue_impact'] / df_download['taxable_payroll'] * 100).round(3)
df_download['pct_of_gdp'] = (df_download['revenue_impact'] / df_download['gdp'] * 100).round(3)

# Keep only relevant columns
df_export = df_download[['reform_name', 'year', 'revenue_impact', 'scoring_type',
                          'taxable_payroll', 'gdp', 'pct_of_payroll', 'pct_of_gdp']]

# Save
df_export.to_csv('_static/revenue_impacts_with_payroll_pct.csv', index=False)

# Show sample
sample = df_export[
    (df_export['reform_name'] == 'option1') &
    (df_export['scoring_type'] == 'conventional') &
    (df_export['year'].isin([2026, 2035, 2050, 2075, 2100]))
]

print("Sample: Option 1 (Full Repeal) - Conventional Scoring")
print("=" * 70)
for _, row in sample.iterrows():
    print(f"{row['year']:.0f}: ${row['revenue_impact']:>7,.0f}B  |  {row['pct_of_payroll']:>6.2f}% of payroll  |  {row['pct_of_gdp']:>6.2f}% of GDP")

print("\nFull repeal costs: 0.91%-1.82% of payroll, or 0.32%-0.61% of GDP")
print("✓ Saved to _static/revenue_impacts_with_payroll_pct.csv")
Sample: Option 1 (Full Repeal) - Conventional Scoring
======================================================================
2026: $   -101B  |   -0.91% of payroll  |   -0.32% of GDP
2035: $   -202B  |   -1.25% of payroll  |   -0.44% of GDP
2050: $   -459B  |   -1.62% of payroll  |   -0.56% of GDP
2075: $ -1,310B  |   -1.82% of payroll  |   -0.61% of GDP
2100: $ -3,387B  |   -1.80% of payroll  |   -0.60% of GDP

Full repeal costs: 0.91%-1.82% of payroll, or 0.32%-0.61% of GDP
✓ Saved to _static/revenue_impacts_with_payroll_pct.csv

Long-term fiscal trajectory of Roth-style swap policies

While Options 5 and 6 show positive revenue impacts in standard 10-year budget windows, their long-term fiscal trajectories diverge significantly from their near-term performance. This section examines the complete 75-year projection to understand the structural drivers of these policies’ evolving fiscal impacts.

75-Year Cumulative Revenue Impact Analysis

================================================================================

Option 5: Immediate Roth Swap
--------------------------------------------------------------------------------
  10-year   : $     745.2B
  25-year   : $   1,427.9B
  50-year   : $  -1,603.7B
  75-year   : $ -23,520.6B

  First year with negative annual revenue: 2052
  Peak cumulative revenue: 2051 ($1,431.9B)
  Cumulative turns negative: 2070 (after 44 years)

Option 6: Phased Roth Swap
--------------------------------------------------------------------------------
  10-year   : $   1,308.7B
  25-year   : $   2,615.8B
  50-year   : $    -415.8B
  75-year   : $ -22,332.7B

  First year with negative annual revenue: 2052
  Peak cumulative revenue: 2051 ($2,619.8B)
  Cumulative turns negative: 2074 (after 48 years)

The following visualizations illustrate how cumulative and annual revenue impacts evolve across the projection period, showing the transition from initial revenue gains to long-term losses as demographic pressures intensify.

Loading...

Decomposing the Roth swap: why employer payroll revenue falls short

To understand why Option 5’s cumulative gains eventually turn to losses, we can decompose it into its two components by comparing it to Option 1 (which only eliminates Social Security benefit taxation). The difference between Option 5 and Option 1 isolates the revenue raised from taxing employer payroll contributions.

The following visualization shows how these two revenue streams evolve over time, revealing the critical crossover point where annual employer payroll tax revenue falls behind the annual Social Security benefit taxation being eliminated:

Loading...

Understanding the growth rate differential

The fundamental driver of the long-term divergence becomes clear when examining the annual growth rates of the two revenue streams. While both grow with the economy, they do so at persistently different rates that compound over decades:

Loading...

The growth rate differential reveals the structural challenge. Social Security benefit taxation grows at an average annual rate of 5.64%, while employer payroll tax revenue grows at 3.33%, creating a persistent 2.31 percentage point gap. This differential remains remarkably stable across the projection period: 2.25 percentage points in the early years (2027-2050) and 2.34 percentage points in later years (2051-2100).

This seemingly modest differential compounds dramatically over time. In the 10-year budget window, the cumulative effect still favors the employer payroll tax, which offsets 120% of the Social Security benefit taxation losses. By 2051, cumulative revenue peaks at 1.4trillion.However,byyear75,thisratiodeterioratessubstantially,asthe2.3percentagepointannualgrowthdifferentialcompoundstoproducecumulativelossesof1.4 trillion. However, by year 75, this ratio deteriorates substantially, as the 2.3 percentage point annual growth differential compounds to produce cumulative losses of 23.5 trillion.

The growth rate patterns reflect underlying demographic and economic forces. Employer payroll tax revenue grows with the total wage bill in the economy, determined by workforce size and wage levels. Social Security benefit taxation grows with retiree income and benefit levels, which are amplified by increasing longevity, an aging population structure, and a declining worker-to-retiree ratio. The result is a policy structure that exchanges a revenue source growing with demographic headwinds for one constrained by demographic tailwinds, creating an unsustainable long-term fiscal trajectory despite appearing revenue-positive in standard budget windows and for several decades thereafter.

Loading...

Understanding the long-term trajectory of Roth-style swaps

The long-term revenue trajectory observed in Options 5 and 6 reflects fundamental demographic and economic trends rather than modeling artifacts. Both options implement the same basic policy exchange: eliminating Social Security benefit taxation while adding taxation of employer payroll contributions. In 2026, these two revenue sources are roughly equal at approximately $2.5 trillion each, which explains why the policies appear strongly revenue-positive in early years.

However, the two tax bases evolve differently over the 75-year projection window. Social Security benefit taxation grows at an annual compound growth rate of approximately 4.7%, driven by an aging population structure, increasing life expectancy leading to longer benefit collection periods, wage indexing of benefits, and a declining worker-to-retiree ratio.

The employer payroll tax base follows a similar but slightly slower trajectory at an annual rate of approximately 4.6%. This base grows with the working-age population and wage levels but lacks the demographic tailwind that accelerates Social Security benefit growth. The differential growth rates create a widening gap between the revenue source being eliminated and the revenue source being added.

While the difference between 4.7% and 4.6% growth may appear modest, it compounds significantly over 75 years. In the 10-year window, employer payroll taxation more than offsets the loss of benefit taxation, generating net positive revenue. This advantage persists for over four decades, with cumulative revenue peaking at 1.4trillionaround2051.However,thegrowthdifferentialeventuallydominates:annualemployerpayrollrevenuegrowthfallsbehindannualbenefittaxationlosses,causingcumulativetotalstoturnnegativein2070andultimatelyreach1.4 trillion around 2051. However, the growth differential eventually dominates: annual employer payroll revenue growth falls behind annual benefit taxation losses, causing cumulative totals to turn negative in 2070 and ultimately reach -23.5 trillion by 2100.

Option 6’s phased implementation creates an additional dynamic. The phase-in schedule ramps up employer payroll taxation quickly (reaching 100% by 2033) while phasing out Social Security benefit taxation slowly (completing by 2045). This timing mismatch produces an 18-year window during which both revenue sources are collected simultaneously, generating slightly higher early-period cumulative revenue before converging to a trajectory similar to Option 5.

From a public finance perspective, these options demonstrate the critical importance of 75-year scoring for policies involving demographic dynamics. While appearing revenue-positive for 25 years and neutral even at 45 years, the cumulative losses of $22-24 trillion over the full 75-year window reflect the compounding effect of exchanging a revenue source growing with an aging population for one tied to a workforce that is shrinking relative to the retiree population.