*WERS 2004 MQ derived variables for FF.sps. *This syntax file derives the MQ variables used in the 2004 First Findings publication. *Last updated 31 July 2006. *Most of the analysis presented in First Findings excluded workplaces with less than 10 employees. *As a result, the derived variables contained in this file may not be set up for workplaces with 5-9 employees unless this is specifically stated. *Before running this syntax, please ensure the file paths are changed throughout the file as necessary. *These can be found by searching on the phrase 'Note file path' . ************************************************. *List of derived variables. ************************************************. ** All workplaces dummy (Nallest). ** All employees dummy (Nallemp). ** Flags to indicate whether components of EPQ Qn 2 (M/F, FT/PT) and EPQ Qn 3 (Occ grid) sum correctly (Nmf_flg; Nocc_flg; Nmng_flg; Npro_flg; Ntec_flg; Nadm_flg; Nskl_flg; Nper_flgl; Nsal_flg; Nope_flg; Nrou_flg; Nmft_flg; Nfft_flg; Nmpt_flg; Nfpt_flg). ** Sum of occupational totals (Ndiff). ** Sum of occupational totals as a percentage of zallemps (Ndiffpc). ** Size of workplace - banded (Nempsize, Nempsiz1, Nempsiz7; N10plus, N25plus). ** Location of management interview, depending on whether head office (mqlocx) . ** Job title (Nbtitle4)- merges original and edited variable (result of backcoding) . ** Any personnel specialist (title / time) at the workplace (Nperspec) . ** Collapsed private / public sector variable (Nprivate). ** Industry and ownership - summary (Nsector3) . ** Proportion of employees 16-17 years of age - continuous and banded (N16t17, N16t17d) . ** Proportion of employees 18-21 years of age - continuous and banded (N18t21) . ** Proportion of employees aged 16 to 21 (n16t21; n16t21d2; n16t21any) . ** Size of workplace (n10pluso, n25pluso) . ** Single/Multi - single site or part of a larger organisation (Nsingle). ** Size of organization in the UK - banded (Norgsize, Norgsize2, Norgsize3). ** Size of organization in the UK - banded and interacted with nprivate to identify SMEs (Nsme1) . ** SME vs Large enterprise vs Public sector (Nsme2) . ** Trade union density - continuous, banded (2) and dichotomous (Ndensity; Ndens; Ndensbd; Nanymem) . ** Three-category density variable (Ndens3) . ** Number of union members at the establishment (Nunimem) . ** Number of unions, all workplaces - continuous (Nunionum). ** Union recognition - including unions that don't have members at the workplace (Nrecog2; Nrecog3) . ** Proportion of employees aged 16 to 21 (n16t21d) . ** Proportion of employees 50 and over - continuous and banded (N50plus; N50plusd, N50bd2) . ** Proportion of female employees - continuous, banded (Nfemprop; Nfprop). ** Proportion of female employees (nfemdens) . ** Gender composition of management occupation (Nmgtgen) . ** Probability that a female emp is in managerial position cf probability that a male emp is in a managerial position (Nmgtsex; Nmgtbd) . ** Female under-representation in management - 2 bands (Nfmgt2) . ** Male under-representation in management - 2 bands (Nmmgt2) . ** Proportion of part-time employees - continuous and banded (Nprtprop, Nptprop, Npartwom). ** Percentage of employees on fixed-term or temporary contracts (Nfixpc) . ** Any employees on fixed-term or temporary contracts (Nfixterm) . ** Proportion of employees on temporary agency contracts (ntemp) . ** Any employees on temporary agency contracts (ntempany) . ** Approach to filling vacancies (Nvacpref) . ** Presence of emps in each of the nine SOC Major Groups (Nmng_dum to Nrou_dum) . ** Total number of occupational groups at workplace (Nnumocc). ** The largest occupational group (LOG) as identified on the EPQ (Nhiocc). ** Proportion of employees in the largest occupational group (Nhioccp) . ** Non-managerial employees as a proportion of all employees (Nnmp) . ** Use of personality tests in recruitment (Nperstest; Nnumpers; Npsontst; Nperslog) . ** Use of performance tests in recruitment (Nperftest; Nperflog) . ** Which types of employees have formal performance appraisals (Nwhoapp) . ** Whether non-managers are regularly appraised (Napprais) . ** Proportion of non-managerial employees who are appraised (Nmapprai, Nmappra1) . ** Formal off the job training for experienced employees in LOG (Ntrain) . ** 5 days or more formal off-the-job training for experienced employees in the LOG (Nltrain) . ** Proportion of LOG working in teams (Nteams) . ** Cross-training (Nothjob) . ** Functional flexibitliy in practice (Nothdo) . ** Multi-skilling: at least 60% of LOG are trained to be functionally flexible (Nfunc) . ** Proportion of non-managerials participating in problem-solving groups in last 12 months (Npropor) . ** Incidence of problem solving groups (Npsolve2, Npsolve3) . ** Teamworking, communication, problem-solving (Ntrgrup1b) . ** Teamworking, cross-training, problem-solving (any3) . ** Access to lay rep, on site or elsewhere in organisation (nerep) . ** Presence of on-site union reps (Nanyurep2) . ** Any JCCs at workplace level (Njcc) . ** Types of joint consultative committee (Nanycom2). ** Frequency of JCC meetings (Ndmeet2) . ** Whether JCC has union reps on it (Njccu) . ** Non-union reps (Nnureptyp, Nnureptyp2) . ** Union recognition (Nrecog) . ** Extent of recognition among unions with members at the workplace (Nnorecog) . ** Number of recognised unions (Nrecnomem) . ** Whether any recognised unions, with or without members (Nrecog5) . ** Any reps of recognised unions (Nanyurep1) . ** Total number of on-site union reps (Ntotureps) . ** Whether any lay union representatives on or off-site (nanyurep) . ** Combined presence of union and non-union reps (Nreptyp1, Nreptyp2) . ** Weight variable used in estimating proportion of Union Learning Reps (urwt) . ** Proportion of all on-site union reps that are designated ULRs (Nulrpc) . ** Meetings between managers and employees (whole workforce or team briefings) (Nmeet) . ** Number of methods of pay determination (all occupations) (Npaynum2) . ** Method of pay determination for all employees (Npaydet2; Nbarg92) . ** Any collective bargaining among all employees (Nanycb2) . ** Any employees have their pay set by management (Nsetman2) . ** Any employees have their pay set by individual negotiation (Nindnego2) . ** Any employees have their pay set by pay review bodies (nrevnego2) . ** Any employees have their pay set by 'other methods of pay determination' (Nopay2) . ** Percentage of all employees who have their pay set by multi-employer bargaining (Ncbmulta) . ** Percentage of all employees who have their pay set by single employer collective bargaining (Ncborga) . ** Percentage of all employees who have their pay set by workplace collective bargaining (Ncbworka) . ** Percentage of all employees who have their pay set by management at higher level (Nsetorga) . ** Percentage of all employees who have their pay set by management at workplace (Nsetworka) . ** Percentage of all employees who have their pay set by individual negotiation (Nindnega) . ** Percentage of all employees who have their pay set by pay review body/other (Npayreva) . ** Percentage of workforce who have their pay set by other means (Npayotha) ** Sum of pay setting arrangements among all employees (Npaysuma) . ** If any employees paid with PBR or merit (Nanymerpbr) . ** Any ESOP (Nesop) . ** LOG not entitled to any of 5 non-pay terms/conditions (Nlognone) . ** LOG entitled to employer pension scheme (Nlogpen) . ** LOG entitled to car or car allowance (Nlogcar) . ** LOG entitled to private health insurance (Nloghlth) . ** LOG entitled to over 4 weeks paid annual leave (Nloghols) . ** LOG entitled to sick pay in excess of statutory requirements (Nlogsick) . ** Management not entitled to any of 5 non-pay terms/conditions (Nmannone) . ** Management entitled to employer pension scheme (Nmanpen) . ** Management entitled to car or car allowance (Nmancar) . ** Management entitled to private health insurance (Nmanhlth) . ** Management entitled to over 4 weeks paid annual leave (Nmanhols) . ** Management entitled to sick pay in excess of statutory requirements (Nmansick) . ** Number of entitlements to non-pay terms/conditions (Nmanents) . ** Number of entitlements to non-pay terms/conditions (Nlogents) . ** Single status: management and LOG have same conditions (Nss2; Nss3) . ** Management engagement with reps over 12 issues covered in Section E, from pay to performance appraisals (Npay, Nhours, Nhol, Npen, Nselect, Ntrainab, Ngriev, Ndiscip, Nstaff, Nequalop, Nhands, Nperfor) . ** Count of number of Epay items that involve negotiation, consultation, information or nothing (Nnegs, Ncons, Ninfs, Nnowt) . ** Any industrial action in last year (Nstrike) . ** Threat of industrial action (Nthretsk) . ** IT claim in past year (Nitclaim) . ** ET claims per 1000 employees brought during the last year, continuous and banded (Nitrate, itrateband) . ** Collapses nrecog2 into 3 categories and sets codes 5-7 as missing (Nrecog2b) . ** 2 step grievance procedure - irrespective of whether the employer has said they have a formal procedure at hprocedu (Ngproc2). ** Another 3 step grievance procedure variable (Ngproc3c). ** 3 step disciplinary procedure - irrespective of whether the employer has said they have a formal procedure at hothpro (Ndproc3c). ** Derived variable from Haccom 01-10 - accompaniment in grievance cases (Ngaccomp2). ** Derived variable from Hothacc01-10 - accompaniment in disciplinary cases (Ndaccomp2). ** EO policy covering equality of treatment or discrimination (Nipolicy) . ** Proportion of female employees - quartiles and dichotomous (Nfpquart; Nf50). ** Employees of ethnic origin in the sample - continuous and banded (Nethnic; Nethbd; Nethbd2). ** Proportion of employees with a long-term disability that affects the amount or type of work they can do (Ndisab; Ndisabb5; Ndisabb4; Ndisabany) . ** Monitoring recruitment and selection by gender (nipract11) . ** Monitoring recruitment and selection by ethnicity (nipract12) . ** Monitoring recruitment and selection by disability (nipract13) . ** Monitoring recruitment and selection by age (nipract14) . ** Do not monitor recruitment and selection (nipract15) . ** Monitoring recruitment and selection procedures by gender to identify indirect discrimination (nipract21) . ** Monitoring recruitment and selection procedures by ethnicity to identify indirect discrimination (nipract22) . ** Monitoring recruitment and selection procedures by disability to identify indirect discrimination (nipract23) . ** Monitoring recruitment and selection procedures by age to identify indirect discrimination (nipract24) . ** No monitoring of recruitment and selection procedures to identify indirect discrimination (nipract25) . ** Monitoring promtions by gender (nipract31) . ** Monitoring promotions by ethnicity (nipract32) . ** Monitoring promotions by disability (nipract33) . ** Monitoring promotions by age (nipract34) . ** No monitoring of promotions (nipract35) . ** Review promotion procedures by gender to identify indirect discrimination (nipract41) . ** Review promotion procedures by ethnicity to identify indirect discrimination (nipract42) . ** Review promotion procedures by disability to identify indirect discrimination (nipract43) . ** Review promotion procedures by age to identify indirect discrimination (nipract44) . ** No review of promotion procedures to identify indirect discrimination (nipract45) . ** Review relative pay rates by gender (nipract51) . ** Review relative pay rates by ethnicity (nipract52) . ** Review relative pay rates by disability (nipract53) . ** Review relative pay rates by age (nipract54) . ** No review of relative pay rates (nipract55) . ** Whether any ethnic minority employees in workplace (nethany) . ** Proportion of employees 50 and over - banded (N50plb4) . ** Proportion of workplaces with any employees aged 50 or more (n50plany). ** Any employees on annual hours contracts (nwtime2) . ** Any employees on zero hours contracts (nwtime3) . ** Term-time only contracts (nfamily1) . ** Homeworking for any employees (nflex1) . ** Ability to reduce working hours (nflex2) . ** Ability to increase working hours (nflex3) . ** Ability to job-share (nflex4) . ** Flexitime (nflex5) . ** Ability to change shift pattern (nflex6) . ** Ability to work compressed hours (nflex7) . ** Proportion of part-time employees - rounded to integers (Npartdis). ** Whether any part-time workers (npartany) . ** Number of flexible work options (for PSA target) (nflexnum) . ** 2 or more flexible work options (for PSA target) (nflex2p) . ** Number of weeks of fully paid maternity leave (nmatwks2) . ** Number of days of fully paid paternity leave - banded (patlv, Npatfull) . ** Derived variable combining paid parental and special paid leave in addition to maternity, paternity and time off for emergencies (Npaidpar) . ** Special Paid Leave for Emergencies (Nspeclv) . ** Employer provides a specific period of leave for carers of older adults (Ncarelve) . ** Managerial perception of employment relations (nrelate2) . ** Frequency of JCC meetings (Ndmeet) . ** Any 'functioning' JCC (Njccf) . ** Management attitudes towards union membership (Ntuviews) . ** Types of team working (Nrealtm2, Nrealtm2b) . ** Filter for selecting only those workplaces with 10 or more employees (filter_$) . ************************************************. *Open MQ data file. ************************************************. *Note file path . GET FILE='C:\WERS\xs04_mq.sav'. *Match with file containing derived variables that use restricted data. *Note files should first be sorted by serno . *Note file path . match files file=*/table='C:\WERS\Derived variables using restricted data.sav'/by serno. ************************************************. *Derived variables. ************************************************. COMMENT All workplaces dummy (Nallest) . Numeric Nallest (F3.0). compute Nallest=1. variable labels Nallest 'All workplaces'. value labels Nallest 1 'All workplaces'. execute. COMMENT All employees dummy (Nallemp) . Numeric Nallemp (F3.0). compute Nallemp=1. variable labels Nallemp 'All employees'. value labels Nallemp 1 'All employees'. execute. *********************************************** . COMMENT Set some flags to indicate cases in which EPQ data from Qns 2 and 3 is not internally consistent Flag = 1 (True) if the data is not internally consistent; otherwise flag = 0 . Numeric Nmf_flg Nocc_flg Npro_flg Ntec_flg Nadm_flg Nskl_flg Nper_flg Nsal_flg Nope_flg Nrou_flg Nmft_flg Nfft_flg Nmpt_flg Nfpt_flg (f1.0) . compute Nmf_flg=(sum(zmalfull,zfemfull,zmalprt,zfemprt,0)=zallemps)=0 . compute Nocc_flg=(sum(zmng_tot,zpro_tot,ztec_tot,zadm_tot,zskl_tot,zper_tot,zsal_tot,zope_tot,zrou_tot,0)=zallemps)=0. compute Nmng_flg=(sum(zmng_mft,zmng_fft,zmng_mpt,zmng_fpt,0)=zmng_tot)=0 . compute Npro_flg=(sum(zpro_mft,zpro_fft,zpro_mpt,zpro_fpt,0)=zpro_tot)=0 . compute Ntec_flg=(sum(ztec_mft,ztec_fft,ztec_mpt,ztec_fpt,0)=ztec_tot)=0 . compute Nadm_flg=(sum(zadm_mft,zadm_fft,zadm_mpt,zadm_fpt,0)=zadm_tot)=0 . compute Nskl_flg=(sum(zskl_mft,zskl_fft,zskl_mpt,zskl_fpt,0)=zskl_tot)=0 . compute Nper_flg=(sum(zper_mft,zper_fft,zper_mpt,zper_fpt,0)=zper_tot)=0 . compute Nsal_flg=(sum(zsal_mft,zsal_fft,zsal_mpt,zsal_fpt,0)=zsal_tot)=0 . compute Nope_flg=(sum(zope_mft,zope_fft,zope_mpt,zope_fpt,0)=zope_tot)=0 . compute Nrou_flg=(sum(zrou_mft,zrou_fft,zrou_mpt,zrou_fpt,0)=zrou_tot)=0 . compute Nmft_flg=(sum(zmng_mft,zpro_mft,ztec_mft,zadm_mft,zskl_mft,zper_mft,zsal_mft,zope_mft,zrou_mft,0)=zmalfull)=0 . compute Nfft_flg=(sum(zmng_fft,zpro_fft,ztec_fft,zadm_fft,zskl_fft,zper_fft,zsal_fft,zope_fft,zrou_fft,0)=zfemfull)=0 . compute Nmpt_flg=(sum(zmng_mpt,zpro_mpt,ztec_mpt,zadm_mpt,zskl_mpt,zper_mpt,zsal_mpt,zope_mpt,zrou_mpt,0)=zmalprt)=0 . compute Nfpt_flg=(sum(zmng_fpt,zpro_fpt,ztec_fpt,zadm_fpt,zskl_fpt,zper_fpt,zsal_fpt,zope_fpt,zrou_fpt,0)=zfemprt)=0 . recode Nmf_flg to Nfpt_flg (sysmis=1) . variable labels Nmf_flg "Are EPQ data from Qn 2 consistent with ZALLEMPS?" /Nocc_flg "Are EPQ occupational totals consistent with ZALLEMPS?" /Nmng_flg "Is EPQ data for Managers and Senior Officials internally consistent?" /Npro_flg "Is EPQ data for Professionals internally consistent?" /Ntec_flg "Is EPQ data for Assoc Professionals & Technicals internally consistent?" /Nadm_flg "Is EPQ data for Administrative & Secretarials internally consistent?" /Nskl_flg "Is EPQ data for Skilled Trades internally consistent?" /Nper_flg "Is EPQ data for Caring, Leisure & Other Personal Service internally consistent?" /Nsal_flg "Is EPQ data for Sales and Customer Service internally consistent?" /Nope_flg "Is EPQ data for Process, Plant and Machine Operatives and Drivers internally consistent?" /Nrou_flg "Is EPQ data for Routine Unskilled internally consistent?" . value labels Nmf_flg to Nfpt_flg 0 "Consistent" 1 "NOT consistent" . execute . *********************************************** . COMMENT Calculate the sum of the occupational totals as a percentage of ZALLEMPS (Ndiff, Ndiffpc) . numeric ndiff (f5.2) . compute ndiff=sum.9(zmng_tot,zpro_tot,ztec_tot,zadm_tot,zskl_tot,zper_tot,zsal_tot,zope_tot,zrou_tot) . recode ndiff (sysmis=-9) . missing values ndiff (-9) . variable labels ndiff "Sum of occupational totals" . value labels ndiff -9 "Missing data in occ totals" . execute . numeric ndiffpc (f5.2) . compute ndiffpc=((sum.9(zmng_tot,zpro_tot,ztec_tot,zadm_tot,zskl_tot,zper_tot,zsal_tot,zope_tot,zrou_tot)*100)/zallemps) . recode ndiffpc (sysmis=-9) . missing values ndiffpc (-9) . variable labels ndiffpc "Sum of occupational totals as a percentage of ZALLEMPS" . value labels ndiffpc -9 "Missing data in occ totals" . execute . *********************************************** . COMMENT Workplace size (Nempsize, Nempsiz1, Nempsiz7) . Numeric Nempsize (F3.0). recode zallemps (5 thru 9=1) (10 thru 24 = 2) (25 thru 49 = 3) (50 thru 99 = 4) (100 thru 199 = 5) (200 thru 499 = 6) (500 thru 999 = 7) (1000 thru 1999=8) (2000 thru hi=9) into Nempsize. value labels Nempsize 1 '5 to 9 employees' 2 '10 thru 24 employees' 3 '25 to 49 employees' 4 '50 to 99 employees' 5 '100 to 199 employees' 6 '200 to 499 employees' 7 '500 to 999 employees' 8 '1000 to 1999 employees' 9 '2000 or more employees'. variable labels Nempsize 'Size of establishment'. execute. Numeric Nempsiz1 (F3.0). recode zallemps (10 thru 24=0) (25 thru 49 = 1) (50 thru 99 = 2) (100 thru 199 = 3) (200 thru 499 = 4) (500 thru highest = 5) into Nempsiz1. value labels Nempsiz1 0 '10 to 24 employees' 1 '25 to 49 employees' 2 '50 to 99 employees' 3 '100 to 199 employees' 4 '200 to 499 employees' 5 '500 or more employees'. variable labels Nempsiz1 'Size of establishment'. execute. Numeric Nempsiz7 (F3.0). recode zallemps (5 thru 9=1) (10 thru 24=2) (25 thru 49 = 3) (50 thru 99 = 4) (100 thru 199 = 5) (200 thru 499 = 6) (500 thru highest = 7) into Nempsiz7. value labels Nempsiz7 1 '5 to 9 employees' 2 '10 to 24 employees' 3 '25 to 49 employees' 4 '50 to 99 employees' 5 '100 to 199 employees' 6 '200 to 499 employees' 7 '500 or more employees'. variable labels Nempsiz7 'Size of establishment'. execute. *********************************************** . COMMENT Dichotomous variable for workplace size at 10 employee break (N10plus). Numeric N10plus (f3.0). recode zallemps (lowest thru 9 = 1) (10 thru highest = 2) into N10plus. value labels N10plus 1 'Workplaces with LESS than 10 employees' 2 'Workplaces with 10 PLUS employees'. variable label N10plus 'Size of workplace'. execute. *********************************************** . COMMENT Dichotomous variable for workplace size at 25 employee break (N25plus). Numeric N25plus (f3.0). recode zallemps (lowest thru 24 = 1) (25 thru highest = 2) into N25plus. value labels N25plus 1 'Workplaces with LESS than 25 employees' 2 'Workplaces with 25 PLUS employees'. variable label N25plus 'Size of workplace'. execute. *********************************************** . COMMENT Location of management interview, depending on whether head office (mqlocx) . DO IF (aconhead = 1) . RECODE mqloc (2=1) (ELSE=Copy) INTO mqlocx . END IF . EXECUTE . DO IF (aconhead = 2) . RECODE mqloc (1 thru 4=Copy) INTO mqlocx . END IF . EXECUTE . DO IF missing (aconhead) . RECODE mqloc (1 thru 4=Copy) INTO mqlocx . END IF . EXECUTE . *********************************************** . COMMENT Identifying presence of a personnel function (Nbtitle4) . Numeric Nbtitle4 (F5.0). do if btitle=1. + compute Nbtitle4=1. else if btitle=2. + compute Nbtitle4=2. else if btitle=3. + compute Nbtitle4=3. else if btitle=4. + compute Nbtitle4=btitle2. end if. execute. recode Nbtitle4 (sysmis=97) (else=copy). value labels Nbtitle4 1 'Personnel manager/officer' 2 'HR manager/officer' 3 'Proprietor/owner' 5 'Employee/industrial/staff relations manager/officer' 6 'Financial manager/company secretary' 7 'General manager' 95 'other' 96 'vague' 97 'Still to be backcoded'. variable labels Nbtitle4 'Job title derived from btitle and btitle2'. missing values Nbtitle4 (94 thru 97). execute. *********************************************** . COMMENT Presence of a personnel specialist (Nperspec) . Numeric nperspec (F5.0). do if (missing(Nbtitle4)&value(Nbtitle4) =94). + compute nperspec = -8. else if (missing(Nbtitle4)&value(Nbtitle4) = 95). + compute nperspec = -8. else if (missing(Nbtitle4)&value(Nbtitle4) = 96). + compute nperspec = -8. else if (missing(Nbtitle4)&value(Nbtitle4) = 97). + compute nperspec = -8. else if (Nbtitle4 eq 1). + compute nperspec = 1. else if (Nbtitle4 eq 2). + compute nperspec = 1. else if (Nbtitle4 eq 5). + compute nperspec = 1. else if (missing(bproport)&value(bproport) = -1). + compute nperspec = -1. else if (missing(bproport)&value(bproport) = -8). + compute nperspec = -8. else if (missing(bproport)&value(bproport) = -9). + compute nperspec = -8. else if (bproport gt 50). + compute nperspec = 1. else. + compute nperspec = 2. end if. missing values nperspec (-8,-1). variable labels nperspec 'Presence of a specialist ER function'. value labels nperspec 1 'Designated ER specialist' 2 'General manager' -8 'DK/NA/other/vague answer/to be backcoded' -1 'Not Applicable'. execute. *********************************************** . COMMENT Private sector variable (Nprivate). Numeric Nprivate (F3.0). recode astatus1 (1 thru 7=1) (8 thru 12=2) into Nprivate. variable labels Nprivate 'Ownership'. value labels Nprivate 1 'Private sector' 2 'Public sector'. execute. *********************************************** . COMMENT Interaction of industry and ownership (Nsector3) . numeric nsector3 (f3.0) . do if nprivate=1 . + recode nsicode (1=1) (2 thru 12=2) into nsector3 . else if nprivate=2 . + compute nsector3=3 . end if . variable labels nsector3 'Manuf/services within broad sector' . value labels nsector3 1 "Private manufacturing" 2 "Private services" 3 "Public sector" . execute . *********************************************** . COMMENT Age of the workforce . *n16t17 - Proportion of employees 16-17 years of age. do if (missing(z16t17) = 1 & missing(z16t17pc) = 1). + compute n16t17=-8. else if (missing(z16t17) ne 1). + compute n16t17=z16t17/zallemps*100. else. + compute n16t17=z16t17pc. end if. variable labels n16t17 'Proportion of employees aged 16 or 17'. value labels n16t17 -8 'DK/NA'. missing values n16t17 (-8). execute. *Breakdown of age variables - Proportion aged 16 to 17. numeric n16t17d (f3.0). recode n16t17 (25 thru hi=4)(10 thru 25=3)(5 thru 10=2)(0 thru 5=1)(else=copy) into n16t17d. missing values n16t17d (-1, -8, -9). variable label n16t17d 'Proportion of workforce aged 16 to 17'. value labels n16t17d 1 'Less than 5 per cent' 2 '5-9 per cent' 3 '10 to 24 per cent' 4 '25 per cent or more' -1 'Not applicable' -8 'Do not know' -9 'Refused'. execute. *n18t21 - Proportion of employees 18-21 years of age. do if (missing(z18t21)=1 & missing(z18t21pc)=1). + compute n18t21=-8. else if (missing(z18t21) ne 1). + compute n18t21=z18t21/zallemps*100. else. + compute n18t21=z18t21pc. end if. variable labels n18t21 'Proportion of employees aged 18 to 21 inclusive'. value labels n18t21 -8 'DK/NA'. missing values n18t21 (-8). execute. *********************************************** . COMMENT Proportion of employees aged 16-21 (N16t21) . numeric N16t21 (f3.0). recode n16t17 (-1, -8, -9=copy) into n16t21. recode n18t21 (-1, -8, -9=copy) into n16t21. do if (missing(n16t17) ne 1) & (missing(n18t21) ne 1). + compute n16t21=(n16t17+n18t21). end if. missing values n16t21 (-1, -8, -9). variable labels n16t21 'Proportion of employees aged 16 to 21'. value labels n16t21 -1 'Not applicable' -8 'Do not know' -9 'Refused'. execute. *To distinguish betweeen none, few or relatively large proportion of employees aged 16 to 21. numeric n16t21d2 (f3.0). recode n16t21 (0=1)(25 thru hi=3)(0 thru 25=2)(else=copy) into n16t21d2. missing values n16t21d2 (-1, -8, -9). variable label n16t21d2 'Proportion of workforce aged 16 to 21'. value labels n16t21d2 1 'None' 2 'Some, but less than 25 per cent' 3 '25 per cent or more' -1 'Not applicable' -8 'Do not know' -9 'Refused'. execute. *Any employees aged 16 to 21 (n16t21any). numeric n16t21any (f3.0). recode n16t21 (0=copy)(0 thru hi=1)(-8=copy) into n16t21any. missing values n16t21any(-8). variable label n16t21any 'Any employees aged 16 to 21'. value labels n16t21any 0 'None' 1 'Some employees aged 16 to 21' -8 'DK/NA'. execute. *********************************************** . COMMENT Workplaces with 10 employees or more (n10pluso) . Numeric n10pluso (f3.0). recode zallemps (10 thru highest = 1) into n10pluso. value labels n10pluso 1 'Workplaces with 10+ employees'. variable label n10pluso 'Workplaces with 10+ employees'. execute. *********************************************** . COMMENT Workplaces with 25 or more employees only (N25pluso) . Numeric N25pluso (f3.0). recode zallemps (25 thru highest = 1) into n25pluso. value labels n25pluso 1 'Workplaces with 25+ employees'. variable label n25pluso 'Workplaces with 25+ employees'. execute. *********************************************** . COMMENT Single site or part of a larger organisation (Nsingle). Numeric Nsingle (F3.0). recode asingle (2=1) (1=2) (3=2) (else=Copy) INTO Nsingle . value labels Nsingle 1 'Single independent establishment' 2 'Part of a larger organisation'. variable labels Nsingle 'Single or multi'. execute. *********************************************** . COMMENT Total number of employees within the organisation in the UK (Norgsize, Norgsize2 Norgsize3) . Numeric Norgsize (F3.0). recode auktot (else = COPY) into Norgsize. do if (asingle ne 1 & zallemps<=49). + recode Norgsize (-1 = 1). else if (asingle ne 1 & zallemps>=50 and zallemps<=99). + recode Norgsize (-1 = 2). else if (asingle ne 1 & zallemps>=100 and zallemps<=149). + recode Norgsize (-1 = 3). else if (asingle ne 1 & zallemps>=150 and zallemps<=249). + recode Norgsize (-1 = 4). else if (asingle ne 1 & zallemps>=250 and zallemps<=499). + recode Norgsize (-1 = 5). else if (asingle ne 1 & zallemps>=500 and zallemps<=999). + recode Norgsize (-1 = 6). else if (asingle ne 1 & zallemps>=1000 and zallemps<=1999). + recode Norgsize (-1 = 7). else if (asingle ne 1 & zallemps>=2000 and zallemps<=4999). + recode Norgsize (-1 = 8). else if (asingle ne 1 & zallemps>=5000 and zallemps<=9999). + recode Norgsize (-1 = 9). else if (asingle ne 1 & zallemps>=10000 and zallemps<=49999). + recode Norgsize (-1 = 10). else if (asingle ne 1 & zallemps>=50000 and zallemps<=99999). + recode Norgsize (-1 = 11). else if (asingle ne 1 & zallemps>=100000). + recode Norgsize (-1 = 12). end if . recode Norgsize (1,2 = 1) (3,4,5,6 = 2) (7,8,9 = 3) (10,11,12 = 4) (else = COPY). execute. value labels Norgsize 1 'Less than 100' 2 '100 to less than 1000' 3 '1,000 to less than 10,000' 4 '10,000 or more' -8 'Do not know' -9 'Refuse'. missing values Norgsize (-9 thru -1). variable labels Norgsize 'Size of organisation'. execute . COMMENT Alternative bands (Norgsize2) . Numeric Norgsize2 (f3.0) . recode auktot (else = COPY) into Norgsize2 . execute. do if (asingle ne 1 & zallemps<=49). + recode Norgsize2 (-1 = 1). else if (asingle ne 1 & zallemps>=50 and zallemps<=99). + recode Norgsize2 (-1 = 2). else if (asingle ne 1 & zallemps>=100 and zallemps<=149). + recode Norgsize2 (-1 = 3). else if (asingle ne 1 & zallemps>=150 and zallemps<=249). + recode Norgsize2 (-1 = 4). else if (asingle ne 1 & zallemps>=250 and zallemps<=499). + recode Norgsize2 (-1 = 5). else if (asingle ne 1 & zallemps>=500 and zallemps<=999). + recode Norgsize2 (-1 = 6). else if (asingle ne 1 & zallemps>=1000 and zallemps<=1999). + recode Norgsize2 (-1 = 7). else if (asingle ne 1 & zallemps>=2000 and zallemps<=4999). + recode Norgsize2 (-1 = 8). else if (asingle ne 1 & zallemps>=5000 and zallemps<=9999). + recode Norgsize2 (-1 = 9). else if (asingle ne 1 & zallemps>=10000 and zallemps<=49999). + recode Norgsize2 (-1 = 10). else if (asingle ne 1 & zallemps>=50000 and zallemps<=99999). + recode Norgsize2 (-1 = 11). else if (asingle ne 1 & zallemps>=100000). + recode Norgsize2 (-1 = 12). end if . + recode Norgsize2 (1 = 1) (2,3,4 = 2) (5 thru 12 = 3) (else = COPY). execute. value labels Norgsize2 1 'Small organisation (less than 50 employees in UK)' 2 'Medium-sized organisation (50-249 employees in UK)' 3 'Large organisation (250+ employees in UK)' -8 'Do not know' -9 'Refuse'. missing values Norgsize2 (-9 thru -1). variable labels Norgsize2 'Size of organisation in the UK'. execute . COMMENT Run the following to replace some missings in norgsize2 - imputed from IDBR . do if any(serno,32860,33298) . + recode norgsize2 (-8,-9=1) . else if any(serno,31000,31343,31364,31657,31943,33214,33331,33679). + recode norgsize2 (-8,-9=2) . else if any (serno,30054,30067,30229,30249,30280,30403,30406,30445,30478,30480,30481,30485,30486,30539,30541,30547,30634,30638,30639,30641,30647,30660,30684,30686,30707,30739,30756,30757,30769,30790,30809,30811,30814,30817,30830,30860,30877,30879,30913, 30939,30958,30960,31101,31108,31148,31175,31203,31204,31205,31328,31433,31465,31515,31526,31581,31615,31662,31839,31890,32213,32269,32297,32403,32442,32505,32520,32578,32580,32598,32599,32712,32725,32730,32731,32775,33002,33003,33004,33021,33023, 33028,33029,33030,33036,33087,33088,33103,33165,33183,33211,33271,33345,33346,33414,33440,33703,33709,33802,33806,33906) . +recode norgsize2 (-8,-9=3) . end if . COMMENT Further version that separately identifies branch sites and singles. COMMENT Sole UK establishments (ASINGLE=3) are treated as branch sites . COMMENT The size categorisation for multis and soleUK cases (i.e. ASINGLE=1 or 3) is based on employment in the UK only . Numeric Norgsize3 (f3.0) . recode auktot (else = COPY) into Norgsize3 . execute. do if (asingle=2 & zallemps<=49). + recode Norgsize3 (-1 = 21). else if (asingle=2 & zallemps>=50 and zallemps<=99). + recode Norgsize3 (-1 = 22). else if (asingle=2 & zallemps>=100 and zallemps<=149). + recode Norgsize3 (-1 = 23). else if (asingle=2 & zallemps>=150 and zallemps<=249). + recode Norgsize3 (-1 = 24). else if (asingle=2 & zallemps>=250 and zallemps<=499). + recode Norgsize3 (-1 = 25). else if (asingle=2 & zallemps>=500 and zallemps<=999). + recode Norgsize3 (-1 = 26). else if (asingle=2 & zallemps>=1000 and zallemps<=1999). + recode Norgsize3 (-1 = 27). else if (asingle=2 & zallemps>=2000 and zallemps<=4999). + recode Norgsize3 (-1 = 28). else if (asingle=2 & zallemps>=5000 and zallemps<=9999). + recode Norgsize3 (-1 = 29). else if (asingle=2 & zallemps>=10000 and zallemps<=49999). + recode Norgsize3 (-1 = 30). else if (asingle=2 & zallemps>=50000 and zallemps<=99999). + recode Norgsize3 (-1 = 31). else if (asingle=2 & zallemps>=100000). + recode Norgsize3 (-1 = 32). else if (asingle=3 & zallemps<=49). + recode Norgsize3 (-1 = 41). else if (asingle=3 & zallemps>=50 and zallemps<=99). + recode Norgsize3 (-1 = 42). else if (asingle=3 & zallemps>=100 and zallemps<=149). + recode Norgsize3 (-1 = 43). else if (asingle=3 & zallemps>=150 and zallemps<=249). + recode Norgsize3 (-1 = 44). else if (asingle=3 & zallemps>=250 and zallemps<=499). + recode Norgsize3 (-1 = 45). else if (asingle=3 & zallemps>=500 and zallemps<=999). + recode Norgsize3 (-1 = 46). else if (asingle=3 & zallemps>=1000 and zallemps<=1999). + recode Norgsize3 (-1 = 47). else if (asingle=3 & zallemps>=2000 and zallemps<=4999). + recode Norgsize3 (-1 = 48). else if (asingle=3 & zallemps>=5000 and zallemps<=9999). + recode Norgsize3 (-1 = 49). else if (asingle=3 & zallemps>=10000 and zallemps<=49999). + recode Norgsize3 (-1 = 50). else if (asingle=3 & zallemps>=50000 and zallemps<=99999). + recode Norgsize3 (-1 = 51). else if (asingle=3 & zallemps>=100000). + recode Norgsize3 (-1 = 52). end if . + recode Norgsize3 (1,41 = 4) (2,3,4,42,43,44 = 5) (5 thru 12, 45 thru 52= 6) (21 = 1) (22,23,24 = 2) (25 thru 32 = 3) (else = COPY). execute. value labels Norgsize3 1 'Small single site (less than 50 employees)' 2 'Medium-sized single site (50-249 employees)' 3 'Large single site (250+ employees)' 4 'Branch site of small firm (less than 50 employees in UK)' 5 'Branch site of medium-sized firm (50-249 employees in UK)' 6 'Branch site of large firm (250+ employees in UK)' -8 'Do not know' -9 'Refuse'. missing values Norgsize3 (-9 thru -1). variable labels Norgsize3 'Size of organisation in the UK'. execute . **************************************************************** . COMMENT SMEs (Nsme1) . Numeric Nsme1 (f2.0) . do if nprivate=1 . + recode norgsize2 (-9=-8) (else=copy) into nsme1 . else if nprivate=2 . + recode norgsize2 (1 thru 3=4) (-8,-9=-9) into nsme1 . end if . missing values nsme1 (-8,-9) . variable labels nsme1 "Size of organisation in the UK" . value labels nsme1 1 "Small enterprise (pvt; <50 emps)" 2 "Medium-sized enterprise (pvt; 50-249 emps)" 3 "Large enterprise (pvt; 250+ emps)" 4 "Public sector" -8 "Pvt: DK/NA" -9 "Pub: DK/NA" . execute . **************************************************************** . COMMENT SMEs (Nsme2) . * Variant of Nsme1 that groups SMEs onto a single code . Numeric Nsme2 (f2.0) . recode nsme1 (1,2=1) (3=2) (4=3) (else=copy) into nsme2 . missing values nsme2 (-8,-9) . variable labels nsme2 "Size of organisation in the UK" . value labels nsme2 1 "Small/Medium-sized enterprise (pvt; <250 emps)" 2 "Large enterprise (pvt; 250+ emps)" 3 "Public sector" -8 "Pvt: DK/NA" -9 "Pub: DK/NA" . execute . **************************************************************** . COMMENT Trade union membership and density (Ndensity, Ndens, Nanymem, Ndensbd, Ndens3, Nunimem) . Numeric Ndensity (F5.2). compute Ndensity = sum((zunimem / zallemps * 100), zunipc). do if (zanymem = 2). + recode Ndensity (sysmis = 0). end if. execute. do if (zanymem = 1). + recode Ndensity (sysmis = -7). end if. execute. missing values Ndensity (-7). variable labels Ndensity 'Union density: continuous'. value labels Ndensity -7 'Members present but DK number' . execute. * Recode one case where no entries in any Z vars (but eanyemp=2) . do if serno=33703 . + recode ndensity (sysmis=0) . end if . * Recode another where more union members than employees . do if serno=33766 . + recode ndensity (else=100) . end if . * Union density data: banded variable (Ndens) . Numeric Ndens (F3.0). recode Ndensity (0 = 1) (100 = 6) (90 thru 100 = 5) (50 thru 90 = 4) (25 thru 50 = 3) (0 thru 25 = 2) (-7= 7) into Ndens. value labels Ndens 1 'No union members' 2 '1% to less than 25%' 3 '25% to less than 50%' 4 '50% to less than 90%' 5 '90% to less than 100%' 6 '100% union members' 7 'Members present but DK number' . variable labels Ndens 'Union density: banded'. execute. Numeric Nanymem (f3.0). do if (Ndens = 1). + compute Nanymem = 2. else . + compute Nanymem = 1. end if. value labels Nanymem 2 'No union members' 1 'Members present' . variable labels Nanymem "Whether any union members present". execute. * Collapse density data into banded variable (Ndensbd) . recode Ndensity (0=0) (-7=98) (100=11) (90 thru 100=10) (80 thru 90=9) (70 thru 80=8) (60 thru 70=7) (50 thru 60=6)(40 thru 50=5) (30 thru 40=4)(20 thru 30=3) (10 thru 20=2) (0 thru 10=1) into Ndensbd. value labels Ndensbd 0 'No union members' 1 '1 per cent to less than 10 per cent' 2 '10 per cent to less than 20 per cent' 3 '20 per cent to less than 30 per cent' 4 '30 per cent to less than 40 per cent' 5 '40 per cent to less than 50 per cent' 6 '50 per cent to less than 60 per cent' 7 '60 per cent to less than 70 per cent' 8 '70 per cent to less than 80 per cent' 9 '80 per cent to less than 90 per cent' 10 '90 per cent to less than 100 per cent' 11 '100 per cent union membership' 98 'Members present but DK number' . variable labels Ndensbd 'Union density: banded'. execute. * Three-category density variable (Ndens3) . Numeric Ndens3 (F3.0). recode Ndensity (0 = 1) (50 thru 100 = 3) (0 thru 50 = 2) (-7= 7) into Ndens3. value labels Ndens3 1 'No union members' 2 '1% to less than 50%' 3 '50% to 100%' 7 'Members present but DK number' . variable labels Ndens3 'Union density: banded'. execute. * Number of union members (Nunimem) . Numeric Nunimem (f6.0) . do if missing(zunimem)=0 . + compute nunimem=zunimem . else if missing(zunimem) and missing(zunipc)=0 . + compute nunimem=(zallemps*(zunipc/100)) . else . + compute nunimem=-9 . end if . missing values nunimem (-9) . variable labels nunimem "Number of union members at the establishment" . value labels nunimem -9 "DK/NA" . exec . *********************************************** . COMMENT Number of unions with members at the workplace, including zeros (Nunionum). recode eunionum (SYSMIS=0). execute. Numeric Nunionum (f2). recode nunionum (else=sysmis) . do if (missing(ndensity)=1) or (missing(ndensity)=0 and ndensity>0). + do if missing(eunionum) and value(eunionum)=-9 . + compute Nunionum=-9 . + else if missing(eunionum) and value(eunionum)=-8 . + compute Nunionum=-8 . + else if (missing(eunionum)=0 and (eunionum<10 or (eunionum=10 and missing(eunionck)))) . + compute Nunionum=eunionum . + else if missing(eunionum)=0 and eunionum=10 and missing(eunionck)=0 . + compute Nunionum=eunionck . + end if . else if ndensity=0. + compute Nunionum=0 . end if. missing values Nunionum (-8,-9). variable labels Nunionum 'Number of unions with members at the workplace, all workplaces'. value labels Nunionum -8 'DK' -9 'Not answered'. execute. *********************************************** . COMMENT Union recognition (Nrecog2) . Numeric Nrecog2 (F3.0). do if ndensbd=0 . + recode eothrec (1=3) (2=1) (-8,-9=7) into nrecog2 . else if ndensbd=1 or ndensbd=98. + do if missing(nunionum)=0 . + recode etotrec (0=2) (1 thru 10=4) into nrecog2 . + do if nrecog2=2 and missing(eaddrec) . + recode nrecog2 (2=6) . + else if nrecog2=2 and missing(eaddrec)=0 and eaddrec=1 . + recode nrecog2 (2=4) . + end if . + else if missing(nunionum) . + recode eaddrec (1=4) (2,-8,-9=6) into nrecog2 . + end if . else if ndensbd>=2 and ndensbd<=11 . + do if missing(nunionum)=0 . + recode etotrec (0=2) (1 thru 10=4) into nrecog2 . + do if nrecog2=2 and missing(eaddrec) . + recode nrecog2 (2=5) . + else if nrecog2=2 and missing(eaddrec)=0 and eaddrec=1 . + recode nrecog2 (2=4) . + end if . + else if missing(nunionum) . + recode eaddrec (1=4) (2,-8,-9=5) into nrecog2 . + end if . end if . variable labels Nrecog2 'Union recognition'. value labels Nrecog2 1 'No members, no recognition' 2 'Members, no recognition' 3 'No members, recognised unions' 4 'Members, recognised unions' 5 'Density 10%+, DK if any recognition' 6 'Density <10 % or unknown, DK if any recognition' 7 'No members, DK if any recognition'. execute. *********************************************** . COMMENT Collapse the recognition variable (Nrecog3). Numeric Nrecog3 (f3.0). recode Nrecog2 (1,2 = 1) (3,4=2) (ELSE = -9) into Nrecog3. missing values Nrecog3 (-9). value labels Nrecog3 1 'No union recognised' 2 'At least one recognised union' -9 'DK/NA'. variable label Nrecog3 'Union recognition'. execute. *********************************************** . COMMENT Breakdown of age variables - Proportion aged 16 to 21 (N16t21d). numeric n16t21d (f3.0). recode n16t21 (25 thru hi=4)(10 thru 25=3)(5 thru 10=2)(0 thru 5=1)(else=copy) into n16t21d. missing values n16t21d (-1, -8, -9). variable label n16t21d 'Proportion of workforce aged 16 to 21'. value labels n16t21d 1 'Less than 5 per cent' 2 '5-9 per cent' 3 '10 to 24 per cent' 4 '25 per cent or more' -1 'Not applicable' -8 'Do not know' -9 'Refused'. execute. *********************************************** . COMMENT Proportion of employees 50 or over (n50plus, n50plusd) . do if (missing(z50plus)=1 & missing(z50plusp)=1). + compute n50plus=-8. else if (missing(z50plus) ne 1). + compute n50plus = z50plus/zallemps*100. else. + compute n50plus=z50plusp. end if. variable labels n50plus 'Proportion of employees aged 50 or over'. value labels n50plus -8 'DK/NA'. missing values n50plus (-8). execute. *Breakdown of age variables - Proportion aged 50 or more. numeric n50plusd (f3.0). recode n50plus (25 thru hi=4)(10 thru 25=3)(5 thru 10=2)(0 thru 5=1)(else=copy) into n50plusd. missing values n50plusd (-1, -8, -9). variable label n50plusd 'Proportion of workforce aged 50 or more'. value labels n50plusd 1 'Less than 5 per cent' 2 '5-9 per cent' 3 '10 to 24 per cent' 4 '25 per cent or more' -1 'Not applicable' -8 'Do not know' -9 'Refused'. execute. COMMENT To distinguish betweeen none, few or relatively large proportion of employees aged 50 or more (n50bd2). numeric n50bd2 (f3.0). recode n50plus (0=1)(25 thru hi=3)(0 thru 25=2)(else=copy) into n50bd2. missing values n50bd2 (-1, -8, -9). variable label n50bd2 'Proportion of workforce aged 50 or more'. value labels n50bd2 1 'None' 2 'Some, but less than 25 per cent' 3 '25 per cent or more' -1 'Not applicable' -8 'Do not know' -9 'Refused'. execute. *********************************************** . COMMENT Proportion female in total employment (Nfemprop, Nfprop) . do if (missing(zfemfull) = 1 | missing(zfemprt) = 1). + compute Nfemprop = -8. else. + compute Nfemprop = (zfemfull + zfemprt) / zallemps. end if. execute. Numeric Nfprop (F3.0). recode Nfemprop (0 thru 0.1 = 1) (0.1 thru 0.25 = 2) (0.25 thru 0.5 = 3) (0.5 thru 0.75 = 4) (0.75 thru 0.9 = 5) (0.9 thru 1 = 6) (-8=copy) into Nfprop. execute. variable labels Nfemprop 'Female employees as a proportion of all employment' Nfprop 'Female employees as a proportion of all employment: banded'. value labels Nfprop 1 '10% or less' 2 'More than 10% to 25%' 3 'More than 25% to 50%' 4 'More than 50% to 75%' 5 'More than 75% to 90%' 6 'More than 90%' -8 'Do not know / Not answered' / Nfemprop -8 'Do not know / Not answered'. missing values Nfprop (-8) / Nfemprop (-8). COMMENT Proportion of female employees, rounded to integers (nfemdens) . numeric Nfemdens (f3.0). do if (missing(nfemprop)=1). + compute nfemdens=-8. else. + compute nfemdens=rnd(100*nfemprop). end if. missing values nfemdens (-8). variable labels nfemdens 'Proportion of female employees, rounded to integers'. execute. *********************************************** . COMMENT Gender composition of management occupation (Nmgtgen) . numeric nmgtgen (f3.0). do if ((missing(zmng_mft)=1) | (missing(zmng_mpt)=1) | (missing(zmng_fft)=1) | (missing(zmng_fpt)=1) | missing(zmng_tot)=1). + compute nmgtgen=-8. else if nmng_flg=1. + compute nmgtgen=-7. else if zmng_tot=0. + compute nmgtgen=-6. else. compute nmgtgen=((zmng_fft+zmng_fpt)/zmng_tot)*100. end if. execute. missing values nmgtgen (-8, -7, -6). variable labels nmgtgen 'Gender composition of management occupation'. value labels nmgtgen -6 'No managers' -7 'Data observed, but not internally consistent' -8 'DK/NA'. execute . *********************************************** . COMMENT Ratio of women to men managers (Nmgtsex) . Numeric Nmgtsex (f5.2). do if ((missing(zmalfull)=1) | (missing(zmalprt)=1) | (missing(zfemfull)=1) | (missing(zfemprt)=1) | (missing(zmng_mft)=1) | (missing(zmng_mpt)=1) | (missing(zmng_fft)=1) | (missing(zmng_fpt)=1) | missing(zmng_tot)). + compute Nmgtsex=-8. else if Nmf_flg=1 or Nmng_flg=1 . + compute Nmgtsex=-7 . else if ((zmalfull + zmalprt)=0). + compute Nmgtsex=-6. else if ((zfemfull + zfemprt)=0). + compute Nmgtsex=-5. else if (zmng_tot=0). + compute Nmgtsex=-4. else if ((zmng_mft + zmng_mpt)=0). + compute Nmgtsex=-3. else. + compute Nmgtsex=(((zmng_fft + zmng_fpt)/(zfemfull + zfemprt)) / ((zmng_mft + zmng_mpt)/(zmalfull + zmalprt))). end if. missing values Nmgtsex (-8 thru -3). variable labels Nmgtsex 'Ratio of women to men managers (controlling for employment share)'. value labels Nmgtsex -3 'No male managers' -4 'No managers' -5 'Wholly male workplace' -6 'Wholly female workplace' -7 'Data observed but not internally consistent' -8 'DK/NA'. execute. COMMENT Banding of nmgtsex (Nmgtbd) . numeric Nmgtbd (f3.0). recode Nmgtsex (0=1) (0.001 thru 0.999=2) (1.000 thru hi=3) (-3=4)(else=copy) into Nmgtbd. missing values Nmgtbd (-8 thru -4). variable labels Nmgtbd 'Ratio of women to men managers (controlling for employment share) - banded'. value labels Nmgtbd 1 'Only male managers (some female employees)' 2 'Male managers over-represented' 3 'Female managers equally or over-represented' 4 'Only female managers (some male employees)' -4 'No managers' -5 'Wholly male workplace (includes some wps with no managers)' -6 'Wholly female workplace (includes some wps with no managers)' -7 'Data observed but not internally consistent' -8 'DK/NA'. execute. *********************************************** . COMMENT Female under-representation in management - 2 bands (nfmgt2) . numeric nfmgt2 (f3.0). recode nmgtbd (1 thru 2 = 1) (3 thru 4=2) (else=copy) into nfmgt2. missing values nfmgt2 (-8 thru -4). variable label nfmgt2 'Female under-representation in management (controlling for employment share) - 2 bands'. value labels nfmgt2 1 'Female managers under-represented' 2 'Female managers equally, or over-represented' -4 'No managers' -5 'Wholly male workplace (includes some wps with no managers)' -6 'Wholly female workplace (includes some wps with no managers)' -7 'Data observed, but not internally consistent' -8 'Do not know/Not applicable'. execute. COMMENT Male under-representation in management - 2 bands (nmmgt2) . numeric nmmgt2 (f3.0). recode nmgtsex (0 thru 1=2) (1 thru hi=1)(-3=1) (else=copy) into nmmgt2. missing values nmmgt2 (-8 thru -4). variable label nmmgt2 'Male under-representation in management (controlling for employment share) - 2 bands'. value labels nmmgt2 1 'Male managers under-represented' 2 'Male managers equally or over-represented' -4 'No managers' -5 'Wholly male workplace (includes some wps with no managers)' -6 'Wholly female workplace (includes some wps with no managers)' -7 'Data observed but not internally consistent' -8 'DK/NA'. execute. **************************************************************** . COMMENT Proportion part time in total employment (Nprtprop, Nptprop) . do if (missing(zmalprt) = 1 | missing(zfemprt) = 1). + compute Nprtprop = -8. else. + compute Nprtprop = (zmalprt + zfemprt) / zallemps. end if. variable labels Nprtprop 'Part time employees as a proportion of all employment'. value labels Nprtprop -8 'Do not know / Not answered'. missing values Nprtprop (-8). execute. Numeric Nptprop (F3.0). do if (missing(Nprtprop) = 1). + compute Nptprop = -8. else if (Nprtprop = 0). + compute Nptprop = 1. else if (Nprtprop le 0.1). + compute Nptprop = 2. else if (Nprtprop le 0.25). + compute Nptprop = 3. else if (Nprtprop le 0.5). + compute Nptprop = 4. else if (Nprtprop le 0.75). + compute Nptprop = 5. else. + compute Nptprop = 6. end if. variable labels Nptprop 'Part time employees as a proportion of all employment: 6 bands'. value labels Nptprop 1 'No part-time employees' 2 '10% or less' 3 'More than 10% to 25%' 4 'More than 25% to 50%' 5 'More than 50% to 75%' 6 'More than 75%' -8 'Do not know /Not answered'. missing values Nptprop (-8). execute. COMMENT Women-only part-time workers employed (Npartwom) . numeric npartwom (f1). do if ((missing(zmalprt)=1) | (missing(zfemprt)=1)). + compute Npartwom=-8. else if ((zmalprt + zfemprt)=0). + compute Npartwom=2. else if ((zmalprt + zfemprt)>0 & (zmalprt=0)). + compute Npartwom=1. else. + compute Npartwom=0. end if. missing values Npartwom (-8). variable labels Npartwom 'Women-only part-time workers'. value labels Npartwom 0 'No' 1 'Yes' 2 'No part-timers' -8 'Do not know/Not applicable'. execute. *********************************************** . COMMENT Percentage of employees on temporary or fixed-term contracts (Nfixpc) . numeric nfixpc (f3.0). recode zfixterm (-1, -9=copy) into nfixpc. recode zanytem (-8, -9=copy) into nfixpc. do if (missing(zfixterm) ne 1). + compute Nfixpc = zfixterm/zallemps*100. else if zanytem=2. + compute nfixpc = 0. else if zanytem=1. + compute nfixpc=-8. end if. variable labels nfixpc 'Proportion of employees on temporary or fixed term contracts'. value labels nfixpc -1 'Not applicable' -8 'Do not know' -9 'Refused'. missing values nfixpc (-1, -8, -9). execute. *********************************************** . COMMENT Employees on fixed-term contracts (Nfixterm) . numeric nfixterm (f3.0). recode nfixpc (0, -1, -8, -9=copy) into nfixterm. recode zanytem (1=copy) into nfixterm. do if nfixpc>0. + compute nfixterm=1. end if. value labels nfixterm 1 'Yes' 0 'No' -1 'Not applicable' -8 'Do not know' -9 'Refused'. missing values nfixterm (-1, -8, -9). variable labels nfixterm 'Any employees on temporary or fixed term contracts'. execute. *********************************************** . COMMENT Temporary agency workers. COMMENT Percentage of employees on temporary agency contracts (ntemp) . numeric ntemp (f3.0). recode zagency (-1, -9=copy) into ntemp. recode zanyagy (-8, -9=copy) into ntemp. do if (missing(zagency) ne 1). + compute ntemp = zagency/zallemps*100. else if zanyagy=2. + compute ntemp = 0. else if zanyagy=1. + compute ntemp = -8. end if. variable labels ntemp 'Percentage of employees on temporary agency contracts'. value labels ntemp -1 'Not applicable' -8 'Do not know' -9 'Refused'. missing values ntemp (-1, -8, -9). execute. COMMENT Any employees on temporary agency contracts (ntempany) . numeric ntempany (f3.0). recode ntemp (0, -1, -8, -9=copy) into ntempany. recode zanyagy (1=copy) into ntempany. do if ntemp>0. + compute ntempany=1. end if. value labels ntempany 1 'Yes' 0 'No' -1 'Not applicable' -8 'Do not know' -9 'Refused'. missing values ntempany (-1, -8, -9). variable labels ntempany 'Any employees on temporary agency contracts'. execute. *********************************************** . COMMENT Internal labour market - whether internal/external applicants given preference (Nvacpref) . Numeric Nvacpref (F3.0). recode cfillvac (1,2=1) (3=2) (4,5=3) (else=copy) into nvacpref . value labels nvacpref 1 'Internel applicants given preference' 2 'Treated equally' 3 'External applicants given preference' -8 'DK' -9 'NA'. missing values Nvacpref (-9,-8). variable label Nvacpref 'Approach to filling vacancies'. execute. *********************************************** . COMMENT Derived variables based on Q3 of the EPQ grid (occupational mix) . * Occupational dummies. recode zmng_tot zpro_tot ztec_tot zadm_tot zskl_tot zper_tot zsal_tot zope_tot zrou_tot (0=Copy) (1 thru 999990=1) (else=-9) INTO Nmng_dum Npro_dum Ntec_dum Nadm_dum Nskl_dum Nper_dum Nsal_dum Nope_dum Nrou_dum . missing values Nmng_dum to Nrou_dum (-9). value labels Nmng_dum to Nrou_dum 0 'None employed' 1 'Employed' -9 'DK/NA'. variable labels Nmng_dum 'Managers and senior administrators' Npro_dum 'Professional' Ntec_dum 'Technical' Nadm_dum 'Administrative and secretarial' Nskl_dum 'Skilled trades' Nper_dum 'Caring, leisure and personal service' Nsal_dum 'Sales and customer service' Nope_dum 'Process, plant and machine operatives and drivers' Nrou_dum 'Routine unskilled'. execute. do if (missing(Nmng_dum) = 1 | missing(Npro_dum) = 1 | missing(Ntec_dum) = 1 | missing(Nadm_dum) = 1 | missing(Nskl_dum) = 1 | missing(Nper_dum) = 1 | missing(Nsal_dum) = 1 | missing(Nope_dum) = 1 | missing(Nrou_dum) = 1 ). + recode Nmng_dum Npro_dum Ntec_dum Nadm_dum Nskl_dum Nper_dum Nsal_dum Nope_dum Nrou_dum (ELSE = -9). end if. execute. *********************************************** . COMMENT Total number of occupational groups at workplace (Nnumocc). Numeric Nnumocc (f2). do if ((missing(Nmng_dum)=1) | (missing(Npro_dum)=1) | (missing(Ntec_dum)=1) | (missing(Nadm_dum)=1) | (missing(Nskl_dum)=1) | (missing(Nper_dum)=1) | (missing(Nsal_dum)=1) | (missing(Nope_dum)=1) | (missing(Nrou_dum)=1)). + compute Nnumocc=-9. else. + compute Nnumocc=sum(Nmng_dum to Nrou_dum). end if. missing values Nnumocc (-9). variable labels Nnumocc 'Number of occupations employed'. value labels Nnumocc -9 'DK/NA'. execute. *********************************************** . COMMENT Variables to identify the largest occupational group (LOG) (Nhiocc, Nhioccp) . Numeric hiocc1 (F5.0). do if (missing(zpro_tot) = 1 | missing(ztec_tot) = 1 | missing(zadm_tot) = 1 | missing(zskl_tot) = 1 | missing(zper_tot) = 1 | missing(zsal_tot) = 1 | missing(zope_tot) = 1 | missing(zrou_tot) = 1). + compute hiocc1 = -9. else. + compute hiocc1 = max(zpro_tot, ztec_tot, zadm_tot, zskl_tot, zper_tot, zsal_tot, zope_tot, zrou_tot). end if. execute. missing values hiocc1 (-9). Numeric Nhiocc (F3.0). do if (hiocc1 = 0 | missing(hiocc1) = 1). + compute Nhiocc = -9. end if. execute. do if (hiocc1 = zrou_tot). + recode Nhiocc (sysmis = 9). else if (hiocc1 = zope_tot). + recode Nhiocc (sysmis = 8). else if (hiocc1 = zsal_tot). + recode Nhiocc (sysmis = 7). else if (hiocc1 = zper_tot). + recode Nhiocc (sysmis = 6). else if (hiocc1 = zskl_tot). + recode Nhiocc (sysmis = 5). else if (hiocc1 = zadm_tot). + recode Nhiocc (sysmis = 4). else if (hiocc1 = ztec_tot). + recode Nhiocc (sysmis = 3). else if (hiocc1 = zpro_tot). + recode Nhiocc (sysmis = 2). end if. execute. variable labels Nhiocc 'Non-managerial occupational group with the most employees'. value labels Nhiocc 1 'Managers and senior officials' 2 'Professional' 3 'Associate professional and technical' 4 'Administrative and secretarial' 5 'Skilled trades' 6 'Caring, leisure and personal service' 7 'Sales' 8 'Operative and assembly' 9 'Routine unskilled' -8 'LOG questions asked of wrong group' -9 'Do not know / Not answered'. missing values Nhiocc (-8,-9). delete variable hiocc1 * Proportion of employment accounted for by the largest occupational group (NHIOCCP)(All employees as base). Numeric Nhioccp (F3.2). do if (missing(Nhiocc) = 1 or Nocc_flg=1). + compute Nhioccp = -9. else if (Nhiocc = 1). + compute Nhioccp = zmng_tot / zallemps. else if (Nhiocc = 2). + compute Nhioccp = zpro_tot / zallemps. else if (Nhiocc = 3). + compute Nhioccp = ztec_tot / zallemps. else if (Nhiocc = 4). + compute Nhioccp = zadm_tot / zallemps. else if (Nhiocc = 5). + compute Nhioccp = zskl_tot / zallemps. else if (Nhiocc = 6). + compute Nhioccp = zper_tot / zallemps. else if (Nhiocc = 7). + compute Nhioccp = zsal_tot / zallemps. else if (Nhiocc = 8). + compute Nhioccp = zope_tot / zallemps. else if (Nhiocc = 9). + compute Nhioccp = zrou_tot / zallemps. end if. missing values Nhioccp (-9). variable label Nhioccp 'Largest non-mangerial occupational group as a proportion of all employees'. value labels Nhioccp -9 'Missing data/Numbers do not sum'. execute. ******************************************************************************** . COMMENT Non-managerials as a proportion of all employees (Nnmpc) . Numeric Nnmp (f4.2) . do if nocc_flg=1 . + compute nnmp=-9 . else if nocc_flg=0 . + compute nnmp=(sum.8(zpro_tot,ztec_tot,zadm_tot,zskl_tot,zper_tot,zsal_tot,zope_tot,zrou_tot)/zallemps) . end if . missing values nnmp (-9) . variable labels nnmp "Non-managerials as a proportion of all employees" . value labels nnmp -9 "Missing data in occ totals" . execute . ******************************************************************************** . COMMENT Routine/any use of personality tests in recruitment (Npertest) . numeric nperstest (f2.0) . do if (missing(catests) = 1). + recode catests (else=copy) into nperstest . else if (catests = 2). + compute nperstest = 4 . else if catests=1 and missing(ctestwh1) . + compute nperstest=2 . else if (catests=1 and ctestwh1=10). + compute nperstest=3 . else if (catests=1 and ctestwh1>=1 and ctestwh1<=9). + compute nperstest=1 . end if . missing values nperstest (-9 thru -7) . variable labels nperstest "Use of personality tests in recruitment" . value labels nperstest 1 "Personality tests used routinely for some occupations" 2 "Personality tests used, but DK/NA whether routinely" 3 "Personality tests, but not routinely for any occupations" 4 "Personality tests not used" -8 "DK if personality tests used at all" -9 "NA whether personality tests used at all" . execute . COMMENT Number of occupations where applicants routinely given personality test (Nnumpers) . Numeric Nnumpers (F2.0). do if missing(nperstest) or (missing(nperstest)=0 and nperstest>1) . + recode nperstest (-8,-9=copy) (4,3=0) (2=-7) into nnumpers . else if missing(nperstest)=0 and nperstest=1 . + count Nnumpers = ctestwh1 ctestwh2 ctestwh3 ctestwh4 ctestwh5 ctestwh6 ctestwh7 ctestwh8 ctestwh9 (1 thru 9). end if. missing values Nnumpers (-9 thru -7). variable labels Nnumpers 'Number of occupations where applicants routinely given personality test'. value labels nnumpers 0 "Personality tests not routinely used for any occs" -7 "Personality tests used, but DK/NA whether routinely" -8 "DK if personality tests used at all" -9 "NA whether personality tests used at all" . execute. COMMENT Types of applicant routinely given a personality test . Numeric Npsontst (F5.0). do if missing(nperstest) or (missing(nperstest)=0 and nperstest>1) . + recode nperstest (-8,-9=copy) (4,3=4) (2=-7) into npsontst . else if missing(nperstest)=0 and nperstest=1 . + do if (ctestwh1 = 1 & missing(ctestwh2) = 1). + compute Npsontst = 3. + else if (missing(nnumocc) = 1). + compute Npsontst = -6. + else if (Nnumpers = Nnumocc). + compute Npsontst = 1. + else. + compute Npsontst = 2. + end if . end if. value labels Npsontst 1 'All employees' 2 'Some non-managerial employees' 3 'Managers only' 4 'No routine personality tests for any occ' -6 'Nnumocc missing' -7 "Personality tests used, but DK/NA whether routinely" -8 "DK if personality tests used at all" -9 "NA whether personality tests used at all" . missing values Npsontst (-9 thru -6). variable labels Npsontst 'Types of applicant routinely given a personality test'. execute. COMMENT Personality tests used in the LOG (Nperslog) . Numeric Nperslog (f3.0). do if missing(nperstest) or (missing(nperstest)=0 and nperstest>1) . + recode nperstest (-8,-9=copy) (4,3=3) (2=-7) into nperslog . else if missing(nperstest)=0 and nperstest=1 . + do if (missing(ctestwh1) = 1 | missing(Nhiocc) = 1). + compute Nperslog = -6. + else if (any(Nhiocc,ctestwh1 to ctestwh9) = 1 ). + compute Nperslog = 1. + else. + compute Nperslog = 2. + end if . end if . missing values Nperslog (-9 thru -6). value labels Nperslog 1 'Routine personality tests in the LOG' 2 'Routine personality tests but not in LOG' 3 'No routine personality tests for any occ' -6 'Nhiocc missing' -7 "Personality tests used, but DK/NA whether routinely" -8 "DK if personality tests used at all" -9 "NA whether personality tests used at all" . variable labels Nperslog 'Personality tests routinely used for applicants to the largest occupational group'. execute. *********************************************** . COMMENT Routine/any use of performance tests in recruitment (Nperftest) . numeric Nperftest (f2.0) . do if (missing(cptests) = 1). + recode cptests (else=copy) into nperftest . else if (cptests = 2). + compute nperftest = 4 . else if cptests=1 and missing(cwhodo1) . + compute nperftest=2 . else if (cptests=1 and cwhodo1=10). + compute nperftest=3 . else if (cptests=1 and cwhodo1>=1 and cwhodo1<=9). + compute nperftest=1 . end if . missing values nperftest (-9 thru -7) . variable labels nperftest "Use of performance tests in recruitment" . value labels nperftest 1 "Performance tests used routinely for some occupations" 2 "Performance tests used, but DK/NA whether routinely" 3 "Performance tests, but not routinely for any occupations" 4 "Performance tests not used" -8 "DK if performance tests used at all" -9 "NA whether performance tests used at all" . execute . *********************************************** . COMMENT Performance tests routinely used for applicants to the largest occupational group (Nprflog) . Numeric Nperflog (f3.0). do if missing(nperftest) or (missing(nperftest)=0 and nperftest>1) . + recode nperftest (-8,-9=copy) (4,3=3) (2=-7) into nperflog . else if missing(nperftest)=0 and nperftest=1 . + do if (missing(cwhodo1) = 1 | missing(Nhiocc) = 1). + compute Nperflog = -6. + else if (any(Nhiocc,cwhodo1 to cwhodo9) = 1 ). + compute Nperflog = 1. + else. + compute Nperflog = 2. + end if . end if . missing values Nperflog (-9 thru -6). value labels Nperflog 1 'Routine performance tests in the LOG' 2 'Routine performance tests but not in LOG' 3 'No routine performance tests for any occ' -6 'Nhiocc missing' -7 "Performance tests used, but DK/NA whether routinely" -8 "DK if performance tests used at all" -9 "NA whether performance tests used at all" . variable labels Nperflog 'Performance tests routinely used for applicants to the largest occupational group'. execute. *********************************************** . COMMENT Performance appraisals (Nwhoapp, Napprais) . * Which types of employee are formally appraised (nwhoapp) . numeric Nwhoapp (f2.0) . do if (missing(fsocin01) = 1). + recode fsocin01 (else=copy) into nwhoapp . else if (fsocin01 = 0). + compute nwhoapp = 1. else if (fsocin01 = 10). + compute nwhoapp = 4. else if fsocin01=1 and missing(fsocin02) . + compute nwhoapp=2 . else if any(1,fsocin01 to fsocin09)=0 . + compute nwhoapp=3 . else . + compute nwhoapp = 1. end if . missing values nwhoapp (-9,-8) . variable labels nwhoapp "Types of employee that have formal performance appraisals" . value labels nwhoapp 1 "Managers and non-managers" 2 "Managers only" 3 "Non-managers only" 4 "No employees" -8 "DK" -9 "NA" . execute . * Any regular non-managerial appraisals (Napprais) . Numeric Napprais (F5.0). do if (missing(nwhoapp) = 1). + recode nwhoapp (else=copy) into napprais . else if (nwhoapp= 2) . + compute Napprais = 3. else if (nwhoapp= 4) . + compute Napprais = 4. else if nwhoapp=1 or nwhoapp=3 . + do if (missing(fappwhen) = 1). + compute Napprais = -7. + else if missing(fappwhen)=0 and any(fappwhen,5) . + compute Napprais = 2. + else if missing(fappwhen)=0 and any(fappwhen,1,2,3,4,7) . + compute Napprais = 1. + else if missing(fappwhen)=0 and fappwhen=6 and (any(xfappwh1,1,2,3,4) or any(xfappwh2,1,2,3,4) or any(xfappwh3,1,2,3,4)). + compute Napprais = 1. + else . + compute Napprais = 2. + end if . end if. value labels Napprais 1 'Regular appraisal for some non-managers' 2 'Non-regular appraisal for some non-managers' 3 'Managers only appraised' 4 'No appraisals' -7 "Appraisals for non-mgrs, but DK regularity" -8 "DK if appraisals" -9 "NA if appraisals". variable labels Napprais 'Any regular appraisals for non-managers'. missing values Napprais (-9 thru -7). execute. COMMENT What proportion of non-managerial employees are regularly appraised (Nmapprai, Nmapra1) . Numeric Nmapprai (F5.0). do if (missing(Napprais) = 1) or (missing(napprais)=0 and napprais>1) . + recode napprais (2 thru 4=4) (-9 thru -7=copy) into nmapprai . else if (Napprais = 1) . + do if missing(fmeaspr) . + compute nmapprai=-6 . + else if fmeaspr<97 . + recode fmeaspr (1=1) (2,3=2) (4 thru 6=3) into nmapprai . + else if fmeaspr=97 . + do if missing(nnmp) . + compute nmapprai=-6 . + else . + if (fmeasprt=(nnmp*zallemps)) nmapprai=1 . + if ((fmeasprt*100)/(nnmp*zallemps))>=60 and ((fmeasprt*100)/(nnmp*zallemps))<100 nmapprai=2 . + if fmeasprt>0 and ((fmeasprt*100)/(nnmp*zallemps))<60 nmapprai=3 . + end if . + end if . end if. value labels Nmapprai 1 'All appraised regularly' 2 'Most (60-99%) appraised regularly' 3 'Some (1-59%) appraised regularly' 4 'No regular appraisals for non-managerials' -6 "Regular appraisals for non-mgrs, but DK proportion" -7 "Appraisals for non-mgrs, but DK regularity" -8 "DK if appraisals" -9 "NA if appraisals". variable labels Nmapprai 'Proportion of non-managerial employees who are regularly appraised'. missing values Nmapprai (-9 thru -6). execute. Numeric Nmappra1 (F5.0). recode nmapprai (1,2=1) (3=2) (4=3) (else=copy) into nmappra1 . value labels Nmappra1 1 'Most appraised regularly' 2 'Some appraised regularly' 3 'No regular appraisals for non-managerials' -6 "Regular appraisals for non-mgrs, but DK proportion" -7 "Appraisals for non-mgrs, but DK regularity" -8 "DK if appraisals" -9 "NA if appraisals". variable labels Nmappra1 'Proportion of non-managerial employees who are appraised'. missing values Nmappra1 (-9 thru -6). execute. *********************************************** . COMMENT Any off-the-job training (Ntrain) . Numeric Ntrain (F5.0). do if (missing(coffjob) = 1). + recode coffchk (else=copy) into ntrain . else if missing(coffjob)=0 . + recode coffjob (1 thru 6,97=1) (7=2) into ntrain . end if . value labels Ntrain 1 'Yes' 2 'No' -8 'Do not know' -9 'Not answered'. variable labels Ntrain 'Formal off the job training for experienced employees in LOG'. missing values Ntrain (-9 thru -1). execute . *********************************************** . COMMENT Length of training for experienced members of the LOG (Nltrain) . Numeric Nltrain (F5.0). recode ctrain (1 thru 4,-1=2) (5,6=1) (-9,-8=copy) into nltrain . value labels Nltrain 1 'Yes' 2 'No' -8 'Do not know' -9 'Not answered'. variable labels Nltrain '5 or more days formal off the job training in LOG'. missing values Nltrain (-9 thru -1). execute. *********************************************** . COMMENT Proportion of LOG working in teams (Nteams) . COMMENT Combines responses from variables CTEAMS and CTEAMST. numeric Nteams (f3). do if missing(cteams) or (missing(cteams)=0 and cteams<97). + recode cteams (else=copy) into nteams . else if missing(cteams)=0 and cteams=97 . + do if missing(nhioccp) . + compute nteams=-7 . + else . + compute temp=(cteamst*100)/(nhioccp*zallemps) . + recode temp (0=7) (100=1) (79.5 thru 100=2) (59.5 thru 79.5=3) (39.5 thru 59.5=4) (19.5 thru 39.5=5) (0 thru 19.5=6) into nteams . + end if . end if . missing values nteams (-9 thru -1) . variable labels nteams "Proportion of LOG that works in teams" . value labels nteams 1 "All (100%)" 2 "Almost all (80-99%)" 3 "Most (60-79%)" 4 "Around half (40-59%)" 5 "Some (20-39%)" 6 "Just a few (1-19%)" 7 "None (0%)" -7 "Nhioccp missing" -8 "DK" -9 "NA" . execute . delete variable temp . *********************************************** . COMMENT Most of LOG working in teams, recode of nteams (nteamsb) . recode nteams (1 thru 3=1) (else=copy) into nteamsb . variable labels nteamsb "Most of LOG works in teams" . value labels nteamsb 1 "60% or more of LOG works in teams" 4 "Around half (40-59%)" 5 "Some (20-39%)" 6 "Just a few (1-19%)" 7 "None (0%)" -7 "Nhioccp missing" -8 "DK" -9 "NA" . execute . *********************************************** . COMMENT Proportion of LOG trained to be functionally flexible (Nothjob) . COMMENT Combines responses from variables COTHJOB and COTHJOBT. numeric Nothjob (f3). do if missing(cothjob) or (missing(cothjob)=0 and cothjob<97). + recode cothjob (else=copy) into nothjob . else if missing(cothjob)=0 and cothjob=97 . + do if missing(nhioccp) . + compute nothjob=-7 . + else . + compute temp=(cothjobt*100)/(nhioccp*zallemps) . + recode temp (0=7) (100=1) (79.5 thru 100=2) (59.5 thru 79.5=3) (39.5 thru 59.5=4) (19.5 thru 39.5=5) (0 thru 19.5=6) into nothjob . + end if . end if . missing values nothjob (-9 thru -1) . variable labels nothjob "Proportion of LOG trained to be functionally flexible" . value labels nothjob 1 "All (100%)" 2 "Almost all (80-99%)" 3 "Most (60-79%)" 4 "Around half (40-59%)" 5 "Some (20-39%)" 6 "Just a few (1-19%)" 7 "None (0%)" -7 "Nhioccp missing" -8 "DK" -9 "NA" . execute . delete variable temp. *********************************************** . COMMENT Functional flexibility in practice (Nothdo) . COMMENT Combines responses from variables COTHDO and COTHDOT. numeric Nothdo (f3). do if missing(cothdo) or (missing(cothdo)=0 and cothdo<97). + recode cothdo (else=copy) into nothdo . else if missing(cothdo)=0 and cothdo=97 . + do if missing(nhioccp) . + compute nothdo=-7 . + else . + compute temp=(cothdot*100)/(nhioccp*zallemps) . + recode temp (0=7) (100=1) (79.5 thru 100=2) (59.5 thru 79.5=3) (39.5 thru 59.5=4) (19.5 thru 39.5=5) (0 thru 19.5=6) into nothdo . + end if . end if . missing values nothdo (-9 thru -1) . variable labels nothdo "Proportion of LOG being functionally flexible at least once a week" . value labels nothdo 1 "All (100%)" 2 "Almost all (80-99%)" 3 "Most (60-79%)" 4 "Around half (40-59%)" 5 "Some (20-39%)" 6 "Just a few (1-19%)" 7 "None (0%)" -7 "Nhioccp missing" -8 "DK" -9 "NA" . execute . delete variable temp . *********************************************** . COMMENT Whether 60%+ of LOG are trained to do jobs other than own (Nfunc) . Numeric Nfunc (f3.0). do if (missing(cothjob) = 1). + recode cothjob (else=copy) into nfunc . else if (cothjob le 3). + compute Nfunc = 1. else if (cothjob>3 and cothjob<=7). + compute Nfunc = 0. else if cothjob=97 . + do if missing(nhioccp) . + compute nfunc=-7 . + else . + compute nfunc=(cothjobt>=(nhioccp*zallemps*0.6)) . + end if . end if. missing values Nfunc (-9 thru -7). value labels Nfunc 1 'Most (60%+) trained to be functionally flexible' 0 'No' -7 'Nhioccp missing' -8 'DK' -9 'NA'. variable labels Nfunc 'Most employees (60%+) trained to be functionally flexible'. execute. *********************************************** . COMMENT Proportion of non-managerials involved in problem-solving groups in last 12 months (Npropor) . COMMENT Combines responses from variables DPROPOR and DPROPORT. numeric Npropor (f2.0) . do if missing(dpropor) or (missing(dpropor)=0 and dpropor<97). + recode dpropor (else=copy) into npropor . else if missing(dpropor)=0 and dpropor=97 . + do if nocc_flg=0 . + compute temp=(dproport/sum.2(zallemps,-zmng_tot))*100 . + recode temp (0=7) (100=1) (79.5 thru 100=2) (59.5 thru 79.5=3) (39.5 thru 59.5=4) (19.5 thru 39.5=5) (0 thru 19.5=6) (sysmis=-8) into Npropor . + else if nocc_flg=1 . + compute npropor=-8 . + end if . end if . missing values npropor (-9 thru -1) . variable labels npropor "Proportion of non-managerials involved in problem-solving groups in past 12 months" . value labels npropor 1 "All (100%)" 2 "Almost all (80-99%)" 3 "Most (60-79%)" 4 "Around half (40-59%)" 5 "Some (20-39%)" 6 "Just a few (1-19%)" 7 "None (0%)" -1 "Not applicable: no problem-solving groups" -7 "Nnmp missing" -8 "DK" -9 "NA" . exec . delete variable temp . *********************************************** . COMMENT Presence of problem-solving groups in which non-managerials participate (Npsolve2) . Numeric Npsolve2 (f3.0). do if (missing(dcircles) = 1). + recode dcircles (else=copy) into npsolve2 . else if (dcircles=1) . + do if missing(npropor) . + compute npsolve2=1 . + else if (missing(npropor)=0 and npropor<7) . + compute npsolve2=1 . + else if missing(npropor)=0 and npropor=7 . + compute npsolve2=2 . + end if . else if (dcircles=2) . + compute npsolve2=2 . end if . value labels Npsolve2 1 'Problem solving groups, non-managerial employees participate' 2 'No problem solving groups' -8 'DK' -9 'NA' . missing values Npsolve2 (-9,-8). variable labels Npsolve2 'Incidence of problem solving groups'. execute. *********************************************** . COMMENT Presence of problem-solving groups in which 60%+ non-managerials participate (Npsolve3) . Numeric Npsolve3 (f3.0). do if (missing(Npsolve2) = 1). + recode npsolve2 (else=copy) into npsolve3 . else if (Npsolve2 = 2). + compute Npsolve3 = 4. else if (Npsolve2 = 1 & missing(npropor)). + compute Npsolve3 = 3. else if (Npsolve2 = 1 & npropor le 3). + compute Npsolve3 = 1. else. + compute Npsolve3 = 2. end if. value labels Npsolve3 1 'Problem solving groups involving 60%+ non-managerials' 2 'Problem solving groups involving <60% non-managerials' 3 'Problem solving groups but DK proportion involved' 4 'No problem solving groups' -8 'DK' -9 'NA' . missing values Npsolve3 (-9,-8). variable labels Npsolve3 'Incidence of problem solving groups'. execute. *********************************************** . COMMENT Teamworking, communication, problem-solving (Ntrgrup1b) . Numeric Ntrgrup1b (f3.0). do if (missing(chow01) = 1). + recode chow01 (-1=8) (-9,-8=copy) into ntrgrup1b . else if (sum(any(2,chow01 to chow10),any(3,chow01 to chow10),any(8,chow01 to chow10)) ge 1). + compute Ntrgrup1b = 1. else. + compute Ntrgrup1b = 2. end if. variable labels Ntrgrup1b 'Teamworking, communication, problem-solving'. value labels Ntrgrup1b 1 'Trained in one or more' 2 'Trained in none' 8 'No training for LOG' -8 'DK topics' -9 'NA topics'. missing values Ntrgrup1b (-9 thru -8). execute. *********************************************** . COMMENT Teamworking, cross-training, problem-solving (any3) . compute any3=(nteams<=3 or nfunc=1 or npsolve3=1) . variable label any3 "Whether teamworking or cross-training for most core emps, or problem solving grps for most non-mng emps". value labels any3 1 'Yes' 0 'No' . *********************************************** . COMMENT Access to lay rep, on site or elsewhere in organisation (nerep) . compute nerep=any(1,esteward,estewext) . do if value(esteward)<=-8 or value(estewext)<=-8 . + recode nerep (0=sysmis) . end if. variable label nerep "Access to lay rep, on site or elsewhere in organisation". value labels nerep 1 'Yes' 0 'No' . *********************************************** . COMMENT Presence of any on-site union reps (Nanyurep2) . do if missing(nanymem) . + compute nanyurep2=-9 . else if missing(nanymem)=0 and nanymem=2 . + compute nanyurep2=6 . else if missing(nanymem)=0 and nanymem=1 . + do if missing(esteward) and missing(eothurep) . + compute nanyurep2=5 . + else if missing(esteward)=0 and esteward=1 and missing(eothurep)=0 and eothurep=1 . + compute nanyurep2=1 . + else if missing(esteward)=0 and esteward=1 and (missing(eothurep) or (missing(eothurep)=0 and eothurep=2)) . + compute nanyurep2=2 . + else if missing(eothurep)=0 and eothurep=1 and (missing(esteward) or (missing(esteward)=0 and esteward=2)) . + compute nanyurep2=3 . + else if (missing(eothurep)=0 and eothurep=2 and ((missing(esteward) and value(esteward)=-1) or (missing(esteward)=0 and esteward=2))) or (missing(esteward)=0 and esteward=2 and ((missing(eothurep) and value(eothurep)=-1) or (missing(eothurep)=0 and eothurep=2))) . + compute nanyurep2=4 . + end if . end if . missing values nanyurep2 (-9) . variable labels nanyurep2 "Presence of on-site union reps" . value labels nanyurep2 1 "Reps of recognised and non-recognised unions" 2 "Reps of recognised unions" 3 "Reps of non-recognised unions" 4 "Union members but no reps" 5 "Union members, but DK if any reps (inc EUNIONUM missing)" 6 "No union members" -9 "DK if any union members". execute . *********************************************** . COMMENT Incidence of joint consultative committees (Njcc, Nanycom2, Ndmeet2) . COMMENT Any workplace level JCCs (Njcc) . numeric njcc (f3.0) . do if missing(djoint) . + compute Njcc=-9 . else if missing(djoint)=0 and djoint=2 . + compute Njcc=1 . else if missing(djoint)=0 and djoint=1 . + recode dissues (1,3=3) (2=2) (-8,-9=copy) into njcc . end if . missing values njcc (-8,-9) . variable labels njcc "Presence of workplace JCC(s)" . value labels njcc 1 "No workplace JCC" 2 "Single issue JCC(s) only" 3 "Multi-issue JCC(s)" -9 'DK' -8 'NA' . execute . *********************************************** . COMMENT Presence of consultative committees, either at workplace level or higher in org (Nanycom2) . Numeric Nanycom2 (f3.0) . do if missing(njcc) or (missing(dhighlev) and (value(dhighlev)=-8 or value(dhighlev)=-9)) . + compute nanycom2=-9 . else if missing(dhighlev) and value(dhighlev)=-1 . + recode njcc (else=copy) into nanycom2 . else if missing(dhighlev)=0 . + do if dhighlev=1 . + recode njcc (1=4) (2=5) (3=6) into nanycom2 . + else if dhighlev=2 . + recode njcc (else=copy) into nanycom2 . + end if . end if . missing values nanycom2 (-9 thru -1) . variable labels nanycom2 "Presence of consultative committees at workplace or higher level" . value labels nanycom2 1 "No committee(s)" 2 "Single issue workplace JCC(s) only" 3 "Multi-issue workplace JCC(s) only" 4 "Higher-level committee(s) only" 5 "Single issue workplace JCC(s) + Higher level committee(s)" 6 "Multi-issue workplace JCC(s) + Higher level committee(s)" -9 'DK' -8 'NA' . execute . *********************************************** . COMMENT Frequency of meeting for multi-issue JCCs (Ndmeet2) . Numeric Ndmeet2 (f2.0) . do if missing(njcc) . + compute ndmeet2=-9 . else if (missing(njcc)=0 and njcc<3). + compute ndmeet2=1 . else if missing(njcc)=0 and njcc=3 . + recode dmeet (0 thru 1=2) (2,3=3) (4 thru 11=4) (12 thru 97=5) (-8,-9=copy) into Ndmeet2. end if . missing values Ndmeet2 (-9 thru -1). value labels Ndmeet2 1 'No multi-issue JCC' 2 'Not met or met once' 3 'Met 2 or 3 times' 4 'Met 4-11 times' 5 'Met 12 or more times' -9 'DK' -8 'NA' -1 'Not applicable' . variable labels Ndmeet2 'Frequency of meeting for multi-issue JCCs'. execute. *********************************************** . COMMENT Whether JCC has union reps on it (Njccu) . Numeric Njccu (f2.0) . do if missing(njcc)=0 and njcc>1 . + do if missing(eujcc) and value(eujcc)=-1 . + compute njccu=2 . + else if missing(eujcc) and value(eujcc)<=-8 . + compute njccu=-9 . + else if missing(eujcc)=0 and eujcc=2 . + compute njccu=2 . + else if missing(eujcc)=0 and eujcc=1 . + compute njccu=1 . + end if . else . + compute njccu=-1 . end if . missing values njccu (-9, -1) . variable labels njccu "Whether JCC covering widest range of issues has union rep on it" . value labels njccu 1 "Yes" 2 "No" -9 "DK/NA" -1 "Not applicable: no JCC at workplace" . execute . *********************************************** . COMMENT Non-union reps (Nnureptyp) . do if missing(eothreps) . + compute nnureptyp=-9 . else if missing(eothreps)=0 and eothreps=1 . + do if missing(esiton) and value(esiton)<-1 . + compute nnureptyp=4 . + else if (missing(esiton) and value(esiton)=-1) or (missing(esiton)=0 and esiton=2) . + compute nnureptyp=3 . + else if missing(esiton)=0 and esiton=1 . + do if missing(esitnum) or missing(enumreps) . + compute nnureptyp=4 . + else if esitnum=enumreps . + compute nnureptyp=2 . + end if . + end if . else if missing(eothreps)=0 and eothreps=2 . + compute nnureptyp=5 . end if . missing values nnureptyp (-9) . variable labels nnureptyp "Type of non-union rep(s) present at the workplace" . value labels nnureptyp 1 "JCC reps and stand-alone reps" 2 "JCC reps only" 3 "Stand-alone reps only" 4 "Non-union reps, but DK which type" 5 "No non-union reps" -9 "DK if non-union reps". execute . *********************************************** . COMMENT Stand-alone non-union reps (nnureptyp2) . Numeric nnureptyp2 (f3.0) . recode nnureptyp (else=copy) into nnureptyp2 . recode nnureptyp2 (1,3=1) . missing values nnureptyp2 (-9) . variable labels nnureptyp2 "Type of non-union rep(s) present at the workplace" . value labels nnureptyp2 1 "JCC reps and stand-alone reps, plus stand-alone reps only" 2 "JCC reps only" 4 "Non-union reps, but DK which type" 5 "No non-union reps" -9 "DK if non-union reps". execute . *********************************************** . COMMENT Union recognition - focusing only on unions with members at the workplace (Nrecog) . Numeric Nrecog (F3.0). do if (Ndens = 1). + compute Nrecog = 1. end if. execute. do if (missing(eunionum) = 1 & (Ndensity <=10 | zanymem = 1)). + recode Nrecog (SYSMIS = 9). end if. execute. do if (missing(eunionum) = 1 & (Ndensity >10)). + recode Nrecog (SYSMIS = 8). end if. execute. do if (etotrec ne 0). + recode Nrecog (sysmis = 3). else. + recode Nrecog (sysmis = 2). end if. value labels Nrecog 1 'No union members present' 2 'Unions present with members, but none recognised' 3 'Recognised unions with members' 8 'Dont know: density more than 10 %' 9 'Dont know: density 10 % or less'. variable labels Nrecog 'Union recognition among unions with members at the workplace'. missing values Nrecog (8,9). execute. *********************************************** . COMMENT Extent of recognition among unions with members at the workplace (Nnorecog) . Numeric Nnorecog (f3.0). do if (missing(Nrecog) = 1). + compute Nnorecog = -9. else if (Nrecog = 1). + compute Nnorecog = 4. else if (Nrecog = 2). + compute Nnorecog = 3. else if (missing(eunionum) = 1 | missing(etotrec) = 1). + compute Nnorecog = -7. else if (eunionum = etotrec). + compute Nnorecog = 1. else if (eunionum > etotrec). + compute Nnorecog = 2. end if. missing values Nnorecog (-9 thru -1). value labels Nnorecog 1 'All unions present are recognised' 2 'Some unions present are not recognised' 3 'None of the unions present are recognised' 4 'No union presence' -7 'Recognition, but DK number of unions present/recognised' -9 'DK/NA whether any recognition'. variable label Nnorecog 'Extent of recognition among unions with members at the workplace'. execute. *********************************************** . COMMENT Presence of recognised unions without members at the workplace (Nrecnomem) . numeric Nrecnomem (f2.0) . do if ndensbd=0 . + recode eothrec (else=copy) into nrecnomem . else if ndensbd>0 . + recode eaddrec (else=copy) into nrecnomem . end if . missing values nrecnomem (-9 thru -1) . variable labels nrecnomem "Presence of recognised unions without members at the workplace" . value labels nrecnomem 1 "Yes" 2 "No" -8 "DK" -9 "NA" . execute . *********************************************** . COMMENT Whether any recognised or non-recognised unions, with or without members (Nrecog5) . numeric Nrecog5 (f2.0) . do if missing(nnorecog) and missing(nrecnomem) . + compute nrecog5=15 . else if missing(nnorecog) and missing(nrecnomem)=0 . + recode nrecnomem (1=13) (2=14) into nrecog5 . else if missing(nnorecog)=0 and missing(nrecnomem) . + recode nnorecog (1=12) (2=11) (3=10) (4=9) into nrecog5 . else if missing(nnorecog)=0 and missing(nrecnomem)=0 . + do if nnorecog=4 and nrecnomem=1 . + compute nrecog5=5 . + else if nnorecog=4 and nrecnomem=2 . + compute nrecog5=1 . + else if nnorecog=3 and nrecnomem=1 . + compute nrecog5=8 . + else if nnorecog=3 and nrecnomem=2 . + compute nrecog5=2 . + else if nnorecog=2 and nrecnomem=1 . + compute nrecog5=7 . + else if nnorecog=2 and nrecnomem=2 . + compute nrecog5=4 . + else if nnorecog=1 and nrecnomem=1 . + compute nrecog5=6 . + else if nnorecog=1 and nrecnomem=2 . + compute nrecog5=3 . + end if. end if . variable labels nrecog5 "Whether any recognised or non-recognised unions, with or without members" . value labels nrecog5 1 "No unions present, either with members or without" 2 "Non-recognised unions only, all with members" 3 "Recognised unions only, all with members" 4 "Mix of recog and non-recog unions, all with members" 5 "Recognised unions only, no membership at workplace" 6 "Recog unions only, some with members & some without" 7 "Recog unions with members, Recog without mems, and non-recog" 8 "Recog unions without mems, and non-recog" 9 "No members, but DK if recog us without mems" 10 "Non-recog unions with mems, but DK if recog us without mems" 11 "Recog & non-recog unions with mems, but DK if recog w/o mems" 12 "Recog unions with members, but DK if recog us without mems" 13 "Recog unions without mems, DK if any unions with members" 14 "No recog unions without mems, DK if any unions with members" 15 'DK' . execute . *********************************************** . COMMENT Presence of union representatives (Nanyurep1, Ntotureps) . COMMENT Reps of recognised unions (Nanyurep1) . numeric Nanyurep1 (f2.0) . do if any(nrecog5,3,4,6,7,11,12) . + do if asingle=2 or asingle=3. + recode esteward (2=3) (else=copy) into nanyurep1 . + else if asingle=1 . + do if missing(esteward) or (missing(esteward)=0 and esteward=1) . + recode esteward (2=3) (else=copy) into nanyurep1 . + else if missing(esteward)=0 and esteward=2 . + recode estewext (1=2) (2=3) (else=copy) into nanyurep1 . + end if . + end if . else . + compute nanyurep1=-1 . end if . missing values nanyurep1 (-9 thru -1) . variable labels nanyurep1 "Any reps of recognised unions with members at the workplace?" . value labels nanyurep1 1 "Recog unions have reps on site" 2 "Lgst recog union has reps at another establishment" 3 "Recog unions have no reps" -9 "NA" -8 "DK" -1 "Not applicable: no recognised unions with members" . execute . COMMENT Total number of on-site union reps (Ntotureps) . Numeric Ntotureps (f3.0) . do if missing(nanyurep1)=0 and nanyurep1=1 . + do if missing(eothurep) and value(eothurep)<-1 . + compute Ntotureps=-9 . + else if (missing(eothurep) and value(eothurep)=-1) or (missing(eothurep)=0 and eothurep=2) . + recode estewnum (else=copy) into Ntotureps . + else if missing(eothurep)=0 and eothurep=1 . + do if missing(estewnum) or missing(enumothu) . + compute Ntotureps=-9 . + else . + compute Ntotureps=sum.2(estewnum,enumothu) . + end if . + end if . else if (missing(nanyurep1)=0 and nanyurep1>1) or (missing(nanyurep1) and value(nanyurep1)=-1) . + do if missing(eothurep) and value(eothurep)<-1 . + compute Ntotureps=-9 . + else if (missing(eothurep) and value(eothurep)=-1) or (missing(eothurep)=0 and eothurep=2) . + compute Ntotureps=0 . + else if missing(eothurep)=0 and eothurep=1 . + recode enumothu (else=copy) into Ntotureps . + end if . else . + compute Ntotureps=-9 . end if . missing values Ntotureps (-9 thru -1) . variable labels Ntotureps "Total number of on-site union reps" . value labels Ntotureps -8 "DK/NA" -9 "DK/NA" . execute . *********************************************** . COMMENT Any lay union representatives, either on or off-site (Nanyurep) . numeric nanyurep (f2.0) . do if (missing(esteward) and value(esteward)<=-8) or (missing(estewext) and value(estewext)<=-8) or (missing(eothurep) and value(eothurep)<=-8) . + compute nanyurep=-8 . else if (missing(esteward) and value(esteward)=-1) and (missing(estewext) and value(estewext)=-1) and (missing(eothurep) and value(eothurep)=-1) . + compute nanyurep=-1 . else . + compute nanyurep=any(1,esteward,estewext,eothurep) . end if . missing values nanyurep (-8,-1) . variable label nanyurep "any union representatives". value labels nanyurep 1 "Yes" 0 "No" -1 "Not applicable" -8 "DK/NA" . execute . *********************************************** . COMMENT Combined presence of union and non-union reps (Nreptyp1) . Numeric Nreptyp1 (f2.0) . do if (missing(nanyurep) and value(nanyurep)<=-8) or (missing(eothreps) and value(eothreps)<=-8) . + compute nreptyp1=-9 . else if ((missing(nanyurep) and value(nanyurep)=-1) or nanyurep=0) and ((missing(eothreps) and value(eothreps)=-1) or eothreps=2) . + compute nreptyp1=4 . else if ((missing(nanyurep) and value(nanyurep)=-1) or nanyurep=0) and eothreps=1 . + compute nreptyp1=3 . else if nanyurep=1 and ((missing(eothreps) and value(eothreps)=-1) or eothreps=2) . + compute nreptyp1=2 . else if nanyurep=1 and eothreps=1 . + compute nreptyp1=1 . end if . missing values nreptyp1 (-9) . variable labels nreptyp1 "Type of rep" . value labels nreptyp1 1 "Union and non-union reps" 2 "Union reps only" 3 "Non-union reps only" 4 "No reps" . execute . *********************************************** . COMMENT Presence of on-site reps (Nreptyp2) . Numeric Nreptyp2 (f2.0) . do if (missing(nanyurep2) or (missing(nanyurep2)=0 and nanyurep2=5)) and missing(eothreps) . + compute nreptyp2=-9 . else if (missing(nanyurep2)=0 and nanyurep2<=3) and (missing(eothreps)=0 and eothreps=1) . + compute nreptyp2=1 . else if (missing(nanyurep2)=0 and nanyurep2<=3) and (missing(eothreps) or (missing(eothreps)=0 and eothreps=2)) . + compute nreptyp2=2 . else if (missing(nanyurep2)=0 and any(nanyurep2,4,5,6)) and (missing(eothreps)=0 and eothreps=1) . + compute nreptyp2=3 . else if (missing(nanyurep2)=0 and any(nanyurep2,4,6)) and (missing(eothreps)=0 and eothreps=2) . + compute nreptyp2=4 . else if (missing(nanyurep2)=0 and any(nanyurep2,4,6)) and (missing(eothreps)) . + compute nreptyp2=-5 . else if ((missing(nanyurep2) or (missing(nanyurep2)=0 and nanyurep2=5)) and missing(eothreps)=0 and eothreps=2) . + compute nreptyp2=-6 . end if . missing values nreptyp2 (-9, -6, -5) . variable labels nreptyp2 "Presence of on-site reps" . value labels nreptyp2 1 "Union and non-union reps on-site" 2 "Union reps only" 3 "Non-union reps only" 4 "No reps on site" -5 "No union reps; DK if non-union reps" -6 "No non-union reps; DK if union reps" -9 "DK/NA if either type of rep" . execute . COMMENT Weight variable used in estimating proportion of Union Learning Reps (urwt) . compute urwt=estwtnr*ntotureps . *********************************************** . COMMENT Proportion of on-site union reps that are ULRs (Nulrpc) . Numeric Nulrpc (f4.2) . do if missing(ntotureps) and (value(ntotureps)=-8 or value(ntotureps)=-9) . + compute nulrpc=-9 . else if missing(ntotureps)=0 and ntotureps=0 . + compute nulrpc=-1 . else if missing(ntotureps)=0 and ntotureps>0 and missing(eulr) . + compute nulrpc=-8 . else if missing(ntotureps)=0 and ntotureps>0 and eulr=2 . + compute nulrpc=0 . else if missing(ntotureps)=0 and ntotureps>0 and eulr=1 . + do if missing(eulrnum) . + compute nulrpc=-7 . + else if missing(eulrnum)=0 . + compute nulrpc=((eulrnum/ntotureps)*100) . + end if . end if . recode nulrpc (lo thru 100=copy) (else=-7) . missing values nulrpc (-9 thru -1) . variable labels nulrpc "Percentage of on-site union reps that are ULRs" . value labels nulrpc -9 "DK how many on-site union reps" -8 "DK if any on-site union reps are ULRs" -7 "DK how many on-site union reps are ULRs" -1 "NA: no on-site union reps (Ntotureps=0)" . execute . *********************************************** . COMMENT Meetings between managers and workforce (whole workforce or team briefings) (Nmeet) . Numeric Nmeet (F5.0). do if (missing(dmeeting)=1) or (missing(dbrief)=1). + compute Nmeet = -9. else if (dmeeting = 1 or dbrief = 1). + compute Nmeet = 1. else. + compute Nmeet = 0. end if. missing values Nmeet (-9). variable labels Nmeet 'Meetings with workforce or briefing groups'. value labels Nmeet 1 'Meetings with workforce or briefing groups' 0 'No meetings of either type' -9 'DK/NA' -1 'Not applicable'. execute. *********************************************** . COMMENT Number of methods of pay determination (all employees) (Npaynum2) . recode nfsoc1 to nfsoc9 (-9=-8) (-1=0). exec. recode nfsoc1 nfsoc2 nfsoc3 nfsoc4 nfsoc5 nfsoc6 nfsoc7 nfsoc8 nfsoc9 (else=copy) into nfsoc1a nfsoc2a nfsoc3a nfsoc4a nfsoc5a nfsoc6a nfsoc7a nfsoc8a nfsoc9a. execute . Numeric Npaynum2 (f3.0). compute Npaynum2=0. execute. do if ((missing(nmng_dum)=1) | (missing(npro_dum)=1) | (missing(ntec_dum)=1) | (missing(nadm_dum)=1) | (missing(nskl_dum)=1) | (missing(nper_dum)=1) | (missing(nsal_dum)=1) | (missing(nope_dum)=1) | (missing(nrou_dum)=1)) OR ((nfsoc1a=-8 | nfsoc2a=-8 | nfsoc3a=-8 | nfsoc4a=-8 | nfsoc5a=-8 | nfsoc6a=-8 | nfsoc7a=-8 | nfsoc8a=-8 | nfsoc9a=-8)). + compute Npaynum2=-9. else. end if. execute. compute temp1=0. compute temp2=0. compute temp3=0. compute temp4=0. compute temp5=0. compute temp6=0. compute temp7=0. compute temp8=0. execute. IF (any(1,nfsoc1 to nfsoc9)=1) temp1=1. IF (any(2,nfsoc1 to nfsoc9)=1) temp2=1. IF (any(3,nfsoc1 to nfsoc9)=1) temp3=1. IF (any(4,nfsoc1 to nfsoc9)=1) temp4=1. IF (any(5,nfsoc1 to nfsoc9)=1) temp5=1. IF (any(6,nfsoc1 to nfsoc9)=1) temp6=1. IF (any(7,nfsoc1 to nfsoc9)=1) temp7=1. IF (any(8,nfsoc1 to nfsoc9)=1) temp8=1. execute. do if Npaynum2~=-9. + compute Npaynum2=sum(temp1,temp2,temp3,temp4,temp5,temp6,temp7,temp8). else. end if. execute. recode Npaynum2 (0=-9). missing values Npaynum2 (-9). variable labels Npaynum2 'Number of methods of pay determination (all employees)'. value labels Npaynum2 -9 "DK/NA" . *********************************************** . COMMENT Method of pay determination for all employees (Npaydet2) . Numeric Npaydet2 (f3.0). do if (missing(npaynum2)=1). + compute Npaydet2=-9. else if (Npaynum2=1 & temp1=1). + compute Npaydet2=1. else if (Npaynum2=1 & temp2=1). + compute Npaydet2=2. else if (Npaynum2=1 & temp3=1). + compute Npaydet2=3. else if (Npaynum2=1 & temp4=1). + compute Npaydet2=4. else if (Npaynum2=1 & temp5=1). + compute Npaydet2=5. else if (Npaynum2=1 & temp6=1). + compute Npaydet2=6. else if (Npaynum2=1 & temp7=1). + compute Npaydet2=7. else if (Npaynum2=1 & temp8=1). + compute Npaydet2=8. ELSE IF npaynum2>1 & (temp1=1 | temp2=1 | temp3=1) & sum(temp4,temp5,temp6,temp7,temp8)=0. + COMPUTE npaydet2=11. ELSE IF npaynum2>1 & (temp4=1 & temp5=1) & sum(temp1,temp2,temp3,temp6,temp7,temp8)=0. + COMPUTE npaydet2=21. ELSE IF npaynum2>1 & (temp1=1 | temp2=1 | temp3=1) & (temp4=1 | temp5=1) & sum(temp6,temp7,temp8)=0. + COMPUTE npaydet2=31. ELSE IF npaynum2>1 & (temp1=1 | temp2=1 | temp3=1) & temp6=1 & sum(temp4,temp5,temp7,temp8)=0. + COMPUTE npaydet2=32. ELSE IF npaynum2>1 & (temp1=1 | temp2=1 | temp3=1) & temp7=1 & sum(temp4,temp5,temp6,temp8)=0. + COMPUTE npaydet2=33. ELSE IF npaynum2>1 & (temp1=1 | temp2=1 | temp3=1) & temp8=1 & sum(temp4,temp5,temp6,temp7)=0. + COMPUTE npaydet2=34. ELSE IF npaynum2>1 & (temp4=1 | temp5=1) & temp6=1 & sum(temp1,temp2,temp3,temp7,temp8)=0.. + COMPUTE npaydet2=41. ELSE IF npaynum2>1 & (temp4=1 | temp5=1) & temp7=1 & sum(temp1,temp2,temp3,temp6,temp8)=0.. + COMPUTE npaydet2=42. ELSE IF npaynum2>1 & (temp4=1 | temp5=1) & temp8=1 & sum(temp1,temp2,temp3,temp6,temp7)=0. + COMPUTE npaydet2=43. ELSE IF npaynum2>1 & (temp1=1 | temp2=1 | temp3=1) & (temp4=1 | temp5=1) & temp6=1 & temp7=0 & temp8=0. + COMPUTE npaydet2=51. ELSE IF npaynum2>1 & (temp1=1 | temp2=1 | temp3=1) & (temp4=1 | temp5=1) & temp7=1 & temp6=0 & temp8=0. + COMPUTE npaydet2=52. ELSE IF npaynum2>1 & (temp1=1 | temp2=1 | temp3=1) & (temp4=1 | temp5=1) & temp8=1 & temp6=0 & temp7=0. + COMPUTE npaydet2=53. ELSE IF npaynum2>1 & (temp1=1 | temp2=1 | temp3=1) & temp6=1 & temp7=1 &sum(temp4, temp5, temp8)=0. + COMPUTE npaydet2=54. ELSE IF npaynum2>1 & (temp1=1 | temp2=1 | temp3=1) & temp6=1 & temp8=1 &sum(temp4, temp5, temp7)=0. + COMPUTE npaydet2=55. ELSE IF npaynum2>1 & (temp1=1 | temp2=1 | temp3=1) & temp7=1 & temp8=1 &sum(temp4, temp5, temp6)=0. + COMPUTE npaydet2=56. ELSE IF npaynum2>1 & temp7=1 & temp8=1 & sum(temp1, temp2, temp3, temp4, temp5, temp6)=0. + COMPUTE npaydet2=61. ELSE IF npaynum2>1 & temp7=1 & (temp4=1 | temp5=1) & temp6=1 and sum(temp1, temp2, temp3, temp8)=0. + COMPUTE npaydet2=62. ELSE IF npaynum2>1 & temp7=1 & (temp4=1 | temp5=1) & temp8=1 and sum(temp1, temp2, temp3, temp6)=0. + COMPUTE npaydet2=63. ELSE IF npaynum2>1 & temp6=1 & (temp4=1 | temp5=1) & temp8=1 & sum(temp1, temp2, temp3, temp7)=0. + COMPUTE npaydet2=71. ELSE IF npaynum2>1 & temp6=1 & temp8=1 & sum(temp1, temp2, temp3, temp4,temp5, temp7)=0. + COMPUTE npaydet2=81. ELSE IF npaynum2>1 & (temp1=1 | temp2=1 | temp3=1) & (temp4=1 | temp5=1) & temp6=1 & temp8=1 & temp7=0. + COMPUTE npaydet2=91. ELSE IF npaynum2>1 & (temp1=1 | temp2=1 | temp3=1) & (temp4=1 | temp5=1) & temp7=1 & temp8=1 & temp6=0. + COMPUTE npaydet2=92. ELSE IF npaynum2>1 & (temp1=1 | temp2=1 | temp3=1) & (temp4=1 | temp5=1) & temp6=1 & temp8=1 & temp7=1. + COMPUTE npaydet2=101. else. + compute Npaydet2=-9. end if. missing values Npaydet2 (-9). variable labels Npaydet2 'Method of pay determination for all employees'. value labels Npaydet2 1 'All multi-employer collective bargaining' 2 'All single employer collective bargaining' 3 'All workplace collective bargaining' 4 'All set by management at higher level' 5 'All set by management at workplace' 6 'All individual negotiation' 7 'All Pay Review Body' 8 'All other' 11 'All collective bargaining, but different levels' 21 'All set by management, but different levels' 31 'Collective bargaining and set by management' 32 'Collective bargaining and individual negotiations' 33 'Collective bargaining and pay review body' 34 'Collective bargaining and other' 41 'Set by management and individual negotiation' 42 'Set by management and pay review body' 43 'Set by management and other' 51 'Collective barg., set by mngt and indiv negs' 52 'Collective barg., set by mngt and pay review body' 53 'Collective barg., set by mngt and other' 54 'Collective barg., indiv negs and pay review body' 55 'Collective barg., indiv negs and other' 56 'Collective barg., pay review body and other' 61 'Set by pay review body and other' 62 'Set by pay review body, set by mngt and indiv negs' 63 'Set by pay review body, set by mngt and other' 71 'Set by mngt, indiv negs and other' 81 'Indiv negs and other' 91 'Collective barg., set by mngt, indv negs and other' 92 'Collective barg., set by mngt, pay review body, other' 101 'Col barg., set by mngt, indv negs, review body, other' -9 'DK/NA'. *********************************************** . COMMENT Summary variable for nature of pay determination (Nbarg92). Numeric Nbarg92 (f3.0). do if (missing(Npaydet2) = 1). + compute Nbarg92 = -9. else if (Npaydet2 ge 11). + compute Nbarg92 = 1. else. + compute Nbarg92 = 2. end if. missing values Nbarg92 (-9). value labels Nbarg92 1 'Mixture' 2 'Single' -9 'DK/NA'. variable labels Nbarg92 'Pay determination, all employees'. *********************************************** . COMMENT Any collective bargaining, all employees (NANYCB2) . Numeric Nanycb2 (f3.0). do if (missing(Npaydet2) = 1). + compute Nanycb2 = -9. else if (Npaydet2 le 3 | Npaydet2 = 11 | (Npaydet2>30 & Npaydet2<35) | (Npaydet2>50 & Npaydet2<57) | Npaydet2 = 91 | Npaydet2 = 92 | Npaydet2 = 101). + compute Nanycb2 = 1. else. + compute Nanycb2 = 2. end if. missing values Nanycb2 (-9). variable labels Nanycb2 'Any collective bargaining, all employees'. value labels Nanycb2 1 'Yes' 2 'No' -9 'DK/NA'. *********************************************** . COMMENT Any occs have pay set by management (Nsetman2) . Numeric Nsetman2 (f3.0). do if (missing(Npaydet2) = 1). + compute Nsetman2 = -9. else if (Npaydet2 = 4 | Npaydet2 = 5 | Npaydet2 = 31 | Npaydet2 = 41 | Npaydet2 = 42 | Npaydet2 = 43 | Npaydet2 = 51 | Npaydet2 = 52 | Npaydet2 = 62 | Npaydet2 = 63 | Npaydet2 = 71 | Npaydet2 = 91 | Npaydet2 = 92 | Npaydet2 = 101). + compute Nsetman2 = 1. else. + compute Nsetman2 = 2. end if. missing values Nsetman2 (-9). variable labels Nsetman2 'Any occs have pay set by management'. value labels Nsetman2 1 'Yes' 2 'No' -9 'DK/NA'. *********************************************** . COMMENT Any individual negs for any occupations (Nindnego2) . Numeric Nindnego2 (f3.0). do if (missing(Npaydet2) = 1). + compute Nindnego2 = -9. else if (Npaydet2 = 6 | Npaydet2 = 32 | Npaydet2 = 41 | Npaydet2 = 51 | Npaydet2 = 54 | Npaydet2 = 55 | Npaydet2 = 62 | Npaydet2 = 71 | Npaydet2 = 81 | Npaydet2 = 91 | Npaydet2 = 101). + compute Nindnego2 = 1. else. + compute Nindnego2 = 2. end if. missing values Nindnego2 (-9). variable labels Nindnego2 'Any individual negotiations, all occs'. value labels Nindnego2 1 'Yes' 2 'No' -9 'DK/NA'. *********************************************** . COMMENT Any Pay Review Body for any occupations (nrevnego2) . Numeric nrevnego2 (f3.0). do if (missing(Npaydet2) = 1). + compute nrevnego2 = -9. else if (Npaydet2 = 7 | Npaydet2 = 33 | Npaydet2 = 42 | Npaydet2 = 52 | Npaydet2 = 54 | Npaydet2 = 56 | Npaydet2 = 61 | Npaydet2 = 62 | Npaydet2 = 63 | Npaydet2 = 92 | Npaydet2 = 101). + compute nrevnego2 = 1. else. + compute nrevnego2 = 2. end if. missing values nrevnego2 (-9). variable labels nrevnego2 'Any Pay Review Body, all occs'. value labels nrevnego2 1 'Yes' 2 'No' -9 'DK/NA'. *********************************************** . COMMENT Any other pay determination for all occs (nopay2) . Numeric Nopay2 (f3.0). do if (missing(Npaydet2) = 1). + compute Nopay2 = -9. else if (Npaydet2 = 8 | Npaydet2 = 34 | Npaydet2 = 43 | Npaydet2 = 53 | Npaydet2 = 61 | Npaydet2 = 63 | Npaydet2 = 71 | Npaydet2 = 81 | Npaydet2 = 91 | Npaydet2 = 92 | Npaydet2 = 101). + compute Nopay2 = 1. else. + compute Nopay2 = 2. end if. missing values Nopay2 (-9). variable labels Nopay2 'Any other pay determination for all occs'. value labels Nopay2 1 'Yes' 2 'No' -9 'DK/NA'. *********************************************** . COMMENT All employee pay determination coverage (ncbmulta to npaysuma) . IF (nfsoc1=1) ncbmlt1a=100*zmng_tot/(zallemps). IF (nfsoc2=1) ncbmlt2a=100*zpro_tot/(zallemps). IF (nfsoc3=1) ncbmlt3a=100*ztec_tot/(zallemps). IF (nfsoc4=1) ncbmlt4a=100*zadm_tot/(zallemps). IF (nfsoc5=1) ncbmlt5a=100*zskl_tot/(zallemps). IF (nfsoc6=1) ncbmlt6a=100*zper_tot/(zallemps). IF (nfsoc7=1) ncbmlt7a=100*zsal_tot/(zallemps). IF (nfsoc8=1) ncbmlt8a=100*zope_tot/(zallemps). IF (nfsoc9=1) ncbmlt9a=100*zrou_tot/(zallemps). compute zcbmulta=sum(ncbmlt1a,ncbmlt2a,ncbmlt3a,ncbmlt4a,ncbmlt5a,ncbmlt6a,ncbmlt7a,ncbmlt8a,ncbmlt9a). execute. IF (nfsoc1=2) ncborg1a=100*zmng_tot/(zallemps). IF (nfsoc2=2) ncborg2a=100*zpro_tot/(zallemps). IF (nfsoc3=2) ncborg3a=100*ztec_tot/(zallemps). IF (nfsoc4=2) ncborg4a=100*zadm_tot/(zallemps). IF (nfsoc5=2) ncborg5a=100*zskl_tot/(zallemps). IF (nfsoc6=2) ncborg6a=100*zper_tot/(zallemps). IF (nfsoc7=2) ncborg7a=100*zsal_tot/(zallemps). IF (nfsoc8=2) ncborg8a=100*zope_tot/(zallemps). IF (nfsoc9=2) ncborg9a=100*zrou_tot/(zallemps). compute zcborga=sum(ncborg1a,ncborg2a,ncborg3a,ncborg4a,ncborg5a,ncborg6a,ncborg7a,ncborg8a,ncborg9a). execute. IF (nfsoc1=3) ncbwrk1a=100*zmng_tot/(zallemps). IF (nfsoc2=3) ncbwrk2a=100*zpro_tot/(zallemps). IF (nfsoc3=3) ncbwrk3a=100*ztec_tot/(zallemps). IF (nfsoc4=3) ncbwrk4a=100*zadm_tot/(zallemps). IF (nfsoc5=3) ncbwrk5a=100*zskl_tot/(zallemps). IF (nfsoc6=3) ncbwrk6a=100*zper_tot/(zallemps). IF (nfsoc7=3) ncbwrk7a=100*zsal_tot/(zallemps). IF (nfsoc8=3) ncbwrk8a=100*zope_tot/(zallemps). IF (nfsoc9=3) ncbwrk9a=100*zrou_tot/(zallemps). compute zcbworka=sum(ncbwrk1a,ncbwrk2a,ncbwrk3a,ncbwrk4a,ncbwrk5a,ncbwrk6a,ncbwrk7a,ncbwrk8a,ncbwrk9a). execute. IF (nfsoc1=4) nsetorg1a=100*zmng_tot/(zallemps). IF (nfsoc2=4) nsetorg2a=100*zpro_tot/(zallemps). IF (nfsoc3=4) nsetorg3a=100*ztec_tot/(zallemps). IF (nfsoc4=4) nsetorg4a=100*zadm_tot/(zallemps). IF (nfsoc5=4) nsetorg5a=100*zskl_tot/(zallemps). IF (nfsoc6=4) nsetorg6a=100*zper_tot/(zallemps). IF (nfsoc7=4) nsetorg7a=100*zsal_tot/(zallemps). IF (nfsoc8=4) nsetorg8a=100*zope_tot/(zallemps). IF (nfsoc9=4) nsetorg9a=100*zrou_tot/(zallemps). compute zsetorga=sum(nsetorg1a,nsetorg2a,nsetorg3a,nsetorg4a,nsetorg5a,nsetorg6a,nsetorg7a,nsetorg8a,nsetorg9a). execute. IF (nfsoc1=5) nsetwrk1a=100*zmng_tot/(zallemps). IF (nfsoc2=5) nsetwrk2a=100*zpro_tot/(zallemps). IF (nfsoc3=5) nsetwrk3a=100*ztec_tot/(zallemps). IF (nfsoc4=5) nsetwrk4a=100*zadm_tot/(zallemps). IF (nfsoc5=5) nsetwrk5a=100*zskl_tot/(zallemps). IF (nfsoc6=5) nsetwrk6a=100*zper_tot/(zallemps). IF (nfsoc7=5) nsetwrk7a=100*zsal_tot/(zallemps). IF (nfsoc8=5) nsetwrk8a=100*zope_tot/(zallemps). IF (nfsoc9=5) nsetwrk9a=100*zrou_tot/(zallemps). compute zsetworka=sum(nsetwrk1a,nsetwrk2a,nsetwrk3a,nsetwrk4a,nsetwrk5a,nsetwrk6a,nsetwrk7a,nsetwrk8a,nsetwrk9a). execute. IF (nfsoc1=6) nindneg1a=100*zmng_tot/(zallemps). IF (nfsoc2=6) nindneg2a=100*zpro_tot/(zallemps). IF (nfsoc3=6) nindneg3a=100*ztec_tot/(zallemps). IF (nfsoc4=6) nindneg4a=100*zadm_tot/(zallemps). IF (nfsoc5=6) nindneg5a=100*zskl_tot/(zallemps). IF (nfsoc6=6) nindneg6a=100*zper_tot/(zallemps). IF (nfsoc7=6) nindneg7a=100*zsal_tot/(zallemps). IF (nfsoc8=6) nindneg8a=100*zope_tot/(zallemps). IF (nfsoc9=6) nindneg9a=100*zrou_tot/(zallemps). compute zindnega=sum(nindneg1a,nindneg2a,nindneg3a,nindneg4a,nindneg5a,nindneg6a,nindneg7a,nindneg8a,nindneg9a). execute. IF (nfsoc1=7) npayrev1a=100*zmng_tot/(zallemps). IF (nfsoc2=7) npayrev2a=100*zpro_tot/(zallemps). IF (nfsoc3=7) npayrev3a=100*ztec_tot/(zallemps). IF (nfsoc4=7) npayrev4a=100*zadm_tot/(zallemps). IF (nfsoc5=7) npayrev5a=100*zskl_tot/(zallemps). IF (nfsoc6=7) npayrev6a=100*zper_tot/(zallemps). IF (nfsoc7=7) npayrev7a=100*zsal_tot/(zallemps). IF (nfsoc8=7) npayrev8a=100*zope_tot/(zallemps). IF (nfsoc9=7) npayrev9a=100*zrou_tot/(zallemps). compute zpayreva=sum(npayrev1a,npayrev2a,npayrev3a,npayrev4a,npayrev5a,npayrev6a,npayrev7a,npayrev8a,npayrev9a). execute. IF (nfsoc1=8) npayoth1a=100*zmng_tot/(zallemps). IF (nfsoc2=8) npayoth2a=100*zpro_tot/(zallemps). IF (nfsoc3=8) npayoth3a=100*ztec_tot/(zallemps). IF (nfsoc4=8) npayoth4a=100*zadm_tot/(zallemps). IF (nfsoc5=8) npayoth5a=100*zskl_tot/(zallemps). IF (nfsoc6=8) npayoth6a=100*zper_tot/(zallemps). IF (nfsoc7=8) npayoth7a=100*zsal_tot/(zallemps). IF (nfsoc8=8) npayoth8a=100*zope_tot/(zallemps). IF (nfsoc9=8) npayoth9a=100*zrou_tot/(zallemps). compute zpayotha=sum(npayoth1a,npayoth2a,npayoth3a,npayoth4a,npayoth5a,npayoth6a,npayoth7a,npayoth8a,npayoth9a). exec. do if (ndiffpc<95 | ndiffpc>105). + compute Ncbmulta=-9. + compute Ncborga=-9. + compute Ncbworka=-9. + compute Nsetorga=-9. + compute Nsetworka=-9. + compute Nindnega=-9. + compute Npayreva=-9. + compute Npayotha=-9. else. + compute Ncbmulta=max(0,zcbmulta). + compute Ncborga=max(0,zcborga). + compute Ncbworka=max(0,zcbworka). + compute Nsetorga=max(0,zsetorga). + compute Nsetworka=max(0,zsetworka). + compute Nindnega=max(0,zindnega). + compute Npayreva=max(0,zpayreva). + compute Npayotha=max(0,zpayotha). end if. + compute Npaysuma=sum(ncbmulta to npayotha). missing values Ncbmulta to Npayotha (-9). variable labels Ncbmulta 'Set by multi-employer bargaining, all' Ncborga 'Set by single employer collective bargaining, all' Ncbworka 'Set by workplace collective bargaining, all' Nsetorga 'Set by management at higher level, all' Nsetworka 'Set by management at workplace, all' Nindnega 'Set by individual negotiation, all' Npayreva 'Set by pay review body, all' Npayotha 'Set by other means, all' Npaysuma 'Sum of pay setting arrangements, all'. exec . *********************************************** . COMMENT Any employees paid by PBR or merit pay (Nanymerpbr) . Numeric Nanymerpbr(f3.0). compute Nanymerpbr=0. if any(1,fperf1 to fperf3) or any(2,fperf1 to fperf3) Nanymerpbr=1. if missing(fperf1) and value(fperf1)=-8 Nanymerpbr=-8. if missing(fperf1) and value(fperf1)=-9 Nanymerpbr=-9. if missing(fperf1) and value(fperf1)=-1 Nanymerpbr=-1. missing values Nanymerpbr (-9 to -1). variable labels Nanymerpbr 'Any employees paid by PBR or merit pay'. value labels Nanymerpbr 1 'Yes' 0 'No' -8 'DK' -9 'Refused' -1 'Not applicable'. exec . *********************************************** . COMMENT Any share ownership (Nesop) . Numeric Nesop (f3.0). count Nesop=fshare1 to fshare6(1 thru 5). if Nesop>1 Nesop=1. if missing(fshare1) and value(fshare1)=-8 Nesop=-8. if missing(fshare1) and value(fshare1)=-1 Nesop=-1. missing values Nesop (-9 to -1). variable labels Nesop 'Employee share ownership scheme'. value labels Nesop 1 'Employee share ownership scheme' 0 'None' -8 'DK' -1 'Not applicable'. exec . *********************************************** . COMMENT LOG entitlement to 5 non-pay terms and conditions (Nlognone, Nlogpen, Nlogcar, Nloghlth, Nloghols, Nlogsick) . Numeric Nlognone (f2.0) . compute nlognone=0. if fothtit1=6 nlognone=1. if missing(fothtit1) and value(fothtit1)=-8 nlognone=-8. variable label nlognone 'LOG not entitled to any of 5 non-pay terms and conditions'. value labels nlognone -8 'Do not know'. missing values nlognone (-8). exec . Numeric Nlogpen (f2.0) . compute nlogpen=0. if any(1,fothtit1 to fothtit6) nlogpen=1. if (missing(fothtit1) and value(fothtit1)=-8) | (missing(fothtit2) and value(fothtit2)=-8) | (missing(fothtit3) and value(fothtit3)=-8) | (missing(fothtit4) and value(fothtit4)=-8) | (missing(fothtit5) and value(fothtit5)=-8) | (missing(fothtit6) and value(fothtit6)=-8) nlogpen=-8. variable label nlogpen 'If LOG entitled to employer pension scheme'. value labels nlogpen -8 'Do not know'. missing values nlogpen (-8). exec . Numeric Nlogcar (f2.0) . compute nlogcar=0. if any(2,fothtit1 to fothtit6) nlogcar=1. if (missing(fothtit1) and value(fothtit1)=-8) | (missing(fothtit2) and value(fothtit2)=-8) | (missing(fothtit3) and value(fothtit3)=-8) | (missing(fothtit4) and value(fothtit4)=-8) | (missing(fothtit5) and value(fothtit5)=-8) | (missing(fothtit6) and value(fothtit6)=-8) nlogcar=-8. variable label nlogcar 'If LOG entitled to car or car allowance'. value labels nlogcar -8 'Do not know'. missing values nlogcar (-8). exec . Numeric Nloghlth (f2.0) . compute nloghlth=0. if any(3,fothtit1 to fothtit6) nloghlth=1. if (missing(fothtit1) and value(fothtit1)=-8) | (missing(fothtit2) and value(fothtit2)=-8) | (missing(fothtit3) and value(fothtit3)=-8) | (missing(fothtit4) and value(fothtit4)=-8) | (missing(fothtit5) and value(fothtit5)=-8) | (missing(fothtit6) and value(fothtit6)=-8) nloghlth=-8. variable label nloghlth 'If LOG entitled to private health insurance'. value labels nloghlth -8 'Do not know'. missing values nloghlth (-8). exec . Numeric Nloghols (f2.0) . compute nloghols=0. if any(4,fothtit1 to fothtit6) nloghols=1. if (missing(fothtit1) and value(fothtit1)=-8) | (missing(fothtit2) and value(fothtit2)=-8) | (missing(fothtit3) and value(fothtit3)=-8) | (missing(fothtit4) and value(fothtit4)=-8) | (missing(fothtit5) and value(fothtit5)=-8) | (missing(fothtit6) and value(fothtit6)=-8) nloghols=-8. variable label nloghols 'If LOG entitled to over 4 weeks paid annual leave'. value labels nloghols -8 'Do not know'. missing values nloghols (-8). exec. Numeric Nlogsick (f2.0) . compute nlogsick=0. if any(5,fothtit1 to fothtit6) nlogsick=1. if (missing(fothtit1) and value(fothtit1)=-8) | (missing(fothtit2) and value(fothtit2)=-8) | (missing(fothtit3) and value(fothtit3)=-8) | (missing(fothtit4) and value(fothtit4)=-8) | (missing(fothtit5) and value(fothtit5)=-8) | (missing(fothtit6) and value(fothtit6)=-8) nlogsick=-8. variable label nlogsick 'If LOG entitled to sick pay in excess of statutory minimum'. value labels nlogsick -8 'Do not know'. missing values nlogsick (-8). exec. *********************************** COMMENT Managers' entitlement to 5 non-pay terms and conditions (Nmannone, Nmanpen, Nmancar, Nmanhlth, Nmanhols, Nmansick) . Numeric Nmannone (f2.0) . compute nmannone=0. if fentitl1=6 nmannone=1. if missing(fentitl1) and value(fentitl1)=-8 nmannone=-8. variable label nmannone 'Managers not entitled to any of 5 non-pay terms and conditions'. value labels nmannone -8 'Do not know'. missing values nmannone (-8). exec . Numeric Nmanpen (f2.0) . compute nmanpen=0. if any(1,fentitl1 to fentitl6) nmanpen=1. if (missing(fentitl1) and value(fentitl1)=-8) | (missing(fentitl2) and value(fentitl2)=-8) | (missing(fentitl3) and value(fentitl3)=-8) | (missing(fentitl4) and value(fentitl4)=-8) | (missing(fentitl5) and value(fentitl5)=-8) | (missing(fentitl6) and value(fentitl6)=-8) nmanpen=-8. variable label nmanpen 'If managers entitled to employer pension scheme'. value labels nmanpen -8 'Do not know'. missing values nmanpen (-8). exec. Numeric Nmancar (f2.0) . compute nmancar=0. if any(2,fentitl1 to fentitl6) nmancar=1. if (missing(fentitl1) and value(fentitl1)=-8) | (missing(fentitl2) and value(fentitl2)=-8) | (missing(fentitl3) and value(fentitl3)=-8) | (missing(fentitl4) and value(fentitl4)=-8) | (missing(fentitl5) and value(fentitl5)=-8) | (missing(fentitl6) and value(fentitl6)=-8) nmancar=-8. variable label nmancar 'If managers entitled to car or car allowance'. value labels nmancar -8 'Do not know'. missing values nmancar (-8). exec. Numeric Nmanhlth (f2.0) . compute nmanhlth=0. if any(3,fentitl1 to fentitl6) nmanhlth=1. if (missing(fentitl1) and value(fentitl1)=-8) | (missing(fentitl2) and value(fentitl2)=-8) | (missing(fentitl3) and value(fentitl3)=-8) | (missing(fentitl4) and value(fentitl4)=-8) | (missing(fentitl5) and value(fentitl5)=-8) | (missing(fentitl6) and value(fentitl6)=-8) nmanhlth=-8. variable label nmanhlth 'If managers entitled to private health insurance'. value labels nmanhlth -8 'Do not know'. missing values nmanhlth (-8). exec. Numeric Nmanhols (f2.0) . compute nmanhols=0. if any(4,fentitl1 to fentitl6) nmanhols=1. if (missing(fentitl1) and value(fentitl1)=-8) | (missing(fentitl2) and value(fentitl2)=-8) | (missing(fentitl3) and value(fentitl3)=-8) | (missing(fentitl4) and value(fentitl4)=-8) | (missing(fentitl5) and value(fentitl5)=-8) | (missing(fentitl6) and value(fentitl6)=-8) nmanhols=-8. variable label nmanhols 'If managers entitled to over 4 weeks paid annual leave'. value labels nmanhols -8 'Do not know'. missing values nmanhols (-8). exec. Numeric Nmansick (f2.0) . compute nmansick=0. if any(5,fentitl1 to fentitl6) nmansick=1. if (missing(fentitl1) and value(fentitl1)=-8) | (missing(fentitl2) and value(fentitl2)=-8) | (missing(fentitl3) and value(fentitl3)=-8) | (missing(fentitl4) and value(fentitl4)=-8) | (missing(fentitl5) and value(fentitl5)=-8) | (missing(fentitl6) and value(fentitl6)=-8) nmansick=-8. variable label nmansick 'If managers entitled to sick pay in excess of statutory minimum'. value labels nmansick -8 'Do not know'. missing values nmansick (-8). exec . *********************************************** . COMMENT Number of entitlements to non-pay terms/conditions (Nmanents) . Numeric Nmanents (f2.0) . count Nmanents=nmansick,nmanhols,nmanhlth,nmanpen,nmancar(1). if value(fentitl1)=-8 Nmanents=-8. variable label Nmanents 'N non-pay entitlements for management'. value labels Nmanents -8 'Do not know'. missing values nmanents (-8). exec. COMMENT Number of entitlements to non-pay terms/conditions (Nlogents) . Numeric Nlogents (f2.0) . count Nlogents=nlogsick,nloghols,nloghlth,nlogpen,nlogcar(1). if value(fothtit1)=-8 Nlogents=-8. variable label Nlogents 'N non-pay entitlements for LOG'. value labels Nlogents -8 'Do not know'. missing values nlogents (-8). exec. *********************************************** . COMMENT Single status terms & conditions (Nss2, Nss3) . Numeric Nss2 (f3.0). compute nss2=-1. do if value(Nlogents)=-8 | value(Nmanents)=-8 . + compute nss2=-8. else if nlognone=1 and nmannone=1 . + compute nss2=1. else if (sum(nlogsick,nmansick)~=1 and sum(nloghols,nmanhols)~=1 and sum(nloghlth,nmanhlth)~=1 and sum(nlogcar,nmancar)~=1 and sum(nlogpen,nmanpen)~=1) . + compute nss2=2. else if (min(nlogsick,nmansick)=1 or min(nloghols,nmanhols)=1 or min(nloghlth,nmanhlth)=1 or min(nlogcar,nmancar)=1 or min(nlogpen,nmanpen)=1) . + compute nss2=3. else if (sum(nlogsick,nmansick)<2 and sum(nloghols,nmanhols)<2 and sum(nloghlth,nmanhlth)<2 and sum(nlogcar,nmancar)<2 and sum(nlogpen, nmanpen)<2) and (nmanents>0 | nlogents>0) . + compute nss2=4. end if . missing values Nss2 (-8). variable label Nss2 'Single status: managers and other employees have equal conditions'. value labels Nss2 1 "No entitlement for anyone" 2 "Both entitled wherever provided" 3 "At least one area where both entitled" 4 "No areas where both entitled, but some entitlement" -8 "DK" . exec. numeric nss3 (f3.0) . recode nss2 (2=1) (else=copy) into nss3 . missing values Nss3 (-8). variable label Nss3 'Single status: managers and other employees have equal conditions'. value labels Nss3 1 "Same entitlement for anyone (inc none)" 3 "At least one area where both entitled" 4 "No areas where both entitled, but some entitlement" -8 "DK" . exec. *********************************************** . COMMENT Management engagement with reps over 12 issues covered in Section E, from pay to performance appraisals (Npay, Nhours, Nhol, Npen, Nselect, Ntrainab, Ngriev, Ndiscip, Nstaff, Nequalop, Nhands, Nperfor) . recode epayb ehoursb eholb epenb eselectb etrainb egrievb ediscipb estaffb equalopb ehealthb eperforb epaya ehoursa ehola epena eselecta etraina egrieva ediscipa estaffa equalopa ehealtha eperfora (-1=0). execute. Numeric Npay (f2.0) . compute npay=0. if missing(epaya) or missing(epayb) npay=-8. if any(3,epaya,epayb) npay=1. if any(2,epaya,epayb) npay=2. if any(1,epaya,epayb) npay=3. variable label npay "management engagement with reps over pay". value labels npay 0 'none' 1 'informs' 2 'consults' 3 'negotiates' -8 'DK/refused'. missing values npay (-8). execute . Numeric Nhours (f2.0) . compute nhours=0. if missing(ehoursa) or missing(ehoursb) nhours=-8. if any(3,ehoursa,ehoursb) nhours=1. if any(2,ehoursa,ehoursb) nhours=2. if any(1,ehoursa,ehoursb) nhours=3. variable label nhours "management engagement with reps over hours". value labels nhours 0 'none' 1 'informs' 2 'consults' 3 'negotiates' -8 'DK/refused'. missing values nhours (-8). execute . Numeric Nhol (f2.0) . compute nhol=0. if missing(ehola) or missing(eholb) nhol=-8. if any(3,ehola,eholb) nhol=1. if any(2,ehola,eholb) nhol=2. if any(1,ehola,eholb) nhol=3. variable label nhol "management engagement with reps over holiday". value labels nhol 0 'none' 1 'informs' 2 'consults' 3 'negotiates' -8 'DK/refused'. missing values nhol (-8). exec . Numeric Npen (f2.0) . compute npen=0. if missing(epena) or missing(epenb) npen=-8. if any(3,epena,epenb) npen=1. if any(2,epena,epenb) npen=2. if any(1,epena,epenb) npen=3. variable label npen "management engagement with reps over pensions". value labels npen 0 'none' 1 'informs' 2 'consults' 3 'negotiates' -8 'DK/refused'. missing values npen (-8). exec. Numeric Nselect (f2.0) . compute nselect=0. if missing(eselecta) or missing(eselectb) nselect=-8. if any(3,eselecta,eselectb) nselect=1. if any(2,eselecta,eselectb) nselect=2. if any(1,eselecta,eselectb) nselect=3. variable label nselect "management engagement with reps over selecting staff". value labels nselect 0 'none' 1 'informs' 2 'consults' 3 'negotiates' -8 'DK/refused'. missing values nselect (-8). exec. Numeric Ntrainab (f2.0) . compute ntrainab=0. if missing(etraina) or missing(etrainb) ntrainab=-8. if any(3,etraina,etrainb) ntrainab=1. if any(2,etraina,etrainb) ntrainab=2. if any(1,etraina,etrainb) ntrainab=3. variable label ntrainab "management engagement with reps over training staff". value labels ntrainab 0 'none' 1 'informs' 2 'consults' 3 'negotiates' -8 'DK/refused'. missing values ntrainab (-8). exec. Numeric Ngriev (f2.0) . compute ngriev=0. if missing(egrieva) or missing(egrievb) ngriev=-8. if any(3,egrieva,egrievb) ngriev=1. if any(2,egrieva,egrievb) ngriev=2. if any(1,egrieva,egrievb) ngriev=3. variable label ngriev "management engagement with reps over grievance procedures". value labels ngriev 0 'none' 1 'informs' 2 'consults' 3 'negotiates' -8 'DK/refused'. missing values ngriev (-8). exec. Numeric Ndiscip (f2.0) . compute ndiscip=0. if missing(ediscipa) or missing(ediscipb) ndiscip=-8. if any(3,ediscipa,ediscipb) ndiscip=1. if any(2,ediscipa,ediscipb) ndiscip=2. if any(1,ediscipa,ediscipb) ndiscip=3. variable label ndiscip "management engagement with reps over disciplinary procedures". value labels ndiscip 0 'none' 1 'informs' 2 'consults' 3 'negotiates' -8 'DK/refused'. missing values ndiscip (-8). exec. Numeric Nstaff (f2.0) . compute nstaff=0. if missing(estaffa) or missing(estaffb) nstaff=-8. if any(3,estaffa,estaffb) nstaff=1. if any(2,estaffa,estaffb) nstaff=2. if any(1,estaffa,estaffb) nstaff=3. variable label nstaff "management engagement with reps over staffing plans". value labels nstaff 0 'none' 1 'informs' 2 'consults' 3 'negotiates' -8 'DK/refused'. missing values nstaff (-8). exec. Numeric Nequalop (f2.0) . compute nequalop=0. if missing(equalopa) or missing(equalopb) nequalop=-8. if any(3,equalopa,equalopb) nequalop=1. if any(2,equalopa,equalopb) nequalop=2. if any(1,equalopa,equalopb) nequalop=3. variable label nequalop "management engagement with reps over equal opportunities". value labels nequalop 0 'none' 1 'informs' 2 'consults' 3 'negotiates' -8 'DK/refused'. missing values nequalop (-8). exec. Numeric Nhands (f2.0) . compute Nhands=0. if missing(ehealtha) or missing(ehealthb) Nhands=-8. if any(3,ehealtha,ehealthb) Nhands=1. if any(2,ehealtha,ehealthb) Nhands=2. if any(1,ehealtha,ehealthb) Nhands=3. variable label Nhands "management engagement with reps over health and safety". value labels Nhands 0 'none' 1 'informs' 2 'consults' 3 'negotiates' -8 'DK/refused'. missing values Nhands (-8). exec. Numeric Nperfor (f2.0) . compute nperfor=0. if missing(eperfora) or missing(eperforb) nperfor=-8. if any(3,eperfora,eperforb) nperfor=1. if any(2,eperfora,eperforb) nperfor=2. if any(1,eperfora,eperforb) nperfor=3. variable label nperfor "management engagement with reps over performance appraisals". value labels nperfor 0 'none' 1 'informs' 2 'consults' 3 'negotiates' -8 'DK/refused'. missing values nperfor (-8). exec. *********************************************** . COMMENT Count of number of Epay items that involve negotiation, consultation, information or nothing (Nnegs, Ncons, Ninfs, Nnowt) . Numeric Nnegs (f2.0) . count nnegs=npay nhours nhol npen nselect ntrainab ngriev ndiscip nstaff nequalop Nhands nperfor (3). if value(npay)=-8 | value(nhours)=-8 | value(nhol)=-8 | value(npen)=-8 | value(nselect)=-8 | value(ntrainab)=-8 | value(ngriev)=-8 | value(ndiscip)=-8 | value(nstaff)=-8 | value(nequalop)=-8 | value(Nhands)=-8 | value(nperfor)=-8 nnegs=-8. missing values nnegs(-8). variable label nnegs 'N items manager negotiates over'. exec. Numeric Ncons (f2.0) . count ncons=npay nhours nhol npen nselect ntrainab ngriev ndiscip nstaff nequalop Nhands nperfor (2). if value(npay)=-8 | value(nhours)=-8 | value(nhol)=-8 | value(npen)=-8 | value(nselect)=-8 | value(ntrainab)=-8 | value(ngriev)=-8 | value(ndiscip)=-8 | value(nstaff)=-8 | value(nequalop)=-8 | value(Nhands)=-8 | value(nperfor)=-8 ncons=-8. missing values ncons(-8). variable label ncons 'N items manager consults over'. exec. Numeric Ninfs (f2.0) . count ninfs=npay nhours nhol npen nselect ntrainab ngriev ndiscip nstaff nequalop Nhands nperfor (1). if value(npay)=-8 | value(nhours)=-8 | value(nhol)=-8 | value(npen)=-8 | value(nselect)=-8 | value(ntrainab)=-8 | value(ngriev)=-8 | value(ndiscip)=-8 | value(nstaff)=-8 | value(nequalop)=-8 | value(Nhands)=-8 | value(nperfor)=-8 ninfs=-8. missing values ninfs(-8). variable label ninfs 'N items manager informs reps'. exec. Numeric Nnowt (f2.0) . count nnowt=npay nhours nhol npen nselect ntrainab ngriev ndiscip nstaff nequalop Nhands nperfor (0). if value(npay)=-8 | value(nhours)=-8 | value(nhol)=-8 | value(npen)=-8 | value(nselect)=-8 | value(ntrainab)=-8 | value(ngriev)=-8 | value(ndiscip)=-8 | value(nstaff)=-8 | value(nequalop)=-8 | value(Nhands)=-8 | value(nperfor)=-8 nnowt=-8. missing values nnowt(-8). variable label nnowt 'N items manager does nothing with reps'. exec. recode epaya ehoursa ehola epena eselecta etraina egrieva ediscipa estaffa equalopa ehealtha eperfora (0=-1). execute. *********************************************** . COMMENT Any industrial action in last 12 months (Nstrike) . Numeric Nstrike (f3.0). compute Nstrike=2. if value(gactio01)=-8 Nstrike=-8. if value(gactio01)=-1 Nstrike=-1. if value(gactio01)=-9 Nstrike=-9. if any(1,gactio01 to gactio11) Nstrike=1. if any(2,gactio01 to gactio11) Nstrike=1. if any(3,gactio01 to gactio11) Nstrike=1. if any(4,gactio01 to gactio11) Nstrike=1. if any(5,gactio01 to gactio11) Nstrike=1. if any(6,gactio01 to gactio11) Nstrike=1. if any(7,gactio01 to gactio11) Nstrike=1. if any(8,gactio01 to gactio11) Nstrike=1. if any(9,gactio01 to gactio11) Nstrike=1. if any(10,gactio01 to gactio11) Nstrike=1. variable label Nstrike 'Any industrial action in last 12 months'. value labels Nstrike 1 'Yes' 2 'No' -1 'Not applicable' -8 'Do not know' -9 'Refused'. missing values Nstrike (-9 to -1). execute. *********************************************** . COMMENT Threat of industrial action (Nthretsk) . Numeric Nthretsk (f2.0). do if (missing(gpstyr1)=1). + recode gpstyr1 (else=copy) into nthretsk . else if (gpstyr1 ne 8). + compute Nthretsk =1. else. + compute Nthretsk = 2. end if. value labels Nthretsk 1 'Yes' 2 'No' -9 'NA' -8 'DK' -7 'EUNIONUM=0; off route until 2nd April 2004' . variable labels Nthretsk 'Any threatened industrial action during last 12 months'. missing values Nthretsk (-9 thru -1). execute. *********************************************** . COMMENT Any claims (Nitclaim) . Numeric Nitclaim (f3.0). recode hcomplai (2=0) (else=copy) into Nitclaim. variable labels Nitclaim 'Any IT cases'. value labels Nitclaim 1 'IT claim in past year' 0 'No' -1 'Not applicable' -8 'Do not know' -9 'Refused'. missing values Nitclaim (-9 to -1). exec. *********************************************** . COMMENT Rate of IT cases per 1,000 (Nitrate) . Numeric Nitrate (f5.2). do if (missing(hcomplai)=1). + compute Nitrate = 99999. else if (hcomplai = 2). + compute Nitrate = 0. else if (missing(hcomnum)=1). + compute Nitrate = 99999. else. + compute Nitrate = (hcomnum / zallemps) * 1000. end if. variable labels Nitrate 'Rate