/* Social Security Supplementary Income for United States - Based on Chapter 21 of SS Hanbook. ---------------------------------------------------- */ program define SSiBenefit, syntax varlist [if], gen(namelist) marksample touse tokenize `varlist' #delimit; tempvar hy ass mar yr; ///1. Assign Data to Variables ------------------- qui gen `hy' = `1' if `touse'; qui gen `ass' = `2' if `touse'; qui gen `mar' = `3' if `touse'; qui gen `yr' = `4' if `touse'; /// 2.A Important Indicators ---------------------- tempname fbr_sing fbr_coup ass_sing ass_coup; scalar `fbr_sing' = 637*12; scalar `fbr_coup' = 956*12; scalar `ass_sing' = 2000; scalar `ass_coup' = 3000; tempvar inctest asstest test; qui gen `inctest' = `hy'<=`fbr_sing' if `touse'&`mar'==0; qui replace `inctest' = `hy'<=`fbr_coup' if `touse'&`mar'==1; qui gen `asstest' = `ass'<=`ass_sing' if `touse'&`mar'==0; qui replace `asstest' = `ass'<=`ass_coup' if `touse'&`mar'==1; qui gen `test' = `inctest'*`asstest' if `touse'; tempvar ssiben; qui gen `ssiben' = `test'*max(`fbr_sing'-`hy',0) if `touse'&`mar'==0; qui replace `ssiben' = `test'*max(`fbr_coup'-`hy',0) if `touse'&`mar'==1; tokenize `gen'; qui gen `1' = `ssiben' if `touse'; end;