Skip to content

Commit

Permalink
Merge pull request #388 from jdebacker/tcja_ext
Browse files Browse the repository at this point in the history
Alternative baselines
  • Loading branch information
jdebacker authored Apr 25, 2024
2 parents 2a1b498 + dbc2e7b commit ec9c02f
Show file tree
Hide file tree
Showing 5 changed files with 655 additions and 9 deletions.
17 changes: 14 additions & 3 deletions ccc/get_taxcalc_rates.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
def get_calculator(
baseline,
calculator_start_year,
baseline_policy=None,
reform=None,
data="cps",
gfactors=None,
Expand All @@ -19,6 +20,7 @@ def get_calculator(
Args:
baseline (bool): `True` if baseline tax policy
calculator_start_year (integer): first year of budget window
baseline_policy (dictionary): IIT baseline parameters
reform (dictionary): IIT reform parameters
data (string or Pandas DataFrame): path to file or DataFrame
for Tax-Calculator Records object (optional)
Expand Down Expand Up @@ -52,10 +54,14 @@ def get_calculator(
records1 = Records() # pragma: no cover

if baseline:
# Should not be a reform if baseline is True
assert not reform
if (
baseline_policy
): # if something other than current law policy baseline
update_policy(policy1, baseline_policy)

if not baseline:
if baseline_policy: # update baseline policy to layer reform on top
update_policy(policy1, baseline_policy)
update_policy(policy1, reform)

# the default set up increments year to 2013
Expand All @@ -73,7 +79,11 @@ def get_calculator(


def get_rates(
baseline=False, start_year=DEFAULT_START_YEAR, reform={}, data="cps"
baseline=False,
start_year=DEFAULT_START_YEAR,
baseline_policy=None,
reform={},
data="cps",
):
"""
This function computes weighted average marginal tax rates using
Expand All @@ -92,6 +102,7 @@ def get_rates(
calc1 = get_calculator(
baseline=baseline,
calculator_start_year=start_year,
baseline_policy=baseline_policy,
reform=reform,
data=data,
)
Expand Down
8 changes: 7 additions & 1 deletion ccc/parameters.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ def __init__(
baseline=False,
year=DEFAULT_START_YEAR,
call_tc=False,
baseline_policy=None,
iit_reform={},
data="cps",
):
Expand All @@ -34,6 +35,7 @@ def __init__(
self.test = test
self.baseline = baseline
self.year = year
self.baseline_policy = baseline_policy
self.iit_reform = iit_reform
self.data = data
# initialize parameter values from JSON
Expand All @@ -55,7 +57,11 @@ def ccc_initialize(self, call_tc=False):
if call_tc:
# Find individual income tax rates from Tax-Calculator
indiv_rates = get_rates(
self.baseline, self.year, self.iit_reform, self.data
self.baseline,
self.year,
self.baseline_policy,
self.iit_reform,
self.data,
)
self.tau_pt = indiv_rates["tau_pt"]
self.tau_div = indiv_rates["tau_div"]
Expand Down
276 changes: 276 additions & 0 deletions ccc/tcja_extension.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,276 @@
{
"BonusDeprec_3yr": [
{
"year": 2026,
"value": 0.4
}
],
"BonusDeprec_5yr": [
{
"year": 2026,
"value": 0.4
}
],
"BonusDeprec_7yr": [
{
"year": 2026,
"value": 0.4
}
],
"BonusDeprec_10yr": [
{
"year": 2026,
"value": 0.4
}
],
"BonusDeprec_15yr": [
{
"year": 2026,
"value": 0.4
}
],
"BonusDeprec_20yr": [
{
"year": 2026,
"value": 0.4
}
],
"tau_pt": [
{
"year": 2026,
"value": 0.20167244909882368
},
{
"year": 2027,
"value": 0.20348817617368892
},
{
"year": 2028,
"value": 0.20439272346443807
},
{
"year": 2029,
"value": 0.20308698621629706
},
{
"year": 2030,
"value": 0.2035939509415052
},
{
"year": 2031,
"value": 0.20240046451418342
},
{
"year": 2032,
"value": 0.2012693740494531
},
{
"year": 2033,
"value": 0.2006450797882713
}
],
"tau_div": [
{
"year": 2026,
"value": 0.17318090272505438
},
{
"year": 2027,
"value": 0.17432284289770666
},
{
"year": 2028,
"value": 0.17282374074928825
},
{
"year": 2029,
"value": 0.17340175754076134
},
{
"year": 2030,
"value": 0.17422447893073145
},
{
"year": 2031,
"value": 0.17454968182589295
},
{
"year": 2032,
"value": 0.1740630397322921
},
{
"year": 2033,
"value": 0.17390183556629837
}
],
"tau_int": [
{
"year": 2026,
"value": 0.3128559611626518
},
{
"year": 2027,
"value": 0.3139006325469027
},
{
"year": 2028,
"value": 0.31232532045301753
},
{
"year": 2029,
"value": 0.31278491973780054
},
{
"year": 2030,
"value": 0.3133435092632634
},
{
"year": 2031,
"value": 0.31314414677255953
},
{
"year": 2032,
"value": 0.31327752215037974
},
{
"year": 2033,
"value": 0.3129790702889989
}
],
"tau_scg": [
{
"year": 2026,
"value": 0.28336133996697926
},
{
"year": 2027,
"value": 0.2833684122562315
},
{
"year": 2028,
"value": 0.2828407445954024
},
{
"year": 2029,
"value": 0.2840791423502338
},
{
"year": 2030,
"value": 0.2845544888165263
},
{
"year": 2031,
"value": 0.28481607001900205
},
{
"year": 2032,
"value": 0.2848967373063876
},
{
"year": 2033,
"value": 0.285277625628927
}
],
"tau_lcg": [
{
"year": 2026,
"value": 0.18280630598531608
},
{
"year": 2027,
"value": 0.1830144476663731
},
{
"year": 2028,
"value": 0.1829679688634312
},
{
"year": 2029,
"value": 0.18388090065696877
},
{
"year": 2030,
"value": 0.18437947635832222
},
{
"year": 2031,
"value": 0.1847541804054145
},
{
"year": 2032,
"value": 0.1845754751225953
},
{
"year": 2033,
"value": 0.18508416618645537
}
],
"tau_td": [
{
"year": 2026,
"value": 0.2053038317366772
},
{
"year": 2027,
"value": 0.20649173093016085
},
{
"year": 2028,
"value": 0.20768641729537382
},
{
"year": 2029,
"value": 0.20816493005521833
},
{
"year": 2030,
"value": 0.2087589110312411
},
{
"year": 2031,
"value": 0.20936047682363962
},
{
"year": 2032,
"value": 0.20872441217334245
},
{
"year": 2033,
"value": 0.20792201918205175
}
],
"tau_h": [
{
"year": 2026,
"value": 0.03385918037116764
},
{
"year": 2027,
"value": 0.03376110325345599
},
{
"year": 2028,
"value": 0.03370990009622134
},
{
"year": 2029,
"value": 0.033444213400923
},
{
"year": 2030,
"value": 0.033168637894013954
},
{
"year": 2031,
"value": 0.032904420741914325
},
{
"year": 2032,
"value": 0.032489842789964196
},
{
"year": 2033,
"value": 0.03214152480222879
}
]
}
Loading

0 comments on commit ec9c02f

Please sign in to comment.