Skip to content
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

MTRs respond oddly to double of standard deduction - high priority #555

Closed
MattHJensen opened this issue Jan 27, 2016 · 50 comments
Closed

Comments

@MattHJensen
Copy link
Contributor

I believe there is a bug in our marginal tax rate function. I am comparing baseline to a reform scenario where the standard deduction is doubled; for some taxpayers, marginal tax rates wrt e00200p increase under the reform by as much as 39%. This is quite unexpected.

There are also taxpayers whose marginal tax rates fall by as much as 72%. Frankly, I was surprised to see marginal tax rates in the 70s and 80s at all.

Here is the script that I was working with when I ran into this issue. https://gist.github.com/MattHJensen/5b1a9a7c0d81ff57ef7d

@GoFroggyRun and I are have been skirting around the edges of this issue while trying to identify why there are units with a tax cut when you double the standard deduction or give a rate cut and include a positive substitution effect.

This is a very important issue to solve. @martinholmer and @Amy-Xu, if you have some time tomorrow, could you dig into this along with me and Sean?

cc @jdebacker

@MattHJensen
Copy link
Contributor Author

I believe there is a bug in our marginal tax rate function. I am comparing baseline to a reform scenario where the standard deduction is doubled; for some taxpayers, marginal tax rates wrt e00200p increase under the reform by as much as 39%.

I should note that I am not sure this is a bug. Everyone's _combined tax does decrease under the reform, but some of their mtrs increase. @feenberg, your insight would be helpful here as well.

@MattHJensen
Copy link
Contributor Author

There are 10,368,720 weighted taxpayers whose mtr increases when the standard deduction is doubled.

@martinholmer
Copy link
Collaborator

Matt said:

I believe there is a bug in our marginal tax rate function. I am comparing baseline to a reform scenario where the standard deduction is doubled; for some taxpayers, marginal tax rates wrt e00200p increase under the reform by as much as 39%.

I should note that I am not sure this is a bug. Everyone's _combined tax does decrease under the reform, but some of their mtrs increase. @feenberg, your insight would be helpful here as well.

Could you give us some RECIDs for cases in the puf.csv file that you find surprising?
You are doing the reform analysis for 2017, right?

@MattHJensen @feenberg @GoFroggyRun @Amy-Xu

@martinholmer
Copy link
Collaborator

Matt said:

There are 10,368,720 weighted taxpayers whose mtr increases when the standard deduction is doubled.

OK, that's good to know, but not as useful as "some RECIDs for cases in the puf.csv file that you find surprising".

@MattHJensen
Copy link
Contributor Author

@martinholmer, the most surprising are at the very top and bottom of this list. RECIDs are on the far right. A couple of examples of mtrs increasing with the reform are RECID = 25370 and RECID = 2951300. A couple of examples of extremely high mtrs under baseline are RECID = 3433200 and RECID = 2452500. Those last two also serve as examples where mtrs fall a whole lot under the reform.

        mtr_x        mtr_y      _combined_x      _combined_y    mtr_diff    recid
189677  0.311528    0.702194    70332.418649    69799.590451    0.390666    25370
195485  0.313455    0.703795    84988.038000    80164.648000    0.390340    2951300
188616  0.313455    0.703795    76149.992000    75809.126000    0.390340    1266290
194163  0.313455    0.703795    86840.644000    83012.042000    0.390340    3034110
194821  0.313455    0.703795    111679.862000   111427.024000   0.390340    3063270
199154  0.313455    0.703795    111489.262000   107375.176000   0.390340    3063070
188354  0.313455    0.703795    103869.388000   103625.802000   0.390340    24590
192554  0.313455    0.703795    108543.652000   106831.482000   0.390340    3664490
183948  0.437529    0.754292    26699.650400    26176.918708    0.316763    2778240
138390  0.430098    0.662332    36509.777803    34843.422951    0.232234    3635240
150819  0.383651    0.615885    14109.094449    13255.797832    0.232234    1679800
150820  0.383651    0.615885    14109.094449    13255.797832    0.232234    1679801
132787  0.383651    0.615885    3977.410000 2320.485000 0.232234    1711690
3401    0.374361    0.583372    42159.784856    39128.877117    0.209011    3385170
6988    0.374361    0.583372    31925.975000    28666.012500    0.209011    1778830
170409  0.374361    0.583372    37850.709010    36388.721923    0.209011    1439170
138593  0.374361    0.583372    30775.307610    28541.490668    0.209011    2524591
6790    0.374361    0.583372    28596.400000    26961.125000    0.209011    2521820
138594  0.374361    0.583372    30775.307610    28541.490668    0.209011    2524590
5927    0.440613    0.637243    54784.908318    51510.409662    0.196630    1634710
142987  0.418950    0.604738    2209600.786455  2207162.841000  0.185787    2052430
142888  0.418950    0.604738    659590.136150   659224.120300   0.185787    2466640
139921  0.456108    0.618672    39938.102355    37690.968229    0.162564    1200950
5167    0.456108    0.618672    50301.965667    47017.758581    0.162564    1681560
44686   0.456108    0.618672    33368.484545    30036.802273    0.162564    1135910
140165  0.456108    0.618672    40084.576500    37196.560250    0.162564    2612860
140164  0.456108    0.618672    40084.576500    37196.560250    0.162564    2612861
139134  0.456108    0.618672    45940.860475    43722.474959    0.162564    1015700
33206   0.569701    0.732265    19906.893584    16362.092281    0.162564    1017780
138728  0.420808    0.583372    9402.448820 7348.674092 0.162564    1932450
... ... ... ... ... ... ...
116171  0.425685    0.142127    817.676250  0.000000    -0.283558   925070
116172  0.425685    0.142127    817.676250  0.000000    -0.283558   925071
79493   0.425685    0.142127    1494.819500 0.000000    -0.283558   1661680
94683   0.425685    0.142127    802.966750  552.000000  -0.283558   1501841
94682   0.425685    0.142127    802.966750  552.000000  -0.283558   1501840
77431   0.430841    0.142127    762.732000  0.000000    -0.288713   1148541
77432   0.430841    0.142127    762.732000  0.000000    -0.288713   1148540
129634  0.298189    0.002787    6592.644786 5207.321810 -0.295402   820880
68422   0.709243    0.399907    4866.906000 4613.580000 -0.309336   2696070
68421   0.709243    0.399907    4866.906000 4613.580000 -0.309336   2696071
75624   0.675903    0.364710    1452.655729 668.250906  -0.311194   400830
75625   0.675903    0.364710    1452.655729 668.250906  -0.311194   400833
75623   0.675903    0.364710    1452.655729 668.250906  -0.311194   400832
75622   0.675903    0.364710    1452.655729 668.250906  -0.311194   400831
47800   0.675903    0.364710    -691.371593 -876.872267 -0.311194   2245430
98172   0.719554    0.399907    4609.000400 3496.910000 -0.319647   1654720
98171   0.719554    0.399907    4609.000400 3496.910000 -0.319647   1654721
49255   0.467255    0.142127    1851.567500 0.000000    -0.325128   3299310
49254   0.467255    0.142127    1851.567500 0.000000    -0.325128   3299311
51441   0.495123    0.142127    243832.966919   243994.972628   -0.352996   2604010
82459   0.545286    0.177427    2609989.720000  2610283.948000  -0.367859   3538820
82460   0.545286    0.177427    2610961.880000  2611256.108000  -0.367859   3538830
8309    0.545286    0.177427    625594.986000   625889.214000   -0.367859   2652610
51409   0.509986    0.142127    177630.132563   177671.035256   -0.367859   2281620
3224    0.545286    0.177427    213837.780000   214132.008000   -0.367859   3352970
143500  0.815606    0.444032    32490.022449    31025.687610    -0.371575   3433200
102022  0.522991    0.142127    6264.854588 6121.303300 -0.380864   2778600
15524   0.420808    0.002787    1762.399433 1584.006123 -0.418021   901770
194424  0.703795    0.037457    69863.930000    66853.320000    -0.666338   3030690
180602  0.759297    0.035300    64702.673164    64666.080112    -0.723997   2452500

@martinholmer
Copy link
Collaborator

Matt said:

the most surprising are at the very top and bottom of this list. RECIDs are on the far right.

Thanks. I start looking into this matter first thing in the morning.

@MattHJensen

@MattHJensen
Copy link
Contributor Author

Thanks @martinholmer. Much appreciated.

@MattHJensen
Copy link
Contributor Author

You are doing the reform analysis for 2017, right?

Right.

@rickecon
Copy link
Member

This is likely a factor, if not the main factor, in some of the strange results we have been getting in the dynamic model.

@martinholmer
Copy link
Collaborator

@MattHJensen said:

Here is the script that I was working with when I ran into this issue. https://gist.github.com/MattHJensen/5b1a9a7c0d81ff57ef7d

I'm puzzled about why the reform that increases standard deductions is never implemented in the following script. What am I missing?

import sys
sys.path.append("../../")
from taxcalc import *
import pandas as pd
import numpy as np

records_x = Records("../../puf.csv")
params_x = Policy()
records_y_std = Records("../../puf.csv")
params_y_std = Policy()

reform_std = {
    2015: {
            '_STD': [[12600, 25200, 12600, 18500, 25200, 0, 0]]
           },}

calc_x = Calculator(params_x, records_x)
for i in range(4):
    calc_x.increment_year()
assert calc_x.current_year == 2017

calc_y_std = Calculator(params_y_std, records_y_std, behavior = behavior_std)
for i in range(4):
    calc_y_std.increment_year()
assert calc_x.current_year == 2017

calc_x.calc_all()
calc_y_std.calc_all()

x = pd.DataFrame()
x['_expanded_income'] = calc_x.records._expanded_income
a,b,x['mtr_x'] = calc_x.mtr()
a,b,x['mtr_y'] = calc_y_std.mtr()
x['_combined_x'] = calc_x.records._combined
x['_combined_y'] = calc_y_std.records._combined
x['mtr_diff'] = x['mtr_x'] - x['mtr_y']
x.sort('mtr_diff')

@talumbau
Copy link
Member

Yes, I agree @martinholmer, it looks to me that Matt is missing:

params_y_std.implement_reform(reform_std)

after the creation of the params_y_std object.

@MattHJensen
Copy link
Contributor Author

Sorry, I pasted the gist over from another file and missed that. I am updating the gist now with that in the same spot I have it in the other file.

@MattHJensen
Copy link
Contributor Author

@talumbau and @martinholmer, I just updated the gist as per the comment above: #555 (comment)

@feenberg
Copy link
Contributor

On Tue, 26 Jan 2016, Matt Jensen wrote:

I believe there is a bug in our marginal tax rate function. I am comparing baseline to
a reform scenario where the standard deduction is doubled; for some taxpayers,
marginal tax rates wrt e00200p increase under the reform by as much as 39%. This is
quite unexpected.

39 points or 39 percent? Either could be true. The way to resolve this is
to print out the individual record for both ends of the finite difference
and examine the calculation.

An easy explanation is a taxpayer with no regular tax obligation who
becomes an AMT payer when the standard deduction is increased.

There are also taxpayers whose marginal tax rates fall by as much as 72%. Frankly, I
was surprised to see marginal tax rates in the 70s and 80s at all.

An interaction of the AMT and a clawback can do this. Again, one would
want to look at the individual record.

I would filter out such records in a regression, where the influence of a
record is proportional to the square of the deviation, and an outlier
would be a problem. For aggregate statistics, I might not worry.

dan

@feenberg
Copy link
Contributor

On Tue, 26 Jan 2016, Matt Jensen wrote:

  I believe there is a bug in our marginal tax rate function. I am comparing
  baseline to a reform scenario where the standard deduction is doubled; for
  some taxpayers, marginal tax rates wrt e00200p increase under the reform
  by as much as 39%.

I should note that I am not sure this is a bug. Everyone's _combined tax does decrease
under the reform, but their mtrs increase. @feenberg, your insight would be helpful
here as well.

Looking at the individual records is really useful. Sometimes bugs do
manifest themselves as high marginal rates. I wouldn't assume it was a
bug, though.

dan


Reply to this email directly or view it on
GitHub.[AHvQVVZYxhFQfhpbkzautdxaVkaVWAZiks5peCangaJpZM4HNEft.gif]

@feenberg
Copy link
Contributor

On Tue, 26 Jan 2016, Matt Jensen wrote:

There are 10,368,720 weighted taxpayers whose mtr increases when the standard
deduction is doubled.

Look at a couple, at least.

dan


Reply to this email directly or view it on
GitHub.[AHvQVWeYP33z5xLb9xgO24RKyMe6TQfOks5peCfbgaJpZM4HNEft.gif]

@MattHJensen
Copy link
Contributor Author

@feenberg, thank you very much for the tips.

39 points or 39 percent? Either could be true.

39 points.

@Amy-Xu
Copy link
Member

Amy-Xu commented Jan 27, 2016

@MattHJensen Why do you have STD[5] and STD[6] as zeros in your script?

@Amy-Xu
Copy link
Member

Amy-Xu commented Jan 27, 2016

And what exactly is your behavior_std?

@MattHJensen
Copy link
Contributor Author

Why do you have STD[5] and STD[6] as zeros in your script?

They aren't used in functions.py and I was too lazy to type them.

And what exactly is your behavior_std?

behavior_std = Behavior

(just updated the gist to include this..another thing I left out in the copy-paste operation)

I did not implement any non-default (non-zero) behavior before producing the odd mtr results.

@Amy-Xu
Copy link
Member

Amy-Xu commented Jan 27, 2016

They aren't used in functions.py and I was too lazy to type them.

That is not true. Look at this line. By setting STD[6] to zero, you're moving this part downward when other parameters upward. You probably should keep them the same as 2015 current law.

@MattHJensen
Copy link
Contributor Author

By setting STD[6] to zero, you're moving this part downward when other parameters upward. You probably should keep them the same as 2015 current law.

I will do this and repost the results and update the gist. Thank you @Amy-Xu!

@MattHJensen
Copy link
Contributor Author

By setting STD[6] to zero, you're moving this part downward when other parameters upward. You probably should keep them the same as 2015 current law.

Here is the new result. Not much changed, though. I have also updated the gist:

            mtr_x   mtr_y       _combined_x     _combined_y     mtr_diff    recid
199154  0.313455    0.703795    110115.890000   106914.964000   0.390340    3063070
194163  0.313455    0.703795    85467.272000    82542.470000    0.390340    3034110
195969  0.313455    0.703795    94200.942000    91583.736000    0.390340    2556470
193308  0.313455    0.703795    101987.800000   96916.426000    0.390340    1413440
195485  0.313455    0.703795    83614.666000    79695.076000    0.390340    2951300
192554  0.313455    0.703795    107170.280000   106361.910000   0.390340    3664490
188496  0.313455    0.703795    63708.428000    59168.222000    0.390340    2607750
183948  0.437529    0.754209    26760.710400    26572.302324    0.316680    2778240
132787  0.383651    0.615885    4335.690000 2830.015000 0.232234    1711690
160741  0.383651    0.615885    25723.395176    22805.668401    0.232234    2571630
150819  0.383651    0.615885    14328.014449    13550.367832    0.232234    1679800
150820  0.383651    0.615885    14328.014449    13550.367832    0.232234    1679801
138390  0.430098    0.662332    36262.010283    34862.057431    0.232234    3635240
6988    0.374361    0.583372    32157.475000    29389.847500    0.209011    1778830
170409  0.374361    0.583372    38001.959010    37112.556923    0.209011    1439170
138593  0.374361    0.583372    31025.216701    29276.371122    0.209011    2524591
138594  0.374361    0.583372    31025.216701    29276.371122    0.209011    2524590
3401    0.374361    0.583372    42403.784856    39860.212117    0.209011    3385170
165783  0.374361    0.583372    59888.451374    56005.473566    0.209011    2100620
5927    0.440360    0.637091    55229.303399    52334.891710    0.196731    1634710
142987  0.418950    0.604738    2210170.936455  2207743.391000  0.185787    2052430
142888  0.418950    0.604738    660160.286150   659804.670300   0.185787    2466640
50478   0.456108    0.618672    45526.385412    41920.287778    0.162564    2764280
131821  0.420808    0.583372    57050.156571    53398.130881    0.162564    912340
44686   0.456108    0.618672    33675.961818    30759.000909    0.162564    1135910
5167    0.456108    0.618672    50607.315667    47738.893581    0.162564    1681560
140525  0.420808    0.583372    25756.515000    25050.523750    0.162564    2497090
33206   0.569701    0.732265    20229.534493    17091.872736    0.162564    1017780
140164  0.456108    0.618672    40395.326500    37920.395250    0.162564    2612861
140165  0.456108    0.618672    40395.326500    37920.395250    0.162564    2612860
... ... ... ... ... ... ...
135282  0.420808    0.142127    18066.514470    16506.766376    -0.278681   400750
79740   0.420808    0.142127    1412.550000 0.000000    -0.278681   1791080
72227   0.504134    0.225453    -572.039975 -1201.371188    -0.278681   861560
122539  0.281468    0.002787    5065.254907 4132.122416 -0.278681   2349080
1878    0.420808    0.142127    367.856773  -2633.413291    -0.278681   3041450
116172  0.425685    0.142127    842.526250  0.000000    -0.283558   925071
116171  0.425685    0.142127    842.526250  0.000000    -0.283558   925070
79493   0.425685    0.142127    1529.869500 0.000000    -0.283558   1661680
94683   0.425685    0.142127    815.416750  552.000000  -0.283558   1501841
94682   0.425685    0.142127    815.416750  552.000000  -0.283558   1501840
77432   0.430841    0.142127    787.582000  0.000000    -0.288713   1148540
77431   0.430841    0.142127    787.582000  0.000000    -0.288713   1148541
129634  0.298189    0.002787    6632.794786 5207.321810 -0.295402   820880
68421   0.709243    0.399907    4974.156000 4630.980000 -0.309336   2696071
68422   0.709243    0.399907    4974.156000 4630.980000 -0.309336   2696070
75624   0.675903    0.364710    1670.132129 845.227306  -0.311194   400830
75623   0.675903    0.364710    1670.132129 845.227306  -0.311194   400832
75625   0.675903    0.364710    1670.132129 845.227306  -0.311194   400833
75622   0.675903    0.364710    1670.132129 845.227306  -0.311194   400831
47800   0.675903    0.364710    -500.795193 -699.895867 -0.311194   2245430
98172   0.719554    0.399907    4716.250400 3514.310000 -0.319647   1654720
98171   0.719554    0.399907    4716.250400 3514.310000 -0.319647   1654721
49255   0.467255    0.142127    2167.117500 0.000000    -0.325128   3299310
49254   0.467255    0.142127    2167.117500 0.000000    -0.325128   3299311
143500  0.815606    0.444032    33088.337449    31377.402610    -0.371575   3433200
102022  0.522991    0.142127    6481.644588 6121.303300 -0.380864   2778600
15524   0.420808    0.002787    2051.549433 1584.006123 -0.418021   901770
192977  0.703795    0.037457    51215.806000    50462.392000    -0.666338   3681940
194424  0.703795    0.037457    69500.882000    65418.888000    -0.666338   3030690
202400  0.703795    0.037457    89463.210000    89196.016000    -0.666338   226590

@martinholmer
Copy link
Collaborator

Matt,
I'm not sure where your investigation of high marginal income tax rates stands. Your initial thought was the high rates indicated a bug in the mtr() method. But then Dan said these kinds of high marginal rates can happen via interactions of two or more provisions in the tax law. Dan's main recommendation was to look at some individual cases to see what's going on. Remember that high marginal income tax rates have, in the past, indicated bugs in the tax-calculation logic. So, the bug(s) could be anywhere in the code, not necessarily in the mtr() method.

To help you and Sean investigate this matter, I've identified a relatively simple 2013 filing unit that, under current-law policy, has a marginal income tax rate of 75.85 percent and a marginal FICA tax rate of 15.30 percent, which implies a combined marginal tax rate of 91.15 percent. I guess we can all agree that 91% is a high marginal test rate. But the question is whether it is realistic or whether it is caused by a bug.

Here is what I did to find this filing unit. You and Sean can find others with high marginal rates using the same method. And the ability to easily add debugging variables to SIMTAX output should make it relatively easy to investigate filing units like this one.

validation$ bash test c13 . save
. c13
validation$ ls -l  c13* | grep -v reform
-rw-r--r--  1 mrh  staff   8627960 Jan 28 11:37 c13.in
-rw-r--r--  1 mrh  staff  18072494 Jan 28 11:38 c13.in.out-simtax
-rw-r--r--  1 mrh  staff  23531356 Nov  1 19:33 c13.in.out-taxsim
-rw-r--r--  1 mrh  staff       917 Jan 28 11:39 c13.taxdiffs
validation$ awk '{n++}END{print n}' c13.in.out-simtax
10000
validation$ awk '$7>70{n++}END{print n}' c13.in.out-simtax
1
validation$ awk '$7>70{n++;print $1,$7,$9}END{print n}' c13.in.out-simtax
32844. 75.85 15.30
1
validation$ awk '$1==32844' c13.in
32844 2013 0 2 0 1 19500 6500 8000 0 42000 78000 0 0 0 40000 0 0 0 10000 -2000 -1000
validation$ 

cc @MattHJensen @feenberg @GoFroggyRun @Amy-Xu

@martinholmer
Copy link
Collaborator

Matt,
By the way, I forgot to mention in my prior comment, that the marginal tax rates of 75.85 and 15.30 percent for the filing unit with id 32844 estimated by the Tax-Calculator (via the simtax.py program) are exactly the same marginal tax rates as estimated by Internet TAXSIM for that filing unit.

So, if there is a bug somewhere in Tax-Calculator, it would seem as if the same bug is also in Internet TAXSIM.

@MattHJensen @feenberg @GoFroggyRun @Amy-Xu

@feenberg
Copy link
Contributor

On Thu, 28 Jan 2016, Martin Holmer wrote:

Matt,
By the way, I forgot to mention in my prior comment, that the marginal tax rates of
75.85 and 15.30 percent for the filing unit with id 32844 estimated by the
Tax-Calculator (via the simtax.py program) are exactly the same marginal tax rates as
estimated by Internet TAXSIM for that filing unit.

So, if there is a bug somewhere in Tax-Calculator, it would seem as if the same bug is
also in Internet TAXSIM.

In that case you could probably see what was going on by just entering the
22 values in the boxes on the taxsim website and looking at the detailed
output.

dan

@MattHJensen @feenberg @GoFroggyRun @Amy-Xu


Reply to this email directly or view it on
GitHub.[AHvQVW6zvM7qOL0dBoZIk8KEra9jdF6_ks5pekLrgaJpZM4HNEft.gif]

@MattHJensen
Copy link
Contributor Author

In that case you could probably see what was going on by just entering the
22 values in the boxes on the taxsim website and looking at the detailed
output.

Here is the output.

NBER TAXSIM Model v9.7          85
 Marginal tax rate wrt taxpayer earnings.

 Input Data:                   
      1. Record ID:                   32844.
      2. Tax Year:                 2013.00
      3. State Code:                  0.00
      4. Marital Status:              2.00
      5. Dependent Exemptions:        0.00
      6. Age Exemptions:              1.00
      7. Wages (Primary):         19500.00
      8. Wages (Spouse):           6500.00
      9. Dividend Income:          8000.00
     10. Other Property:              0.00
     11. Taxable Pensions:        42000.00
     12. Gross Social Security:   78000.00
     13. Non-taxable Transfers:       0.00
     14. Rent Paid:                   0.00
     15. Property Taxes Paid:         0.00
     16. Other Itemized Deds:     40000.00
     17. Child Care Expenses:         0.00
     18. UI Compensation:             0.00
     19. Children under 17            0.00
     20. Mortgage Interest        10000.00
     21. Short Term Gains         -2000.00
     22. Long Term Gains          -1000.00

 Basic Output:               
      1. Record ID:                     32844.
      2. Year:                           2013
      3. State (SOI code):                  0                            
      4. Federal IIT Liability:      10855.00
      5. State IIT Liability:            0.00
      6. SS Payroll Tax Liability:    3978.00
 Marginal Rates wrt  Earner
      7. Federal Marginal Rate:         75.85
      8. State Marginal Rate:            0.00
      9. Taxpayer SS Rate:              15.30

 Federal Tax Calculation:              Base        + $1
     10. Federal AGI                136800.00   136801.85
     11. UI in AGI 79+                   0.00        0.00
     12. Social Security in AGI 84   63800.00    63800.85
     13. Zero Bracket Amount         13400.00    13400.00
     14. Personal Exemptions          7800.00     7800.00
     15. Exemption Phaseout 91+          0.00        0.00
     16. Deduction Phaseout 91+          0.00        0.00
     17. Deductions allowed          50000.00    50000.00
     18. Federal Taxable Income      79000.00    79001.85
     19. Federal Regular Tax         11607.50    11607.96
     20. Exemption Surtax 88-96          0.00        0.00
     21. General Tax Credit 75-78        0.00        0.00
     22. Child Tax Credit*17/22 98       0.00        0.00
     23  Refundable Part                 0.00        0.00
     24. Child Care Credit 76+           0.00        0.00
     25. Earned Income Credit 75+        0.00        0.00
     26. Alternative Min Income:    126800.00   126801.85
     27. AMT                           122.50      122.70
     28. Income Tax Before Credits   10732.50    10733.06
     29. FICA                         3978.00     3978.15

 Decomposition of the Marginal Rate
    (taxpayer earned income)

 Regular Income Tax
        Bracket rate from X,Y or Z      15.00
        Deduction Phaseout:              0.00
        Exemption Phaseout:              0.00
        Social Security Phasein:        12.75
        Child Tax Credit:                0.00
        Child Care Credit:               0.00
        Refundable Part of CTC:          0.00
        Earned Income Credit:            0.00
        Surtax on 15% bracket:           0.00
        Exemption Surtax:                0.00
        Unemployment Insurance:          0.00
        Max Tax on Earned Income:     8000.00
        Elderly Credit:                  0.00
        General Tax Credit:              0.00
        Percentage Std Deduction         0.00

 Alternative Minimum Income Tax  
        AMT Bracket Rate                26.00
        AMT Phaseout                     0.00

 Only AMT Rate Relevant
        Total Marginal Rate:            48.10
        FICA (t,s):                     15.30       15.30

@GoFroggyRun
Copy link
Contributor

I was also able to find some unit with high mtr wrt iit under the reform that doubles the standard deduction: (2015 law)

e00200 e00600 e00650 e07300 f6251 MARS XTOT
648675 24759 24759 199643 1 2 2

Our calculator reports a mtr of 66.7%, while the manual calculation yields a mtr of 68%.
It remains to manually check the mtr of this unit without any reform, where in this scenario our calculator produces a mtr of 27.6%.

@martinholmer
Copy link
Collaborator

Sean said:

I was also able to find some unit with high mtr wrt iit under the reform that doubles the standard deduction: (2015 law)

e00200    e00600  e00650  e07300  f6251   MARS    XTOT
648675    24759   24759   199643    1       2      2

Our calculator reports a mtr of 66.7%, while the manual calculation yields a mtr of 68%.
It remains to manually check the mtr of this unit without any reform, where in this scenario our calculator produces a mtr of 27.6%.

Are the mtr values of 66.7 and 27.6 marginal income tax rates? Or, are your adding in the marginal FICA tax rate?

@martinholmer
Copy link
Collaborator

Sean, Sorry I forgot to cc you on question just above this comment.
cc @GoFroggyRun

@GoFroggyRun
Copy link
Contributor

@martinholmer Yes. The mtr values are calcualted with respect to individual income tax.

@MattHJensen
Copy link
Contributor Author

I examined the taxpayer that @martinholmer found (32844 2013 0 2 0 1 19500 6500 8000 0 42000 78000 0 0 0 40000 0 0 0 10000 -2000 -1000).

From looking at the internet taxsim output on @feenberg's suggestion, it appears that the high marginal tax rate is due to the fact that AGI increases by $1.85 when AGI increases by $1. I verified that this is the case by filling out the social security benefits worksheet twice and noting that when a dollar of wages is added an additional $0.85 of socials security benefits enters AGI.

NBER TAXSIM Model v9.7          85
 Marginal tax rate wrt taxpayer earnings.

 Input Data:                   
      1. Record ID:                   32844.
      2. Tax Year:                 2013.00
      3. State Code:                  0.00
      4. Marital Status:              2.00
      5. Dependent Exemptions:        0.00
      6. Age Exemptions:              1.00
      7. Wages (Primary):         19500.00
      8. Wages (Spouse):           6500.00
      9. Dividend Income:          8000.00
     10. Other Property:              0.00
     11. Taxable Pensions:        42000.00
     12. Gross Social Security:   78000.00
     13. Non-taxable Transfers:       0.00
     14. Rent Paid:                   0.00
     15. Property Taxes Paid:         0.00
     16. Other Itemized Deds:     40000.00
     17. Child Care Expenses:         0.00
     18. UI Compensation:             0.00
     19. Children under 17            0.00
     20. Mortgage Interest        10000.00
     21. Short Term Gains         -2000.00
     22. Long Term Gains          -1000.00

 Basic Output:               
      1. Record ID:                     32844.
      2. Year:                           2013
      3. State (SOI code):                  0                            
      4. Federal IIT Liability:      10855.00
      5. State IIT Liability:            0.00
      6. SS Payroll Tax Liability:    3978.00
 Marginal Rates wrt  Earner
      7. Federal Marginal Rate:         75.85
      8. State Marginal Rate:            0.00
      9. Taxpayer SS Rate:              15.30

 Federal Tax Calculation:              Base        + $1
     10. Federal AGI                136800.00   136801.85
     11. UI in AGI 79+                   0.00        0.00
     12. Social Security in AGI 84   63800.00    63800.85
     13. Zero Bracket Amount         13400.00    13400.00
     14. Personal Exemptions          7800.00     7800.00
     15. Exemption Phaseout 91+          0.00        0.00
     16. Deduction Phaseout 91+          0.00        0.00
     17. Deductions allowed          50000.00    50000.00
     18. Federal Taxable Income      79000.00    79001.85
     19. Federal Regular Tax         11607.50    11607.96
     20. Exemption Surtax 88-96          0.00        0.00
     21. General Tax Credit 75-78        0.00        0.00
     22. Child Tax Credit*17/22 98       0.00        0.00
     23  Refundable Part                 0.00        0.00
     24. Child Care Credit 76+           0.00        0.00
     25. Earned Income Credit 75+        0.00        0.00
     26. Alternative Min Income:    126800.00   126801.85
     27. AMT                           122.50      122.70
     28. Income Tax Before Credits   10732.50    10733.06
     29. FICA                         3978.00     3978.15

 Decomposition of the Marginal Rate
    (taxpayer earned income)

 Regular Income Tax
        Bracket rate from X,Y or Z      15.00
        Deduction Phaseout:              0.00
        Exemption Phaseout:              0.00
        Social Security Phasein:        12.75
        Child Tax Credit:                0.00
        Child Care Credit:               0.00
        Refundable Part of CTC:          0.00
        Earned Income Credit:            0.00
        Surtax on 15% bracket:           0.00
        Exemption Surtax:                0.00
        Unemployment Insurance:          0.00
        Max Tax on Earned Income:     8000.00
        Elderly Credit:                  0.00
        General Tax Credit:              0.00
        Percentage Std Deduction         0.00

 Alternative Minimum Income Tax  
        AMT Bracket Rate                26.00
        AMT Phaseout                     0.00

 Only AMT Rate Relevant
        Total Marginal Rate:            48.10
        FICA (t,s):                     15.30       15.30

@martinholmer
Copy link
Collaborator

Matt said:

I examined the taxpayer that @martinholmer found:

32844 2013 0 2 0 1 19500 6500 8000 0 42000 78000 0 0 0 40000 0 0 0 10000 -2000 -1000

From looking at the Internet TAXSIM output on @feenberg's suggestion, it appears that the high marginal tax rate is due to the fact that AGI increases by $1.85 when AGI increases by $1. I verified that this is the case by filling out the social security benefits worksheet twice and noting that when a dollar of wages is added an additional $0.85 of socials security benefits enters AGI.

That's interesting. Now that you describe this situation, I remember years ago this happened to my mother (but in her case the increase was in interest income, not earnings). I got quite an earful from her about how this was not right.

@martinholmer
Copy link
Collaborator

Sean said:

I was also able to find some unit with high mtr wrt iit under the reform that doubles the standard deduction: (2015 law)

e00200    e00600  e00650  e07300  f6251   MARS    XTOT
648675    24759   24759   199643    1       2      2

Our calculator reports a mtr of 66.7%, while the manual calculation yields a mtr of 68%.
It remains to manually check the mtr of this unit without any reform, where in this scenario our calculator produces a mtr of 27.6%.

Actually, when I use the newest version of inctax.py and its --mtr option, I get under current-law policy in 2017 a marginal income tax rate for this couple of 28.00 percent (and 67.60 percent under the reform). Have any idea what the narrative is in this case? Clearly not the taxation of social security benefits story that Matt found in the other simple case. I see that e07300 is Foreign Tax Credits. I have no idea how that interacts with high earnings and nontrivial qualified dividends.

cc @GoFroggyRun @MattHJensen @feenberg @Amy-Xu

@GoFroggyRun
Copy link
Contributor

@martinholmer:

Actually, when I use the newest version of inctax.py and its --mtr option, I get under current-law policy in 2017 a marginal income tax rate for this couple of 28.00 percent (and 67.60 percent under the reform).

I have just verified using the forms that the unit's marginal tax rate for the original plan is 28%.
Please note that I'm working under 2015 law and these inputs are after-extrapolation values, this might explains why we are having slightly different mtrs.

Have any idea what the narrative is in this case? Clearly not the taxation of social security benefits story that Matt found in the other simple case. I see that e07300 is Foreign Tax Credits. I have no idea how that interacts with high earnings and nontrivial qualified dividends.

Foreign Tax credit actually contributes to this gap. This unit's income tax is previously higher than the amount of Foreign Tax credit before the reforms that double standard deduction. While after the reform being applied, the amount is lower than FTC. On form 6251, Tentative minimum tax needs to be deducted by certain amount. If there's no foreign tax credit, it would be income tax. If there is any, that amount would be income tax subtracted by the amount of foreign tax credit.

In other words, previously, the effect of adding a penny is diminished by this subtraction for tentative minimum tax. After the reform applied, however, we are not negating that effect at all, since we are now subtracting a zero amount. And thus the reform amplifies the mtr wrt iit.

Sorry that my explanation might be confusing, just let me know and I'd be more than happy to clarify as much as I can.

@feenberg
Copy link
Contributor

On Thu, 28 Jan 2016, Sean.Wang wrote:

@martinholmer:

  Actually, when I use the newest version of inctax.py and its --mtr option,
  I get under current-law policy in 2017 a marginal income tax rate for this
  couple of 28.00 percent (and 67.60 percent under the reform).

I have just verified using the forms that the unit's marginal tax rate for the
original plan is 28%.
Please note that I'm working under 2015 law and these inputs are after-extrapolation
values, this might explains why we are having slightly different mtrs.

  Have any idea what the narrative is in this case? Clearly not the taxation
  of social security benefits story that Matt found in the other simple
  case. I see that e07300 is Foreign Tax Credits. I have no idea how that
  interacts with high earnings and nontrivial qualified dividends.

Foreign Tax credit actually contributes to this gap. This unit's income tax is
previously higher than the amount of Foreign Tax credit before the reforms that double
standard deduction. While after the reform being applied, the amount is lower than

So at the initial level of income, and with base law the taxpayer is
paying the rate from schedule XYZ, and no AMT liability. That explains
28%.

FTC. On form 6251, Tentative minimum tax needs to be deducted by certain amount. If
there's no foreign tax credit, it would be income tax. If there is any, that amount
would be income tax subtracted by the amount of foreign tax credit.

Now we double the standard deduction, reducing regular tax. The base law
is no longer relevant. Does that put the taxpayer in the AMT? Then the
rate should be one of the AMT rates or that rate times 1.5 if the taxpayer
is in the clawback range. Does the FTC somehow change that? The FTC is
allowed against the AMT also. What does adding a penny to wages do to the
regular tax? What does it do to AMTI? What does it do to AMT?

In other words, previously, the effect of adding a penny is diminished by this
subtraction for tentative minimum tax. After the reform applied, however, we are not
negating that effect at all, since we are now subtracting a zero amount. And thus the
reform amplifies the mtr wrt iit.

Still confused. The base law isn't relevant. After the reform we compare
base data to base data plus a penny. Does the taxpayer switch from regular
tax to AMT for a penny? Can you show the dollars and sense for

 variable         before  +a penny

taxable income
regular tax
ftc
amti
amt

thanks

dan

After adding

Sorry that my explanation might be confusing, just let me know and I'd be more than
happy to clarify as much as I can.


Reply to this email directly or view it on
GitHub.[AHvQVXByVs1iwqzZl80Ik0ke9sBupkekks5pepabgaJpZM4HNEft.gif]

@GoFroggyRun
Copy link
Contributor

@feenberg

The unit owes AMT under both current law and reformed law. The problem is that the income taxes in the two scenarios are different, where FTC is in between them. Let me specify using a table: (I don't have the number handy)

Base Base, Added a penny Reform Reform, Added a penny
Adjusted Gross Income AGI AGI + 0.01 AGI AGI + 0.01
Standard Deduction STD STD 2*STD 2*STD
Taxable Income AGI - STD AGI - STD +0.01 AGI - 2*STD AGI - 2*STD +0.01
Income Tax intax_1 intax_1 + delta intax_2 intax_2 + delta
Foreign Tax Credit FTC FTC FTC FTC
AMTI AGI AGI + 0.01 AGI AGI + 0.01
Tentative Minimum Tax TMT_1 TMT_1 + less_delta TMT_2 TMT_2 + less_delta
AMT TMT_1 - (intax_1 - FTC) TMT_1 + less_delta - (intax_1 + delta - FTC) TMT_2 TMT_2 + less_delta
Tax Before Credits TMT_1 + FTC TMT_1 + less_delta + FTC TMT_2 + intax_2 TMT_2 + less_delta + intax_2 + delta

This is because the relationship intax_2 + delta < FTC < intax_1, and the delta/0.01 is the gap for the two mtrs wrt iit.
(For simplicity I'm assuming delta and less_delta to be the same for both cases, which they don't actually have to.)
Does this make sense to you? Any comments, concerns or remarks would be appreciated.

@feenberg
Copy link
Contributor

On Thu, 28 Jan 2016, Sean.Wang wrote:

@feenberg

The unit owes AMT under both current law and reformed law. The problem is that the
income taxes in the two scenarios are different, where FTC is in between them. Let me
specify using a table: (I don't have the number handy)

Base
Base, Added a penny
Reform
Reform, Added a penny
Adjusted Gross Income
AGI
AGI + 0.01
AGI
AGI + 0.01
Standard Deduction
STD
STD
2_STD
2_STD
Taxable Income
AGI - STD
AGI - STD +0.01
AGI - 2_STD
AGI - 2_STD +0.01
Income Tax
intax_1
intax_1 + delta
intax_2
intax_2 + delta
Foreign Tax Credit
FTC
FTC
FTC
FTC
AMTI
AGI
AGI + 0.01
AGI
AGI + 0.01
Tentative Minimum Tax
TMT_1
TMT_1 + less_delta
TMT_2
TMT_2 + less_delta
AMT
TMT_1 - (intax_1 - FTC)
TMT_1 + less_delta - (intax_1 + delta - FTC)
TMT_2
TMT_2 + less_delta
Tax Before Credits
TMT_1 + FTC
TMT_1 + less_delta + FTC
TMT_2 + intax_2
TMT_2 + less_delta + intax_2 + delta

This is because the relationship intax_2 + delta < FTC < intax_1, and the delta/0.01
is the gap for the two mtrs wrt iit.
(For simplicity I'm assuming delta and less_delta to be the same for both cases, which
they don't actually have to.)
Does this make sense to you? Any comments, concerns or remarks would be appreciated.

It still makes no sense at all. Why are you comparing intax_2 to intax_1?
The 28% marginal rate for the base case is perfectly sensible and
unrelated to intax_2.

I thought the problem was that 68% seemed high for the reform law. So lets
look at the reform case. Why do you show reform tax before credits as
"TMT_2 + intax_2"? The regular tax is a credit against the tentative
minimum tax.

Are you saying that the FTC wipes out the tax under base law (then
shouldn't the marginal rate be zero) but not under the reform (then
shouldn't the rate be the AMT rate)?

dan


Reply to this email directly or view it on
GitHub.[AHvQVfMXX67FogDuBHjUPFiRIoSl3jBYks5pett1gaJpZM4HNEft.gif]

@GoFroggyRun
Copy link
Contributor

There's another general case, where even with no foreign tax credit, some units will still have a bump in their MTR under a tax-liability-favored reform. The alteration from non-AMT payer to AMT payer will account for the increase in MTR. Again we specify the before-and-after scenarios using a table:

Base Base, Added a penny Reform Reform, Added a penny
Adjusted Gross Income AGI AGI + 0.01 AGI AGI + 0.01
Standard Deduction STD STD 2*STD 2*STD
Taxable Income AGI - STD AGI - STD +0.01 AGI - 2*STD AGI - 2*STD +0.01
Income Tax intax_1 intax_1 + delta intax_2 intax_2 + delta
AMTI AGI AGI + 0.01 AGI AGI + 0.01
Tentative Minimum Tax TMT_1 TMT_1 + less_delta TMT_2 TMT_2 + less_delta
AMT 0 0 TMT_2 - intax_2 TMT_2 + less_delta - intax_2 - delta
Tax Before Credits intax_1 intax_1 + delta TMT_2 TMT_2 + less_delta + delta

Doubling the standard deduction reduced the unit's income tax, meanwhile, however, that tax payer is no longer exempted from AMT. Please note in the above table we have intax_1 > TMT_1, and intax_2 < TMT_2.

For taxpayers of this kind, the bump in MTR will be less_delta/0.01. A remark after investigating the MTR issue is that: in the first case, the increment in MTR (delta/0.01) will always be greater than the MTR of baseline (less_delta/0.01); while for the second case, the increment in MTR (less_delta/0.01) will always be less than the MTR of baseline (delta/0.01).

@feenberg
Copy link
Contributor

Can you explain the intuition behind calling the variable "less_delta"?
What is less? I feel like I am missing something.

dan

On Sun, 31 Jan 2016, Sean.Wang wrote:

There's another general case, where even with no foreign tax credit, some units will
still have a bump in their MTR under a tax-liability-favored reform. The alteration
from non-AMT payer to AMT payer will account for the increase in MTR. Again we specify
the before-and-after scenarios using a table:

Base
Base, Added a penny
Reform
Reform, Added a penny
Adjusted Gross Income
AGI
AGI + 0.01
AGI
AGI + 0.01
Standard Deduction
STD
STD
2_STD
2_STD
Taxable Income
AGI - STD
AGI - STD +0.01
AGI - 2_STD
AGI - 2_STD +0.01
Income Tax
intax_1
intax_1 + delta
intax_2
intax_2 + delta
AMTI
AGI
AGI + 0.01
AGI
AGI + 0.01
Tentative Minimum Tax
TMT_1
TMT_1 + less_delta
TMT_2
TMT_2 + less_delta
AMT
0
0
TMT_2 - intax_2
TMT_2 + less_delta - intax_2 - delta
Tax Before Credits
intax_1
intax_1 + delta
TMT_2
TMT_2 + less_delta + delta

Doubling the standard deduction reduced the unit's income tax, meanwhile, however,
that tax payer is no longer exempted from AMT. Please note in the above table we have
intax_1 > TMT_1, and intax_2 < TMT_2.

For taxpayers of this kind, the bump in MTR will be less_delta/0.01. A remark after
investigating the MTR issue is that: in the first case, the increment in MTR
(delta/0.01) will always be greater than the MTR of baseline (less_delta/0.01); while
for the second case, the increment in MTR (less_delta/0.01) will always be less than
the MTR of baseline (delta/0.01).


Reply to this email directly or view it on
GitHub.[AHvQVdsfbJzWFsNdbRA6lTZNzp9l5LGIks5pfoExgaJpZM4HNEft.gif]

@GoFroggyRun
Copy link
Contributor

@feenberg Sorry that I forgot to mention this part.

So for this tax payer, his income tax fall into the 39.6% bracket. This 39.6%, along with the penny added, will induce a delta amount change on income tax. While for the capital gain part in form 6251, that penny will be subjected to a lower deterioration rate of 28%, and thus induces a change of less_delta amount.

In general, if tax payers get more complicated, and more iterations matter, the number here, 39.6% and 28%, might no longer work. However, the relationship less_delta < delta could still hold for high income taxpayers.

@feenberg
Copy link
Contributor

feenberg commented Feb 1, 2016

On Mon, 1 Feb 2016, Sean.Wang wrote:

@feenberg Sorry that I forgot to mention this part.

So for this tax payer, his income tax fall into the 39.6% bracket. This 39.6%, along
with the penny added, will induce a delta amount change on income tax. While for the
capital gain part in form 6251, that penny will be subjected to a lower deterioration
rate of 28%, and thus induces a change of less_delta amount.

In general, if tax payers get more complicated, and more iterations matter, the number
here, 39.6% and 28%, might no longer work. However, the relationship less_delta <
delta could still hold for high income taxpayers.

You promised to send me dollar amounts for the intermediate variables - I
listed the variables in a previous message.

dan


Reply to this email directly or view it on
GitHub.[AHvQVQ4U7nlOZbWu4ETjlLKM9wlinbM1ks5pf6NRgaJpZM4HNEft.gif]

@GoFroggyRun
Copy link
Contributor

@feenberg
Yes. The email was sent at 3:23 PM. I have also rotated the images and just sent you another copy via email.

@martinholmer
Copy link
Collaborator

Sean said five days ago:

I was also able to find some unit with high mtr wrt iitax under the reform that doubles the standard deduction: (2015 law)

e00200    e00600  e00650  e07300  f6251   MARS    XTOT
648675     24759   24759  199643      1      2       2

Our calculator reports a mtr of 66.7% [after the reform], while the manual calculation yields a mtr of 68%. It remains to manually check the mtr of this unit without any reform, where in this scenario our calculator produces a mtr of 27.6%.

Since then there has been a conversation between Sean and Dan that I have not been able to follow.

I have just one simple question about this case: Is there any suspicion that the tax liability or marginal tax rate computed by Tax-Calculator for this filing unit (either under current law or under the doubling of standard deduction reform) is incorrect?

cc @feenberg @GoFroggyRun @MattHJensen @Amy-Xu

@feenberg
Copy link
Contributor

feenberg commented Feb 2, 2016

On Tue, 2 Feb 2016, Martin Holmer wrote:

Sean said five days ago:

  I was also able to find some unit with high mtr wrt iitax under the reform
  that doubles the standard deduction: (2015 law)

e00200 e00600 e00650 e07300 f6251 MARS XTOT
648675 24759 24759 199643 1 2 2

  Our calculator reports a mtr of 66.7% [after the reform], while the manual
  calculation yields a mtr of 68%. It remains to manually check the mtr of
  this unit without any reform, where in this scenario our calculator
  produces a mtr of 27.6%.

Since then there has been a conversation between Sean and Dan that I have not been
able to follow.

I have just one simple question about this case: Is there any suspicion that the tax
liability or marginal tax rate computed by Tax-Calculator for this filing unit (either
under current law or under the doubling of standard deduction reform) is incorrect?

I am suspicous of the 68% rate, since the taxpayer's income should put
them above any clawbacks or phaseouts. But I just got the tax forms this
morning and haven't had a chance to study them yet.

Wild marginal rates can sometimes come from small programming errors.

dan

cc @feenberg @GoFroggyRun @MattHJensen @Amy-Xu


Reply to this email directly or view it on
GitHub.[AHvQVeRSSxYX7Ix2UMevpe2XtCVRITTjks5pgInWgaJpZM4HNEft.gif]

@martinholmer
Copy link
Collaborator

Dan said:

I am suspicious of the 68% rate, since the taxpayer's income should put them above any clawbacks or phaseouts. But I just got the tax forms this morning and haven't had a chance to study them yet.
Wild marginal rates can sometimes come from small programming errors.

Dan, Thanks for the update. We'll await your analysis of this case.

cc @feenberg @GoFroggyRun @MattHJensen @Amy-Xu

@feenberg
Copy link
Contributor

feenberg commented Feb 3, 2016

Here is the explanation:

For a taxpayer on the AMT we would expect:

tax = regular_tax + AMT - FTC

expanding:

tax = regular_tax + (TentativeAMT - (regular_tax - FTC)) - FTC

which means that

delta_tax = .28

since the regular tax cancels out. However, in this case we have to worry
about regular_tax - FTC being negative, which isn't allowed in the Form
6251. So the formula is:

tax = regular_tax + (TentativeAMT - max(0,regular_tax - FTC)) - FTC

and now regular tax no longer cancels out and the marginal tax rate is the
sum of the regular and AMT rates.

On Tue, Feb 2, 2016 at 8:26 AM, Martin Holmer notifications@github.com
wrote:

Dan said:

I am suspicious of the 68% rate, since the taxpayer's income should put
them above any clawbacks or phaseouts. But I just got the tax forms this
morning and haven't had a chance to study them yet.
Wild marginal rates can sometimes come from small programming errors.

Dan, Thanks for the update. We'll await your analysis of this case.

cc @feenberg https://github.com/feenberg @GoFroggyRun
https://github.com/GoFroggyRun @MattHJensen
https://github.com/MattHJensen @Amy-Xu https://github.com/Amy-Xu


Reply to this email directly or view it on GitHub
#555 (comment)
.

@martinholmer
Copy link
Collaborator

Dan @feenberg said:

Here is the explanation:

For a taxpayer on the AMT we would expect:

 tax = regular_tax + AMT - FTC

expanding:

 tax = regular_tax + (TentativeAMT - (regular_tax - FTC)) - FTC

which means that

delta_tax = .28

since the regular tax cancels out. However, in this case we have to worry about regular_tax - FTC being negative, which isn't allowed in the Form 6251. So the formula is:

 tax = regular_tax + (TentativeAMT - max(0,regular_tax - FTC)) - FTC

and now regular tax no longer cancels out and the marginal tax rate is the sum of the regular and AMT rates.

Dan, Thanks for the explanation. So, it would seem that Tax-Calculator is handling this filing unit correctly, and thus, this unit's tax liability and marginal tax rate are correct. Is that right?

cc @MattHJensen @Amy-Xu @GoFroggyRun

@feenberg
Copy link
Contributor

feenberg commented Feb 3, 2016

On Wed, 3 Feb 2016, Martin Holmer wrote:

Dan @feenberg said:

  Here is the explanation:

  For a taxpayer on the AMT we would expect:

tax = regular_tax + AMT - FTC

  expanding:

tax = regular_tax + (TentativeAMT - (regular_tax - FTC)) - FTC

  which means that

delta_tax = .28

  since the regular tax cancels out. However, in this case we have to worry
  about regular_tax - FTC being negative, which isn't allowed in the Form
  6251. So the formula is:

tax = regular_tax + (TentativeAMT - max(0,regular_tax - FTC)) - FTC

  and now regular tax no longer cancels out and the marginal tax rate is the
  sum of the regular and AMT rates.

Dan, Thanks for the explanation. So, it would seem that Tax-Calculator is handling
this filing unit correctly, and thus, this unit's tax liability and marginal tax rate
are correct. Is that right?

At least that is what the tax forms say to do. That is enough for me. At
least it is a rare case.

dan

cc @MattHJensen @Amy-Xu @GoFroggyRun


Reply to this email directly or view it on
GitHub.[AHvQVcsUnBSm1WaxP3zbDE7R6ScToW1Fks5pgi1xgaJpZM4HNEft.gif]

@MattHJensen
Copy link
Contributor Author

Thanks everyone. I am closing this given that we've looked into the oddest records and not found any bugs.

cc @rickecon @jdebacker

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants