NLSY79 Appendix 29: Date of Interview Current Status Variables

NLSY79 Appendix 29: Date of Interview Current Status Variables

The recently released 1979-2018 NLSY79 online database contains a set of variables for survey years 1980-2018 with information on the respondent’s labor force status at each date of interview. The 2018 variables are:

DOI_EMPLOYED

  

DATE OF INTERVIEW STATUS – EMPLOYED

DOI_HOURS_WORKED

 

DATE OF INTERVIEW STATUS – HOURS WORKED

DOI_RETIRED

 

DATE OF INTERVIEW STATUS – RETIRED

DOI_DISABLED 

 

DATE OF INTERVIEW STATUS – DISABLED

 

Below is a description of these variables and the process by which they were constructed.

Variable Description

In survey years 1979-1998 and 2006, the NLSY79 included a heavily used variable called Employment Status Recode (ESR) for each year. These variables represented the respondent's employment status during the survey week and were based on a very specific set of questions that mirrored the actual monthly Current Population Survey. Because ESR can only be computed from those specific questions, it cannot be computed in a strictly equivalent way in survey years in which the CPS section was not fielded as part of the NLSY79.

Many inquiries have been received concerning the missing ESR variables in non-CPS survey years. The Date of Interview Current Status (DOI) variables are intended to help provide a similar concise picture of a respondent's current status on the date of interview. The DOI variables provide a snapshot, capturing whether on the interview date the respondent:

  • was employed (DOI_EMPLOYED)
  • worked more or less than 30 hours per week (DOI_HOURS_WORKED)
  • considered herself/himself retired or reported current retirement status during the course of the survey, regardless of employment status (DOI_RETIRED)
  • considered herself/himself disabled, or reported current disability status in the course of the survey, regardless of employment status (DOI_DISABLED)

Users should note that the working/retired/disabled statuses are not necessarily mutually exclusive within single survey years, or continuous through multiple survey years. For example, a respondent may report that s/he is retired and disabled, but also working in some capacity at a single interview point. Likewise, a respondent who reports herself/himself disabled at one point in time may not be disabled (or provides no evidence of disability) at a later interview date. Similarly, someone who reports retirement at an earlier survey date may be working and not be identified as retired at a later survey date. For instance, respondents who have reported retirement from the military or a civil service/law enforcement position at a relatively early age may go on to a second full-time career and be identified only as employed in later years. An examination of current status variables in multiple years is necessary to determine if a respondent ever identified as retired/disabled, even if their status variables in the most current survey years do not reflect these reports.

Users should note that because the Date of Interview Current Status variables are based on weekly arrays, users may encounter a subset of cases that are assigned an "employed" status in these variables but report that they are "not currently working" in the actual survey.

Variable Creation

DOI_EMPLOYED – DATE OF INTERVIEW STATUS – EMPLOYED
These variables are based on codes in the Work History WEEKLY LABOR STATUS array. If a job number or a code for active military enlistment is present in the array for the week of interview, the respondent is assigned a current status of "1 - working." If the array for that week contains a code for unemployed or out of the labor force, the respondent is assigned a current status of "0 - not working."

DOI_HOURS_WORKED – DATE OF INTERVIEW STATUS – HOURS WORKED
The hours worked are determined from the Work History HOURS WORKED array. Those with 0 hours worked are assigned a -4 code. Respondents who worked between 1-29 hours during the interview week are assigned a code of "0 – less than 30 hours." Respondents who worked 30 or more hours that week are assigned a code of "1 – 30 hours or more."

DOI_RETIRED – DATE OF INTERVIEW STATUS - RETIRED
Current retirement status at the date of each interview was established by using available questions that allow respondents to specifically report retirement in a response category. There are only one or two such question opportunities in the NLSY79 in any given year, and they are not necessarily asked of the entire sample. For later survey years (1994-2018) comments entered during the interview are available. Comments for these later years were examined to identify respondents who reported current retired status outside the structure of the proscribed interview questions. In more recent survey years (using 2012 as an example) to create DOI_RETIRED, the following succession of questions is used:

2012 (round 25)
RETIRE_EXP_P2_1A = 5 (R is "retired")
 else QES-23A.## = 17 (R quit job due to being "retired")
 
In earlier survey years, (using 1990 and 1998 as examples) the following succession of questions is used to create DOI_RETIRED:

1990 (round 12)
QES-23A.## = 17 (R quit job due to being "retired")

1998 (round 18)
QES-23A.## = 17 (R quit job due to being "retired")
 else ESR_KEY = 5 (R is "not in labor force – retired")

DOI_DISABLED – DATE OF INTERVIEW STATUS - DISABLED
Similar to retirement status, current disability status at the date of each interview was established by using available questions that allow respondents to specifically report disability/inability to work in a response category. NLSY79 questionnaires offer various opportunities in any given year to report disability, although all are not necessarily asked of the entire sample. In more recent survey years (using 2012 as an example) to create DOI_DISABLED, the following succession of questions is used:

2012 (round 25)
RETIRE_EXP_P2_1A = 4 (R is "disabled and unable to work")
 else QES-23A.## = 10 (R quit job due to "health, disability or medical problems")
  else QES-43.##.## = 2 (R's reason for a current within-job gap is being "ill, disabled or unable to work")
   else Q7-19.## = 9 (R's reason for not looking for work during between-job gap is "ill-health, physical disability")
    else Q11-3 = 1 (R's health would keep R from working on a job for pay now)

In earlier survey years, (using 1990 as an example) the following succession of questions is used to create DOI_DISABLED:

1990 (round 12)
QES-23A.## = 10 (R quit job due to "health, disability or medical problems")
 else ESR-KEY = 6 (R's ESR status is "disabled")
  else QES-43.##.## = 2 (R's reason for a current within-job gap is being "ill, disabled or unable to work")
   else Q7-19.## = 9 (R's reason for not looking for work during between-job gap is "ill-health, physical disability")
    else Q11-3 = 1 (R's health would keep R from working on a job for pay now)
 
As mentioned for the retirement variables above, comments entered during the interview were available for survey years 1994-2018. Comments for these later years were examined to identify respondents who reported current disability status outside the structure of the proscribed interview questions as listed above.

Below is the *.sas code that created the 2018 Date of Interview Current Status variables:

COMPUTE 2018 (ROUND 28) DOI_EMPLOYED

array status   (i)           _1-_2019 status_wk2020-status_wk2184;

do i=2020 to 2184;

            if i=CURWK18 then do;

                        empstat_wbi=status;

            end;

end;

if empstat_wbi>0 & empstat_wbi<=5 then doi_employed=0;

else if empstat_wbi=7 then doi_employed=1;*in military service;

else if empstat_wbi>=2800 then doi_employed=1;

else if empstat_wbi=0 then doi_employed=-3;*no info reported to account for week,;

if CURWK18=-4 then doi_employed=-5;

COMPUTE 2018 (ROUND 28) DOI_HOURS_WORKED

array hrs   (i)  _1-_2019 hrs_wk2020-hrs_wk2184;

do i=2020 to 2184;

            if i=CURWK18 then do;

                        hrs_doi=hrs;

            end;

end;

if doi_employed=0 then doi_hours_worked=-4;

else if doi_employed=1 then do;

            if hrs_doi<0 & hrs_doi>-4 then doi_hours_worked=-3;

            else if hrs_doi>=0 & hrs_doi<30 then doi_hours_worked=0;

            else if hrs_doi>=30 then doi_hours_worked=1;

end;

else if doi_employed=-3 then doi_hours_worked=-3;

else if doi_employed=-5 then doi_hours_worked=-5;

COMPUTE 2018 (ROUND 28) DOI_RETIRED & DOI_HOURS_DISABLED

*why leaving a job;

array stopd (*) EMP_STOP_01_D EMP_STOP_02_D EMP_STOP_03_D EMP_STOP_04_D EMP_STOP_05_D;

array stopm (*) EMP_STOP_01_M EMP_STOP_02_M EMP_STOP_03_M EMP_STOP_04_M EMP_STOP_05_M;

array stopy (*) EMP_STOP_01_Y EMP_STOP_02_Y EMP_STOP_03_Y EMP_STOP_04_Y EMP_STOP_05_Y;

array qes23a (*)  qes_23a_01 qes_23a_02 qes_23a_03 qes_23a_04 qes_23a_05;

*within job gap;

array qes31d (*)  QES_31_01_01_D QES_31_01_02_D QES_31_01_03_D

                                     QES_31_02_01_D QES_31_02_02_D QES_31_02_03_D

                                     QES_31_03_01_D QES_31_03_02_D QES_31_03_03_D

                                     QES_31_04_01_D QES_31_04_02_D QES_31_04_03_D

                                     QES_31_05_01_D dum dum;

array qes31m (*) QES_31_01_01_M QES_31_01_02_M QES_31_01_03_M

                                     QES_31_02_01_M QES_31_02_02_M QES_31_02_03_M

                                     QES_31_03_01_M QES_31_03_02_M QES_31_03_03_M

                                     QES_31_04_01_M QES_31_04_02_M QES_31_04_03_M

                                     QES_31_05_01_M dum dum;

array qes31y (*) QES_31_01_01_Y QES_31_01_02_Y QES_31_01_03_Y

                                     QES_31_02_01_Y QES_31_02_02_Y QES_31_02_03_Y

                                     QES_31_03_01_Y QES_31_03_02_Y QES_31_03_03_Y

                                     QES_31_04_01_Y QES_31_04_02_Y QES_31_04_03_Y

                                     QES_31_05_01_Y dum dum;

array qes33 (*)  QES_33_01_01 QES_33_01_02 QES_33_01_03

                                     QES_33_02_01 QES_33_02_02 QES_33_02_03

                                     QES_33_03_01 QES_33_03_02 QES_33_03_03

                                     QES_33_04_01 QES_33_04_02 QES_33_04_03

                                     QES_33_05_01 dum dum;

array qes43     (*)  qes_43_01_01 qes_43_01_02 qes_43_01_03

                     qes_43_02_01 qes_43_02_02 qes_43_03_03

                     qes_43_03_01 qes_43_03_02 qes_43_03_03

                     qes_43_04_01 qes_43_04_02 qes_43_04_03

                                                             dum dum dum;

*between job gaps;

array q711d (*) Q7_11_01_D Q7_11_02_D Q7_11_03_D Q7_11_04_D;

array q711m (*) Q7_11_01_M Q7_11_02_M Q7_11_03_M Q7_11_04_M;

array q711y (*) Q7_11_01_Y Q7_11_02_Y Q7_11_03_Y Q7_11_04_Y;

array q719  (*)  q7_19_01 q7_19_02 q7_19_03 q7_19_04;

 

***** retire or not at interview date;

if qes_23a_01=-5 then qes23aR=-5;

else do;

 qes23aR = 0;

 q719R=0; q719R3=0;

 do i = 1 to dim(qes23a);

  if (qes23a(i) = 17) then qes23aR = (qes23aR + 1);

 end;

 do i = 1 to dim(q719);

  if q719(i) = 12 & (qes_b in (0 -4) or (q711d(i)=curdate_d & q711m(i)=curdate_m & q711y(i)=curdate_y)) then q719R = (q719R + 1);

 end;

 if q719R=0 then do i = 1 to dim(q719);

  if q719(i) = 12 & (q711d(i)  in (-1 -2 -3) or q711m(i) in (-1 -2 -3) or q711y(i) in (-1 -2 -3)) then q719R3 = (q719R3 + 1);

 end;

end;

if qes_23a_01=-5 then retire=-5;

else do;

 retire=0;

 if (q7_38 = 5) then do; retire = 1; flag_r0=1; end;

 else if qes23aR > 0 then do; retire = 1; flag_r1=1; end;

 else if q719R>0 then do;   retire = 1; flag_r2=1; end;

 else if q719R3>0 then do;  retire = 1; flag_r23=1; end;

end;

***** disabled or not at interview date;

if qes_23a_01=-5 then do;

 qes23aD=-5;

 qes43D=-5;

 q719D=-5;

 q113D=-5;

end;

else do;

 qes23aD=0; qes23aD3=0;

 qes43D=0; qes43D3=0;

 q719D=0; q719D3=0;

 q113D=0;

 do i = 1 to dim(qes23a);

  if work=0 & qes23a(i) = 10 & ( (0<stopy(i) &  stopy(i)<curdate_y) or (stopy(i)=curdate_y & 0<stopm(i) & stopm(i)<curdate_m)

     or (stopy(i)=curdate_y & stopm(i)=curdate_m & 0<stopd(i) & stopd(i)<curdate_d))  then qes23aD = qes23aD + 1;

 end;

 if qes23aD=0 then do i = 1 to dim(qes23a);

  if work=0 & qes23a(i) = 10 & (stopy(i) in (-1 -2 -3) or stopm(i) in (-1 -2 -3) or stopd(i) in (-1 -2 -3)) then qes23aD3= qes23aD3+1;

 end;

 do i = 1 to dim(qes43);

  if (qes43(i) = 2 or qes33(i)=9) & (qes31d(i)=curdate_d & qes31m(i)=curdate_m & qes31y(i)=curdate_y) then qes43D = (qes43D + 1);

 end;

 if qes43D=0 then do i = 1 to dim(qes43);

  if (qes43(i) = 2 or qes33(i)=9) & (qes31d(i) in (-1 -2 -3) or qes31m(i) in (-1 -2 -3) or qes31y(i) in (-1 -2 -3)) & work=0 then qes43D3=qes43D3 + 1;

 end;

 do i = 1 to dim(q719);

  if q719(i) = 9 & (qes_b in (0 -4) or (q711d(i)=curdate_d & q711m(i)=curdate_m & q711y(i)=curdate_y)) then q719D = (q719D + 1);

 end;

 if q719D=0 then do i = 1 to dim(q719);

  if q719(i) = 9 & (q711d(i)  in (-1 -2 -3) or q711m(i) in (-1 -2 -3) or q711y(i) in (-1 -2 -3)) then q719D3 = (q719D3 + 1);

 end;

 if q11_3=1 then q113D=1;

end;

if qes_23a_01=-5 then disable=-5;

else do;

 disable=0;

 if (q7_38 = 4) then do; disable = 1; flag_d0=1; end;

 else if qes23aD>0 then do; disable=1; flag_d1=1; end;

 else if qes43D>0 then do;  disable=1; flag_d2=1; end;

 else if q719D>0 then do;   disable=1; flag_d3=1; end;

 else if q113D>0 then do;   disable=1; flag_d4=1; end;

 else if qes23aD3>0 then do; disable=1; flag_d13=1; end;

 else if qes43D3>0 then do;  disable=1; flag_d23=1; end;

 else if q719D3>0 then do;   disable=1; flag_d33=1; end;

end;

***** HE;

* retired only;

 if public_id in (1257 7161 10507 3855) then do;

   if retire ne 1  then do; retire=1; HE_r_q7=1; end;

   else HE_r_q7=0;

 end;

* retired and disabled;

 if public_id in (9196 3613 9005 9013 709 6032 4311 7150) then do;

   if retire ne 1  then do; retire=1; HE_r_q7=1; end;

   else HE_r_q7=0;

   if disable ne 1 then do; disable=1; HE_d_q7=1; end;

   else HE_d_q7=0;

end;

***** HE based on checking;

if public_id in (5105 6177)  then do; disable=0; flag_d23=.; end;