Closed ernietedeschi closed 5 years ago
@evtedeschi3 said in Tax-Calculator issue #2180:
How does Tax-Calculator treat the effects of a change in ordinary income tax rates on the realization of short-term capital gains? If the treatment is static (that is, no assumed reaction), has there been thought given to adding a short-term capital gains elasticity parameter? I ask because I suspect with the new Congress we should expect more and more analyses of proposals to raise certain marginal income tax rates.
These are good questions. The answers are:
"Yes" the default treatment is static and "no" I've not thought of this kind of behavioral-response analysis.
However, I believe the current version of Tax-Calculator can be used to conduct this kind of analysis. This is true because the Tax-Calculator design philosophy focuses on providing general tools that enable a wide range of analysis, including analysis that the Tax-Calculator developers have never thought of. For example, on the issue of how to analyze post-simulation output, the tc --dump
capability is an example of this philosophy. There is no way the Tax-Calculator developers can anticipate how users want to tabulate or visualize output data, so we offer a few tables and graphs, but support any type of tabulation/visualization by allowing all the output to be written to a CSV-formatted file.
In this case, I believe a sophisticated analysis of responses in short-term capital gains and losses can be conducted using the Tax-Calculator quantity_response
function. There is a recipe illustrating its use in estimating earnings responses in the Cookbook and the documentation in the utils.py
file (reproduced below) is extensive.
@evtedeschi3, please raise an issue if the quantity_response
function is not flexible enough to conduct your short-term gain/loss response analysis.
Function Signature and Documentation for the quantity_response
Function
def quantity_response(quantity,
price_elasticity,
aftertax_price1,
aftertax_price2,
income_elasticity,
aftertax_income1,
aftertax_income2):
"""
Calculate dollar change in quantity using a log-log response equation,
which assumes that the proportional change in the quantity is equal to
the sum of two terms:
(1) the proportional change in the quanitity's marginal aftertax price
times an assumed price elasticity, and
(2) the proportional change in aftertax income
times an assumed income elasticity.
Parameters
----------
quantity: numpy array
pre-response quantity whose response is being calculated
price_elasticity: float
coefficient of the percentage change in aftertax price of
the quantity in the log-log response equation
aftertax_price1: numpy array
marginal aftertax price of the quanitity under baseline policy
Note that this function forces prices to be in [0.01, inf] range,
but the caller of this function may want to constrain negative
or very small prices to be somewhat larger in order to avoid extreme
proportional changes in price.
Note this is NOT an array of marginal tax rates (MTR), but rather
usually 1-MTR (or in the case of quantities, like charitable
giving, whose MTR values are non-positive, 1+MTR).
aftertax_price2: numpy array
marginal aftertax price of the quantity under reform policy
Note that this function forces prices to be in [0.01, inf] range,
but the caller of this function may want to constrain negative
or very small prices to be somewhat larger in order to avoid extreme
proportional changes in price.
Note this is NOT an array of marginal tax rates (MTR), but rather
usually 1-MTR (or in the case of quantities, like charitable
giving, whose MTR values are non-positive, 1+MTR).
income_elasticity: float
coefficient of the percentage change in aftertax income in the
log-log response equation
aftertax_income1: numpy array
aftertax income under baseline policy
Note that this function forces income to be in [1, inf] range,
but the caller of this function may want to constrain negative
or small incomes to be somewhat larger in order to avoid extreme
proportional changes in aftertax income.
aftertax_income2: numpy array
aftertax income under reform policy
Note that this function forces income to be in [1, inf] range,
but the caller of this function may want to constrain negative
or small incomes to be somewhat larger in order to avoid extreme
proportional changes in aftertax income.
Returns
-------
response: numpy array
dollar change in quantity calculated from log-log response equation
"""
Thanks for the response. This looks like it will handle the job nicely. Will dig in.
How does Tax-Calculator treat the effects of a change in ordinary income tax rates on the realization of short-term capital gains? If the treatment is static (that is, no assumed reaction), has there been thought given to adding a short-term capital gains elasticity parameter? I ask because I suspect with the new Congress we should expect more and more analyses of proposals to raise certain marginal income tax rates.