Sometimes it is easier to change the data

Someimes you can change the data instead of the law. For example, a secondary earner deduction of 10% can be simulated by reducing swage by 10% before submitting the data to Taxsim. (Remembering to account for which taxpayer has the lessor income and other details).

But some changes must be made in the Fortran code

[The following alies to taxsimtest as of September 12, 2024]

For the moment the only some parameters of the law can be changed "in the field", and nothing about law structure. You are welcome to ask for additional capabilities, often these can be provided in couple of days if the programming effort is small. Write or call with your needs.

On the Taxsim web page

On the web page they can be specified in the "User Supplied Tax Parameters" box. For example: year=2021 rtbase=.30 zbr(2)=31000 in the box (just above "submit") would change the EIC subsidy rate in 2021 only to .3 and the zero bracket amount for joint returns to 31000. It would have no effect in other years, or if the web form was used to submit a file. The lists of available parameters are below.

Usage in Stata

The parameters are options on the taxsim command line. For example: taxsim ,replace year=2021 xyzbrks(8)=793750 changes the top bracket threshold for single returns to 793750. In the returned dataset the modified paramters will be noted in the dataset description and the description for variable cdate, up to the 80 character limitation in Stata.

Usage with Low-Level-Taxsim

The new parameters are read as a Fortran Namelist. If running locally You can place the namelist in a file in the current directory named taxsim.nml or you can put it before the list of variable names in the csv file for the local or remote cases.

The namelist format for input is a bit unusual. The namelist must begin with ¶ms and and with a forward slash (/). Elements may be in any order. Commas, spaces or newlines separate elements. You can specify a single element of a vector or the entire vector. Here is an example of a taxsim.nml file:

&params,year=1987,xyzrates(8)=.42, xyzrates(16)=.43 xyzrates(24)=.44 zbr=10000,15000,20000, / This changes the 1987 tax rates in the top bracket to .42,.43 and .44 for single, joint and head-of-household returns respectively. Then it changes the respective zero bracket amounts for the same three filing types..

Here is an example of placing the parameter file in the standard input to Taxsim, which would be the only possibility for remote low-level access:

&params law=1987 pexmp=5000 / mstat,year,pwages 2,1987,50000 2,1987,60000 2,1987,70000 Note that you can only modify the parameters for a single year, if you include other years in the csv they will not receive any special treatment.

Available parameters

At this time the following parameters are available:

law
This 4 digit year applies to all the parameters and is the only required element.
zbr
This is the Zero Bracket Amount
pexemp
This is the Personal Exemption, zero in recent years
xyzbrks
There are 8 bracket thresholds for each of single, married and HoH filing status. The first bracket is in elements 1, 9 or 17 of the brackets vector depending on filing status (in that order). The top bracket is always 1.0e29 (standing in for infinity) and occupies elements 8, 16 and 24.
xyzrates
These are the rates that apply to the brackets. rate(i) applies to all the income above xyzbrks(i-1) up to xyzbrks(i).
disq
Property income above this level will render the taxpayer ineligible for the EITC.
eicmax
Maximum EITC amount.There are 8 values per year. The first 4 are for 0 to 3 dependents on a single or HoH return. The remaining 4 are for 0 to 3 dependents on a joint return.
eicsubr
The subsidy rate in the EITC.
eicpor
The clawback rate in the EITC.
chmax
Child Tax Credit maximum per child.
ssmax
Social Seciurity Maximum Taxable earnings.

Notes: