Internet TAXSIM Version 9

Internet TAXSIM

Version 9

Note: taxsim 9 has been obsoleted. It will persist for replications only. It has not received any bug fixes since Augest 2020 and does not include TCJA. Please update to the latest version.

TAXSIM is the NBER's FORTRAN program for calculating liabilities under US Federal and State income tax laws from individual data. Scholars interested in using TAXSIM to calculate tax liabilities and marginal tax rates should follow the these instructions for submitting data. Liabilities are returned as an online web page in a few seconds. The program itself is available to NBER associates and government agencies.

The federal law is accurate to the best of our abilities through 2023, including the ACA taxes on earned and unearned income (but not the penalties for lacking health insurance). State tax is 1977 through 2016 with later years calculated using the "real" value of the 2016 law.

A Stata .ado file interface to TAXSIM is available. Mac users also see here. SAS and command line usage is described here . An experimental R interface is also available. In the list of variables below the Stata and R names are in bold.

Further changes will be noted in a change log .

Upload a file with TAXSIM data:

File to upload:
Marginal Rates (finite differences) with respect to: Other Income Wage Income Taxpayer Earnings Spouse Earnings Long Term Gains Other Deductions Dividends Mortgage Interest Don't bother
Show detailed intermediate calculations: Off On Labeled

Optional tax plan (leave blank)

OR... Calculate liabilities for one taxpayer (fill every box)

Marginal Rates with respect to: Other Income Wage Income Taxpayer Earnings Spouse Earning Long Term Gains Dividends Other deductions Dividends Mortgage Interest Don't bother

Optional tax plan (leave blank)

1. taxsimid Case ID (arbitrary, but must be a non-negative numeric)
2. yearTax year ending Dec 31(4 digits between 1960 and 2023, but state must be zero if year is before 1977 or after 2023. We don't have code for state laws before 1977.) State tax laws are effectively inflated by 2.5%/year after 2016.
3. state (SOI codes. These run from 1 for Alabama to 51 for Wyoming and are not the Census or PSID codes. See state list,and also item two above.). Use zero for "no state tax calculation".
4. mstat Marital Status (1. single or head of household (unmarried) 2. joint (married) 8. Dependent taxpayer.) Note that Married-separate is not usually desirable under US tax law.
5. depx Dependent Exemptions (including children of all ages, but see #19 below)
6. agexThe age of the primary taxpayer times 100 plus the age of the secondary taxpayer (if any). For example 6563 would a 65 year old married to a 63 year old. If zero we assume the taxpayer is eligible for the EITC and the full AMT exclusion but not for any age exemption or supplemental standard deduction. It is not an error for a taxpayer to be over 99 years of age but the secondary taxpayer must be of legal marriagable age. 10301 would be a 102 year old married to a 101 year old. 6500 would be an unmarried 65 year old.

Prior to March 2016 this field was the number of taxpayers 65 years of age or more, and that usage is still accepted for backward compatibility.

7. pwages Wage and salary income of Taxpayer (include self-employment).
8. swages Wage and salary income of Spouse (include self-employment).
9. dividends Dividend income (qualified dividends only for 2003 on).
10. otherprop Other property income, including
  • interest
  • unearned partnership and S-corp income
  • rent
  • alimony
  • fellowships
  • non-qualified dividends
  • state income tax refunds (itemizers only)
  • capital gains distributions on form 1040
  • other income or loss not otherwise enumerated here
Adjustments and items such as
  • alimony paid
  • Keogh and IRA contributions
  • foreign income exclusion
  • NOLs
can be entered here as negative income.(+/-) Note that for years 2013+ all of this value will be included in the calculation of Medicare NIIT. If you have non-property income included, it would better be added to Unemployment Compensation (Item 18) for years 2013+
11. pensions Taxable Pensions and IRA distributions
12. gssi Gross Social Security Benefits
13. transfers Other non-taxable transfer Income such as welfare, workers comp, veterans benefits and child support that would affect eligibility for state property tax rebates but would not be taxable at the federal level.
14. rentpaid Rent Paid (used only for calculating state property tax rebates)
15. proptax Real Estate taxes paid. This is a preference for the AMT and is is also used to calculate state property tax rebates.
16. otheritem Other Itemized deductions that are a preference for the Alternative Minimum Tax. These would include Obviously most of these will not be available in the typical survey, which will affect the accuracy of the tax calculation but won't disturb the software. Do not include real estate taxes or state income tax as they will be calculated from other data on this page. A state sales tax deduction will be calculated according to publication 600. If items 15,16, 20 and our calculation of state income tax do not exceed the standard deduction, then the taxpayer will be given the standard deduction instead.
17. childcare Child care expenses.
18. ui Unemployment compensation received.
19. depchild Number of dependents under age 17 for the child tax credit. There is a work-around for more detailed specification of dependent ages.
20. mortgage Deductions not included in item 16 and not a preference for the AMT, including (on Schedule A for 2009)
  • Deductible medical expenses not included in Line 16.
  • Motor Vehicle Taxes paid (line 7 of schedule A)
  • Home mortgage interest (line 15)
  • Charitable contributions (line 19)
  • Casulty or Theft Losses (line 20)
21. stcg Short Term Capital Gains or losses. (+/-)
22. ltcg Long Term Capital Gains or losses. (+/-)

Return either a URL on our server a live page.

Instructions for preparing data for TAXSIM.

If you only need a calculation for one taxpayer you can just fill in the blank box beside each of the 22 variables listed above and select "calculate". Don't leave any box blank - use zeroes for none. Also use a zero for item 3 to indicate 'no state tax'. If you leave any blanks, the caclulator will fail silently. Sorry.

If you have many cases, you can prepare a file, with each line representing a tax return. The file may have any number of lines, and we return a web page with tax liability, etc. for all cases within a few seconds.

Each line of your file should have 22 values separated by spaces or commas - one value for each of the 22 fields shown above in the "Individual taxpayer" section.

A list of state codes and a crosswalk of Census state codes to SOI codes are available, but you have to do the conversion yourself. If you don't want state tax calculations, just set the state id to zero.

This is a simplified list of input variables selected to encompass what might be available in a non-tax oriented survey such as the Survey of Consumer Finance or the Consumer Expenditure Survey. Henry and Day have a comparison of income concepts in several surveys which may be helpful. For labor market surveys such as the CPS, you will have to impute (perhaps just a zero) some deduction items. These items are rich enough to cover the ordinary and supertax brackets, the earned income credit, the child care credit, the partial taxation of Social Security, and UI, the secondary earner deduction, the maximum tax on earned income, the AMT, capital gains preferences and other important features of the tax code. At the state level, low income allowances, property and rent credits are calculated if data is available.

If you don't know the wage split between husbands and wives, you can put it all in one category. The computer won't get the perfect answer, but only you can judge the suitability of the simplification. Obviously ignored in this calculation are some limits, floors and ceilings on deductions, all adjustments, esoteric tax preferences, separate filing etc. These are available in the full TAXSIM model used internally at the NBER, but have been left out of Internet TAXSIM for the sake of simplicity.

A number of states allow optional separate filing for husbands and wives. The tax calculator tries both options and selects the lower tax. If separate filing is chosen non-wage income and deductions are split equally.

Here is a sample entry for a single parent of one child in Idaho with only labor income, a $1000 short term capital loss and $2000 in child care expenses. Notice that no missing value indicator is used - zero amounts are coded as zero.:

12345 1989 13 3 1 0 30000 0 0 0 0 0 0 0 0 0 2000 0 1 0 -1000 0

Sample input and output files are are available to allow users to make a quick test of the functioning of the server. To run the test right click on the sample file link to download the one case test file to your PC. Then submit it back to our server using the file selection box above. Compare the values returned with the cannonical output file stored on the server. If they are the same, the server has passed a simple test.

The file may include any number of data lines. While the format is flexible, and values may be of variable length, each value must be separated from the next by one or more spaces or a single comma. Tabs won't work. If one line is short of values, the next will be read to make up the set of 22, but a new case always begins on a new line. We cannot read .prn files, or any file that uses commas or dots to mark thousands. Spreadsheet files of any kind can not be read. Before uploading your file please check for the following common errors:

  • missing value codes (na, dot, -9, etc)
  • out of range state id
  • asterisks
  • value labels anywhere in the input data
  • negative items (except items 10, 21 and 22)
  • invalid year
  • not having 22 values per case
  • commas embedded in values
  • tabs between values
  • binary files, (.dta, .xls, .doc, etc).

The tax calculator stops on any conversion error or value out of range and returns a range error with the case ID.

Some users are concerned about imputations. Internet TAXSIM only does only one. Social security taxes on wages and business income are imputed and the result used in the calculation of state income tax for the states that have a deduction for that tax. Anything not listed above becomes a zero on the Form 1040. Zero is always a valid entry, although it may be inaccurate.

Marginal Tax Rates

In law, the deduction for state tax on the federal return or federal tax on the state return is based on amount paid, not liability. In Taxsim, the deduction is for liability, raising an issue of simultaneity which is resolved by iteration. For example, assuming the taxpayer is an itemizer on both returns, and that they are in a state that allows a deduction for federal tax, then an increase in the wage of a dollar, and that the federal bracket rate is .1 and the state rate is .05, then an additional dollar of wage increases the federal tax by 10 cents in the first round. Then the state tax is calculated and it goes up by .05*.9 = .045. That is a deduction from the federal tax, and so the second round starts with federal income up by only .965, not a full dollar. And so on for 3 rounds.

There are many notches in the tax law. While most are small, they generate implausible marginal tax rates that are probably not well suited for analytical use. TAXSIM uses four strategies to reduce the number of notches affecting marginal rate calculations.

  1. Since most notches occur at integer dollar boundaries, we add .1 cent to income for every taxpayer.
  2. Where step functions are used in the law, we do a linear interpolation along the steps.
  3. The TAXSIM calculation of marginal rates is based on a very small finite difference (1 cent) to minimize the chance of encountering a discontinuity in the tax function, and to make such a discontinuity very obvious if it occurs. For example, a discontinuous dollar jump in tax liability would result in a 10,000 percent tax rate, and be immediately noticable.
  4. If the tax rate is larger in absolute value than 100% (federal) or 25% (state) the finite difference is taken again, but subtracted rather than added. Any remaining unusual marginal rates should be called to our attention.

These effective marginal rates are important to us, because one of the most important uses TAXSIM can be put to is calculating correct after-tax prices in models of economic behavior. A problem has been the presence of decreasing marginal tax rates (notches) and otherwise implausible marginal rates in these calculations. We maintain a list of significant notches that we have noticed. Although notches generally involved very small sums of money, they could have disproportionate effects on the results of a linear regression, which is sensitive to the squared difference of any observation from the mean.

All calculations are done in double precision, so the small finite difference should not reduce accuracy. The alternative strategy of taking a large difference to dilute the notch was not a success when tried.

Nevertheless, most problems arise from actual notches in the tax laws. For example, in the federal law the child care credit is an integer percent of child care expenses, depending on AGI. In this case we have used a smooth interpolation between adjacent percentages even though the tax code prescribes a step function. For the intended purpose of TAXSIM, a little smoothing is a good thing. Especially at the state level some credits are just a fixed amount for taxpayers with income less than X. In that case the range for an smoothing isn't obvious and we have not done any.

Sophisticated users may observe that since notches are part of the law, our strategems bias the results towards lower marginal rates. This is true, but we judge the reduction in variance to be worthwhile.

We are very interested in other solutions to this problem, and suggestions are welcome.

Since the federal and state tax liabilities may depend upon each other, the calculations are iterated, with the calculated state tax entered on the federal form as a (potential) deduction and the federal tax similarly placed in the state calculation. (Yes, we know that in law it is only lagged taxes that matter, but that is less interesting for our purposes). A sales tax deduction is available from 2002 on where it exceeds the state income tax. This is taken from regressions based onIRS publication 600. For tax years after 2007, the 2007 coefficients are used (with an allowance for expected inflation). Refundable credits appear as negative liabilities.

In many cases the marginal rate of tax taken from schedule X, Y or Z of the form 1040 correctly characterizes the tax wedge. But for many taxpayers, their effective marginal rate is affected by a phase-outs other special provision of the tax code. The following claw-backs may affect the marginal rates calculated here:

  1. Deduction Phaseout
  2. Exemption phaseout 1991+
  3. Child Tax Credit
  4. Child Care Credit
  5. Earned Income Credit
  6. Alternative Minimum Tax
  7. Exemption Surtax 1988-1996
  8. Unemployment Insurance
  9. Maximum Tax on Earned Income
  10. General Tax Credit

The marginal rate on "wage income" is an earnings weighted average of the rates on the primary and secondary earners, or equal weights if both are non-workers. The estimate of FICA tax includes both employer and employee portions, and ignores the favorable treatment of self-employment income.

If only a single case is uploaded, intermediate calculations are shown for the base case, and after adding a dollar to income. Also, the analytic effect of each of these clawbacks on the marginal rate for the primary earner is itemized. (This calculation doesn't change if you asked for a different marginal rate - it is always the primary earner). If multiple cases are uploaded, the finite difference is only ten cents, which is more effective at avoiding notches.

Sometimes anomalies have arisen from defects in our FORTRAN code, these have been corrected where we have found them or they have been pointed out to us.

The 9 columns of results returned by default are:

  • v1 = taxsimid = Case ID
  • v2 = year = Year
  • v3 = state = State
  • v4 = fiitax = Federal income tax liability including capital gains rates, surtaxes, AMT and refundable and non-refundable credits.
  • v5 = siitax = State income tax liability
  • v6 = fica = FICA (OADSI and HI, sum of employee AND employer)
  • v7 = frate = federal marginal rate
  • v8 = srate = state marginal rate
  • v9 = ficar = FICA rate

    Marginal rates are with respect to wage income unless another rate is requested. If detailed intermediate results are requested, the following 32 columns of data are added:

  • v10 = Federal AGI
  • v11 = UI in AGI
  • v12 = Social Security in AGI
  • v13 = Zero Bracket Amount
  • v14 = Personal Exemptions
  • v15 = Exemption Phaseout
  • v16 = Deduction Phaseout
  • v17 = Deductions Allowed (Zero for non-itemizers)
  • v18 = Federal Taxable Income
  • v19 = Tax on Taxable Income (no special capital gains rates)
  • v20 = Exemption Surtax
  • v21 = General Tax Credit
  • v22 = Child Tax Credit (as adjusted)
  • v23 = Additional Child Tax Credit (refundable)
  • v24 = Child Care Credit
  • v25 = Earned Income Credit (total federal)
  • v26 = Income for the Alternative Minimum Tax
  • v27 = AMT Liability after credit for regular tax and other allowed credits.
  • v28 = Federal Income Tax Before Credits (includes special treatment of Capital gains, exemption surtax (1988-1996) and 15% rate phaseout (1988-1990) but not AMT)
  • v29 = FICA

    The last 11 columns are zeroed if no state is specified:

  • v30 = State Household Income (imputation for property tax credit calculation)
  • v31 = State Rental Expense (imputation for property tax credit calculation)
  • v32 = State AGI
  • v33 = State Exemption amount
  • v34 = State Standard Deduction
  • v35 = State Itemized Deductions
  • v36 = State Taxable Income
  • v37 = State Property Tax Credit
  • v38 = State Child Care Credit
  • v39 = State EIC
  • v40 = State Total Credits
  • v41 = State Bracket Rate

The state tax calculators are more comprehensive than the list of variables above would imply.

In the case of the marginal rate on wage income husbands and wives will have different tax rates if the secondary earner deduction is in effect, or if one is above the social security taxable maximum and the other is not.

Bug Reporting

If you suspect any case has been calculated incorrectly, please extract that case (or a exemplar, if there are many cases) and run it in individual taxpayer mode. Examine the output to see if it suggests why the result is a surprise, but if you are still of the opinion that TAXSIM got it wrong, please set the case ID (variable 1) to "-1" and email the output web page to me with a statement of what you think is wrong. I will get back to you within a couple of days with an explanation or a fix. It is important that you not send large files or attachments. Just send an email with a few cases, the TAXSIM response and the reason you believe the response to be in error.

We do answer all mail, and we do follow up on queries, but it is important to abide by the guidelines in the previous paragraph. An email message with the statement that "TAXSIM is broken", or even "state x is broken for feature y" will be returned with a request for an example in Internet TAXSIM format as described above. Once we get that, we will compare our results with hand generated results done from a tax form and any problem will soon be resolved. Comments from users have led to significant improvements in the program, and are almost always resolved within 48 hours.

Some users have expressed concern about our ability to process large files, but files up to 200,000 cases are not a problem. Larger files should probably be broken up and run in the evening. Anytime you are getting timed out, please wait several hours and try again, as the time-outs are a sign that something is overloaded.


Users of the AHEAD and HRS are reminded that they are not permitted to send state identifiers to us. If such users need state tax calculations they should set the state id to "-1", in which case the server will return 51 records for each record received, one for each possible state. You can then pick our the appropriate result on your authorized computer. Don't laugh - it works.

Random Notes

Married folk do not file separate returns in the US, except in unusual circomstances. There is a tax penalty compared to joint filing in almost all cases.

Negative taxes and negative marginal rates are due to refundable tax credits, such as the Earned Income Credit (EIC) and the Additional Chlld Tax Credit.

The FICA estimate includes both employee and employer tax.

For more information about TAXSIM see:

Feenberg, Daniel Richard, and Elizabeth Coutts, An Introduction to the TAXSIM Model, Journal of Policy Analysis and Management vol 12 no 1, Winter 1993, pages 189-194.

This paper and this URL ( should be cited if any results from TAXSIM are circulated or published. If you intend to make any serious scholarly (or other) use of Internet TAXSIM you should speak with me about your project on the telephone. I am at 617-588-0343 and can offer advice etc. Don't think I am overwhelmed by calls and won't want to talk with you - I am interested in what people are doing with this tool. Sometimes I can create specialized versions for particular projects.

Daniel Feenberg
1050 Mass Ave.
Cambridge MA 02138

Date last modified: February 13,2023