-
-
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
Fraction of AGI cap on the dollar amount of gross itemized deductions. #1542
Conversation
I applied the new feature in #1542 to the reform requested by a TaxBrain user in #1525: "Limit state and local deduction (including real estate) to 2% of agi." In 2018 Import 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()
# The reform expands the second tax bracket
# (and repeals AMT to match the baseline)
p_yy = Policy()
reform_yy = {
2017: {
'_ID_AmountCap_rt': [0.02],
'_ID_AmountCap_Switch': [[False, True, True, False, False, False, False, False]]
}
}
p_yy.implement_reform(reform_yy) Create calculator objects with default tax dataThe data are automatically extrapolated to 2013 since that is the first tax year modeled by Tax-Calculator.c_xx = Calculator(policy=p_xx, records=Records("../../puf.csv"))
c_yy = Calculator(policy=p_yy, records=Records("../../puf.csv"))
Advance the calculator objects to 2018 for this analysis.c_xx.advance_to_year(2018)
c_yy.advance_to_year(2018) Calculate taxes under the baseline and under the reform.c_xx.calc_all()
c_yy.calc_all() Calculate the change in combined payroll and individual income tax revenue between the baseline and reform((c_yy.records.combined - c_xx.records.combined)*c_xx.records.s006).sum()
|
Codecov Report
@@ Coverage Diff @@
## master #1542 +/- ##
======================================
Coverage 100% 100%
======================================
Files 37 37
Lines 2565 2560 -5
======================================
- Hits 2565 2560 -5
Continue to review full report at Codecov.
|
PR #1542 is ready for review. |
@MattHJensen, Pull request #1542 failed several style tests:
The problems in the |
@MattHJensen, If you really want to treat cash and noncash charitable contributions differently, then why not also do that for the existing limit on the tax benefit of itemized deductions capability? That way you don't have to maintain two sets of indexes, and therefore, you can avoid the pylint errors for multiple dictionary keys in policy.py. Why would the boolean switches for which kind of itemized deductions to limit differ between the case where we limit the tax benefit and the case where we limit the gross amount? Does this make sense? |
@MattHJensen said:
Good to check against CBO results. |
@martinholmer, the latest three commits address your suggestions. Thank you very much for proposing them. |
Pull request #1542 looks great! Thanks for the contribution, @MattHJensen. I'm going to merge this now. But I have one very minor question about comparison test 55:
Is the first of the four Budget Options estimates really 44.1? |
@martinholmer asked:
It is not a typo. That's typical of the budget options - the first year is often about half of the second year. I am not sure why they do that, but I would like to know. |
Resolves #1526.