* COMPUTER OPERATIONS REQUEST #522
TO: Tess Hauser, WLS CORS
FROM: Jeff Hayes
DATE: November 21, 1994
LAST REVISED: March 13, 1995
RE: Job History Summary variables
Below is the code to create four new summary variables:
1) Years worked between 1975 and 1994 (WORKTOT/RF008JSD)
2) Number of spells with unuseable terminal dates (BADSPELLS/RF007JSE)
(A spell with unuseable dates is not included in WORKTOT.)
3) Tenure with current/last employer (TENURE/RF054JCE)
4) Number of years since R worked (YRNOWORK/RF009JSD)
This code needs to be placed after the employment histories have been
"rationalized" as it depends on the dates defining employment spells and the
pattern (RF001JS) variable.
Following the code are the marginal distributions by 1975 sex of respondent.
WORKTOT is a count of the years between 1975 and 1994 (for the few interviews
done in January 1994) of the years in which the respondent worked. While the
dates defining employment spells look like century months, the questionnaire
only asks respondents to report the year. If they were employed for any part
of a year, they get counted as working in that year. If a spell is open at
interview or the respondent has started a job within the last six months at
interview, s/he gets counted up through the interview year.
Several things need to be noted. First, we do not have complete job histories.
Approximately ten percent of the respondents held jobs that we do not ask
about. Second, if either the beginning spell date or the ending spell date are
unknown, that spell is omitted from this total. There are fifty cases where
date non-reporting leads to no information on length of any work spells, these
are coded 99 and labelled "insufficient data". The 357 cases that report never
working are coded 98 and labelled "inapplicable".
An earlier version of this variable allowed overlapping spells to count twice
in terms of work-years. Subsequent conversations with others working on the
employment history data suggested that the current strategy would be more
useful.
BADSPELL is a count of the spells, mentioned above, with non-reported
beginning or ending dates. I have proposed only keeping this summary variable
rather than flagging each spell for incomplete data. Again, the 357 cases that
report never working are coded 98 and labelled "inapplicable".
TENURE is the number of years that the respondent has worked for the current or
last employer. I propose adding this to the tape for the current/last job
because we measure so many characteristics of this job that I expect it to be
the most often analyzed. Conceptually, each job spell could include a tenure
measure.
The measure is of time working for one employer. It does not take into account
the limited information we have on job changes with this employer. If the
beginning year is the same as the ending year or if the respondent had started a
job within the last six months, s/he is coded 0.5. Those that never worked for
pay are coded 98 (inapplicable). Those without complete dates defining the
current/last employment spell are coded 99 (insufficient data). For those
still in the 1975 job, the year of the 1975 starting dates is used to define
the beginning of the spell. There is one case that reports being with the
current/last employer for 46 years.
Finally, I created a variable (YRNOWORK) that is the number of years since the
respondent last worked. Currently working respondents are coded zero. Those
the never held jobs are coded 98 (inapplicable) and those without an ending date
to their last job (which they no longer hold) are coded 99 (insufficient data).;
*** 1) Years worked between 1975 and 1994 (WORKTOT) ***;
*** 2) Number of spells with unusable terminal dates ***;
*** (A spell with unusable dates is not included in WORKTOT.) ***;
*** 3) Tenure with current/last employer (TENURE) ***;
*** 4) Number of years since R worked (YRNOWORK) ***;
array start RF001J1C RF001J2C RF001J3C RF001J4C; *** yr st w emp;
array stop RF002J1C RF002J2C RF002J3C RF002J4C; *** yr left emp;
array startx byearx1-byearx4; *** year started with employer;
array stopx eyearx1-eyearx4; *** year left employer;
array spflag flag1-flag4; *** terminal date(s) missing;
array lastyr lyear1-lyear4; *** year last worked;
do over start;
if (start lt 9997) then startx=floor(start/12);
else startx=start;
if (4 le stop le 9996) then stopx=floor(stop/12);
else if (0 le stop le 3) then stopx=vdyy;
else stopx=stop;
if (startx le 75 le stopx le 94) then work75=1;
if (startx le 76 le stopx le 94) then work76=1;
if (startx le 77 le stopx le 94) then work77=1;
if (startx le 78 le stopx le 94) then work78=1;
if (startx le 79 le stopx le 94) then work79=1;
if (startx le 80 le stopx le 94) then work80=1;
if (startx le 81 le stopx le 94) then work81=1;
if (startx le 82 le stopx le 94) then work82=1;
if (startx le 83 le stopx le 94) then work83=1;
if (startx le 84 le stopx le 94) then work84=1;
if (startx le 85 le stopx le 94) then work85=1;
if (startx le 86 le stopx le 94) then work86=1;
if (startx le 87 le stopx le 94) then work87=1;
if (startx le 88 le stopx le 94) then work88=1;
if (startx le 89 le stopx le 94) then work89=1;
if (startx le 90 le stopx le 94) then work90=1;
if (startx le 91 le stopx le 94) then work91=1;
if (startx le 92 le stopx le 94) then work92=1;
if (startx le 93 le stopx le 94) then work93=1;
if (startx le 94 le stopx le 94) then work94=1;
if (vii00 eq 1) then do; *** job held only 6 mos.;
if (vdyy eq 92) then work92=1;
else if (vdyy eq 93) then work93=1;
else if (vdyy eq 94) then work94=1;
end;
spflag=0;
if (start eq 9997 or start eq 9999 or stop eq 9997 or stop eq 9999) or
(start eq 9998 and (0 le stop le 1200)) then spflag=1;
if (4 le stopx le 94) then lastyr=stopx;
end;
badspell=sum(flag1,flag2,flag3,flag4); *** undefined spell count;
worktot=sum(of work75-work94);
format worktot 2.0 badspell 1.0;
yrlastwk=max(of lyear1-lyear4);
if (vii00 eq 1) then yrlastwk=vdyy; *** no work 1975 to 1992/93;
if (RF001JCD lt 9997) then byearlx=floor(RF001JCD/12);
else byearlx=RF001JCD;
if (4 le RF002JCD le 9996) then eyearlx=floor(RF002JCD/12);
else if (0 le RF002JCD le 3) then eyearlx=vdyy;
else eyearlx=RF002JCD;
if (30 le byearlx le 94) and (30 le eyearlx le 94) then
tenure=eyearlx-byearlx;
if (75 le yrlastwk le 94) then yrnowork=vdyy-yrlastwk;
if (worktot le 0) then worktot=99; *** insufficient data;
if RF001JS eq 1 then do; *** inapplicable - no work;
worktot=98;
badspell=8;
yrnowork=98;
yrlastwk=98;
tenure=98;
end;
else if (RF001JS gt 1) and (RF001JCD gt 9996 or RF002JCD gt 9996) then do;
tenure=99; *** insufficient data reported;
yrnowork=99;
end;
if (RF002JCD eq 9997 or RF002JCD eq 9999) then do;
yrlastwk=99; *** insufficient data reported;
yrnowork=99;
end;
if tenure eq 0 and (vii00 eq 1 or eyearlx eq byearlx) then tenure=0.5;
tenure=tenure*10; *** make decimal implicit;
format tenure 3.0;
RF007JSE = badspell;
RF008JSD = worktot;
RF009JSD = yrnowork;
RF054JCE = tenure;