Recipe 2: Estimating Behavioral Response to ReformΒΆ

This is an advanced recipe that should be followed only after mastering the basic recipe. This recipe shows how to analyze the behavioral responses to a tax reform using the Behavioral-Responses behresp package.

import taxcalc as tc
import behresp

# use publicly-available CPS input file
recs = tc.Records.cps_constructor()

# specify baseline Calculator object representing current-law policy
pol = tc.Policy()
calc1 = tc.Calculator(policy=pol, records=recs)

CYR = 2020

# calculate aggregate current-law income tax liabilities for cyr
calc1.advance_to_year(CYR)
calc1.calc_all()
itax_rev1 = calc1.weighted_total('iitax')

# specify Calculator object for static analysis of reform policy
pol.implement_reform(tc.Policy.read_json_reform('github://PSLmodels:[email protected]/docs/recipes/_static/reformA.json'))
calc2 = tc.Calculator(policy=pol, records=recs)

# calculate reform income tax liabilities for cyr under static assumptions
calc2.advance_to_year(CYR)
calc2.calc_all()
itax_rev2sa = calc2.weighted_total('iitax')

# specify assumed non-zero response-function substitution elasticity
response_elasticities = {'sub': 0.25}

# specify Calculator object for analysis of reform with behavioral responses
calc2 = tc.Calculator(policy=pol, records=recs)
calc2.advance_to_year(CYR)
_, df2br = behresp.response(calc1, calc2, response_elasticities)

# calculate reform income tax liabilities for CYR with behavioral response
itax_rev2br = (df2br['iitax'] * df2br['s006']).sum()

# print total income tax revenue estimates for CYR
# (estimates in billons of dollars)
print('{}_CURRENT_LAW_P__itax_rev($B)= {:.3f}'.format(CYR, itax_rev1 * 1e-9))
print('{}_REFORM_STATIC__itax_rev($B)= {:.3f}'.format(CYR, itax_rev2sa * 1e-9))
print('{}_REFORM_DYNAMIC_itax_rev($B)= {:.3f}'.format(CYR, itax_rev2br * 1e-9))
2020_CURRENT_LAW_P__itax_rev($B)= 706.266
2020_REFORM_STATIC__itax_rev($B)= 709.416
2020_REFORM_DYNAMIC_itax_rev($B)= 697.679

Create multi-year diagnostic tables for

  1. baseline,

  2. reform excluding behavioral responses, and

  3. reform including behavioral responses

NUM_YEARS = 3  # number of diagnostic table years beginning with CYR
dtable1 = calc1.diagnostic_table(NUM_YEARS)
dtable2 = calc2.diagnostic_table(NUM_YEARS)
dvar_list3 = list()
year_list3 = list()
for year in range(CYR, CYR + NUM_YEARS):
    calc1.advance_to_year(year)
    calc2.advance_to_year(year)
    _, df2br = behresp.response(calc1, calc2, response_elasticities)
    dvar_list3.append(df2br)
    year_list3.append(year)
dtable3 = tc.create_diagnostic_table(dvar_list3, year_list3)

Diagnostic table for baseline:

dtable1
2020 2021 2022
Returns (#m) 204.480 207.080 209.660
AGI ($b) 11338.141 12179.072 12493.294
Itemizers (#m) 27.290 28.290 27.850
Itemized Deduction ($b) 736.068 764.940 753.160
Standard Deduction Filers (#m) 177.190 178.780 181.810
Standard Deduction ($b) 3083.463 3132.356 3242.300
Personal Exemption ($b) 0.000 0.000 0.000
Taxable Income ($b) 8374.450 9131.561 9397.785
Regular Tax ($b) 1450.584 1587.201 1642.653
AMT Income ($b) 10790.162 11608.060 11932.306
AMT Liability ($b) 0.870 1.150 1.103
AMT Filers (#m) 0.400 0.460 0.440
Tax before Credits ($b) 1451.454 1588.351 1643.756
Refundable Credits ($b) 657.477 824.253 102.728
Nonrefundable Credits ($b) 98.706 3.963 104.219
Reform Surtaxes ($b) 0.000 0.000 0.000
Other Taxes ($b) 10.995 11.778 12.343
Ind Income Tax ($b) 706.266 771.913 1449.152
Payroll Taxes ($b) 1206.916 1261.889 1318.277
Combined Liability ($b) 1913.182 2033.802 2767.428
With Income Tax <= 0 (#m) 136.220 130.490 99.020
With Combined Tax <= 0 (#m) 98.650 99.800 69.200
UBI Benefits ($b) 0.000 0.000 0.000
Total Benefits, Consumption Value ($b) 3617.949 4011.607 4064.249
Total Benefits Cost ($b) 3617.949 4011.607 4064.249

Diagnostic table for reform, excluding behavioral responses:

dtable2
2020 2021 2022
Returns (#m) 204.480 207.080 209.660
AGI ($b) 11338.141 12179.072 12493.294
Itemizers (#m) 27.220 28.210 27.790
Itemized Deduction ($b) 733.674 762.331 750.924
Standard Deduction Filers (#m) 177.260 178.860 181.880
Standard Deduction ($b) 3084.664 3133.826 3243.464
Personal Exemption ($b) 375.177 383.210 394.035
Taxable Income ($b) 8127.757 8871.750 9134.674
Regular Tax ($b) 1451.263 1588.537 1645.451
AMT Income ($b) 10792.419 11610.513 11934.461
AMT Liability ($b) 0.970 1.260 1.208
AMT Filers (#m) 0.410 0.470 0.460
Tax before Credits ($b) 1452.234 1589.797 1646.659
Refundable Credits ($b) 660.804 824.253 106.433
Nonrefundable Credits ($b) 93.009 3.766 98.498
Reform Surtaxes ($b) 0.000 0.000 0.000
Other Taxes ($b) 10.995 11.778 12.343
Ind Income Tax ($b) 709.416 773.556 1454.071
Payroll Taxes ($b) 1206.916 1261.889 1318.277
Combined Liability ($b) 1916.332 2035.445 2772.347
With Income Tax <= 0 (#m) 138.500 132.710 101.590
With Combined Tax <= 0 (#m) 99.400 100.750 69.840
UBI Benefits ($b) 0.000 0.000 0.000
Total Benefits, Consumption Value ($b) 3617.949 4011.607 4064.249
Total Benefits Cost ($b) 3617.949 4011.607 4064.249

Diagnostic table for reform, including behavioral responses:

dtable3
2020 2021 2022
Returns (#m) 204.480 207.080 209.660
AGI ($b) 11312.526 12150.009 12463.637
Itemizers (#m) 27.200 28.190 27.760
Itemized Deduction ($b) 732.325 760.965 749.283
Standard Deduction Filers (#m) 177.290 178.880 181.910
Standard Deduction ($b) 3085.261 3134.416 3244.205
Personal Exemption ($b) 375.177 383.210 394.035
Taxable Income ($b) 8102.428 8842.848 9105.702
Regular Tax ($b) 1439.730 1575.752 1632.436
AMT Income ($b) 10767.920 11582.619 11906.171
AMT Liability ($b) 0.984 1.319 1.233
AMT Filers (#m) 0.420 0.480 0.450
Tax before Credits ($b) 1440.715 1577.071 1633.669
Refundable Credits ($b) 660.506 824.209 106.152
Nonrefundable Credits ($b) 93.249 3.781 98.725
Reform Surtaxes ($b) 0.000 0.000 0.000
Other Taxes ($b) 10.720 11.483 12.045
Ind Income Tax ($b) 697.679 760.564 1440.837
Payroll Taxes ($b) 1206.275 1261.031 1317.418
Combined Liability ($b) 1903.954 2021.595 2758.255
With Income Tax <= 0 (#m) 138.480 132.670 101.400
With Combined Tax <= 0 (#m) 99.380 100.720 69.650
UBI Benefits ($b) 0.000 0.000 0.000
Total Benefits, Consumption Value ($b) 3617.949 4011.607 4064.249
Total Benefits Cost ($b) 3617.949 4011.607 4064.249