Recipe3: Comparison of Different Payroll Tax Reforms#
This Receipe is to compare the difference between the payroll tax reforms implemented upon the employer side and the employee side. The payroll tax reform implemented upon the employer side will come with an offset, while the reform on employee side will not come with offset. The hypothesis is that the employee side reform will generate more revenue.
import taxcalcpayroll as tcp
from taxcalcpayroll.payrolloffset import employer_payroll_offset
import pandas as pd
import numpy as np
Calculated total tax revenue for the future years#
for year in range(2024, 2034):
print("year: ", year)
year_list.append(year)
calc0.advance_to_year(year)
calc0.calc_all()
itax_rev0 = calc0.weighted_total('combined')
itax_rev0 = (itax_rev0/10**9).round(2)
cur_list.append(itax_rev0)
cur_sum += itax_rev0
print("current law combined tax revenue: $", itax_rev0, "Billions")
print(" ")
print("reform 1 to rise 1% employer side FICA social security ")
calc1.advance_to_year(year)
calc1.calc_all()
itax_rev1 = calc1.weighted_total('combined')
itax_rev1 = (itax_rev1/10**9).round(2)
print("reformed law combined tax revenue: $", itax_rev1, "Billions")
offset_df = employer_payroll_offset(reform1, calc0, pol, recs, dump=False)
itax_revbr = (offset_df['combined'] * offset_df['s006']).sum()
itax_revbr = (itax_revbr/10**9).round(2)
print("offset combined tax revenue: ", itax_revbr, "Billions")
print(" ")
reform_list.append(itax_rev1)
br_diff = itax_rev1 - itax_rev0
base_ref_diff.append(br_diff)
reform_sum += itax_rev1
base_ref_sum += br_diff
offset_list.append(itax_revbr)
ro_diff = itax_revbr - itax_rev1
ref_offset_diff.append(ro_diff)
bo_diff = itax_revbr - itax_rev0
base_offset_diff.append(bo_diff)
offset_sum += itax_revbr
ref_offset_sum += ro_diff
base_offset_sum += bo_diff
print("reform 2 to rise 1% employee side FICA social security ")
calc2.advance_to_year(year)
calc2.calc_all()
itax_rev2 = calc2.weighted_total('combined')
itax_rev2 = (itax_rev2/10**9).round(2)
print("reformed law combined tax revenue: $", itax_rev2, "Billions")
offset_df2 = employer_payroll_offset(reform2, calc0, pol, recs, dump=False)
itax_revbr2 = (offset_df2['combined'] * offset_df2['s006']).sum()
itax_revbr2 = (itax_revbr2/10**9).round(2)
print("offset combined tax revenue: ", itax_revbr2, "Billions")
print(" ")
reform_list2.append(itax_rev2)
br_diff2 = itax_rev2 - itax_rev0
base_ref_diff2.append(br_diff2)
reform_sum2 += itax_rev2
base_ref_sum2 += br_diff2
offset_list2.append(itax_revbr2)
ro_diff2 = itax_revbr2 - itax_rev2
ref_offset_diff2.append(ro_diff2)
bo_diff2 = itax_revbr2 - itax_rev0
base_offset_diff2.append(bo_diff2)
offset_sum2 += itax_revbr2
ref_offset_sum2 += ro_diff2
base_offset_sum2 += bo_diff2
year_list.append("10 year 2024-2033")
cur_list.append(cur_sum)
reform_list.append(reform_sum)
base_ref_diff.append(base_ref_sum)
offset_list.append(offset_sum)
ref_offset_diff.append(ref_offset_sum)
base_offset_diff.append(base_offset_sum)
reform_list2.append(reform_sum2)
base_ref_diff2.append(base_ref_sum2)
offset_list2.append(offset_sum2)
ref_offset_diff2.append(ref_offset_sum2)
base_offset_diff2.append(base_offset_sum2)
df = pd.DataFrame({'Year': year_list, 'Baseline Tototal Revenue': cur_list, 'Reform Tototal Revenue (no offset)': reform_list,
'Reform Tototal Revenue with offset': offset_list, "Diff: Reform - Baseline": base_ref_diff,
'Diff: Offset - Reform': ref_offset_diff, "Diff: Offset - Baseline": base_offset_diff
})
df = df.style.hide()
df2 = pd.DataFrame({'Year': year_list, 'Baseline Tototal Revenue': cur_list, 'Reform Tototal Revenue (no offset)': reform_list2,
'Reform Tototal Revenue with offset': offset_list2, "Diff: Reform - Baseline": base_ref_diff2,
'Diff: Offset - Reform': ref_offset_diff2, "Diff: Offset - Baseline": base_offset_diff2
})
df2 = df2.style.hide()
display(df)
Year | Baseline Tototal Revenue | Reform Tototal Revenue (no offset) | Reform Tototal Revenue with offset | Diff: Reform - Baseline | Diff: Offset - Reform | Diff: Offset - Baseline |
---|---|---|---|---|---|---|
2024 | 3757.610000 | 3757.610000 | 3757.610000 | 0.000000 | 0.000000 | 0.000000 |
2025 | 3952.990000 | 4053.780000 | 4023.510000 | 100.790000 | -30.270000 | 70.520000 |
2026 | 4353.220000 | 4458.410000 | 4423.900000 | 105.190000 | -34.510000 | 70.680000 |
2027 | 4543.830000 | 4653.240000 | 4617.230000 | 109.410000 | -36.010000 | 73.400000 |
2028 | 4737.260000 | 4850.960000 | 4813.430000 | 113.700000 | -37.530000 | 76.170000 |
2029 | 4935.730000 | 5053.900000 | 5014.790000 | 118.170000 | -39.110000 | 79.060000 |
2030 | 5139.730000 | 5262.540000 | 5221.780000 | 122.810000 | -40.760000 | 82.050000 |
2031 | 5348.200000 | 5475.840000 | 5433.370000 | 127.640000 | -42.470000 | 85.170000 |
2032 | 5549.990000 | 5682.670000 | 5638.450000 | 132.680000 | -44.220000 | 88.460000 |
2033 | 5781.670000 | 5918.520000 | 5872.840000 | 136.850000 | -45.680000 | 91.170000 |
10 year 2024-2033 | 48100.230000 | 49167.470000 | 48816.910000 | 1067.240000 | -350.560000 | 716.680000 |
display(df2)
Year | Baseline Tototal Revenue | Reform Tototal Revenue (no offset) | Reform Tototal Revenue with offset | Diff: Reform - Baseline | Diff: Offset - Reform | Diff: Offset - Baseline |
---|---|---|---|---|---|---|
2024 | 3757.610000 | 3757.610000 | 3757.610000 | 0.000000 | 0.000000 | 0.000000 |
2025 | 3952.990000 | 4053.780000 | 4053.780000 | 100.790000 | 0.000000 | 100.790000 |
2026 | 4353.220000 | 4458.410000 | 4458.410000 | 105.190000 | 0.000000 | 105.190000 |
2027 | 4543.830000 | 4653.240000 | 4653.240000 | 109.410000 | 0.000000 | 109.410000 |
2028 | 4737.260000 | 4850.960000 | 4850.960000 | 113.700000 | 0.000000 | 113.700000 |
2029 | 4935.730000 | 5053.900000 | 5053.900000 | 118.170000 | 0.000000 | 118.170000 |
2030 | 5139.730000 | 5262.540000 | 5262.540000 | 122.810000 | 0.000000 | 122.810000 |
2031 | 5348.200000 | 5475.840000 | 5475.840000 | 127.640000 | 0.000000 | 127.640000 |
2032 | 5549.990000 | 5682.670000 | 5682.670000 | 132.680000 | 0.000000 | 132.680000 |
2033 | 5781.670000 | 5918.520000 | 5918.520000 | 136.850000 | 0.000000 | 136.850000 |
10 year 2024-2033 | 48100.230000 | 49167.470000 | 49167.470000 | 1067.240000 | 0.000000 | 1067.240000 |