Closed MaxGhenis closed 5 years ago
@MaxGhenis, As you point out in issue 11, any user of Tax-Calculator can define any measure of income they think is appropriate for the analysis they wan to conduct. We're all in agreement that different kinds of analysis require different kinds of income measures. That is why Tax-Calculator provides so much flexibility. Not only does Tax-Calculator provide you with all the data needed to define your own income measure, it provides distributional table/graph functions that accept any income measure.
Given all this, I don't understand the purpose of your issue #2309. If you're just asking "whether other tax analysis groups include things like SNAP in their income metrics", then why don't you do a Google search to see how CBO, JCT, TPC, etc., define their preferred income measures? My impression is that every organization has a different preferred income measure.
Is there an example of using custom income measures for taxcalc
graph functions? I'm using my own pandas-based approach, but not sure how to pass it back to native taxcalc
functions like decile graphs after creating a new variable in the pandas dataframe.
One data point on other shops: TPC uses what they call expanded cash income (ECI), which includes cash transfers and SNAP, but not apparently Medicare, Medicaid, or WIC. They also include corporate tax liability.
Another question is whether there are other non-"market"-income measures you'd consider excluding that I'm missing:
Would expanded income minus benefits, UI, and OASDI approximate this concept?
@MaxGhenis said in issue #2309:
One data point on other shops: TPC uses what they call expanded cash income (ECI), which includes cash transfers and SNAP, but not apparently Medicare, Medicaid, or WIC.
Thanks for the information. Please post what you learn about the "other shops".
@MaxGhenis said in issue #2309:
Another question was whether there are other non-"market"-income measures you'd consider excluding that I'm missing:
Would expanded income minus benefits, UI, and OASDI approximate this concept?
You should look at what CBO is doing regarding social insurance benefits. It's exactly the opposite of what you're considering. Look for Kevin Perese's Congressional Budget Office Working Paper 2017-09.
@MaxGhenis asked in issue #2309:
Is there an example of using custom income measures for taxcalc graph functions? I'm using my own pandas-based approach, but not sure how to pass it back to native taxcalc functions like decile graphs after creating a new variable in the pandas dataframe.
Good question. After reviewing the table/graph functions in Tax-Calculator's Calculator class, it seems as if to use them with alternative definitions of "expanded income" (or "aftertax expanded income"), one would need to redefine the native expanded_income
(or aftertax_income
) variable before calling the table/graph function. It is easy to do that because all the raw data are available to compute any income measure and the Calculator class provides the array
method to implement the redefinition in the Records object embedded in the Calculator object.
You should look at what CBO is doing regarding social insurance benefits. It's exactly the opposite of what you're considering. Look for Kevin Perese's Congressional Budget Office Working Paper 2017-09.
Thanks for the pointer. Their market income concept is actually pretty similar to what I'm proposing, as it excludes Social Security, unemployment insurance, Medicare, and transfer payments.
This prompted me to also compare to TPC in this spreadsheet:
@MaxGhenis, I think there are some problems in your spreadsheet with respect to Tax-Calculator's expanded_income concept. I don't understand why you think several income items --- employee contribution to retirement plan, employer share of payroll taxes, tax-exempt interest, nontaxable pension distributions, and nontaxable social security benefits --- are excluded from T-C's definition of expanded_income. Here is the code that computes expanded_income:
def ExpandIncome(e00200, pencon_p, pencon_s, e00300, e00400, e00600,
e00700, e00800, e00900, e01100, e01200, e01400, e01500,
e02000, e02100, p22250, p23250,
cmbtp, ptax_was, benefit_value_total, ubi,
expanded_income):
"""
Calculates expanded_income from component income types.
"""
expanded_income = (
e00200 + # wage and salary income net of DC pension contributions
pencon_p + # tax-advantaged DC pension contributions for taxpayer
pencon_s + # tax-advantaged DC pension contributions for spouse
e00300 + # taxable interest income
e00400 + # non-taxable interest income
e00600 + # dividends
e00700 + # state and local income tax refunds
e00800 + # alimony received
e00900 + # Sch C business net income/loss
e01100 + # capital gain distributions not reported on Sch D
e01200 + # Form 4797 other net gain/loss
e01400 + # taxable IRA distributions
e01500 + # total pension & annuity income (including DB-plan benefits)
e02000 + # Sch E total rental, ..., partnership, S-corp income/loss
e02100 + # Sch F farm net income/loss
p22250 + # Sch D: net short-term capital gain/loss
p23250 + # Sch D: net long-term capital gain/loss
cmbtp + # other AMT taxable income items from Form 6251
0.5 * ptax_was + # employer share of FICA taxes on wages/salaries
ubi + # total UBI benefit
benefit_value_total # consumption value of all benefits received;
# see the BenefitPrograms function in this file for details on
# exactly how the benefit_value_total variable is computed
)
return expanded_income
Thanks @martinholmer, I'd added those as they came up in other income concepts and hadn't checked against expanded_income
. I revised the spreadsheet accordingly.
@MaxGhenis said:
I revised the spreadsheet accordingly.
OK, that's good. But the spreadsheet that appears in this comment is still incorrect.
I revised the spreadsheet, not the screenshot in that comment.
The new Python Cookbook that goes with Tax-Calculator 2.2 adds recipe 5 entitled [Redefining Expanded Income]https://pslmodels.github.io/Tax-Calculator/cookbook.html#recipe05). This new recipe shows how expanded income can be defined in any way the user wants and be able to use the redefined expanded income in all Tax-Calculator tables and graphs.
Currently
expanded_income
includes benefit programs, and in https://github.com/PSLmodels/Tax-Calculator/issues/1893#issuecomment-367477214 @martinholmer said:I'd be interested if anyone can confirm whether other tax analysis groups include things like SNAP in their income metrics, but for this issue I think a market income concept would still be useful. For example, OECD calculates inequality before and after taxes and transfers, as reported in Wapo:
Our World In Data has also trended this across countries, and branded them "market" and "disposable" income (OECD also calls it disposable):
This can be useful for showing how tax-and-transfer reform can affect metrics like inequality, either using market->disposable income as a baseline, or by calculating changes to market incomes as a result of labor responses.
Would expanded income minus benefits, UI, and OASDI approximate this concept?