PSLmodels / Tax-Calculator

USA Federal Individual Income and Payroll Tax Microsimulation Model
https://taxcalc.pslmodels.org
Other
263 stars 157 forks source link

GainsTax taxes all of taxable non ltcg or qdiv income at one rate #977

Closed codykallen closed 8 years ago

codykallen commented 8 years ago

If the II_rt values do not equal the pt_rt values, the tax filers with positive pass-through income will have their taxable income taxed at two different rate schedules. If that filer also has long-term capital gains or qualified dividends, then their ltcg+qdiv income is subtracted from their taxable income, and is taxed at the CG_rt rate schedule. However, the GainsTax function passes their taxable income less ltcg and qdiv to the Taxes function using the II_rt and II_thd parameters, ignoring the separate taxation of pass-through income.

martinholmer commented 8 years ago

@codykallen said:

If the II_rt values do not equal the pt_rt values, the tax filers with positive pass-through income will have their taxable income taxed at two different rate schedules. If that filer also has long-term capital gains or qualified dividends, then their ltcg+qdiv income is subtracted from their taxable income, and is taxed at the CG_rt rate schedule. However, the GainsTax function passes their taxable income less ltcg and qdiv to the Taxes function using the II_rt and II_thd parameters, ignoring the separate taxation of pass-through income.

I don't understand what the point of your above statement is. You are raising an issue. Can you explain what your issue is?

codykallen commented 8 years ago

Suppose we do the following reform:

reform1 = { 2017: { '_II_rt7': [0.35], '_PT_rt7': [0.4] } }

Suppose an individual has $300k taxable income, with $150k pass-through income. Suppose this filer has no deductions. The top tax rate on this individual is 40%.

When calculating the MTR on long term gains, the calculator.mtr function adds 0.01 to p23250 and recalculates. Since this increases his taxable income by 0.01. The GainsTax function subtracts the 0.01 from his taxable income and passes it to the Taxes function, using only the II rates. Hence this person's top rate is now 35%, his full tax bill is several thousand dollars larger, and his MTR on ltcg is very large and negative.

This causes some filing units to have very large negative MTRs on p23250, which causes the behavior.response() function to fail for these individuals.

martinholmer commented 8 years ago

@codykallen, Thanks for a more complete bug report. I'm starting to work on this issue by adding your test case to the suite of unit tests and then seeing if your proposed code change eliminates the new test failure and that all the old unit tests continue to pass.

martinholmer commented 8 years ago

@codykallen, I'm working on your bug report under the assumption that the correct result is for marginal tax rates on LTCG (p23250) to be the same before and after a reform that makes PT tax rates different from II tax rates. Is that the correct assumption?

feenberg commented 8 years ago

On Tue, 11 Oct 2016, Martin Holmer wrote:

@codykallen, I'm working on your bug report under the assumption that the correct result is for marginal tax rates on LTCG (p23250) to be the same before and after a reform that makes PT tax rates different from II tax rates. Is that the correct assumption?

I haven't seen the details for the PT tax, but it is unlikely you could change the tax rate on some things without affecting the tax rate on others, since (for example) each non-refundable credit will depend on the amount of tax available to credit against, and (for another example) the tax on LTCG depends on the amount of tax paid on non-gain income.

dan

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.[AHvQVdfvYSauCHVyzhpC8ih8IF3adlMrks5qzB4mgaJpZM4KTwUR.gif]

martinholmer commented 8 years ago

Dan @feenberg said:

I haven't seen the details for the PT tax, but it is unlikely you could change the tax rate on some things without affecting the tax rate on others, since (for example) each non-refundable credit will depend on the amount of tax available to credit against, and (for another example) the tax on LTCG depends on the amount of tax paid on non-gain income.

Yes, but it would seem that in other simple cases one would expect the mtr on LTCG to be the same before and after a reform that made PT tax rates different from II tax rates.

Please look at the conversation about pull request #981 to see if in that simple case the mtr on LTCG are very much different because of bug (which is fixed in #981).

@MattHJensen @codykallen

martinholmer commented 8 years ago

Resolve by pull request #981, which has been merged into master.