********** *UI RULES: (called by McFadden Base) ********** *Remember whenever you include nonworkers in the sample to *NOT* incorporate the industry coverage info * (this would cause problems b/c industry is only available for workers) * Log specification: * In the 5-outcome version, the policy variable ("wratio") is just the total income associated with each pos-weeks outcome * Implicitly, this gives the diff between their log income in those categories and the (unknown) log income in the zero week category *Calculates benefits for all regions and years as a function of the weekly wage * Note: incorporates the 1990 VER suspension in NB as follows: * Those workers who had between 10 & 14 weeks in 1980 would have * qualified in 1990 for Q percent of the benefits they got in 1980: scalar Q = .80 ******************** **Now generate total annual UI entitlement: ******************** *first gen weekly benefit amounts (wba): gen wba=. **** *NB: **** *1970: sum wklywage if year==1970 & country==2, detail *without dependents: replace wba=13 if wklywage<30 & children==0 & country==2 & year == 1970 replace wba=16 if wklywage>=30 & wklywage<40 & children==0 & country==2 & year == 1970 replace wba=19 if wklywage>=40 & wklywage<50 & children==0 & country==2 & year == 1970 replace wba=22 if wklywage>=50 & wklywage<60 & children==0 & country==2 & year == 1970 replace wba=26 if wklywage>=60 & wklywage<70 & children==0 & country==2 & year == 1970 replace wba=30 if wklywage>=70 & wklywage<80 & children==0 & country==2 & year == 1970 replace wba=34 if wklywage>=80 & wklywage<90 & children==0 & country==2 & year == 1970 replace wba=38 if wklywage>=90 & wklywage<100 & children==0 & country==2 & year == 1970 replace wba=42 if wklywage>=100 & wklywage~=. & children==0 & country==2 & year == 1970 *with dependents: replace wba=17 if wklywage<30 & children==1 & country==2 & year == 1970 replace wba=21 if wklywage>=30 & wklywage<40 & children==1 & country==2 & year == 1970 replace wba=25 if wklywage>=40 & wklywage<50 & children==1 & country==2 & year == 1970 replace wba=29 if wklywage>=50 & wklywage<60 & children==1 & country==2 & year == 1970 replace wba=33 if wklywage>=60 & wklywage<70 & children==1 & country==2 & year == 1970 replace wba=38 if wklywage>=70 & wklywage<80 & children==1 & country==2 & year == 1970 replace wba=43 if wklywage>=80 & wklywage<90 & children==1 & country==2 & year == 1970 replace wba=48 if wklywage>=90 & wklywage<100 & children==1 & country==2 & year == 1970 replace wba=53 if wklywage>=100 & wklywage~=. & children==1 & country==2 & year == 1970 *1980: replace wba = 0.6*wklywage if year==1980 & country==2 & wklywage <290 & children==0 replace wba = 0.67*wklywage if year==1980 & country==2 & wklywage <290 & children==1 replace wba = 174 if year==1980 & country==2 & wklywage >=290 & wklywage~=. *1990: replace wba = 0.6*wklywage if year==1990 & country==2 & wklywage < 640 & children==0 replace wba = 0.67*wklywage if year==1990 & country==2 & wklywage < 640 & children==1 replace wba = 384 if year==1990 & country==2 & wklywage >= 640 & wklywage~=. **** *ME: **** *generate base period (one year) earnings (bpe), highest quarter earnings (hqe), * and weekly benefit amounts (wba) * for annual weeks worked ranging from 1 to 51: local i=1 while `i' <= 51 { quietly gen bpe`i' = `i' * wklywage quietly gen hqe`i' = bpe`i' if `i'<=12 quietly replace hqe`i' = 12 * wklywage if `i'>12 *note: the wba variables indexed by i refer to ME; the nonindexed variable refers to NB *1970 wbas: quietly gen wba`i' = (1/25)*hqe`i' if year==1970 & country==1 quietly replace wba`i' = 52 if wba`i'>52 & wba`i'~=. & year==1970 & country==1 quietly replace wba`i' = 10 if wba`i'<10 & year==1970 & country==1 *1980wbas: quietly replace wba`i' = (1/22)*hqe`i' if year==1980 & country==1 quietly replace wba`i'=96 if wba`i'>96 & wba`i'~=. & year==1980 & country==1 & children==0 quietly replace wba`i'=144 if wba`i'>144 & wba`i'~=. & year==1980 & country==1 & children==1 quietly replace wba`i'=12 if wba`i'<12 & year==1980 & country==1 & children==0 quietly replace wba`i'=17 if wba`i'<17 & year==1980 & country==1 & children==1 *1990 wbas: quietly replace wba`i' = (1/22)*hqe`i' if year==1990 & country==1 quietly replace wba`i'=180 if wba`i'>180 & wba`i'~=. & year==1990 & country==1 & children==0 quietly replace wba`i'=270 if wba`i'>270 & wba`i'~=. & year==1990 & country==1 & children==1 quietly replace wba`i'=31 if wba`i'<31 & year==1990 & country==1 & children==0 quietly replace wba`i'=46 if wba`i'<46 & year==1990 & country==1 & children==1 local i = `i' +1 } **************************** *Duration of benefits for NB: **************************** *1970 local i=1 while `i' <= 14 { quietly gen dur`i'=0 if year==1970 & country==2 local i = `i' +1 } quietly gen dur15=18.3 if year==1970 & country==2 quietly gen dur16=19.1 if year==1970 & country==2 quietly gen dur17=19.9 if year==1970 & country==2 quietly gen dur18=20.7 if year==1970 & country==2 quietly gen dur19=21.5 if year==1970 & country==2 quietly gen dur20= 22.3 if year==1970 & country==2 quietly gen dur21= 22.8 if year==1970 & country==2 quietly gen dur22= 23.3 if year==1970 & country==2 quietly gen dur23= 23.8 if year==1970 & country==2 quietly gen dur24= 24.2 if year==1970 & country==2 quietly gen dur25= 24.6 if year==1970 & country==2 quietly gen dur26= 23.8 if year==1970 & country==2 quietly gen dur27= 23 if year==1970 & country==2 quietly gen dur28= 22.2 if year==1970 & country==2 quietly gen dur29= 21.6 if year==1970 & country==2 quietly gen dur30= 21 if year==1970 & country==2 local i=31 while `i' <= 51 { gen dur`i' = 51-`i' if year==1970 & country==2 local i = `i' +1 } *1980 local i=1 while `i' <= 9 { replace dur`i'=0 if year==1980 & country==2 local i = `i' +1 } local i=10 while `i' <= 50 { replace dur`i' = 50 -`i' if year==1980 & country==2 local i = `i' +1 } replace dur51=0 if year==1980 & country==2 *1990 local i=1 while `i' <= 9 { replace dur`i'=0 if year==1990 & country==2 local i = `i' +1 } *For weeks 10-13, assign a 50/50 average of what they would have had with a 14-week entrance requirement (0) * and a 10-week requirement (40, 39, 38 and 37 weeks of UI respectively): *replace dur10 = 20 if year==1990 & country==2 *replace dur11 = 19.5 if year==1990 & country==2 *replace dur12 = 19 if year==1990 & country==2 *replace dur13 = 18.5 if year==1990 & country==2 replace dur10 = Q*40 if year==1990 & country==2 replace dur11 = Q*39 if year==1990 & country==2 replace dur12 = Q*38 if year==1990 & country==2 replace dur13 = Q*37 if year==1990 & country==2 local i=14 while `i' <= 50 { replace dur`i' = 50 -`i' if year==1990 & country==2 local i = `i' +1 } replace dur51=0 if year==1990 & country==2 ***************************************************** *TOTAL ANNUAL UI BENEFITS (assuming, where necessary, that you work the same # of weeks each year) ***************************************************** *NB local i=1 while `i' <= 51 { gen benefit`i' = wba*dur`i' if nb==1 local i = `i' +1 } *Benefit calculation for ME local i=1 while `i' <= 51 { *(Aside from the mins and maxes added in below, the total annual UI bens you are entitled to in ME are limited to * one third of your base period earnings) quietly replace benefit`i' = bpe`i'/3 if me==1 *min: quietly replace benefit`i' = 300 if benefit`i'>0 & benefit`i' <300 & year==1970 & country==1 quietly replace benefit`i' = 300 if benefit`i'>0 & benefit`i' <300 & year==1980 & country==1 quietly replace benefit`i' = 694 if benefit`i'>0 & benefit`i' <694 & year==1990 & country==1 *max: quietly replace benefit`i' = 1326 if benefit`i' > 1326 & benefit`i'~=. & me ==1 & year == 1970 quietly replace benefit`i' = 2496 if benefit`i' > 2496 & benefit`i'~=. & me ==1 & year == 1980 quietly replace benefit`i' = 4680 if benefit`i' > 4680 & benefit`i'~=. & me ==1 & year == 1990 *if there are not enough unemployed weeks left in the year to collect your max UI entitlement: quietly replace benefit`i' = (52-`i')*wba`i' if benefit`i'> (52-`i')*wba`i' & benefit`i'~=. & me==1 *Minimum earnings to qualify for any benefits at all: quietly replace benefit`i'=0 if bpe`i'<600 & year==1970 & country==1 quietly replace benefit`i'=0 if bpe`i'<900 & year==1980 & country==1 quietly replace benefit`i'=0 if bpe`i'<2081 & year==1990 & country==1 *non-covered (skip this if the sample includes nonworkers): *quietly replace benefit`i'=0 if agric==1 & country==1 *quietly replace benefit`i'=0 if public==1 & country==1 & year < 1980 local i = `i' +1 } *in both jurisdictions you get no UI if you work 52 weeks/yr: gen benefit52=0 *************************************************************************** *Income differential variable: ratio of total income if work in weeks categories 1 thru 3 vs 4 (FY) *************************************************************************** gen pywage12=0 gen pywage20=0 gen pywage33=0 gen fywage=0 gen checksum12=0 gen checksum20=0 gen checksum33=0 gen checksum52=0 *We'll use 1980 within-category weights throughout (1970 are not available): if femalemodel==0 { *From DStats.do, MEN's weights are: *NEW BRUNSWICK: local W_NB_1_13 "0.92 3.67 2.75 3.67 2.75 3.67 0.00 3.67 1.83 28.44 10.09 30.28 8.26" local W_NB_14_26 "6.20 5.37 8.68 4.55 5.79 2.89 17.77 6.61 8.68 4.13 10.74 8.68 9.92" local W_NB_27_39 "6.15 8.94 2.23 21.79 1.68 13.41 2.23 7.82 7.26 15.64 2.79 3.91 6.15" local W_NB_40_52 "4.09 0.06 1.16 0.18 1.59 1.28 1.04 1.59 4.82 3.29 7.80 1.04 72.07" *MAINE: local W_ME_1_13 "6.49 7.79 7.79 7.79 2.60 6.49 0.00 15.58 6.49 11.69 0.00 24.68 2.60" local W_ME_14_26 "1.30 3.90 7.79 0.65 3.25 0.00 22.73 1.95 3.90 1.30 15.58 9.09 28.57" local W_ME_27_39 "2.14 12.82 0.43 14.96 0.85 15.81 1.28 2.56 5.13 30.34 1.71 7.69 4.27" local W_ME_40_52 "4.01 0.28 0.86 0.16 0.86 1.34 1.26 0.47 3.22 0.67 5.54 1.42 79.91" } if femalemodel==1 { *From DStats.do, WOMEN's weights are: *NEW BRUNSWICK: local W_NB_1_13 "2.24 5.38 4.48 9.42 5.38 5.83 2.69 9.42 4.48 20.18 6.28 17.04 7.17" local W_NB_14_26 "7.41 9.05 11.11 3.29 4.94 3.29 20.58 5.35 5.76 2.06 12.76 6.58 7.82" local W_NB_27_39 "4.85 4.24 3.64 24.85 0.61 12.12 1.82 2.42 10.30 12.12 6.06 5.45 11.52" local W_NB_40_52 "4.81 0.36 1.81 0.60 2.17 1.20 1.56 0.36 4.21 3.25 10.83 0.84 67.99" *MAINE: local W_ME_1_13 "4.35 6.52 6.88 14.86 7.25 8.70 2.90 13.77 1.45 9.78 0.00 21.01 2.54" local W_ME_14_26 "5.78 3.06 19.73 2.38 3.74 1.02 16.67 2.04 2.72 1.70 15.99 5.78 19.39" local W_ME_27_39 "1.08 9.46 0.54 12.16 1.62 15.14 0.81 2.16 7.03 30.81 2.70 10.00 6.49" local W_ME_40_52 "7.00 0.57 1.84 0.42 1.70 1.56 1.63 0.78 4.10 1.77 5.73 1.41 71.50" } *NB, weeks 1-13: local i = 1 foreach W of local W_NB_1_13 { quietly replace pywage12 = pywage12 + (`W'/100)*((wklywage*`i') + benefit`i') if me==0 quietly replace checksum12 = checksum12 + `W' if me==0 local i = `i' +1 } *weights should sum to 100: sum checksum12 if me==0 *ME, weeks 1-13: local i = 1 foreach W of local W_ME_1_13 { quietly replace pywage12 = pywage12 + (`W'/100)*((wklywage*`i') + benefit`i') if me==1 quietly replace checksum12 = checksum12 + `W' if me==1 local i = `i' +1 } *weights should sum to 100: sum checksum12 if me==1 *NB, weeks 14-26: local i = 14 foreach W of local W_NB_14_26 { quietly replace pywage20 = pywage20 + (`W'/100)*((wklywage*`i') + benefit`i') if me==0 quietly replace checksum20 = checksum20 + `W' if me==0 local i = `i' +1 } *weights should sum to 100: sum checksum20 if me==0 *ME, weeks 14-26: local i = 14 foreach W of local W_ME_14_26 { quietly replace pywage20 = pywage20 + (`W'/100)*((wklywage*`i') + benefit`i') if me==1 quietly replace checksum20 = checksum20 + `W' if me==1 local i = `i' +1 } *weights should sum to 100: sum checksum20 if me==1 *NB, weeks 27-39: local i = 27 foreach W of local W_NB_27_39 { quietly replace pywage33 = pywage33 + (`W'/100)*((wklywage*`i') + benefit`i') if me==0 quietly replace checksum33 = checksum33 + `W' if me==0 local i = `i' +1 } *weights should sum to 100: sum checksum33 if me==0 *ME, weeks 27-39: local i = 27 foreach W of local W_ME_27_39 { quietly replace pywage33 = pywage33 + (`W'/100)*((wklywage*`i') + benefit`i') if me==1 quietly replace checksum33 = checksum33 + `W' if me==1 local i = `i' +1 } *weights should sum to 100: sum checksum33 if me==1 *NB, weeks 40-52: local i = 40 foreach W of local W_NB_40_52 { quietly replace fywage = fywage + (`W'/100)*((wklywage*`i') + benefit`i') if me==0 quietly replace checksum52 = checksum52 + `W' if me==0 local i = `i' +1 } *weights should sum to 100: sum checksum52 if me==0 *ME, weeks 40-52: local i = 40 foreach W of local W_ME_40_52 { quietly replace fywage = fywage + (`W'/100)*((wklywage*`i') + benefit`i') if me==1 quietly replace checksum52 = checksum52 + `W' if me==1 local i = `i' +1 } *weights should sum to 100: sum checksum52 if me==1 drop checksum12 checksum20 checksum33 checksum52 *convert to real dollars before taking diffs: *CPIs (1983=100, separately by country): gen CPI= 38.8 if me==1 & year==1970 replace CPI= 82.4 if me==1 & year==1980 replace CPI= 130.7 if me==1 & year==1990 replace CPI= 35.0 if me==0 & year==1970 replace CPI= 75.9 if me==0 & year==1980 replace CPI= 135.0 if me==0 & year==1990 replace pywage12 = 100*pywage12/CPI replace pywage20 = 100*pywage20/CPI replace pywage33 = 100*pywage33/CPI replace fywage = 100*fywage/CPI *One can use any constant for wratio0-- it just affects the choice-specific intercepts, and not the coefficients or predictions. gen wratio0 = 0 gen wratio12= log(pywage12) gen wratio20= log(pywage20) gen wratio33= log(pywage33) gen wratio52 = log(fywage) sort country year by country year: sum wratio12 wratio20 wratio33 wratio52