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 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)= 748.768
2020_REFORM_STATIC__itax_rev($B)= 750.713
2020_REFORM_DYNAMIC_itax_rev($B)= 739.128
Create multi-year diagnostic tables for
baseline,
reform excluding behavioral responses, and
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) | 11529.507 | 12789.483 | 13581.569 |
Itemizers (#m) | 27.130 | 31.370 | 30.560 |
Itemized Deduction ($b) | 734.486 | 861.467 | 860.875 |
Standard Deduction Filers (#m) | 177.360 | 175.700 | 179.100 |
Standard Deduction ($b) | 3087.473 | 3079.719 | 3243.332 |
Personal Exemption ($b) | 0.000 | 0.000 | 0.000 |
Taxable Income ($b) | 8559.022 | 9684.922 | 10375.399 |
Regular Tax ($b) | 1491.329 | 1700.814 | 1843.158 |
AMT Income ($b) | 10982.328 | 12145.126 | 12934.900 |
AMT Liability ($b) | 0.557 | 1.071 | 1.121 |
AMT Filers (#m) | 0.090 | 0.250 | 0.230 |
Tax before Credits ($b) | 1491.886 | 1701.885 | 1844.279 |
Refundable Credits ($b) | 655.173 | 821.476 | 96.978 |
Nonrefundable Credits ($b) | 99.323 | 2.154 | 108.174 |
Reform Surtaxes ($b) | 0.000 | 0.000 | 0.000 |
Other Taxes ($b) | 11.379 | 11.749 | 12.583 |
Ind Income Tax ($b) | 748.768 | 890.003 | 1651.710 |
Payroll Taxes ($b) | 1217.120 | 1325.321 | 1430.921 |
Combined Liability ($b) | 1965.888 | 2215.324 | 3082.631 |
With Income Tax <= 0 (#m) | 135.340 | 127.810 | 95.960 |
With Combined Tax <= 0 (#m) | 98.260 | 97.850 | 67.830 |
UBI Benefits ($b) | 0.000 | 0.000 | 0.000 |
Total Benefits, Consumption Value ($b) | 3617.949 | 4011.607 | 4069.558 |
Total Benefits Cost ($b) | 3617.949 | 4011.607 | 4069.558 |
Diagnostic table for reform, excluding behavioral responses:
dtable2
2020 | 2021 | 2022 | |
---|---|---|---|
Returns (#m) | 204.480 | 207.080 | 209.660 |
AGI ($b) | 11529.507 | 12789.483 | 13581.569 |
Itemizers (#m) | 27.060 | 31.240 | 30.440 |
Itemized Deduction ($b) | 732.100 | 857.882 | 857.400 |
Standard Deduction Filers (#m) | 177.430 | 175.840 | 179.220 |
Standard Deduction ($b) | 3088.674 | 3081.931 | 3245.332 |
Personal Exemption ($b) | 375.177 | 383.210 | 404.808 |
Taxable Income ($b) | 8311.506 | 9421.653 | 10099.958 |
Regular Tax ($b) | 1490.903 | 1704.251 | 1849.101 |
AMT Income ($b) | 10984.562 | 12148.452 | 12938.134 |
AMT Liability ($b) | 0.576 | 1.178 | 1.231 |
AMT Filers (#m) | 0.090 | 0.280 | 0.250 |
Tax before Credits ($b) | 1491.479 | 1705.429 | 1850.331 |
Refundable Credits ($b) | 658.503 | 821.476 | 100.668 |
Nonrefundable Credits ($b) | 93.641 | 2.038 | 102.553 |
Reform Surtaxes ($b) | 0.000 | 0.000 | 0.000 |
Other Taxes ($b) | 11.379 | 11.749 | 12.583 |
Ind Income Tax ($b) | 750.713 | 893.663 | 1659.693 |
Payroll Taxes ($b) | 1217.120 | 1325.321 | 1430.921 |
Combined Liability ($b) | 1967.833 | 2218.984 | 3090.615 |
With Income Tax <= 0 (#m) | 137.500 | 130.050 | 98.530 |
With Combined Tax <= 0 (#m) | 99.030 | 98.780 | 68.490 |
UBI Benefits ($b) | 0.000 | 0.000 | 0.000 |
Total Benefits, Consumption Value ($b) | 3617.949 | 4011.607 | 4069.558 |
Total Benefits Cost ($b) | 3617.949 | 4011.607 | 4069.558 |
Diagnostic table for reform, including behavioral responses:
dtable3
2020 | 2021 | 2022 | |
---|---|---|---|
Returns (#m) | 204.480 | 207.080 | 209.660 |
AGI ($b) | 11504.402 | 12757.301 | 13546.110 |
Itemizers (#m) | 27.030 | 31.210 | 30.430 |
Itemized Deduction ($b) | 730.740 | 856.443 | 855.914 |
Standard Deduction Filers (#m) | 177.460 | 175.860 | 179.240 |
Standard Deduction ($b) | 3089.351 | 3082.394 | 3245.690 |
Personal Exemption ($b) | 375.177 | 383.210 | 404.808 |
Taxable Income ($b) | 8286.590 | 9389.949 | 10065.116 |
Regular Tax ($b) | 1479.527 | 1690.400 | 1833.801 |
AMT Income ($b) | 10960.546 | 12117.506 | 12904.040 |
AMT Liability ($b) | 0.577 | 1.212 | 1.281 |
AMT Filers (#m) | 0.090 | 0.270 | 0.250 |
Tax before Credits ($b) | 1480.104 | 1691.612 | 1835.082 |
Refundable Credits ($b) | 658.208 | 821.441 | 100.411 |
Nonrefundable Credits ($b) | 93.876 | 2.047 | 102.789 |
Reform Surtaxes ($b) | 0.000 | 0.000 | 0.000 |
Other Taxes ($b) | 11.108 | 11.447 | 12.266 |
Ind Income Tax ($b) | 739.128 | 879.571 | 1644.149 |
Payroll Taxes ($b) | 1216.467 | 1324.260 | 1429.787 |
Combined Liability ($b) | 1955.595 | 2203.830 | 3073.936 |
With Income Tax <= 0 (#m) | 137.470 | 130.030 | 98.370 |
With Combined Tax <= 0 (#m) | 98.990 | 98.760 | 68.330 |
UBI Benefits ($b) | 0.000 | 0.000 | 0.000 |
Total Benefits, Consumption Value ($b) | 3617.949 | 4011.607 | 4069.558 |
Total Benefits Cost ($b) | 3617.949 | 4011.607 | 4069.558 |