Switch Law Year - Example 3

In this example we calculate the tax using the law from one year and the data from another.

quietly include taxcalc use /home/data/soi/e/es/insole02 generate soiyr = 2002 gen weight = s006/100 init replace flpdyr = 2002 comp generate tax02law = c10300 replace flpdyr = 2003 generate inflat = 1.5925/1.554 quietly { foreach evar of global EVALUES { replace `evar' = `evar'*inflat } } comp generate tax03law = c10300 generate at02levl = c10300/inflat keep tax02law tax03law at02levl weight format %9.0f tax02law tax03law at02levl summarize [iw=weight],format

Notes

TAXCALC maintains two variables for the year. SOIYR is the data year the file is intended to support (but it may contain late returns from prior years) and FLPDYR is the year for the tax code to apply to that data. In this example 2003 law is applied to 2002 data after the data is inflated to 2003 levels. We also report the value of revenue deflated back to 2002 levels.

If FLPDYR is not specified explicitly it is taken from the SOI dataset.

The macro EVALUES is a list of all the dollar values in the data used in our calculation of tax, but not any other data values or codes such as XOCAH. The calculation will take place with the inflated data, and the intermediate and final values will be at 2005 levels. In this case the inflation factor is 2.48%.

A pitfall with this type of calculation arises from differences in data items supplied for different years. For this reason the results are probably not suitable for making revenue estimates, however they are likely quite suitable for use as instruments for the change in tax or tax rate across past tax reforms.

The presence of late returns allows us to check the overall reliability of these cross-year estimates and a program to do so is among our tests.