Recipe 2: Estimating Behavioral Response to Reform

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 sys
if 'google.colab' in sys.modules:
    !pip install -q condacolab &> /dev/null # dev/null suppresses output
    import condacolab
    condacolab.install()
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:Tax-Calculator@master/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)= 773.587
2020_REFORM_STATIC__itax_rev($B)= 777.762
2020_REFORM_DYNAMIC_itax_rev($B)= 765.481

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) 11572.622 13242.423 13524.306
Itemizers (#m) 27.730 31.480 31.370
Itemized Deduction ($b) 752.076 872.182 888.632
Standard Deduction Filers (#m) 176.760 175.600 178.300
Standard Deduction ($b) 3076.415 3092.890 3226.870
Personal Exemption ($b) 0.000 0.000 0.000
Taxable Income ($b) 8619.530 10113.748 10314.117
Regular Tax ($b) 1498.038 1776.957 1834.985
AMT Income ($b) 10952.969 12526.730 12790.776
AMT Liability ($b) 0.537 1.451 0.635
AMT Filers (#m) 0.070 0.190 0.080
Tax before Credits ($b) 1498.575 1778.408 1835.620
Refundable Credits ($b) 638.295 809.248 82.664
Nonrefundable Credits ($b) 99.269 0.005 107.426
Reform Surtaxes ($b) 0.000 0.000 0.000
Other Taxes ($b) 75.874 83.585 87.423
Ind Income Tax ($b) 773.587 984.078 1661.161
Payroll Taxes ($b) 1217.941 1321.368 1415.259
Combined Liability ($b) 1991.528 2305.446 3076.420
With Income Tax <= 0 (#m) 135.400 127.590 95.550
With Combined Tax <= 0 (#m) 97.110 96.390 65.180
UBI Benefits ($b) 0.000 0.000 0.000
Total Benefits, Consumption Value ($b) 3617.042 3992.973 4070.218
Total Benefits Cost ($b) 3617.042 3992.973 4070.218

Diagnostic table for reform, excluding behavioral responses:

dtable2
2020 2021 2022
Returns (#m) 204.480 207.080 209.660
AGI ($b) 11572.622 13242.423 13524.306
Itemizers (#m) 27.650 31.360 31.250
Itemized Deduction ($b) 749.594 868.819 885.545
Standard Deduction Filers (#m) 176.830 175.710 178.410
Standard Deduction ($b) 3077.754 3094.912 3228.827
Personal Exemption ($b) 375.177 384.158 406.780
Taxable Income ($b) 8371.745 9849.053 10037.888
Regular Tax ($b) 1499.863 1781.512 1841.608
AMT Income ($b) 10957.001 12531.560 12795.427
AMT Liability ($b) 0.544 1.479 0.634
AMT Filers (#m) 0.070 0.190 0.080
Tax before Credits ($b) 1500.407 1782.992 1842.242
Refundable Credits ($b) 641.613 809.248 86.370
Nonrefundable Credits ($b) 93.606 0.002 101.739
Reform Surtaxes ($b) 0.000 0.000 0.000
Other Taxes ($b) 75.874 83.585 87.423
Ind Income Tax ($b) 777.762 988.665 1669.764
Payroll Taxes ($b) 1217.941 1321.368 1415.259
Combined Liability ($b) 1995.703 2310.033 3085.023
With Income Tax <= 0 (#m) 137.560 129.830 98.410
With Combined Tax <= 0 (#m) 97.850 97.280 65.740
UBI Benefits ($b) 0.000 0.000 0.000
Total Benefits, Consumption Value ($b) 3617.042 3992.973 4070.218
Total Benefits Cost ($b) 3617.042 3992.973 4070.218

Diagnostic table for reform, including behavioral responses:

dtable3
2020 2021 2022
Returns (#m) 204.480 207.080 209.660
AGI ($b) 11545.738 13208.545 13488.613
Itemizers (#m) 27.620 31.330 31.230
Itemized Deduction ($b) 748.317 867.116 884.082
Standard Deduction Filers (#m) 176.860 175.740 178.430
Standard Deduction ($b) 3078.314 3095.586 3229.182
Personal Exemption ($b) 375.177 384.158 406.780
Taxable Income ($b) 8345.102 9815.717 10002.806
Regular Tax ($b) 1487.862 1767.005 1826.224
AMT Income ($b) 10930.718 12498.767 12760.603
AMT Liability ($b) 0.543 1.478 0.629
AMT Filers (#m) 0.070 0.190 0.080
Tax before Credits ($b) 1488.405 1768.482 1826.853
Refundable Credits ($b) 641.376 809.270 86.175
Nonrefundable Credits ($b) 93.823 0.002 101.972
Reform Surtaxes ($b) 0.000 0.000 0.000
Other Taxes ($b) 75.395 83.011 86.832
Ind Income Tax ($b) 765.481 973.764 1653.978
Payroll Taxes ($b) 1217.258 1320.298 1414.153
Combined Liability ($b) 1982.738 2294.062 3068.130
With Income Tax <= 0 (#m) 137.530 129.800 98.260
With Combined Tax <= 0 (#m) 97.830 97.260 65.600
UBI Benefits ($b) 0.000 0.000 0.000
Total Benefits, Consumption Value ($b) 3617.042 3992.973 4070.218
Total Benefits Cost ($b) 3617.042 3992.973 4070.218