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:
¶ms,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:
¶ms 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: