****************************************************************** This program simulates in crude fashion the effects of raising the income cap that Social Security taxes apply to from $87,000 to $300,000. This program is self contained in that it does not call in any outside data sets. The assumptions are brain dead simply and usually assume a linear change. Created by: Steve Verdon Created on: 10/25/2003 *******************************************************************; %macro doit(N,ds1); data temp1; retain income 0; do i= 1 to &N; income = 87000+i; output; end; data temp2; set temp1; ADDSS = (income-87000)*.124; proc means data=temp2 mean noprint; var addss; output out=&ds1 (drop=_type_ _freq_) mean=AVG_SS; run; %mend doit; %doit(7100,dsn1) %doit(14200,dsn2) %doit(21300,dsn3) %doit(28400,dsn4) %doit(35500,dsn5) %doit(42600,dsn6) %doit(49700,dsn7) %doit(56800,dsn8) %doit(63900,dsn9) %doit(71000,dsn10) %doit(78100,dsn11) %doit(85200,dsn12) %doit(92300,dsn13) %doit(99400,dsn14) %doit(106500,dsn15) %doit(113600,dsn16) %doit(120700,dsn17) %doit(127800,dsn18) %doit(134900,dsn19) %doit(142000,dsn20) %doit(149100,dsn21) %doit(156200,dsn22) %doit(163300,dsn23) %doit(170400,dsn24) %doit(177500,dsn25) %doit(184600,dsn26) %doit(191700,dsn27) %doit(198800,dsn28) %doit(205900,dsn29) %doit(213000,dsn30) data total; set dsn1 dsn2 dsn3 dsn4 dsn5 dsn6 dsn7 dsn8 dsn9 dsn10 dsn11 dsn12 dsn13 dsn14 dsn15 dsn16 dsn17 dsn18 dsn19 dsn20 dsn21 dsn22 dsn23 dsn24 dsn25 dsn26 dsn27 dsn28 dsn29 dsn30; retain Years 70 Income 87000 Pop 715560; Years=years-1; Income = income+7100; Pop = Pop - 15560; SS_Inc = avg_ss*Pop*years; proc print data=total; sum SS_Inc Pop; format avg_ss ss_inc income pop comma20.; run;