-
-
Notifications
You must be signed in to change notification settings - Fork 157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add under5 bonus to ctc_new #1055
add under5 bonus to ctc_new #1055
Conversation
Current coverage is 98.76% (diff: 100%)@@ master #1055 diff @@
==========================================
Files 38 38
Lines 2745 2745
Methods 0 0
Messages 0 0
Branches 0 0
==========================================
Hits 2711 2711
Misses 34 34
Partials 0 0
|
@martinholmer, could you please review these changes that address your recent comment on #1054: I added a boolean for applying a refund limit to ctc_new in order to allow users to turn off the refund limit. An alternative approach would have been to add a tiny amount to payroll taxes when the limit is calculated, but I think that would have been counterintuitive for users who are savvy enough to expect the refund_limit_payroll_rt to have no effect on taxpayers with no payroll tax liability. The boolean approach also allows for other forms of limits to be added in the future. I renamed I also turned cc @talumbau in case he has some input on the boolean vs. 1/0 indicator issue. |
Here are a few reform results Test CTC_new Expansion CapabilitiesImport taxcalc package and other useful packagesimport sys
sys.path.append("../../")
from taxcalc import * Create Plan X and Plan Y Policy objects containing current law policy and then implement reforms# The baseline includes AMT repeal.
p_xx = Policy()
p_y1 = Policy()
reform1 = {2016: {
'_CTC_new_rt': [1],
'_CTC_new_c': [2000],
'_CTC_new_prt': [0.05],
'_CTC_new_ps': [[75000, 110000, 55000, 75000, 75000, 55000]]
}}
p_y1.implement_reform(reform1)
p_y2 = Policy()
reform2 = {2016: {
'_CTC_new_rt': [1],
'_CTC_new_c_under5_bonus': [1000],
'_CTC_new_c': [1000],
'_CTC_new_prt': [0.05],
'_CTC_new_ps': [[75000, 110000, 55000, 75000, 75000, 55000]]
}}
p_y2.implement_reform(reform2)
p_y3 = Policy()
reform3 = {2016: {
'_CTC_c': [0],
'_CTC_new_rt': [1],
'_CTC_new_c': [2000],
'_CTC_new_prt': [0.05],
'_CTC_new_ps': [[75000, 110000, 55000, 75000, 75000, 55000]]
}}
p_y3.implement_reform(reform3) Create calculator objects with default tax data and advance the calculator to 2020c_xx = Calculator(policy=p_xx, records=Records("../../puf.csv"))
c_xx.advance_to_year(2020)
c_y1 = Calculator(policy=p_y1, records=Records("../../puf.csv"))
c_y1.advance_to_year(2020)
c_y2 = Calculator(policy=p_y2, records=Records("../../puf.csv"))
c_y2.advance_to_year(2020)
c_y3 = Calculator(policy=p_y3, records=Records("../../puf.csv"))
c_y3.advance_to_year(2020)
Calculate taxes under the baseline and under the reform.c_xx.calc_all()
c_y1.calc_all()
c_y2.calc_all()
c_y3.calc_all() Calculate the change in combined payroll and individual income tax revenue between the baseline and reformReform 1((c_y1.records._combined - c_xx.records._combined)*c_xx.records.s006).sum() /1000000000
Reform 2((c_y2.records._combined - c_xx.records._combined)*c_xx.records.s006).sum() /1000000000
Reform 3((c_y3.records._combined - c_xx.records._combined)*c_xx.records.s006).sum() /1000000000
|
@MattHJensen, I like the use of boolean policy parameters in the |
Thanks, resolved by 3693ce8 |
@MattHJensen said:
Pull request #1055 looks good to me. |
Thanks a lot @martinholmer. Merging. |
fixes #1054
Leaving WIP tag until I have a chance to generate and post reform results.