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

Making sure wage variables align properly with Tax-Calculator income tax and payroll tax concepts and treatment #8

Open
donboyd5 opened this issue Feb 11, 2024 · 16 comments
Labels
question Further information is requested

Comments

@donboyd5
Copy link
Collaborator

donboyd5 commented Feb 11, 2024

Please tell me if I got anything wrong in this thread and I will edit to correct.

Background on the issue - first of several comments

@martinholmer shared an email chain with me (Zotero link) that says, as I read it:

  • ACS and CPS wage variables are intended to be total wages before deduction for pre-tax retirement contributions, deductible health plan contributions, or other similar income-tax-deductible contributions
  • ACS and CPS respondents may not always provide the intended total-wages amount - some may subtract some contributions, and other people may not
  • The proper tax treatment is: (1) for income tax purposes, wages after tax-deductible contributions must be used (thus, data that start with total wages need to subtract deductible contributions), and (2) for payroll tax purposes, wages before deduction of retirement contributions and certain health contributions must be used [it went without saying that payroll-tax wages, while generally gross, are subject to caps].
  • TAXSIM starts with W-2 box 1, which is wages after these various deductions. [Thus, it should be correct for income taxes.] The email thread suggests but does not verify that TAXSIM does not add back retirement contributions for purposes of payroll tax calculations, and thus might be wrong for payroll tax. [I don't know about this, and we should touch base with @feenberg about it.]

@MaxGhenis says that PolicyEngine uses an ASEC variable intended to capture total wages, before pre-tax contributions. Thus, while it makes sense for payroll taxes, he (and I expect @nikhilwoodruff ) will create an after-contributions variable to use for income tax calculations and this issue will fix it.

@MaxGhenis
Copy link

MaxGhenis commented Feb 11, 2024

We're working on this in PolicyEngine/policyengine-us#3840.

I haven't looked closely at Tax-Calculator but I think they have the same gap TAXSIM and PolicyEngine does today.

This is also now motivating us to distribute the ASEC retirement contributions variable (PolicyEngine/policyengine-us#3842) and model the Saver's Credit (PolicyEngine/policyengine-us#3841).

@donboyd5
Copy link
Collaborator Author

Relevance for us

First, we need to be sure we know exactly what Tax-Calculator assumes for income tax and payroll tax. I believe that for income tax purposes, it uses e00200 for wages, which is wages after retirement contribution deductions (verification below). I have assumed but never verified that Tax-Calculator grosses up wages to add back relevant contribution deductions to arrive at proper wages for payroll-tax calculations (before caps where relevant) but @MaxGhenis just responded that he thinks Tax-Calculator does not do this (and therefore would be incorrect in a quite substantial way). @martinholmer or @nikhilwoodruff are you able to verify the Tax-Calculator treatment of wages for payroll tax purposes?

Second, we need to be sure of the wages we are feeding to Tax-Calculator in this project.

So I think our job is to (1) be 100% sure of how Tax-Calculator deals with this, (2) if it does not calculate the proper wage variables for income and payroll taxes ask that they do so, (3) make sure that our PE-based and PUF-based data files have the raw information needed to calculate proper wages for income and payroll tax purposes, and (4) make sure that we have variables in a form needed for Tax-Calculator (specifically, we'll want either two versions of wages, or probably preferably, a total wage concept, and information models can use to calculate proper income-tax and payroll-tax wages - but in any event, we'll need to work with what is needed for Tax-Calculator).

@donboyd5
Copy link
Collaborator Author

Thank you @MaxGhenis we will want to stay in synch with you.

@MaxGhenis
Copy link

MaxGhenis commented Feb 11, 2024

That Zotero link didn't work for me, but here's the file. Page 53 confirms your statement.
2015 Public Use Booklet.pdf

Are you intending to impute pre-tax contributions from the ASEC to the PUF? I don't think the PUF itself has this information. It also takes some imputation even within the ASEC as it only reports total retirement contributions and health insurance premiums.

@donboyd5
Copy link
Collaborator Author

donboyd5 commented Feb 11, 2024 via email

@martinholmer
Copy link
Collaborator

@MaxGhenis said in issue #8:

I haven't looked closely at Tax-Calculator but I think they have the same gap TAXSIM and PolicyEngine does today.

I don't think so. Anybody concerned with the issue should read this Tax-Calculator thread, which began in September 2017 and concluded a year later.

@MaxGhenis
Copy link

Thanks @martinholmer, and apologies for the wrong guess. If I'm understanding that thread correctly, you build a model of pension contributions in Tax-Data's impute_pencon.py, using SOI Tax Stats - Individual Information Return Form W-2 Statistics. You used the 2011 version of that data, and SOI has now released through 2018. IIUC, you use neither the SCF (as Dan suggested and which TPC does per PSLmodels/Tax-Calculator#1549 (comment)), nor the ASEC's pension contributions variable.

Do Tax-Data/Tax-Calculator also consider other pre-tax contributions like health insurance premiums and cafeteria plans?

cc @PavelMakarchuk

@martinholmer
Copy link
Collaborator

@MaxGhenis said in issue #8:

Thanks @martinholmer, and apologies for the wrong guess. If I'm understanding that thread correctly, you build a model of pension contributions in Tax-Data's impute_pencon.py, using SOI Tax Stats - Individual Information Return Form W-2 Statistics. You used the 2011 version of that data, and SOI has now released through 2018. IIUC, you use neither the SCF (as Dan suggested and which TPC does per PSLmodels/Tax-Calculator#1549 (comment)), nor the ASEC's pension contributions variable.

That's the way I remember it, but I did that work many years ago. You can double check Tax-Data's impute_pencon.py make sure my memory is correct. Most definitely did not use the SCF or ASEC data.

@martinholmer
Copy link
Collaborator

@MaxGhenis asked in issue #8:

Do Tax-Data/Tax-Calculator also consider other pre-tax contributions like health insurance premiums and cafeteria plans?

I don't think so.

Most "health insurance premiums" are paid directly by the employer as an in-kind part of the employee's total compensation package. So, employer-paid health insurance is not part of an employee's wages or salary.

However, in some cases the employer does not pay the whole premium and asks the employee to pay some of the premium out of the employee's wages or salary. That is always done via the employer's cafeteria plan, so that any employee payment of health insurance premiums is income-tax free.

And, of course, other employee contributions to the cafeteria plan (for child care expenses and out-of-pocket medical expenses, for example) come out of gross wages and salary, and are therefore, not part of taxable wages and salary from the point of view of the income tax.

@feenberg
Copy link

feenberg commented Feb 13, 2024 via email

@MaxGhenis
Copy link

MaxGhenis commented Feb 13, 2024

@feenberg the ASEC has variables for retirement contributions and health insurance premiums. We've updated PolicyEngine to incorporate these into our tax model (noting that only a portion is subtracted from taxable wages and salaries). You can view the implementation at PolicyEngine/policyengine-us#3840.

@feenberg
Copy link

feenberg commented Feb 13, 2024 via email

@MaxGhenis
Copy link

MaxGhenis commented Feb 14, 2024

that link just leads to "There isn't anything to compare" and I couldn't find the relevant code.

Hmm the link takes me to the description, but you can see the code changes directly here: https://github.com/PolicyEngine/policyengine-us/pull/3840/files

The ASEC has both retirement contributions and out of pocket health insurance premiums. Some of each of these (contributions to traditional 401(k) and cafeteria plans) are pre-tax. I've also suggested opportunities to improve imputation of the latter in PolicyEngine/policyengine-us#3873.

We now have a single pre_tax_contributions variable that users can input directly to include the true parts of retirement contributions and premiums that reduce taxable wages and salaries but still incur payroll tax. We impute those from signals in the ASEC, but users can also specify them themselves. If you wanted to avoid making those imputations in TAXSIM and keep it as a rules engine, you could consider a similar approach.

@feenberg
Copy link

feenberg commented Feb 14, 2024 via email

@MaxGhenis
Copy link

Dan - understood. If you'd like you could avoid imputations by adding a variable for pre-tax contributions, and letting users do the imputations themselves. The rules given pre-tax contributions are unambiguous.

(Sorry Don for hijacking this thread for broader discussion.)

@donboyd5
Copy link
Collaborator Author

donboyd5 commented Feb 14, 2024 via email

@nikhilwoodruff nikhilwoodruff added the question Further information is requested label Feb 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

5 participants