-
-
Notifications
You must be signed in to change notification settings - Fork 158
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
Custom margin for mtr function #2580
Labels
Comments
(This is one paper that uses it, by the IFS; see pages 11 and 12 for the different metrics they have for work incentives - EMTR, PTR and RR.) |
On Tue, 30 Mar 2021, Max Ghenis wrote:
mtr() currently adds one cent to income to determine marginal tax rates, with an arg
negative_finite_diff=False to make that negative one cent instead.
This is a question I have wrestled with for decades in taxsim. For a table
of the weighted average marginal tax rate, notches are not a problem. A
few will be encountered, and affect the averge to a suitable extent. The
problem is with notch mtrs in regressions. In an OLS regression minimizing
squared residuals an outlier will have disproportionate influence. A
dingle wild mtr will dominate the sum of squares.
The usual suggestion for dealing with notches is to take a longer finite
difference. If there is a $10 notch than taking a finite difference over
$1 yields a 1,000% marginal tax rate, but over $1,000 it only adds 1% to
the mtr. However notches of several hundred dollars are in the law, and
minimizing them requires very large finite differences.
Eventually I settled on minimizing the probability of encountering a
notch, and suggesting to users that they drop observations with absurd
mtrs. If you take a finite difference of a penny, then even a $1 notch is
a 10,000% mtr. I also start out each mtr calculation from their reported
wage income plus a penny compared to plus 2 pennies. Since most notches
seem to ocurr at integer dollar thresholds, this works well. Lastly, I
compare the finite difference in both directions, and use the small
(absolute value) amount. The result is a very small bias
Nevertheless, notches should not be problem for distribution tables.
Daniel Feenberg
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
mtr()
currently adds one cent to income to determine marginal tax rates, with an argnegative_finite_diff=False
to make that negative one cent instead:Tax-Calculator/taxcalc/calculator.py
Lines 542 to 546 in 1688c12
This is the most precise approach, but larger margins can have some advantages:
Some precedent:
I'd suggest adding an arg defaulting to 0.01, named something like
finite_diff
,margin
, ormarginal_amount
. Over time this could also potentially replace the existingnegative_finite_diff
arg.The text was updated successfully, but these errors were encountered: