-
-
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
Are Tax-Calculator results too sensitive to substitution effect elasticity? #1668
Comments
@martinholmer. I am OK with the title of this issue being changed to a question. But it is not a question in my mind. My comment above is strong evidence that the results are too sensitive to the substitution effect elasticity. If I can generate a loss of only $76 billion over 10 years from the Senate reform by using an elasticity of 0.4 (the most common value for this parameter from the literature) versus a 10-year loss of $530 billion with an elasticity value of 0.25, this is too sensitive. Furthermore, I document that the sensitivity is coming from ( |
I see two potentially useful followups here:
|
@MattHJensen said in issue #1668:
Beginning this morning, I'm researching these issues. I'll be reporting my findings as the day progresses. |
@rickecon raised a number of important issues in #1668. The Tax-Calculator developers have been very busy recently, so we haven't paid as much attention to these issues as we would normally have. My work on #1668 has started by trying to reproduce the kind of behavior response results for the I show first my initial replication results and then after that the Python script that generates those results. RESULTS
Summarizing the results, we have:
In other words, the 0.4 behavioral substitution effect, raises incomes enough to eliminate almost 70% of the static revenue loss of the reform. SCRIPT (named
|
When re-running the script described at the bottom of this comment after making the #1698 changes to the handling of MTRs at or above 100% in the So, we are still left with the result that assuming Maybe there is something else wrong with the |
@MattHJensen said in issue #1668:
We've had long conversations about high MTRs. For example, on January 26, 2016, @MattHJensen opened issue #555 (entitled "MTRs respond oddly to double of standard deduction - high priority" with this statement:
After fifty comments, @MattHJensen removed the Bug label and closed the issue on February 3, 2016. And then @GoFroggyRun wrote a description of some of these "odd" cases. Likewise for negative MTRs. For example, just two weeks ago in the discussion of #1645, @codykallen pointed out the reason some filing units have substantially negative MTRs:
Note that @codykallen was referring to MTRs computed with All this means that even though the And, there may be a flaw in the implmentation of the Or, just maybe, the massive reduction in MTRs for high-income filers in the TCJA reform, combined with high response parameters (like @feenberg @rickecon @jdebacker @Amy-Xu @andersonfrailey @hdoupe |
My thought is that the expression for the change in income is at best a first-order approximation (high approximation error) for the true delta. change in income = and This expression comes from a simple static Euler equation for labor supply, which has a distortionary term Try this thought experiment. Suppose that
Notice how there is an asymptote at |
Pull request #1700 adds optional tracing logic to the Behavior.response method. That new capability can be used to add some information to the discussion of issue #1668. The results shown below are generated by the same script and the same reform/assumption files as described earlier in this conversation. The only change in the script to that the call to
So, the Given that those with large positive pch values are typically high-income, the 0.4 substitution elasticity generates large increases in taxable income. At the extreme end of the sub distribution, we have 1,316 filing units who are simulated to have an increase in taxable income of one million dollars or more. And there are another 9,941 filing units who are simulated to have an increase in taxable income of between $100,000 and $1,000,000. It seems to me the questions @rickecon and @jdebacker posed are: "Are these results reasonable? And, if not, what is the matter with Tax-Calculator?" If you think these results are unreasonable, you need to demonstrate one or more of the following things:
|
@rickecon and @jdebacker, Have either of you done any more investigation of the issue #1668 that you raised about a month ago? In a private discussion of this issue, @MattHJensen said, given a 0.40 substitution elasticity and the nature of the TCJA reform, he wasn't too surprised about the results you got. Are your planning any further investigation into the matter? If not, shall we close issue #1668? Or is there benefit to keeping it open? |
I ran some tests today using
TCJA_Senate.json
as my reform and with the following behavioral assumptionsjson
:The difference in government revenue over the 10-year budget window for that simulation is -$530 billion. I ran some other simulations of the
TCJA_Senate.json
reform in which I varied the substitution effect elasticity (_BE_sub
) and the capital gains elasticity (_BE_cg
). These are the results I got._BE_sub
_BE_cg
growdiff_response
_BE_cg
down_BE_sub
down_BE_sub
upGoing from an elasticity of substitution of 0.4 (which is still within a reasonable range from the literature) to a lower elasticity of 0.125 wipes out nearly $1 trillion of lost revenue. That seems like too much sensitivity.
@jdebacker pointed out one possible culprit. The effect of the elasticity on behavior is the following. Let income be
Inc
. LetMTR_b
be the marginal tax rate in the baseline scenario, and letMTR_r
be the marginal tax rate in the reform scenario. The behavioral effect of a change inMTR_r
is approximated as the percent change in1 - MTR
multiplied by the substitution effect elasticity of taxable income_BE_sub
times incomeInc
.change in income =
[(1 - MTR_r) / (1 - MTR_b) - 1] x _BE_sub x Inc
This is shown in lines 157-168 of behavior.py. The key value is the percent change in
1 - MTR
from line 165 of behavior.py:pch = (1 - MTR_r) / (1 - MTR_b) - 1
If I describe the values of
pch
for the Senate reform, I get 30 filers having a value greater than 0.99 (0.0139%) and 48 filers having a value less than -0.3 (0.0223%). These observations with really large values are what are making Tax-Calculator so sensitive to the behavioral assumption of the elasticity of substitution of taxable income (_BE_sub
). Is this right?ANALYSIS OF pch
ANALYSIS OF MTR_b (denominator)
I suggest that we truncate either the MTR's used in the behavioral calculation or we truncate the
pch
values. In fact, I don't think that thepch
expression is valid for MTR's >= 1.0.@MattHJensen @martinholmer @jdebacker @hayleeefay
The text was updated successfully, but these errors were encountered: