Switch Law Year - Example 3

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

/* Example 3 - Switch Tax Year */ libname t "/home/data/soi/e"; options nocenter; %INCLUDE 'taxcalc.sas'; data; set t.puf_2002; weight = S006/100; %INIT flpdyr = 2002; %COMP; tax02law = c10300; flpdyr = 2003; inflat = 1.5925/1.554; array E %EVALUES; do over E; E = E*inflat; end; %COMP; tax03law = c10300; at02levl = c10300/inflat; keep tax02law tax03law at02levl weight; run; proc means mean; weight weight; run;

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.