Independent Verification of Enterprise Based Training (EBT)

For Trainee & Graduate Survey Data


cls
clear all
cd "D:\Munem\All Projects\2026\DTE\15. Data Set\Clean"

*-----------------------------------------------------------------------------
* SECTION 0: IMPORT Excel File
*-----------------------------------------------------------------------------

import excel using "Trainee_Merged", sheet("data") firstrow clear



*-----------------------------------------------------------------------------
* SECTION 1: FULL RENAME (v1-v262)
*-----------------------------------------------------------------------------


rename NameofEnumeraotor            enum_name
rename Whatisyourcurrentstatusint   resp_type_screen
rename Fullnameoftherespondent      resp_name
rename Gender                       q2_gender
rename Gender_Other                 q2_gender_other
rename RespondentStatus             q3_status
rename Disabilitytype               q3_disability_type
rename Weretrainingvenuesandclas    q4_access
rename Couldyouaccesswashroomfac    q5_toilet_access
rename Ethnicity                    q6_ethnicity
rename Ethnicity_Other              q6_ethnicity_other
rename Age                          q7_age
rename MaritalStatus                q8_marital
rename EmailAddress                 q9_email
rename ContactNumber                q10_phone
rename CurrentaddressUpazilaD       q11_address
rename Division                     division
rename Howdidyoucometoknowabo       q12_howheard_raw
rename S                            q12_c01_newspaper
rename T                            q12_c02_govtsite
rename U                            q12_c03_socialmedia
rename V                            q12_c04_workshop
rename W                            q12_c05_employer
rename X                            q12_c06_wordofmouth
rename Y                            q12_c07_cso
rename Z                            q12_c08_poster
rename AA                           q12_c09_sms
rename AB                           q12_c10_other
rename AC                           q12_other_text
rename Whydidyouchoosethistrai      q13_whychose_raw
rename AE                           q13_c01_getjob
rename AF                           q13_c02_techskills
rename AG                           q13_c03_careerprog
rename AH                           q13_c04_newtech
rename AI                           q13_c05_family
rename AJ                           q13_c06_certificate
rename AK                           q13_c07_other
rename AL                           q13_other_text
rename AM                           q2_1_progtype
rename AN                           q2_2_trade
rename Nameofthesector              sector_name
rename AP                           q2_3_level
rename AQ                           q2_5_1_admitcycle
rename AR                           q2_5_2_admitmonth
rename AS                           q2_5_3_admityear
rename AT                           q2_6_status
rename AU                           q2_7_completiondate
rename A1Didyougoforanindustry      q2a_1_attach
rename A21Nameoftheindustryatta     q2a_2_1_attachname
rename A22Addressoftheindustrya     q2a_2_2_attachaddr
rename A3Howlongdidyoustayatth      q2a_3_attachdur
rename A4Didyouusealogbookdurin     q2a_4_logbook
rename A5Howoftendidyouupdateth     q2a_5_logfreq
rename B11Noofclasseseachweek       q2b_1_1_classwk_org
rename BC                           q2b_1_1_classwk_resp
rename B12Noofweeksclassesheld      q2b_1_2_weeksheld_org
rename BE                           q2b_1_2_weeksheld_resp
rename B13Totalnoofclassesheld      q2b_1_3_totalclass_org
rename BG                           q2b_1_3_totalclass_resp
rename B14Averagenoofhoursper       q2b_1_4_hrsperclass_org
rename BI                           q2b_1_4_hrsperclass_resp
rename B15TotalnoofhoursheldO       q2b_1_5_totalhrs_org
rename B15TotalnoofhoursheldA       q2b_1_5_totalhrs_resp
rename B2Didyoureceivethehardco     q2b_2_cblm
rename B3Howmanyuniqueinstructors   q2b_3_ninstructors
rename B4Wasthereoneinstructorfr    q2b_4_dualinstructor
rename PleaseSpecifyfromwherefacto  q2b_4_specify
rename B5Wholedthemajorityofins     q2b_5_wholed
rename Other13                      q2b_5_other_text
rename B6Howwerelessonsprimarily    q2b_6_delivery
rename BS                           hdr_3_1
rename BT                           q3_1a_ppe_trainee
rename BU                           q3_1b_ppe_enum
rename BV                           q3_2_ppe_enforced
rename BW                           q3_3_safetyguard
rename BX                           q3_4_riskbriefed
rename BY                           q4_1_water
rename BZ                           q4_2_toilets
rename CA                           q4_3_complaintinfo
rename CB                           q4_4_complaintbox
rename CC                           q5_1_stipend
rename CD                           q5_2_stipendamt
rename CE                           q5_3_stipendmode
rename CF                           q5_4_stipendtiming_raw
rename CG                           q5_4_c01_start
rename CH                           q5_4_c02_end
rename CI                           q5_4_c03_2wkafter
rename CJ                           q5_5_stipenduse_raw
rename CK                           q5_5_c01_food
rename CL                           q5_5_c02_transport
rename CM                           q5_5_c03_mobiledata
rename CN                           q5_5_c04_household
rename CO                           q5_5_c05_savings
rename CP                           q5_5_c06_other
rename CQ                           q5_5_other_text
rename CR                           hdr_5_6
rename CS                           hdr_5_6_1
rename CT                           q5_6_1a_fee
rename CU                           q5_6_1b_feefunder
rename CV                           q5_6_1b_other_text
rename CW                           q5_6_1c_feepartial
rename CX                           q5_6_1d_feeother
rename CY                           hdr_5_6_2
rename CZ                           q5_6_2a_transport
rename DA                           q5_6_2b_transportfunder
rename DB                           q5_6_2b_other_text
rename DC                           q5_6_2c_transportpartial
rename DD                           q5_6_2d_transportother
rename DE                           hdr_5_6_3
rename DF                           q5_6_3a_equip
rename DG                           q5_6_3b_equipfunder
rename DH                           q5_6_3b_other_text
rename DI                           q5_6_3c_equippartial
rename DJ                           q5_6_3d_equipother
rename DK                           hdr_5_6_4
rename DL                           q5_6_4a_stationery
rename DM                           q5_6_4b_stationeryfunder
rename DN                           q5_6_4b_other_text
rename DO                           q5_6_4c_stationerypartial
rename DP                           q5_6_4d_stationeryother
rename DQ                           q5_6_5a_othercomponent1
rename DR                           q5_6_5b_othertotal1
rename DS                           q5_6_5c_otherfunder1
rename DT                           q5_6_5c_other_text
rename DU                           q5_6_5d_otherpartial1
rename DV                           q5_6_5e_otherother1
rename DW                           q5_6_6a_othercomponent2
rename DX                           q5_6_6b_othertotal2
rename DY                           q5_6_6c_otherfunder2
rename DZ                           q5_6_6c_other_text
rename EA                           q5_6_6d_otherpartial2
rename EB                           q5_6_6e_otherother2
rename EC                           q6_1_attendrate
rename ED                           q6_2_lowattend_raw
rename EE                           q6_2_c01_work
rename EF                           q6_2_c02_family
rename EG                           q6_2_c03_transport
rename EH                           q6_2_c04_illness
rename EI                           q6_2_c05_cancelled
rename EJ                           q6_2_c06_na
rename EK                           q6_2_c07_other
rename EL                           q6_2_other_text
rename EM                           hdr_6_3
rename EN                           q6_3_1_scheduling
rename EO                           q6_3_2_matavail
rename EP                           q6_3_3_matquality
rename EQ                           q6_3_4_overallquality
rename ER                           q6_3_5_trainerquality
rename ES                           q6_3_6_industryfacility
rename ET                           q7_1_otherenrolled
rename EU                           q7_2_progtype
rename EV                           q7_2_educ_specify
rename EW                           q7_2_vocational_specify
rename EX                           q7_2_other_specify
rename EY                           q7_3_aftertraining
rename EZ                           q7_3_other_specify
rename FA                           q7_4_overallsat
rename FB                           q7_5_recommend
rename A1Whatisthehighestlevelo     q8a_1_edulevel
rename A2Inwhichyeardidyoucompl     q8a_2_eduyear
rename A3Haveyoucompletedanyvoca    q8a_3_priortraining
rename A4Durationofthatprevioust    q8a_4_priortraindur
rename A5Wasthattrainingrelatedt    q8a_5_priortrainrelated
rename A6Whatwasyouremployment      q8a_6_prejobstatus
rename FI                           q8a_6_other_text
rename A7Whattypeofworkwereyou      q8a_7_worktype
rename FK                           q8a_7_other_text
rename A8Inwhichsectorwasyourwo     q8a_8_worksector
rename FM                           q8a_8_other_text
rename A9Wasthatworkrelatedtoth     q8a_9_workrelated
rename A10Whatwasyouraveragemont    q8a_10_preincome
rename A11Howlonghadyoubeenunem     q8a_11_unemploydur
rename A12Whatwasyourprimaryreas    q8a_12_joinreason
rename FR                           q8a_12_other_text
rename A13Atthetimeofjoiningwe      q8a_13_primaryearner
rename B1Inthelast7sevendays        q8b_1_worked7d
rename B2Inthelast7daysdidyou       q8b_2_absentjob7d
rename B3Haveyouworkedatleast1      q8b_3_ownuse7d
rename B4Inthelast7sevendays        q8b_4_absentownuse7d
rename B51aHowmanymonthsdidyou      q8b_5_1a_monthswork12m
rename B51bOnaveragehowmanyday      q8b_5_1b_daysmonth12m
rename B51cOnaveragehowmanyhou      q8b_5_1c_hrsday12m
rename B52aHowmanymonthsdidyou      q8b_5_2a_monthsownuse12m
rename B52bOnaveragehowmanyday      q8b_5_2b_daysmonthownuse12m
rename B52cOnaveragehowmanyhou      q8b_5_2c_hrsdayownuse12m
rename B61aHowmanydaysdidyouwo      q8b_6_1a_days_pre
rename B61bOnaveragehowmanyhou      q8b_6_1b_hrs_pre
rename B61cHowmuchdidyouearnin      q8b_6_1c_income_pre
rename B62aHowmanydaysdidyouwo      q8b_6_2a_days_m1
rename B62bOnaveragehowmanyhou      q8b_6_2b_hrs_m1
rename B62cHowmuchdidyouearnin      q8b_6_2c_income_m1
rename B63aHowmanydaysdidyouwo      q8b_6_3a_days_m2
rename B63bOnaveragehowmanyhou      q8b_6_3b_hrs_m2
rename B63cHowmuchdidyouearnin      q8b_6_3c_income_m2
rename B64aHowmanydaysdidyouwo      q8b_6_4a_days_m3
rename B64bOnaveragehowmanyhou      q8b_6_4b_hrs_m3
rename B64cHowmuchdidyouearnin      q8b_6_4c_income_m3
rename B65aHowmanydaysdidyouwo      q8b_6_5a_days_m4
rename B65bOnaveragehowmanyhou      q8b_6_5b_hrs_m4
rename B65cHowmuchdidyouearnin      q8b_6_5c_income_m4
rename B66aHowmanydaysdidyouwo      q8b_6_6a_days_m5
rename B66bOnaveragehowmanyhou      q8b_6_6b_hrs_m5
rename B66cHowmuchdidyouearnin      q8b_6_6c_income_m5
rename B67aHowmanydaysdidyouwo      q8b_6_7a_days_m6
rename B67bOnaveragehowmanyhou      q8b_6_7b_hrs_m6
rename B67cHowmuchdidyouearnin      q8b_6_7c_income_m6
rename C1Whichofthefollowingwoul    q8c_1_aspiration
rename C2Whatistheprimaryreason     q8c_2_furtherreason
rename HA                           q8c_2_other_text
rename A1Didyouappearinaformal      q9a_1_assessed
rename A2Pleasementiontheassessme   q9a_2_assessdate
rename A3WereyouassessedasCompet    q9a_3_competent
rename A4Pleasespecifythemonthan    q9a_4_graddate
rename A5Howmanyattemptsdiditta     q9a_5_attempts
rename A6Whyhaveyounotappearedi     q9a_6_notappeared_raw
rename HH                           q9a_6_c01_notscheduled
rename HI                           q9a_6_c02_didntknow
rename HJ                           q9a_6_c03_healthpersonal
rename HK                           q9a_6_c04_other
rename HL                           q9a_6_other_text
rename A7Howlongaftercompletiono    q9a_7_awaitingdur
rename HN                           q9a_7_other_text
rename A81NameoftheAssessmentCe     q9a_8_1_rtoname
rename A82AddressoftheAssessment    q9a_8_2_rtoaddr
rename HQ                           q9_1_empstatus
rename B1Howlongaftercompletingt    q9b_1_timetojob
rename HS                           q9b_1_other_text
rename B2Isyourcurrentjobinthe      q9b_2_sectormatch
rename B3IfdifferentsectorWhya      q9b_3_whynotsector
rename HV                           q9b_3_other_text
rename B4Whatisyourcurrentemploy    q9b_4_emptype
rename HX                           q9b_4_other_text
rename B5Whereisyourcurrentjobl     q9b_5_joblocation
rename B6Howdidyouobtainthisjob     q9b_6_jobsource
rename IA                           q9b_6_other_text
rename B7Whatisyourcurrentaverag    q9b_7_currentincome
rename B8Hasyourincomechangedcom    q9b_8_incomechange
rename B9DoyoufeelEBTtrainingdi     q9b_9_ebtcontributed
rename C1Howlonghaveyoubeenlook     q9c_1_searchdur
rename C2Whatarethemainbarriers     q9c_2_barriers_raw
rename IG                           q9c_2_c01_novacancy
rename IH                           q9c_2_c02_lowsalary
rename II                           q9c_2_c03_location
rename IJ                           q9c_2_c04_noexperience
rename IK                           q9c_2_c05_nocert
rename IL                           q9c_2_c06_family
rename IM                           q9c_2_c07_other
rename IN                           q9c_2_other_text
rename D1Whyareyounotcurrentlyl     q9d_1_reasons_raw
rename IP                           q9d_1_c01_study
rename IQ                           q9d_1_c02_family
rename IR                           q9d_1_c03_health
rename IS                           q9d_1_c04_ownbusiness
rename IT                           q9d_1_c05_overseas
rename IU                           q9d_1_c06_other
rename IV                           q9d_1_other_text
rename D2Doyouintendtolookforw      q9d_2_planlook
rename PleasecollectyourGPSlocation hdr_gps
rename _PleasecollectyourGPSlocatio gps_lat
rename IZ                           gps_lon
rename JA                           gps_alt
rename JB                           gps_precision

* Quick sanity check: confirm all 262 renamed and nothing left unmatched
quietly ds
local nvars : word count `r(varlist)'
di as result "Variables after rename: `nvars'  (expected: 262)"

*==============================================================================
* SECTION 2: QUALITY CHECKS
*==============================================================================


duplicates tag resp_name q10_phone, gen(dup_flag)

tab dup_flag    //0= Not duplicate; 1= Duplicate

tab enum_name, m
gen gps_flag = (gps_lat<20.5 | gps_lat>26.7 | gps_lon<88 | gps_lon>92.7) if !missing(gps_lat)
tab gps_flag, m
gen age_flag = (q7_age<14 | q7_age>65) if !missing(q7_age)
tab age_flag, m



*==============================================================================
* SECTION 3: NEW VARIABLES GENERATED FROM STRING VARIABLES
*==============================================================================

*** All "_new" valriables are numeric, recoded from their string couterpass



**q2_gender
gen q2_gender_new =.
replace q2_gender_new = 1 if q2_gender == "Male"
replace q2_gender_new = 2 if q2_gender == "Female"
replace q2_gender_new = 3 if q2_gender == "Prefer not to say"
replace q2_gender_new = 88 if q2_gender == "Other"
label define GENDER 1 "Male" 2 "Female" 3 "Prefer not to say" 88 "Other"
label values q2_gender_new GENDER
label variable q2_gender_new "Gender of Respondent"
tab q2_gender_new



**q3_status
gen q3_status_new =.
replace q3_status_new = 1 if q3_status == "Fully abled"
replace q3_status_new = 2 if q3_status == "Disabled"
label define STATUS3 1 "Fully able" 2 "Disabled"
label values q3_status_new STATUS3
label variable q3_status_new "Respondent Status (Able/PWD)"
tab q3_status_new


*---------YES/NO-------------------------------------------------------------------------------------------------------------------------


label define YESNO 0 "No" 1 "Yes"

foreach var in q4_access q5_toilet_access q2a_4_logbook q2b_2_cblm ///
	q3_1a_ppe_trainee q3_1b_ppe_enum q3_2_ppe_enforced ///
	q3_3_safetyguard q3_4_riskbriefed ///
    q4_1_water q4_2_toilets q4_3_complaintinfo q4_4_complaintbox ///
    q5_1_stipend q7_1_otherenrolled q8a_3_priortraining ///
	q8a_5_priortrainrelated q8a_9_workrelated q8b_1_worked7d ///
    q8b_2_absentjob7d q8b_3_ownuse7d q8b_4_absentownuse7d {

    gen `var'_new = .
    replace `var'_new = 1 if `var' == "Yes"
    replace `var'_new = 0 if `var' == "No"
    label values `var'_new YESNO
}


**Doesn't have any data now. It is a graduate specific question (YES/NO)
*gen q9a_1_assessed_new =.
*gen q9a_3_competent_new =.
*gen q9b_2_sectormatch_new =.


label variable q3_status_new "Respondent Status (Able/PWD)"



label variable q4_access_new "q4_access (numeric)"
label variable q5_toilet_access_new "q5_toilet_access (numeric)"
label variable q2a_4_logbook_new "q2a_4_logbook (numeric)"
label variable q2b_2_cblm_new "q2b_2_cblm (numeric)"
label variable q3_1a_ppe_trainee_new "q3_1a_ppe_trainee  (numeric)"
label variable q3_1b_ppe_enum_new "q3_1b_ppe_enum (numeric)"
label variable q3_2_ppe_enforced_new "q3_2_ppe_enforced (numeric)"
label variable q3_3_safetyguard_new "q3_3_safetyguard (numeric)"
label variable q3_4_riskbriefed_new  "q3_4_riskbriefed (numeric)"
label variable q4_1_water_new "q4_1_water (numeric)"
label variable q4_2_toilets_new "q4_2_toilets (numeric)"
label variable q4_3_complaintinfo_new "q4_3_complaintinfo (numeric)"
label variable q4_4_complaintbox_new "q4_4_complaintbox (numeric)"
label variable q5_1_stipend_new "q5_1_stipend (numeric)"
label variable q7_1_otherenrolled_new "q7_1_otherenrolled (numeric)"
label variable q8a_3_priortraining_new "q8a_3_priortraining (numeric)"
label variable q8a_5_priortrainrelated_new "q8a_5_priortrainrelated (numeric)"
label variable q8a_9_workrelated_new "q8a_9_workrelated (numeric)"
label variable q8b_1_worked7d_new "q8b_1_worked7d (numeric)"
label variable q8b_2_absentjob7d_new "q8b_2_absentjob7d (numeric)"
label variable q8b_3_ownuse7d_new "q8b_3_ownuse7d (numeric)"
label variable q8b_4_absentownuse7d_new "q8b_4_absentownuse7d (numeric)"



**q6_ethnicity
gen q6_ethnicity_new =.
replace q6_ethnicity_new = 1 if q6_ethnicity == "Bengali"
replace q6_ethnicity_new = 2 if q6_ethnicity == "Chakma"
replace q6_ethnicity_new = 3 if q6_ethnicity == "Marma"
replace q6_ethnicity_new = 4 if q6_ethnicity == "Garo"
replace q6_ethnicity_new = 5 if q6_ethnicity == "Khassia"
replace q6_ethnicity_new = 6 if q6_ethnicity == "Shaotal"
replace q6_ethnicity_new = 88 if q6_ethnicity == "Other"

label define ETHNIC 1 "Bangali" 2 "Chakma" 3 "Marma" 4 "Garo" ///
                     5 "Khassia" 6 "Shaotal" 88 "Other"
label values q6_ethnicity_new ETHNIC
label variable q6_ethnicity_new "q6_ethnicity (numeric)"
tab q6_ethnicity_new


**q8_marital
gen q8_marital_new =.
replace q8_marital_new = 1 if q8_marital == "Married"
replace q8_marital_new = 2 if q8_marital == "Unmarried"
replace q8_marital_new = 3 if q8_marital == "Divorced"
replace q8_marital_new = 4 if q8_marital == "Separated"
replace q8_marital_new = 5 if q8_marital == "Widowed"

label define MARITAL 1 "Married" 2 "Unmarried" 3 "Divorced" ///
                      4 "Separated" 5 "Widowed"
label values q8_marital_new MARITAL
label variable q8_marital_new "q8_marital (numeric)"
tab q8_marital_new



**division

gen division_new =.
replace division_new = 1 if division == "Barisal"
replace division_new = 2 if division == "Chattogram"
replace division_new = 3 if division == "Dhaka"
replace division_new = 4 if division == "Khulna"
replace division_new = 5 if division == "Mymensingh"
replace division_new = 6 if division == "Rajshahi"
replace division_new = 7 if division == "Rangpur"
replace division_new = 8 if division == "Sylhet"

label define DIVISION 1 "Barisal" 2 "Chattogram" 3 "Dhaka" 4 "Khulna" ///
						5 "Mymensingh" 6 "Rajshahi" 7 "Rangpur" 8 "Sylhet"
label values division_new DIVISION
label variable division_new "division (numeric)"
tab division_new



**q2_1_progtype

gen q2_1_progtype_new =.
replace q2_1_progtype_new = 1 if q2_1_progtype == "Apprenticeship and Dual Training Program (ADTP)"
replace q2_1_progtype_new = 2 if q2_1_progtype == "Technical Skill Training Program (TSTP)"
replace q2_1_progtype_new = 3 if q2_1_progtype == "Skill up-gradation Training Program (SUTP)"
replace q2_1_progtype_new = 4 if q2_1_progtype == "IHTP"
label define PROGTYPE 1 "ADTP" 2 "TSTP" 3 "SUTP" 4 "IHTP"
label values q2_1_progtype_new PROGTYPE
label variable q2_1_progtype_new "q2_1_progtype (numeric)"
tab q2_1_progtype_new


**sector_name
tab  sector_name
gen sector_name_new =.
replace sector_name_new = 1 if sector_name =="Agro-Food Sector" 
replace sector_name_new = 2 if sector_name == "Ceramic" 
replace sector_name_new = 3 if sector_name == "Construction & Civil"
replace sector_name_new = 4 if sector_name == "Furniture"  
replace sector_name_new = 5 if sector_name == "Garment, Textile & Leather"
replace sector_name_new = 6 if sector_name == "Health Sector"
replace sector_name_new = 7 if sector_name == "ICT" 
replace sector_name_new = 8 if sector_name == "Informal"
replace sector_name_new = 9 if sector_name == "Light Engineering & Manufacturing" 
replace sector_name_new = 10 if sector_name == "Tourism and Hospitality" 


label define SECTOR 1 "Agro-Food Sector" 2 "Ceramic"  ///
					3 "Construction & Civil" 4 "Furniture"  ///
					5 "Garment, Textile & Leather" 6 "Health Sector" ///
					7 "ICT" 8 "Informal" ///
					9 "Light Engineering & Manufacturing" ///
					10 "Tourism and Hospitality" 
label values sector_name_new SECTOR
label variable sector_name_new "sector_name (numeric)"
tab sector_name_new



**q2_3_level
gen q2_3_level_new =.
replace q2_3_level_new = 1 if q2_3_level == "Level 1"
replace q2_3_level_new = 2 if q2_3_level == "Level 2"
replace q2_3_level_new = 3 if q2_3_level == "Level 3"
replace q2_3_level_new = 4 if q2_3_level == "Level 4"
label define LEVEL 1 "Level 1" 2 "Level 2" 3 "Level 3" 4 "Level 4"
label values q2_3_level_new LEVEL
label variable q2_1_progtype_new "q2_3_level (numeric)"
tab q2_3_level_new


**q2_5_1_admitcycle
gen q2_5_1_admitcycle_new =.
replace q2_5_1_admitcycle_new = 1 if q2_5_1_admitcycle == 1
replace q2_5_1_admitcycle_new = 2 if q2_5_1_admitcycle == 2
replace q2_5_1_admitcycle_new = 3 if q2_5_1_admitcycle == 3
replace q2_5_1_admitcycle_new = 4 if q2_5_1_admitcycle == 4
label define ADMITCYCLE 1 "1st Cycle" 2 "2nd cycle" 3 "3rd cycle" 4 "4th cycle"
label values q2_5_1_admitcycle_new ADMITCYCLE
label variable q2_5_1_admitcycle_new "q2_5_1_admitcycle (numeric)"
tab q2_5_1_admitcycle_new


**q2_5_2_admitmonth
gen q2_5_2_admitmonth_new =.
replace q2_5_2_admitmonth_new = 1 if q2_5_2_admitmonth == "January"
replace q2_5_2_admitmonth_new = 2 if q2_5_2_admitmonth == "March"
replace q2_5_2_admitmonth_new = 3 if q2_5_2_admitmonth == "April"
replace q2_5_2_admitmonth_new = 4 if q2_5_2_admitmonth == "May"
replace q2_5_2_admitmonth_new = 4 if q2_5_2_admitmonth == "May "
replace q2_5_2_admitmonth_new = 5 if q2_5_2_admitmonth == "June"
replace q2_5_2_admitmonth_new = 5 if q2_5_2_admitmonth == "June "

label define ADMITMONTH 1 "January" 2 "March" 3 "April" 4 "May" 5 "June"
label values q2_5_2_admitmonth_new ADMITMONTH
label variable q2_5_2_admitmonth_new "q2_5_2_admitmonth (numeric)"
tab q2_5_2_admitmonth_new


**q2_6_status

gen q2_6_status_new =.
replace q2_6_status_new = 1 if q2_6_status =="Still undergoing training (TRAINEE)"
replace q2_6_status_new = 2 if q2_6_status =="Completed training (GRADUATE)"
label define STATUSq2_6 1 "Trainee" 2 "Graduate"
label values q2_6_status_new STATUSq2_6
label variable q2_6_status_new "q2_6_status (numeric)"
tab q2_6_status_new


**q2a_1_attach 
gen q2a_1_attach_new =.
replace q2a_1_attach_new = 1 if q2a_1_attach == "Yes"
replace q2a_1_attach_new = 2 if q2a_1_attach == "No"
replace q2a_1_attach_new = 3 if q2a_1_attach == "Not eligible yet"

label define ATTACH 1 "Yes" 2 "No" 3 "Not eligible yet"
label values q2a_1_attach_new ATTACH
label variable q2a_1_attach_new "q2a_1_attach (Numeric)"
tab q2a_1_attach_new

**q2a_5_logfreq
gen q2a_5_logfreq_new =.
replace q2a_5_logfreq_new = 1 if q2a_5_logfreq =="Every day"
replace q2a_5_logfreq_new = 2 if q2a_5_logfreq =="Every three days"
replace q2a_5_logfreq_new = 3 if q2a_5_logfreq =="Every seven days"
replace q2a_5_logfreq_new = 4 if q2a_5_logfreq =="Whenever I wished"

label define LOGFREQ 1 "Every day" 2 "Every three days" ///
						3 "Every seven days" 4 "Whenever I wished"
label values q2a_5_logfreq_new LOGFREQ
label variable q2a_5_logfreq_new "q2a_5_logfreq (Numeric)"
tab q2a_5_logfreq_new



**q2b_4_dualinstructor

gen q2b_4_dualinstructor_new =.
replace q2b_4_dualinstructor_new = 1 if q2b_4_dualinstructor == "Yes, both present"
replace q2b_4_dualinstructor_new = 2 if q2b_4_dualinstructor == "No, only one instructor type"
label define DUALINSTRUCTOR 1 "Both Present" 2 "Only One Type"
label values q2b_4_dualinstructor_new DUALINSTRUCTOR
label variable q2b_4_dualinstructor_new "q2b_4_dualinstructor (numeric)"
tab q2b_4_dualinstructor_new

**q2b_4_specify
gen q2b_4_specify_new =.
replace q2b_4_specify_new = 1 if q2b_4_specify == "Factory"
replace q2b_4_specify_new = 1 if q2b_4_specify == "Factory "
replace q2b_4_specify_new = 2 if q2b_4_specify == "Institute"
label define SPECIFYq2b_4 1 "Factory" 2 "Institute"
label values q2b_4_specify_new SPECIFYq2b_4
label variable q2b_4_specify_new "q2b_4_specify (numeric)"
tab q2b_4_specify_new




**q2b_5_wholed
gen q2b_5_wholed_new =.
replace q2b_5_wholed_new = 1 if q2b_5_wholed == "Factory instructor"
replace q2b_5_wholed_new = 2 if q2b_5_wholed == "Institute instructor"
replace q2b_5_wholed_new = 3 if q2b_5_wholed == "Both equally"
replace q2b_5_wholed_new = 88 if q2b_5_wholed == "Other"
label define WHOLEDq2b_5 1 "Factory instructor" 2 "Institute instructor" ///
							3 "Both equally" 88 "Other"

label values q2b_5_wholed_new WHOLEDq2b_5
label variable q2b_5_wholed_new "q2b_5_wholed (numeric)"
tab q2b_5_wholed_new




**q2b_6_delivery

gen q2b_6_delivery_new =.
replace q2b_6_delivery_new = 1 if q2b_6_delivery == "Mostly practical / hands-on"
replace q2b_6_delivery_new = 2 if q2b_6_delivery == "Mostly theoretical"
replace q2b_6_delivery_new = 3 if q2b_6_delivery == "Equal mix"
label define DELIVERY 1 "Mostly practical / hands-on" 2 "Mostly theoretical" 3 "Equal mix"
label values q2b_6_delivery_new DELIVERY
label variable q2b_6_delivery_new "q2b_6_delivery (numeric)"
tab q2b_6_delivery_new 

**q5_3_stipendmode // no ovservation now
*gen q5_3_stipendmode_new =.
*replace q5_3_stipendmode_new = 1 if q5_3_stipendmode == "In a single tranche"
*replace q5_3_stipendmode_new = 2 if q5_3_stipendmode == "In two tranches"
*replace q5_3_stipendmode_new = 3 if q5_3_stipendmode == "In three tranches"
*replace q5_3_stipendmode_new = 4 if q5_3_stipendmode == "Don't receive yet"

*label define STIPENDMODE 1 "In a single tranche" 2 "In two tranches" 3 "In three tranches" 4 "Don't receive yet"
*label values q5_3_stipendmode_new STIPENDMODE
*label variable q5_3_stipendmode_new "q5_3_stipendmode (numeric)"
*tab q5_3_stipendmode_new




**q5_6_1b_feefunder (course fee)
gen q5_6_1b_feefunder_new =.
replace q5_6_1b_feefunder_new = 1 if q5_6_1b_feefunder == "Myself"
replace q5_6_1b_feefunder_new = 2 if q5_6_1b_feefunder == "Friends/relatives"
replace q5_6_1b_feefunder_new = 3 if q5_6_1b_feefunder == "Fully ASSET-funded"
replace q5_6_1b_feefunder_new = 4 if q5_6_1b_feefunder == "Partially ASSET-funded"
replace q5_6_1b_feefunder_new = 5 if q5_6_1b_feefunder == "Other project"
replace q5_6_1b_feefunder_new = 6 if q5_6_1b_feefunder == "Waiver"
replace q5_6_1b_feefunder_new = 88 if q5_6_1b_feefunder == "Other"

label define FEEFUNDERq5_6_1b 1 "Myself" 2 "Friends/relatives" ///
								3 "Fully ASSET-funded" ///
								4 "Partially ASSET-funded" ///
								5 "Other project" 6 "Waiver" 88 "Other"
label values q5_6_1b_feefunder_new FEEFUNDERq5_6_1b
label variable q5_6_1b_feefunder_new "q5_6_1b_feefunder (numeric)"
tab q5_6_1b_feefunder_new


**q5_6_2b_transportfunder (Conveyance)
gen q5_6_2b_transportfunder_new =.
replace q5_6_2b_transportfunder_new = 1 if q5_6_2b_transportfunder == "Myself"
replace q5_6_2b_transportfunder_new = 2 if q5_6_2b_transportfunder == "Friends/relatives"
replace q5_6_2b_transportfunder_new = 3 if q5_6_2b_transportfunder == "Fully ASSET-funded"
replace q5_6_2b_transportfunder_new = 4 if q5_6_2b_transportfunder == "Partially ASSET-funded"
replace q5_6_2b_transportfunder_new = 5 if q5_6_2b_transportfunder == "Other project"
replace q5_6_2b_transportfunder_new = 6 if q5_6_2b_transportfunder == "Waiver"
replace q5_6_2b_transportfunder_new = 88 if q5_6_2b_transportfunder == "Other"

label define FEEFUNDERq5_6_2b 1 "Myself" 2 "Friends/relatives" ///
								3 "Fully ASSET-funded" 4 "Partially ASSET-funded" ///
								5 "Other project" 6 "Waiver" 88 "Other"
label values q5_6_2b_transportfunder_new FEEFUNDERq5_6_2b
label variable q5_6_2b_transportfunder_new "q5_6_2b_transportfunder (numeric)"
tab q5_6_2b_transportfunder_new



**q5_6_3b_equipfunder (Equipment purchase)
gen q5_6_3b_equipfunder_new =.
replace q5_6_3b_equipfunder_new = 1 if q5_6_3b_equipfunder == "Myself"
replace q5_6_3b_equipfunder_new = 2 if q5_6_3b_equipfunder == "Friends/relatives"
replace q5_6_3b_equipfunder_new = 3 if q5_6_3b_equipfunder == "Fully ASSET-funded"
replace q5_6_3b_equipfunder_new = 4 if q5_6_3b_equipfunder == "Partially ASSET-funded"
replace q5_6_3b_equipfunder_new = 5 if q5_6_3b_equipfunder == "Other project"
replace q5_6_3b_equipfunder_new = 6 if q5_6_3b_equipfunder == "Waiver"
replace q5_6_3b_equipfunder_new = 88 if q5_6_3b_equipfunder == "Other"

label define FEEFUNDERq5_6_3b 1 "Myself" 2 "Friends/relatives" 3 "Fully ASSET-funded" ///
								4 "Partially ASSET-funded" 5 "Other project" ///
								6 "Waiver" 88 "Other"
label values q5_6_3b_equipfunder_new FEEFUNDERq5_6_3b
label variable q5_6_3b_equipfunder_new "q5_6_3b_equipfunder (numeric)"
tab q5_6_3b_equipfunder_new



**q5_6_4b_stationeryfunder (Stationery)
gen q5_6_4b_stationeryfunder_new =.
replace q5_6_4b_stationeryfunder_new = 1 if q5_6_4b_stationeryfunder == "Myself"
replace q5_6_4b_stationeryfunder_new = 2 if q5_6_4b_stationeryfunder == "Friends/relatives"
replace q5_6_4b_stationeryfunder_new = 3 if q5_6_4b_stationeryfunder == "Fully ASSET-funded"
replace q5_6_4b_stationeryfunder_new = 4 if q5_6_4b_stationeryfunder == "Partially ASSET-funded"
replace q5_6_4b_stationeryfunder_new = 5 if q5_6_4b_stationeryfunder == "Other project"
replace q5_6_4b_stationeryfunder_new = 6 if q5_6_4b_stationeryfunder == "Waiver"
replace q5_6_4b_stationeryfunder_new = 88 if q5_6_4b_stationeryfunder == "Other"

label define FEEFUNDERq5_6_4b 1 "Myself" 2 "Friends/relatives" 3 "Fully ASSET-funded" ///
								4 "Partially ASSET-funded" 5 "Other project" ///
								6 "Waiver" 88 "Other"
label values q5_6_4b_stationeryfunder_new FEEFUNDERq5_6_4b
label variable q5_6_4b_stationeryfunder_new "q5_6_4b_stationeryfunder (numeric)"
tab q5_6_4b_stationeryfunder_new


**q5_6_5c_otherfunder1 [Other (specify)]

gen q5_6_5c_otherfunder1_new =.
replace q5_6_5c_otherfunder1_new = 1 if q5_6_5c_otherfunder1 == "Myself"
replace q5_6_5c_otherfunder1_new = 2 if q5_6_5c_otherfunder1 == "Friends/relatives"
replace q5_6_5c_otherfunder1_new = 3 if q5_6_5c_otherfunder1 == "Fully ASSET-funded"
replace q5_6_5c_otherfunder1_new = 4 if q5_6_5c_otherfunder1 == "Partially ASSET-funded"
replace q5_6_5c_otherfunder1_new = 5 if q5_6_5c_otherfunder1 == "Other project"
replace q5_6_5c_otherfunder1_new = 6 if q5_6_5c_otherfunder1 == "Waiver"
replace q5_6_5c_otherfunder1_new = 88 if q5_6_5c_otherfunder1 == "Other"

label define FEEFUNDERq5_6_5c 1 "Myself" 2 "Friends/relatives" ///
								3 "Fully ASSET-funded" 4 "Partially ASSET-funded" ///
								5 "Other project" 6 "Waiver" 88 "Other"
label values q5_6_5c_otherfunder1_new FEEFUNDERq5_6_5c
label variable q5_6_5c_otherfunder1_new "q5_6_5c_otherfunder1 (numeric)"
tab q5_6_5c_otherfunder1_new
tab q5_6_5c_other_text


**q5_6_6c_otherfunder2 [Other (specify)]

gen q5_6_6c_otherfunder2_new =.
replace q5_6_6c_otherfunder2_new = 1 if q5_6_6c_otherfunder2 == "Myself"
replace q5_6_6c_otherfunder2_new = 2 if q5_6_6c_otherfunder2 == "Friends/relatives"
replace q5_6_6c_otherfunder2_new = 3 if q5_6_6c_otherfunder2 == "Fully ASSET-funded"
replace q5_6_6c_otherfunder2_new = 4 if q5_6_6c_otherfunder2 == "Partially ASSET-funded"
replace q5_6_6c_otherfunder2_new = 5 if q5_6_6c_otherfunder2 == "Other project"
replace q5_6_6c_otherfunder2_new = 6 if q5_6_6c_otherfunder2 == "Waiver"
replace q5_6_6c_otherfunder2_new = 88 if q5_6_6c_otherfunder2 == "Other"

label define FEEFUNDERq5_6_6c 1 "Myself" 2 "Friends/relatives" 3 "Fully ASSET-funded" ///
								4 "Partially ASSET-funded" 5 "Other project" ///
								6 "Waiver" 88 "Other"
label values q5_6_6c_otherfunder2_new FEEFUNDERq5_6_6c
label variable q5_6_6c_otherfunder2_new "q5_6_6c_otherfunder2 (numeric)"
tab q5_6_6c_otherfunder2_new
tab q5_6_6c_other_text



**q6_1_attendrate
gen q6_1_attendrate_new =.
replace q6_1_attendrate_new = 1 if q6_1_attendrate == "Almost always (>90% attendance)"
replace q6_1_attendrate_new = 2 if q6_1_attendrate == "Mostly (75–90%)"
replace q6_1_attendrate_new = 3 if q6_1_attendrate == "Sometimes (50–74%)"
replace q6_1_attendrate_new = 4 if q6_1_attendrate == "Rarely (<50%)"

label define ATTENDRATE 1 "Almost always (>90% attendance)" 2 "Mostly (75–90%)" ///
						3 "Sometimes (50–74%)" 4 "Rarely (<50%)"
label values q6_1_attendrate_new ATTENDRATE
label variable q6_1_attendrate_new "q6_1_attendrate (numeric)"
tab q6_1_attendrate_new
tab q6_1_attendrate_new q2_gender_new, row col
tab q6_1_attendrate_new division_new, row col 
tab q6_1_attendrate_new sector_name_new, row col


**q6_3_1_scheduling

gen q6_3_1_scheduling_new =.
replace q6_3_1_scheduling_new = 1 if q6_3_1_scheduling == "Very poor"
replace q6_3_1_scheduling_new = 2 if q6_3_1_scheduling == "Poor"
replace q6_3_1_scheduling_new = 3 if q6_3_1_scheduling == "Good"
replace q6_3_1_scheduling_new = 4 if q6_3_1_scheduling == "Very good"
replace q6_3_1_scheduling_new = 5 if q6_3_1_scheduling == "Excellent"

label define SCHEDULING 1 "Very poor" 2 "Poor" 3 "Good" 4 "Very good" 5 "Excellent"
label values q6_3_1_scheduling_new SCHEDULING
label variable q6_3_1_scheduling_new "q6_3_1_scheduling (numeric)"
tab q6_3_1_scheduling_new


**q6_3_2_matavail


gen q6_3_2_matavail_new =.
replace q6_3_2_matavail_new = 1 if q6_3_2_matavail == "Very poor"
replace q6_3_2_matavail_new = 2 if q6_3_2_matavail == "Poor"
replace q6_3_2_matavail_new = 3 if q6_3_2_matavail == "Good"
replace q6_3_2_matavail_new = 4 if q6_3_2_matavail == "Very good"
replace q6_3_2_matavail_new = 5 if q6_3_2_matavail == "Excellent"

label define MATAVAIL 1 "Very poor" 2 "Poor" 3 "Good" 4 "Very good" 5 "Excellent"
label values q6_3_2_matavail_new MATAVAIL
label variable q6_3_2_matavail_new "q6_3_2_matavail (numeric)"
tab q6_3_2_matavail_new


**q6_3_3_matquality

gen q6_3_3_matquality_new =.
replace q6_3_3_matquality_new = 1 if q6_3_3_matquality == "Very poor"
replace q6_3_3_matquality_new = 2 if q6_3_3_matquality == "Poor"
replace q6_3_3_matquality_new = 3 if q6_3_3_matquality == "Good"
replace q6_3_3_matquality_new = 4 if q6_3_3_matquality == "Very good"
replace q6_3_3_matquality_new = 5 if q6_3_2_matavail == "Excellent"

label define MATQUALITY 1 "Very poor" 2 "Poor" 3 "Good" 4 "Very good" 5 "Excellent"
label values q6_3_3_matquality_new MATQUALITY
label variable q6_3_3_matquality_new "q6_3_2_matavail (numeric)"
tab q6_3_3_matquality_new


**q6_3_4_overallquality


gen q6_3_4_overallquality_new =.
replace q6_3_4_overallquality_new = 1 if q6_3_4_overallquality == "Very poor"
replace q6_3_4_overallquality_new = 2 if q6_3_4_overallquality == "Poor"
replace q6_3_4_overallquality_new = 3 if q6_3_4_overallquality == "Good"
replace q6_3_4_overallquality_new = 4 if q6_3_4_overallquality == "Very good"
replace q6_3_4_overallquality_new = 5 if q6_3_4_overallquality == "Excellent"

label define OVERALLQUALITY 1 "Very poor" 2 "Poor" 3 "Good" 4 "Very good" 5 "Excellent"
label values q6_3_4_overallquality_new OVERALLQUALITY
label variable q6_3_4_overallquality_new "q6_3_4_overallquality (numeric)"
tab q6_3_4_overallquality_new


**q6_3_5_trainerquality

gen q6_3_5_trainerquality_new =.
replace q6_3_5_trainerquality_new = 1 if q6_3_5_trainerquality == "Very poor"
replace q6_3_5_trainerquality_new = 2 if q6_3_5_trainerquality == "Poor"
replace q6_3_5_trainerquality_new = 3 if q6_3_5_trainerquality == "Good"
replace q6_3_5_trainerquality_new = 4 if q6_3_5_trainerquality == "Very good"
replace q6_3_5_trainerquality_new = 5 if q6_3_5_trainerquality == "Excellent"

label define TRAINERQUALITY 1 "Very poor" 2 "Poor" 3 "Good" 4 "Very good" 5 "Excellent"
label values q6_3_5_trainerquality_new TRAINERQUALITY
label variable q6_3_5_trainerquality_new "q6_3_5_trainerquality (numeric)"
tab q6_3_5_trainerquality_new



**q6_3_6_industryfacility

gen q6_3_6_industryfacility_new =.
replace q6_3_6_industryfacility_new = 1 if q6_3_6_industryfacility == "Very poor"
replace q6_3_6_industryfacility_new = 2 if q6_3_6_industryfacility == "Poor"
replace q6_3_6_industryfacility_new = 3 if q6_3_6_industryfacility == "Good"
replace q6_3_6_industryfacility_new = 4 if q6_3_6_industryfacility == "Very good"
replace q6_3_6_industryfacility_new = 5 if q6_3_6_industryfacility == "Excellent"

label define INDUSTRYFACILITY 1 "Very poor" 2 "Poor" 3 "Good" 4 "Very good" 5 "Excellent"
label values q6_3_6_industryfacility_new INDUSTRYFACILITY
label variable q6_3_6_industryfacility_new "q6_3_5_trainerquality (numeric)"
tab q6_3_6_industryfacility_new


**q7_2_progtype
tab q7_2_progtype
gen q7_2_progtype_new =.
replace q7_2_progtype_new = 1 if q7_2_progtype == "Education program"
replace q7_2_progtype_new = 2 if q7_2_progtype == "Vocational / technical training"
replace q7_2_progtype_new = 88 if q7_2_progtype == "Other"

label define PROGTYPEq7_2 1 "Education program"2 "Vocational / technical training" 88 "Other"
label values q7_2_progtype_new PROGTYPEq7_2
label variable q7_2_progtype_new "q7_2_educ_specify (numeric)"
tab q7_2_progtype_new




**q7_3_aftertraining

gen q7_3_aftertraining_new =.
replace q7_3_aftertraining_new = 1 if q7_3_aftertraining == "Get a job Self-employment"
replace q7_3_aftertraining_new = 2 if q7_3_aftertraining == "Continue to higher level of training in same trade"
replace q7_3_aftertraining_new = 3 if q7_3_aftertraining == "Continue/go back to ongoing education"
replace q7_3_aftertraining_new = 4 if q7_3_aftertraining == "Continue/go back to ongoing job/business"
replace q7_3_aftertraining_new = 5 if q7_3_aftertraining == "Overseas employment"
replace q7_3_aftertraining_new = 88 if q7_3_aftertraining == "Others"

label define AFTERTRAINING 1 "Get a job Self-employment" 2 "Continue to higher level of training in same trade" 3 "Continue/go back to ongoing education" 4 "Continue/go back to ongoing job/business" 5 "Overseas employment" 88 "Others"
label values q7_3_aftertraining_new AFTERTRAINING
label variable q7_3_aftertraining_new  "q7_3_aftertraining (numeric)"
tab q7_3_aftertraining_new 
 

**q7_4_overallsat
gen q7_4_overallsat_new =.
replace q7_4_overallsat_new = 1 if q7_4_overallsat == "Very dissatisfied"
replace q7_4_overallsat_new = 2 if q7_4_overallsat == "Dissatisfied"
replace q7_4_overallsat_new = 3 if q7_4_overallsat == "Neutral"
replace q7_4_overallsat_new = 4 if q7_4_overallsat == "Satisfied"
replace q7_4_overallsat_new = 5 if q7_4_overallsat == "Very satisfied"

label define OVERALLSAT 1 "Very dissatisfied" 2 "Dissatisfied" 3 "Neutral" 4 "Satisfied" 5 "Very satisfied"
label values q7_4_overallsat_new OVERALLSAT
label variable q7_4_overallsat_new "q7_4_overallsat (numeric)"
tab q7_4_overallsat_new




**q7_5_recommend

gen q7_5_recommend_new =.
replace q7_5_recommend_new = 1 if q7_5_recommend == "Yes"
replace q7_5_recommend_new = 2 if q7_5_recommend == "No"
replace q7_5_recommend_new = 3 if q7_5_recommend == "Unsure"

label define RECOMMEND 1 "Yes" 2 "No" 3 "Unsure"
label values q7_5_recommend_new RECOMMEND
label variable q7_5_recommend_new "q7_5_recommend (numeric)"
tab q7_5_recommend_new


**q8a_1_edulevel

gen q8a_1_edulevel_new =.
replace q8a_1_edulevel_new = 1 if  q8a_1_edulevel == "No formal education"
replace q8a_1_edulevel_new = 2 if  q8a_1_edulevel == "Grade 5"
replace q8a_1_edulevel_new = 3 if  q8a_1_edulevel == "Grade 8"
replace q8a_1_edulevel_new = 4 if  q8a_1_edulevel == "SSC or equivalent"
replace q8a_1_edulevel_new = 5 if  q8a_1_edulevel == "HSC or equivalent"
replace q8a_1_edulevel_new = 6 if  q8a_1_edulevel == "Diploma"
replace q8a_1_edulevel_new = 7 if  q8a_1_edulevel == "Bachelor's degree"
replace q8a_1_edulevel_new = 8 if  q8a_1_edulevel == "Master's degree or above"


label define EDULEVEL 1 "No formal education" 2 "Grade 5" 3 "Grade 8" 4 "SSC or equivalent" 5 "HSC or equivalent" 6 "Diploma" 7 "Bachelor's degree" 8 "Master's degree or above"
label values q8a_1_edulevel_new EDULEVEL
label variable q8a_1_edulevel_new "q8a_1_edulevel (numeric)"
tab q8a_1_edulevel_new




**q8a_4_priortraindur
gen q8a_4_priortraindur_new =.
replace q8a_4_priortraindur_new = 1 if  q8a_4_priortraindur == "Less than 3 months"
replace q8a_4_priortraindur_new = 2 if  q8a_4_priortraindur == "3–6 months"
replace q8a_4_priortraindur_new = 3 if  q8a_4_priortraindur == "More than 6 months"


label define PRIORTRAINDUR 1 "Less than 3 months" 2 "3–6 months" 3 "More than 6 months"
label values q8a_4_priortraindur_new PRIORTRAINDUR
label variable q8a_4_priortraindur_new "q8a_4_priortraindur (Numeric)"
tab q8a_4_priortraindur_new




**q8a_6_prejobstatus
gen q8a_6_prejobstatus_new =.
replace q8a_6_prejobstatus_new = 1 if q8a_6_prejobstatus == "Employed (paid job) → Continue to Q8.7"
replace q8a_6_prejobstatus_new = 2 if q8a_6_prejobstatus == "Self-employed / own business    → Continue to Q8.7"
replace q8a_6_prejobstatus_new = 3 if q8a_6_prejobstatus == "Unemployed, → Skip to Q8.11"
replace q8a_6_prejobstatus_new = 4 if q8a_6_prejobstatus == "Student / still in education    → Skip to Q8.12"
replace q8a_6_prejobstatus_new = 5 if q8a_6_prejobstatus == "Part Time job"
replace q8a_6_prejobstatus_new = 88 if q8a_6_prejobstatus == "Other"


label define PREJOBSTATUS 1 "Employed (paid job)" 2 "Self-employed / own business" 3"Unemployed" 4 "Student / still in education" 5 "Part Time job" 88 "Other"

label values q8a_6_prejobstatus_new PREJOBSTATUS
label variable q8a_6_prejobstatus_new "q8a_6_prejobstatus (numeric)"
tab q8a_6_prejobstatus_new 






**q8a_7_worktype

gen q8a_7_worktype_new =.
replace q8a_7_worktype_new = 1 if q8a_7_worktype =="Factory / industrial worker"
replace q8a_7_worktype_new = 2 if q8a_7_worktype =="Office / clerical / administrative"
replace q8a_7_worktype_new = 3 if q8a_7_worktype =="Retail / sales"
replace q8a_7_worktype_new = 4 if q8a_7_worktype =="Agriculture / fisheries"
replace q8a_7_worktype_new = 5 if q8a_7_worktype =="Construction / labor"
replace q8a_7_worktype_new = 6 if q8a_7_worktype =="Own business / trade"
replace q8a_7_worktype_new = 7 if q8a_7_worktype =="Domestic / household services"
replace q8a_7_worktype_new = 88 if q8a_7_worktype =="Other"


label define WORKTYPE 1 "Factory / industrial worker" 2 "Office / clerical / administrative" 3 "Retail / sales" 4 "Agriculture / fisheries" 5 "Construction / labor" 6 "Own business / trade" 7 "Domestic / household services" 88 "Other"
label values q8a_7_worktype_new WORKTYPE
label variable q8a_7_worktype_new "q8a_7_worktype (numeric)"
tab q8a_7_worktype_new



**q8a_8_worksector

gen q8a_8_worksector_new =.
replace q8a_8_worksector_new = 1 if q8a_8_worksector == "Agrofood"
replace q8a_8_worksector_new = 2 if q8a_8_worksector == "Garment, Textile & Leather"
replace q8a_8_worksector_new = 3 if q8a_8_worksector == "ICT"
replace q8a_8_worksector_new = 4 if q8a_8_worksector == "Tourism & Hospitality"
replace q8a_8_worksector_new = 5 if q8a_8_worksector == "Construction & Civil"
replace q8a_8_worksector_new = 6 if q8a_8_worksector == "Light Engineering & Manufacturing"
replace q8a_8_worksector_new = 7 if q8a_8_worksector == "Domestic / household services"
replace q8a_8_worksector_new = 88 if q8a_8_worksector == "Other"


label define WORKSECTOR 1 "Agrofood" 2 "Garment, Textile & Leather" 3 "ICT" 4 "Tourism & Hospitality" 5"Construction & Civil" 6 "Light Engineering & Manufacturing" 7 "Domestic / household services" 88 "Other"
label values q8a_8_worksector_new WORKSECTOR
label variable q8a_8_worksector_new "q8a_8_worksector (Numeric)"
tab q8a_8_worksector_new




**q8a_10_preincome

gen q8a_10_preincome_new =.
replace q8a_10_preincome_new = 1 if q8a_10_preincome == "Below BDT 8,000"

replace q8a_10_preincome_new = 2 if q8a_10_preincome =="BDT 8,001–12,000"
replace q8a_10_preincome_new = 3 if q8a_10_preincome =="BDT 12,001–18,000"
replace q8a_10_preincome_new = 4 if q8a_10_preincome =="BDT 18,001–25,000"
replace q8a_10_preincome_new = 5 if q8a_10_preincome =="Above BDT 25,000"

label define PREINCOME 1 "Below BDT 8,000" 2 "BDT 8,001–12,000" 3 "BDT 12,001–18,000" 4 "BDT 18,001–25,000" 5 "Above BDT 25,000"
label values q8a_10_preincome_new PREINCOME
label variable q8a_10_preincome_new "q8a_10_preincome (numeric)"
tab q8a_10_preincome_new





**q8a_11_unemploydur
gen q8a_11_unemploydur_new =.
replace q8a_11_unemploydur_new = 1 if q8a_11_unemploydur == "Less than 3 months"
replace q8a_11_unemploydur_new = 2 if q8a_11_unemploydur == "3–6 months"
replace q8a_11_unemploydur_new = 3 if q8a_11_unemploydur == "7–12 months"
replace q8a_11_unemploydur_new = 4 if q8a_11_unemploydur == "More than 12 months"


label define UNEMPLOYDUR 1 "Less than 3 months" 2 "3–6 months" 3 "7–12 months" 4 "More than 12 months"
label values q8a_11_unemploydur_new UNEMPLOYDUR
label variable q8a_11_unemploydur_new "q8a_11_unemploydur (Numeric)"
tab q8a_11_unemploydur_new 



**q8a_12_joinreason
gen q8a_12_joinreason_new =.
replace q8a_12_joinreason_new = 1 if q8a_12_joinreason == "Unemployed and needed skills to find work"

replace q8a_12_joinreason_new = 2 if q8a_12_joinreason == "Wanted to improve earnings in current job"
replace q8a_12_joinreason_new = 3 if q8a_12_joinreason == "Wanted to change career / sector"
replace q8a_12_joinreason_new = 4 if q8a_12_joinreason == "Employer / factory sponsored or required it"
replace q8a_12_joinreason_new = 5 if q8a_12_joinreason =="Family encouragement"
replace q8a_12_joinreason_new = 6 if q8a_12_joinreason == "Personal interest in the trade"
replace q8a_12_joinreason_new = 88 if q8a_12_joinreason == "Other"


label define JOINREASON 1 "Unemployed and needed skills to find work" 2 "Wanted to improve earnings in current job" 3 "Wanted to change career / sector" 4 "Employer / factory sponsored or required it" 5 "Family encouragement" 6 "Personal interest in the trade" 88 "Other"
label values q8a_12_joinreason_new JOINREASON
label variable q8a_12_joinreason_new "q8a_12_joinreason (Numeric)"
tab q8a_12_joinreason_new



**q8a_13_primaryearner
gen q8a_13_primaryearner_new =. 
replace q8a_13_primaryearner_new = 1 if q8a_13_primaryearner == "Yes, sole earner"
replace q8a_13_primaryearner_new = 2 if q8a_13_primaryearner == "Yes, main earner (others contribute less)"
replace q8a_13_primaryearner_new = 3 if q8a_13_primaryearner =="No, another person is the main earner"
replace q8a_13_primaryearner_new = 4 if q8a_13_primaryearner == "No, household has multiple equal earners"

label define PRIMARYEARNER 1 "Yes, sole earner" 2 "Yes, main earner (others contribute less)" 3 "No, another person is the main earner" 4 "No, household has multiple equal earners"
label values q8a_13_primaryearner_new PRIMARYEARNER
label variable q8a_13_primaryearner_new "q8a_13_primaryearner (Numeric)"
tab q8a_13_primaryearner_new



**q8c_1_aspiration

gen q8c_1_aspiration_new =.
replace q8c_1_aspiration_new = 1 if q8c_1_aspiration == "On-the-job training"
replace q8c_1_aspiration_new = 2 if q8c_1_aspiration == "Higher NTVQF / qualification level (e.g. Level 4 to Level 5)"
replace q8c_1_aspiration_new = 3 if q8c_1_aspiration == "Further higher education (Diploma / BSc)"
replace q8c_1_aspiration_new = 4 if q8c_1_aspiration == "Short-term specialized courses"
replace q8c_1_aspiration_new = 5 if q8c_1_aspiration == "No further training planned"


label define ASPIRATION 1 "On-the-job training" 2 "Higher NTVQF / qualification level (e.g. Level 4 to Level 5)" 3 "Further higher education (Diploma / BSc)" 4 "Short-term specialized courses" 5 "No further training planned"

label values q8c_1_aspiration_new ASPIRATION
label variable q8c_1_aspiration_new "q8c_1_aspiration (Numeric)"
tab q8c_1_aspiration_new




**q8c_2_furtherreason

gen q8c_2_furtherreason_new =.
replace q8c_2_furtherreason_new = 1 if q8c_2_furtherreason == "To get a promotion or pay rise"
replace q8c_2_furtherreason_new = 2 if q8c_2_furtherreason == "To adapt to new technologies"
replace q8c_2_furtherreason_new = 3 if q8c_2_furtherreason == "To start my own business"
replace q8c_2_furtherreason_new = 4 if q8c_2_furtherreason == "To seek overseas employment"
replace q8c_2_furtherreason_new = 88 if q8c_2_furtherreason == "Other"


label define FURTHERREASON  1 "To get a promotion or pay rise" 2 "To adapt to new technologies" 3 "To start my own business" 4 "To seek overseas employment" 88 "Other"
label values q8c_2_furtherreason_new FURTHERREASON
label variable q8c_2_furtherreason_new "q8c_2_furtherreason (Numeric)"
tab q8c_2_furtherreason_new






**q9a_7_awaitingdur // no observation now



*gen q9a_7_awaitingdur_new =.
*replace q9a_7_awaitingdur_new = 1 if q9a_7_awaitingdur == "2 weeks"
*replace q9a_7_awaitingdur_new = 2 if q9a_7_awaitingdur == "1 month"
*replace q9a_7_awaitingdur_new = 3 if q9a_7_awaitingdur == "2 months"
*replace q9a_7_awaitingdur_new = 4 if q9a_7_awaitingdur == "More than 2 months"
*replace q9a_7_awaitingdur_new = 88 if q9a_7_awaitingdur == "Others"

*label define AWAITINGDUR 1 "2 weeks" 2 "1 month" 3 "2 months" 4 "More than 2 months" 88 "Others"

*label values q9a_7_awaitingdur_new AWAITINGDUR
*label variable q9a_7_awaitingdur_new "q9a_7_awaitingdur (Numeric)"
*tab q9a_7_awaitingdur_new


**q9_1_empstatus // no observation now


*gen q9_1_empstatus_new =.

*replace q9_1_empstatus_new = 1 if q9_1_empstatus ==  "Employed (paid job or self-employed)"
*replace q9_1_empstatus_new = 2 if q9_1_empstatus ==  "Still looking for work"
*replace q9_1_empstatus_new = 3 if q9_1_empstatus == "Not working and not looking"

*label define EMPSTATUS 1 "Employed (paid job or self-employed)" 2 "Still looking for work" 3 "Not working and not looking"
*label values q9_1_empstatus_new EMPSTATUS
*label variables q9_1_empstatus_new "q9_1_empstatus (Numeric)"
*tab q9_1_empstatus_new





**q9b_1_timetojob // no observation now

*gen q9b_1_timetojob_new =.
*replace q9b_1_timetojob_new = 1 if q9b_1_timetojob == "Immediately"
*replace q9b_1_timetojob_new = 2 if q9b_1_timetojob =="1 month"
*replace q9b_1_timetojob_new = 3 if q9b_1_timetojob =="2 months"
*replace q9b_1_timetojob_new = 4 if q9b_1_timetojob =="3 months"
*replace q9b_1_timetojob_new = 5 if q9b_1_timetojob =="More than 3 months"
*replace q9b_1_timetojob_new = 88 if q9b_1_timetojob =="Others"


*label define TIMETOJOB 1 "Immediately" 2 "1 month" 3 "2 months" 4 "3 months" 5 "More than 3 months" 88 "Others"
*label values q9b_1_timetojob_new TIMETOJOB
*label variables q9b_1_timetojob_new "q9b_1_timetojob (Numeric)"
*tab q9b_1_timetojob_new





**q9b_3_whynotsector // no observation now

*gen q9b_3_whynotsector_new =.
*replace q9b_3_whynotsector_new = 1 if q9b_3_whynotsector == "No vacancies in trained sector"
*replace q9b_3_whynotsector_new = 2 if q9b_3_whynotsector == "Better pay / benefits elsewhere"
*replace q9b_3_whynotsector_new = 3 if q9b_3_whynotsector == "Did not find the trade interesting"
*replace q9b_3_whynotsector_new = 4 if q9b_3_whynotsector == "Workplace too far from home"
*replace q9b_3_whynotsector_new = 5 if q9b_3_whynotsector == "Family / personal reasons"
*replace q9b_3_whynotsector_new = 88 if q9b_3_whynotsector == "Other"


*label define WHYNORSECTOR 1 "No vacancies in trained sector" 2 "Better pay / benefits elsewhere" 3 "Did not find the trade interesting" 4 "Workplace too far from home" 5 "Family / personal reasons" 88 "Other"
*label values q9b_3_whynotsector_new WHYNORSECTOR
*label variables q9b_3_whynotsector_new "q9b_3_whynotsector (Numeric)"
*tab q9b_3_whynotsector_new





**q9b_4_emptype // no observation now

*gen q9b_4_emptype_new =.
*replace q9b_4_emptype_new = 1 if q9b_4_emptype == "Full-time"
*replace q9b_4_emptype_new = 2 if q9b_4_emptype == "Part-time"
*replace q9b_4_emptype_new = 3 if q9b_4_emptype == "Self-employed"
*replace q9b_4_emptype_new = 4 if q9b_4_emptype == "Freelance"
*replace q9b_4_emptype_new = 88 if q9b_4_emptype == "Other"

*label define EMPTYPE 1 "Full-time" 2 "Part-time" 3 "Self-employed" 4 "Freelance" 88 "Other"
*label values q9b_4_emptype_new EMPTYPE
*label variables q9b_4_emptype_new "q9b_4_emptype (Numeric)"
*tab q9b_4_emptype_new





**q9b_5_joblocation // no observation now

*gen q9b_5_joblocation_new =.

*replace q9b_5_joblocation_new = 1 if q9b_5_joblocation == "Same factory / workplace where I trained"
*replace q9b_5_joblocation_new = 2 if q9b_5_joblocation == "Another branch / factory of same industry partner"
*replace q9b_5_joblocation_new = 3 if q9b_5_joblocation == "An entirely dierent company or employer"
*replace q9b_5_joblocation_new = 4 if q9b_5_joblocation == "Self-employed (home-based or own shop)"


*label define JOBLOCATION 1 "Same factory / workplace where I trained" 2 "Another branch / factory of same industry partner" 3 "An entirely dierent company or employer" 4 "Self-employed (home-based or own shop)"
*label values q9b_5_joblocation_new JOBLOCATION
*label variables q9b_5_joblocation_new "q9b_5_joblocation (Numeric)"
*tab q9b_5_joblocation_new



**q9b_6_jobsource // no observation now

*gen q9b_6_jobsource_new =.


*replace q9b_6_jobsource_new = 1 if q9b_6_jobsource =="Placement by the training provider / institute"
*replace q9b_6_jobsource_new = 2 if q9b_6_jobsource =="Personal contacts (friends / family)"
*replace q9b_6_jobsource_new = 3 if q9b_6_jobsource =="Job advertisement (online or newspaper)"
*replace q9b_6_jobsource_new = 4 if q9b_6_jobsource =="Self-eort / started own business"
*replace q9b_6_jobsource_new = 88 if q9b_6_jobsource =="Other"


*label define JOBSOURCE 1 "Placement by the training provider / institute" 2 "Personal contacts (friends / family)" 3 "Job advertisement (online or newspaper)" 4 "Self-eort / started own business" 88 "Other"
*label values q9b_6_jobsource_new JOBSOURCE
*label variables q9b_6_jobsource_new "q9b_6_jobsource (Numeric)"
*tab q9b_6_jobsource_new




**q9b_7_currentincome // no observation now

*gen q9b_7_currentincome_new =.


*replace q9b_7_currentincome_new = 1 if q9b_7_currentincome == "No income / was not working"
*replace q9b_7_currentincome_new = 2 if q9b_7_currentincome == "Below BDT 8,000"
*replace q9b_7_currentincome_new = 3 if q9b_7_currentincome == "BDT 8,001–12,000"
*replace q9b_7_currentincome_new = 4 if q9b_7_currentincome == "BDT 12,001–18,000"
*replace q9b_7_currentincome_new = 5 if q9b_7_currentincome == "BDT 18,001–25,000"
*replace q9b_7_currentincome_new = 6 if q9b_7_currentincome == "Above BDT 25,000"



*label define CURRENTINCOME 1 "No income / was not working" 2 "Below BDT 8,000" 3 "BDT 8,001–12,000" 4 "BDT 12,001–18,000" 5 "BDT 18,001–25,000" 6 "Above BDT 25,000"
*label values q9b_7_currentincome_new CURRENTINCOME
*label variables q9b_7_currentincome_new "q9b_7_currentincome (Numeric)"
*tab q9b_7_currentincome_new





**q9b_8_incomechange // no observation now

*gen q9b_8_incomechange_new =.
*replace q9b_8_incomechange_new = 1 if q9b_8_incomechange_new == "Increased signicantly (more than 25%)"
*replace q9b_8_incomechange_new = 2 if q9b_8_incomechange_new == "Increased slightly (up to 25%)"
*replace q9b_8_incomechange_new = 3 if q9b_8_incomechange_new == "No change"
*replace q9b_8_incomechange_new = 4 if q9b_8_incomechange_new == "Decreased"
*replace q9b_8_incomechange_new = 5 if q9b_8_incomechange_new == "Cannot compare — was not working before EBT"


*label define INCOMECHANGE 1 "Increased signicantly (more than 25%)" 2 "Increased slightly (up to 25%)" 3 "No change" 4 "Decreased" 5 "Cannot compare — was not working before EBT"
*label values q9b_8_incomechange_new INCOMECHANGE
*label variables q9b_8_incomechange_new "q9b_8_incomechange (Numeric)"
*tab q9b_8_incomechange_new





**q9b_9_ebtcontributed // no observation now

*gen q9b_9_ebtcontributed_new =.
 
*replace q9b_9_ebtcontributed_new = 1 if q9b_9_ebtcontributed == "Yes, directly"
*replace q9b_9_ebtcontributed_new = 2 if q9b_9_ebtcontributed == "Partially"
*replace q9b_9_ebtcontributed_new = 3 if q9b_9_ebtcontributed == "No"
*replace q9b_9_ebtcontributed_new = 4 if q9b_9_ebtcontributed == "Too early to say"


*label define EBTCONTRIBUTED 1 "Yes, directly" 2 "Partially" 3 "No" 4 "Too early to say"
*label values q9b_9_ebtcontributed_new EBTCONTRIBUTED
*label variables q9b_9_ebtcontributed_new "q9b_9_ebtcontributed (Numeric)"
*tab q9b_9_ebtcontributed_new


**q9d_2_planlook // no observation now

*gen q9d_2_planlook_new =.
*replace q9d_2_planlook_new = 1 if q9d_2_planlook == "Yes"
*replace q9d_2_planlook_new = 2 if q9d_2_planlook == "No"
*replace q9d_2_planlook_new = 3 if q9d_2_planlook == "Unsure"

*label define PLANLOOK 1 "Yes" 2 "No" 3 "Unsure"
*label values q9d_2_planlook_new PLANLOOK
*label variables q9d_2_planlook_new "q9d_2_planlook (Numeric)"
*tab q9d_2_planlook_new




*==============================================================================
* SECTION 4: New category Variables
*==============================================================================


**q7_age
tabstat q7_age, statistics(min max)
recode q7_age ///
    (min/17 = 1 "Below 18 years") ///
    (18/22 = 2 "18 to 22 years") ///
    (23/26 = 3 "23 to 26 years") ///
    (27/31 = 4 "27 to 31 years") ///
    (32/36 = 5 "32 to 36 years") ///
    (37/41 = 6 "37 to 41 years") ///
    (42/max = 7 "42 years and above"), gen(q7_age_cat)
tab q7_age_cat
label variable q7_age_cat "Age category"


**q2a_3_attachdur
tabstat q2a_3_attachdur, statistics(min max)
tab q2a_3_attachdur
recode q2a_3_attachdur ///
		(min/9 = 1 "Below 10 days") ///
		(10/19 = 2 "10 to 19 days") ///
		(20/29 = 3 "20 to 29 days") ///
		(30/max = 4 "30 days and above"), gen (q2a_3_attachdur_cat)
tab q2a_3_attachdur_cat
label variable q2a_3_attachdur_cat "q2a_3_attachdur (Category)"


** q2b_1_1 (Both) [Classes per week]

tabstat q2b_1_1_classwk_org, statistics(min max)
tab q2b_1_1_classwk_org
recode q2b_1_1_classwk_org ///
		(min/3 = 1 "1 to 3 Classes per week") ///
		(4/6 = 2 "4 to 6 classes per week") ///
		(7/10 = 3 "7 to 10 classes per week") ///
		(11/max =4 "11 classes and above per week"), gen (q2b_1_1_classwk_org_cat)
tab q2b_1_1_classwk_org_cat
label variable q2b_1_1_classwk_org_cat "q2b_1_1_classwk_org (Category)"

tabstat q2b_1_1_classwk_resp, statistics(min max)
tab q2b_1_1_classwk_resp
recode q2b_1_1_classwk_resp ///
		(min/3 = 1 "1 to 3 Classes per week") ///
		(4/6 = 2 "4 to 6 classes per week") ///
		(7/10 = 3 "7 to 10 classes per week") ///
		(11/max =4 "11 classes and above per week"), gen (q2b_1_1_classwk_resp_cat)
tab q2b_1_1_classwk_resp_cat
label variable q2b_1_1_classwk_resp "q2b_1_1_classwk_resp (Category)"



** q2b_1_2 (Both) [Total weeks of class held]

tabstat q2b_1_2_weeksheld_org, statistics(min max)
tab q2b_1_2_weeksheld_org
recode q2b_1_2_weeksheld_org ///
		(min/3 = 1 "1 to 3 weeks") ///
		(4/6 = 2 "4 to 6 weeks") ///
		(7/10 = 3 "7 to 10 weeks") ///
		(11/max = 4 "11 weeks and above"), gen (q2b_1_2_weeksheld_org_cat)
tab q2b_1_2_weeksheld_org_cat
label variable q2b_1_2_weeksheld_org_cat "q2b_1_2_weeksheld_org (Category)"




tabstat q2b_1_2_weeksheld_resp, statistics(min max)
tab q2b_1_2_weeksheld_resp
recode q2b_1_2_weeksheld_resp ///
		(min/3 = 1 "1 to 3 weeks") ///
		(4/6 = 2 "4 to 6 weeks") ///
		(7/10 = 3 "7 to 10 weeks") ///
		(11/max = 4 "11 weeks and above"), gen (q2b_1_2_weeksheld_resp_cat)
tab q2b_1_2_weeksheld_resp_cat
label variable q2b_1_2_weeksheld_resp_cat "q2b_1_2_weeksheld_resp (Category)"


**q2b_1_3 (Both) [Total Number of Classes]


tabstat q2b_1_3_totalclass_org, statistics(min max)
tab q2b_1_3_totalclass_org
recode q2b_1_3_totalclass_org ///
		(min/9 = 1 "Below 10 Classes") ///
		(10/19 = 2 "10 to 19 Classes") ///
		(20/29 = 3 "20 to 29 Classes") ///
		(30/39 = 4 "30 to 39 Classes") ///
		(40/49 = 5 "40 to 49 Classes") ///
		(50/59 = 6 "50 to 59 Classes") ///
		(60/69 = 7 "60 to 69 Classes") ///
		(70/max = 8 "70 Classes and above"), gen (q2b_1_3_totalclass_org_cat)
tab q2b_1_3_totalclass_org_cat
label variable q2b_1_3_totalclass_org_cat "q2b_1_3_totalclass_org (Category)"


tabstat q2b_1_3_totalclass_resp, statistics(min max)
tab q2b_1_3_totalclass_resp
recode q2b_1_3_totalclass_resp ///
		(min/9 = 1 "Below 10 Classes") ///
		(10/19 = 2 "10 to 19 Classes") ///
		(20/29 = 3 "20 to 29 Classes") ///
		(30/39 = 4 "30 to 39 Classes") ///
		(40/49 = 5 "40 to 49 Classes") ///
		(50/59 = 6 "50 to 59 Classes") ///
		(60/69 = 7 "60 to 69 Classes") ///
		(70/max = 8 "70 Classes and above"), gen (q2b_1_3_totalclass_resp_cat)
tab q2b_1_3_totalclass_resp_cat
label variable q2b_1_3_totalclass_resp_cat "q2b_1_3_totalclass_resp (Category)"


** q2b_1_4 (Both) [Avg hours per classess] //  no need to do category
tabstat q2b_1_4_hrsperclass_org, statistics(min max)
tab q2b_1_4_hrsperclass_org


tabstat q2b_1_4_hrsperclass_resp, statistics(min max)
tab q2b_1_4_hrsperclass_resp


** q2b_1_5 (BOth) [Total Number of Class Hours]

tabstat q2b_1_5_totalhrs_org, statistics(min max)
tab q2b_1_5_totalhrs_org
recode q2b_1_5_totalhrs_org ///
		(min/49 = 1 "Below 50 hours") ///
		(50/99 = 2 "50 to 99 hours") ///
		(100/149 = 3 "100 to 149 hours" ) ///
		(150/199 = 4 "150 to 199 hours") ///
		(200/249 = 5 "200 to 249 hours") ///
		(250/299 = 6 "250 to 299 hours") ///
		(300/max = 7 "300 hours and above"), gen (q2b_1_5_totalhrs_org_cat)
tab q2b_1_5_totalhrs_org_cat
label variable q2b_1_5_totalhrs_org_cat "q2b_1_5_totalhrs_org (Category)"


tabstat q2b_1_5_totalhrs_resp, statistics(min max)
tab q2b_1_5_totalhrs_org
recode q2b_1_5_totalhrs_resp ///
		(min/49 = 1 "Below 50 hours") ///
		(50/99 = 2 "50 to 99 hours") ///
		(100/149 = 3 "100 to 149 hours" ) ///
		(150/199 = 4 "150 to 199 hours") ///
		(200/249 = 5 "200 to 249 hours") ///
		(250/299 = 6 "250 to 299 hours") ///
		(300/max = 7 "300 hours and above"), gen (q2b_1_5_totalhrs_resp_cat)
tab q2b_1_5_totalhrs_resp_cat
label variable q2b_1_5_totalhrs_resp_cat "q2b_1_5_totalhrs_resp (Category)"


**q5_2_stipendamt // no observation now
tabstat q5_2_stipendamt
tab q5_2_stipendamt


**q5_6_1a_fee /// no need to do category
tabstat q5_6_1a_fee, statistics(min max)
tab q5_6_1a_fee


**q5_6_2a_transport
tabstat q5_6_2a_transport, statistics(min max)
tab q5_6_2a_transport
recode q5_6_2a_transport ///
		(min/999 = 1 "Below 1000 BDT") ///
		(1000/1999 = 2 "1000 to 1999 BDT") ///
		(2000/2999 = 3 "2000 to 2999 BDT") ///
		(3000/3999 = 4 "3000 to 3999 BDT") ///
		(4000/max = 5 "4000 BDT and above"), gen (q5_6_2a_transport_cat)
tab q5_6_2a_transport_cat
label variable q5_6_2a_transport_cat "q5_6_2a_transport (Category)"


**q5_6_3a_equip /// no need to do category
tabstat q5_6_3a_equip, statistics(min max)
tab q5_6_3a_equip


**q5_6_4a_stationery
tabstat q5_6_4a_stationery, statistics(min max)
tab q5_6_4a_stationery
recode q5_6_4a_stationery ///
		(min/499 = 1 "Below 500 BDT") ///
		(500/999 = 2 "500 to 999 BDT") ///
		(1000/1499 = 3 "1000 to 1499 BDT") ///
		(1500/max = 4 "1500 BDT and above"), gen (q5_6_4a_stationery_cat)
tab q5_6_4a_stationery_cat
label variable q5_6_4a_stationery_cat "q5_6_4a_stationery (Category)"
		
	
**q5_6_5b_othertotal1
tabstat q5_6_5b_othertotal1, statistics(min max)
tab q5_6_5b_othertotal1
recode q5_6_5b_othertotal1 ///
		(min/499 = 1 "Below 500 BDT") ///
		(500/999 = 2 "500 to 999 BDT") ///
		(1000/1499 = 3 "1000 to 1499 BDT") ///
		(1500/max = 4 "1500 BDT and above"), gen (q5_6_5b_othertotal1_cat)
tab q5_6_5b_othertotal1_cat
label variable q5_6_5b_othertotal1_cat "q5_6_5b_othertotal1 (Category)"		
		
		
**q5_6_6b_othertotal2 ///  no need to do category
tabstat q5_6_6b_othertotal2, statistics(min max)
tab q5_6_6b_othertotal2


** q8b_5_1 (All three) [Salary/Profit]

tab q8b_5_1a_monthswork12m
recode q8b_5_1a_monthswork12m ///
		(min/0 = 1 "Not worked") ///
		(1/3 = 2 "1 to 3 months") ///
		(4/6 = 3 "4 to 6 months") ///
		(7/9 = 4 "7 to 9 months") ///
		(10/12 = 5 "10 to 12 months"), gen (q8b_5_1a_monthswork12m_cat)
tab q8b_5_1a_monthswork12m_cat
label variable q8b_5_1a_monthswork12m_cat "q8b_5_1a_monthswork12m (Category)"


tab q8b_5_1b_daysmonth12m
recode q8b_5_1b_daysmonth12m /// 
		(min/0 = 1 "Not worked") ///
		(1/9 = 2 "Below 10 days") ///
		(10/19 = 3 "10 to 19 days") ///
		(20/max = 4 "20 days and above"), gen (q8b_5_1b_daysmonth12m_cat)
tab  q8b_5_1b_daysmonth12m_cat
label variable  q8b_5_1b_daysmonth12m_cat " q8b_5_1b_daysmonth12m (Category)"


tab q8b_5_1c_hrsday12m
recode q8b_5_1c_hrsday12m ///
		(min/0 = 1 "Not worked") ///
		(1/7 = 2 "Below 8 hours") ///
		(8 = 3 "8 hours") ///
		(9/max = 4 "More than 8 hours"), gen (q8b_5_1c_hrsday12m_cat)
tab q8b_5_1c_hrsday12m_cat
label variable q8b_5_1c_hrsday12m_cat "q8b_5_1c_hrsday12m (category)"






** q8b_5_2 (All three) [Product for own use]

tab q8b_5_2a_monthsownuse12m
recode q8b_5_2a_monthsownuse12m ///
		(min/0 = 1 "Not worked") ///
		(1/3 = 2 "1 to 3 months") ///
		(4/6 = 3 "4 to 6 months") ///
		(7/9 = 4 "7 to 9 months") ///
		(10/12 = 5 "10 to 12 months"), gen (q8b_5_2a_monthsownuse12m_cat)
tab q8b_5_2a_monthsownuse12m_cat
label variable q8b_5_2a_monthsownuse12m_cat "q8b_5_2a_monthsownuse12m (Category)"


tab q8b_5_2b_daysmonthownuse12m
recode q8b_5_2b_daysmonthownuse12m /// 
		(min/0 = 1 "Not worked") ///
		(1/9 = 2 "Below 10 days") ///
		(10/19 = 3 "10 to 19 days") ///
		(20/max = 4 "20 days and above"), gen (q8b_5_2b_daysmonthownuse12m_cat)
tab  q8b_5_2b_daysmonthownuse12m_cat
label variable  q8b_5_2b_daysmonthownuse12m_cat " q8b_5_2b_daysmonthownuse12m (Category)"


tab q8b_5_2c_hrsdayownuse12m
recode q8b_5_2c_hrsdayownuse12m ///
		(min/0 = 1 "Not worked") ///
		(1/7 = 2 "Below 8 hours") ///
		(8 = 3 "8 hours") ///
		(9/max = 4 "More than 8 hours"), gen (q8b_5_2c_hrsdayownuse12m_cat)
tab q8b_5_2c_hrsdayownuse12m_cat
label variable q8b_5_2c_hrsdayownuse12m_cat "q8b_5_2c_hrsdayownuse12m (category)"





*** q8b_6_1 (All three) [1 month before the training]

tab q8b_6_1a_days_pre
recode q8b_6_1a_days_pre /// 
		(min/0 = 1 "Not worked") ///
		(1/9 = 2 "Below 10 days") ///
		(10/19 = 3 "10 to 19 days") ///
		(20/max = 4 "20 days and above"), gen (q8b_6_1a_days_pre_cat)
tab  q8b_6_1a_days_pre_cat
label variable  q8b_6_1a_days_pre_cat " q8b_6_1a_days_pre (Category)"

tab q8b_6_1b_hrs_pre
recode q8b_6_1b_hrs_pre ///
		(min/0 = 1 "Not worked") ///
		(1/7 = 2 "Below 8 hours") ///
		(8 = 3 "8 hours") ///
		(9/max = 4 "More than 8 hours"), gen (q8b_6_1b_hrs_pre_cat)
tab q8b_6_1b_hrs_pre_cat
label variable q8b_6_1b_hrs_pre_cat "q8b_6_1b_hrs_pre (category)"


tab q8b_6_1c_income_pre
recode q8b_6_1c_income_pre ///
		(min/0 = 1 "No income / was not working") ///
		(1/8000 = 2 "BDT 8,000 and Below") ///
		(8001/12000 = 3 "BDT 8,001–12,000") ///
		(12001/18000 = 4 "BDT 12,001–18,000") ///
		(18001/25000 = 5 "BDT 18,001–25,000") ///
		(25001/max = 6 "Above BDT 25,000"), gen (q8b_6_1c_income_pre_cat)
tab q8b_6_1c_income_pre_cat
label variable q8b_6_1c_income_pre_cat "q8b_6_1c_income_pre (Category)"




*** q8b_6_2 (All three) [1st month after the training]

tab q8b_6_2a_days_m1
recode q8b_6_2a_days_m1 /// 
		(min/0 = 1 "Not worked") ///
		(1/9 = 2 "Below 10 days") ///
		(10/19 = 3 "10 to 19 days") ///
		(20/max = 4 "20 days and above"), gen (q8b_6_2a_days_m1_cat)
tab  q8b_6_2a_days_m1_cat
label variable  q8b_6_2a_days_m1_cat " q8b_6_2a_days_m1 (Category)"

tab q8b_6_2b_hrs_m1
recode q8b_6_2b_hrs_m1 ///
		(min/0 = 1 "Not worked") ///
		(1/7 = 2 "Below 8 hours") ///
		(8 = 3 "8 hours") ///
		(9/max = 4 "More than 8 hours"), gen (q8b_6_2b_hrs_m1_cat)
tab q8b_6_2b_hrs_m1_cat
label variable q8b_6_2b_hrs_m1_cat "q8b_6_2b_hrs_m1 (category)"


tab q8b_6_2c_income_m1
recode q8b_6_2c_income_m1 ///
		(min/0 = 1 "No income / was not working") ///
		(1/8000 = 2 "BDT 8,000 and Below") ///
		(8001/12000 = 3 "BDT 8,001–12,000") ///
		(12001/18000 = 4 "BDT 12,001–18,000") ///
		(18001/25000 = 5 "BDT 18,001–25,000") ///
		(25001/max = 6 "Above BDT 25,000"), gen (q8b_6_2c_income_m1_cat)
tab q8b_6_2c_income_m1_cat
label variable q8b_6_2c_income_m1_cat "q8b_6_2c_income_m1 (Category)"




*** q8b_6_3 (All three) [2nd month after the training]

tab q8b_6_3a_days_m2
recode q8b_6_3a_days_m2 /// 
		(min/0 = 1 "Not worked") ///
		(1/9 = 2 "Below 10 days") ///
		(10/19 = 3 "10 to 19 days") ///
		(20/max = 4 "20 days and above"), gen (q8b_6_3a_days_m2_cat)
tab  q8b_6_3a_days_m2_cat
label variable  q8b_6_3a_days_m2_cat " q8b_6_3a_days_m2 (Category)"

tab q8b_6_3b_hrs_m2
recode q8b_6_3b_hrs_m2 ///
		(min/0 = 1 "Not worked") ///
		(1/7 = 2 "Below 8 hours") ///
		(8 = 3 "8 hours") ///
		(9/max = 4 "More than 8 hours"), gen (q8b_6_3b_hrs_m2_cat)
tab q8b_6_3b_hrs_m2_cat
label variable q8b_6_3b_hrs_m2_cat "q8b_6_3b_hrs_m2 (category)"


tab q8b_6_3c_income_m2
recode q8b_6_3c_income_m2 ///
		(min/0 = 1 "No income / was not working") ///
		(1/8000 = 2 "BDT 8,000 and Below") ///
		(8001/12000 = 3 "BDT 8,001–12,000") ///
		(12001/18000 = 4 "BDT 12,001–18,000") ///
		(18001/25000 = 5 "BDT 18,001–25,000") ///
		(25001/max = 6 "Above BDT 25,000"), gen (q8b_6_3c_income_m2_cat)
tab q8b_6_3c_income_m2_cat
label variable q8b_6_3c_income_m2_cat "q8b_6_3c_income_m2 (Category)"





*** q8b_6_4 (All three) [3rd month after the training]

tab q8b_6_4a_days_m3
recode q8b_6_4a_days_m3 /// 
		(min/0 = 1 "Not worked") ///
		(1/9 = 2 "Below 10 days") ///
		(10/19 = 3 "10 to 19 days") ///
		(20/max = 4 "20 days and above"), gen (q8b_6_4a_days_m3_cat)
tab  q8b_6_4a_days_m3_cat
label variable  q8b_6_4a_days_m3_cat " q8b_6_4a_days_m3 (Category)"

tab q8b_6_4b_hrs_m3
recode q8b_6_4b_hrs_m3 ///
		(min/0 = 1 "Not worked") ///
		(1/7 = 2 "Below 8 hours") ///
		(8 = 3 "8 hours") ///
		(9/max = 4 "More than 8 hours"), gen (q8b_6_4b_hrs_m3_cat)
tab q8b_6_4b_hrs_m3_cat
label variable q8b_6_4b_hrs_m3_cat "q8b_6_4b_hrs_m3 (category)"


tab q8b_6_4c_income_m3
recode q8b_6_4c_income_m3 ///
		(min/0 = 1 "No income / was not working") ///
		(1/8000 = 2 "BDT 8,000 and Below") ///
		(8001/12000 = 3 "BDT 8,001–12,000") ///
		(12001/18000 = 4 "BDT 12,001–18,000") ///
		(18001/25000 = 5 "BDT 18,001–25,000") ///
		(25001/max = 6 "Above BDT 25,000"), gen (q8b_6_4c_income_m3_cat)
tab q8b_6_4c_income_m3_cat
label variable q8b_6_4c_income_m3_cat "q8b_6_4c_income_m3 (Category)"





*** q8b_6_5 (All three) [4th month after the training]

tab q8b_6_5a_days_m4
recode q8b_6_5a_days_m4 /// 
		(min/0 = 1 "Not worked") ///
		(1/9 = 2 "Below 10 days") ///
		(10/19 = 3 "10 to 19 days") ///
		(20/max = 4 "20 days and above"), gen (q8b_6_5a_days_m4_cat)
tab  q8b_6_5a_days_m4_cat
label variable  q8b_6_5a_days_m4_cat " q8b_6_5a_days_m4 (Category)"

tab q8b_6_5b_hrs_m4
recode q8b_6_5b_hrs_m4 ///
		(min/0 = 1 "Not worked") ///
		(1/7 = 2 "Below 8 hours") ///
		(8 = 3 "8 hours") ///
		(9/max = 4 "More than 8 hours"), gen (q8b_6_5b_hrs_m4_cat)
tab q8b_6_5b_hrs_m4_cat
label variable q8b_6_5b_hrs_m4_cat "q8b_6_5b_hrs_m4 (category)"


tab q8b_6_5c_income_m4
recode q8b_6_5c_income_m4 ///
		(min/0 = 1 "No income / was not working") ///
		(1/8000 = 2 "BDT 8,000 and Below") ///
		(8001/12000 = 3 "BDT 8,001–12,000") ///
		(12001/18000 = 4 "BDT 12,001–18,000") ///
		(18001/25000 = 5 "BDT 18,001–25,000") ///
		(25001/max = 6 "Above BDT 25,000"), gen (q8b_6_5c_income_m4_cat)
tab q8b_6_5c_income_m4_cat
label variable q8b_6_5c_income_m4_cat "q8b_6_5c_income_m4 (Category)"





*** q8b_6_6 (All three) [5th month after the training]

tab q8b_6_6a_days_m5
recode q8b_6_6a_days_m5 /// 
		(min/0 = 1 "Not worked") ///
		(1/9 = 2 "Below 10 days") ///
		(10/19 = 3 "10 to 19 days") ///
		(20/max = 4 "20 days and above"), gen (q8b_6_6a_days_m5_cat)
tab  q8b_6_6a_days_m5_cat
label variable  q8b_6_6a_days_m5_cat " q8b_6_6a_days_m5 (Category)"

tab q8b_6_6b_hrs_m5
recode q8b_6_6b_hrs_m5 ///
		(min/0 = 1 "Not worked") ///
		(1/7 = 2 "Below 8 hours") ///
		(8 = 3 "8 hours") ///
		(9/max = 4 "More than 8 hours"), gen (q8b_6_6b_hrs_m5_cat)
tab q8b_6_6b_hrs_m5_cat
label variable q8b_6_6b_hrs_m5_cat "q8b_6_6b_hrs_m5 (category)"


tab q8b_6_6c_income_m5
recode q8b_6_6c_income_m5 ///
		(min/0 = 1 "No income / was not working") ///
		(1/8000 = 2 "BDT 8,000 and Below") ///
		(8001/12000 = 3 "BDT 8,001–12,000") ///
		(12001/18000 = 4 "BDT 12,001–18,000") ///
		(18001/25000 = 5 "BDT 18,001–25,000") ///
		(25001/max = 6 "Above BDT 25,000"), gen (q8b_6_6c_income_m5_cat)
tab q8b_6_6c_income_m5_cat
label variable q8b_6_6c_income_m5_cat "q8b_6_6c_income_m5 (Category)"





*** q8b_6_7 (All three) [6th month after the training]

tab q8b_6_7a_days_m6
recode q8b_6_7a_days_m6 /// 
		(min/0 = 1 "Not worked") ///
		(1/9 = 2 "Below 10 days") ///
		(10/19 = 3 "10 to 19 days") ///
		(20/max = 4 "20 days and above"), gen (q8b_6_7a_days_m6_cat)
tab  q8b_6_7a_days_m6_cat
label variable  q8b_6_7a_days_m6_cat " q8b_6_7a_days_m6 (Category)"

tab q8b_6_7b_hrs_m6
recode q8b_6_7b_hrs_m6 ///
		(min/0 = 1 "Not worked") ///
		(1/7 = 2 "Below 8 hours") ///
		(8 = 3 "8 hours") ///
		(9/max = 4 "More than 8 hours"), gen (q8b_6_7b_hrs_m6_cat)
tab q8b_6_7b_hrs_m6_cat
label variable q8b_6_7b_hrs_m6_cat "q8b_6_7b_hrs_m6 (category)"


tab q8b_6_7c_income_m6
recode q8b_6_7c_income_m6 ///
		(min/0 = 1 "No income / was not working") ///
		(1/8000 = 2 "BDT 8,000 and Below") ///
		(8001/12000 = 3 "BDT 8,001–12,000") ///
		(12001/18000 = 4 "BDT 12,001–18,000") ///
		(18001/25000 = 5 "BDT 18,001–25,000") ///
		(25001/max = 6 "Above BDT 25,000"), gen (q8b_6_7c_income_m6_cat)
tab q8b_6_7c_income_m6_cat
label variable q8b_6_7c_income_m6_cat "q8b_6_7c_income_m6 (Category)"







*==============================================================================
* SECTION 5: MULTI-SELECT LABELING
*==============================================================================
foreach grp in q12_c01_newspaper-q12_c10_other q13_c01_getjob-q13_c07_other ///
               q6_2_c01_work-q6_2_c07_other q9a_6_c01_notscheduled-q9a_6_c04_other ///
               q9c_2_c01_novacancy-q9c_2_c07_other q9d_1_c01_study-q9d_1_c06_other {
    foreach v of varlist `grp' {
        label values `v' YESNO
    }
}
egen q12_nchannels   = rowtotal(q12_c01_newspaper-q12_c10_other)
egen q13_nreasons    = rowtotal(q13_c01_getjob-q13_c07_other)
egen q9c_2_nbarriers = rowtotal(q9c_2_c01_novacancy-q9c_2_c07_other)
label variable q12_nchannels   "Number of channels through which respondent heard about training"
label variable q13_nreasons    "Number of reasons cited for choosing training"
label variable q9c_2_nbarriers "Number of job-search barriers cited"

tab q12_nchannels
tab q13_nreasons
tab q9c_2_nbarriers // no observation now


*==============================================================================
* SECTION 6: TRAINING PROFILE
*==============================================================================





gen attendance_rate = q2b_1_3_totalclass_resp / q2b_1_3_totalclass_org
label variable attendance_rate "Share of offered classes actually attended (0-1)"
tab attendance_rate

gen obs_id = _n
list obs_id q2b_1_3_totalclass_resp q2b_1_3_totalclass_org attendance_rate ///
    if attendance_rate > 1



gen hours_attendance_rate = q2b_1_5_totalhrs_resp / q2b_1_5_totalhrs_org
label variable hours_attendance_rate "Share of offered training hours actually attended (0-1)"
tab hours_attendance_rate






*==============================================================================
* SECTION 7: Demographic table 
*==============================================================================

ssc install asdoc, replace
ssc install mrtab, replace 


local demog_cat q2_gender_new q3_status_new ///
		q6_ethnicity_new q7_age_cat q8_marital_new ///
		division_new q2_1_progtype_new sector_name_new ///
		q2_3_level_new q8a_1_edulevel_new

asdoc tab1 `demog_cat', save(trainee.doc)


asdoc tab1 division_new sector_name_new q2_1_progtype_new, ///
    save(trainee.doc) append 




*==============================================================================
* SECTION 8: Frequency table
*==============================================================================


*==============================================================================
* PART A: DESCRIPTIVE STATISTICS 
*==============================================================================


* --- A1. EBT training profile --------------------------------------------------
local training_freq q2_1_progtype_new ///
		sector_name_new q2_3_level_new ///
		q2_5_1_admitcycle_new q2_5_2_admitmonth_new q2_6_status_new
asdoc tab1 `training_freq', save(trainee.doc) append

* --- A2. Industry attachment (ADTP trainees only) -------------------------------
local attach_freq q2a_1_attach_new ///
			q2a_3_attachdur_cat ///
			q2a_4_logbook_new q2a_5_logfreq_new
asdoc tab1 `attach_freq', save(trainee.doc) append 

* --- A3. Instructional approach --------------------------------------------------
local instruct_freq q2b_1_1_classwk_org_cat q2b_1_1_classwk_resp_cat ///
                    q2b_1_2_weeksheld_org_cat q2b_1_2_weeksheld_resp_cat ///
                    q2b_1_3_totalclass_org_cat q2b_1_3_totalclass_resp_cat ///
                    q2b_1_5_totalhrs_org_cat q2b_1_5_totalhrs_resp_cat ///
                    q2b_2_cblm_new q2b_4_dualinstructor_new q2b_4_specify_new ///
                    q2b_5_wholed_new q2b_6_delivery_new
asdoc tab1 `instruct_freq', save(trainee.doc) append 

* --- A4. Occupational health, safety & PPE ---------------------------------------
local ohs_freq q3_1a_ppe_trainee_new q3_1b_ppe_enum_new q3_2_ppe_enforced_new ///
              q3_3_safetyguard_new q3_4_riskbriefed_new
asdoc tab1 `ohs_freq', save(trainee.doc) append 

* --- A5. Facility & safeguarding -------------------------------------------------
local facility_freq q4_access_new q5_toilet_access_new q4_1_water_new ///
                    q4_2_toilets_new q4_3_complaintinfo_new q4_4_complaintbox_new
asdoc tab1 `facility_freq', save(trainee.doc) append 

* --- A6. Financial support --------------------------------------------------------
** q5_3_stipendmode_new : no observation now, add when there will be observations.

local finance_freq q5_1_stipend_new  q5_6_1b_feefunder_new ///
                   q5_6_2a_transport_cat q5_6_2b_transportfunder_new ///
                   q5_6_3b_equipfunder_new q5_6_4a_stationery_cat ///
                   q5_6_4b_stationeryfunder_new q5_6_5b_othertotal1_cat ///
                   q5_6_5c_otherfunder1_new q5_6_6c_otherfunder2_new
asdoc tab1 `finance_freq', save(trainee.doc) append 



* --- A7. Training satisfaction & feedback ----------------------------------------
local satisfaction_freq q6_1_attendrate_new q6_3_1_scheduling_new q6_3_2_matavail_new ///
                        q6_3_3_matquality_new q6_3_4_overallquality_new ///
                        q6_3_5_trainerquality_new q6_3_6_industryfacility_new ///
                        q7_1_otherenrolled_new q7_2_progtype_new q7_3_aftertraining_new ///
                        q7_4_overallsat_new q7_5_recommend_new
asdoc tab1 `satisfaction_freq', save(trainee.doc) append 

* --- A8. Pre-training baseline status (Section 8A) --------------------------------
local baseline_freq q8a_1_edulevel_new q8a_3_priortraining_new q8a_4_priortraindur_new ///
                    q8a_5_priortrainrelated_new q8a_6_prejobstatus_new q8a_7_worktype_new ///
                    q8a_8_worksector_new q8a_9_workrelated_new q8a_10_preincome_new ///
                    q8a_11_unemploydur_new q8a_12_joinreason_new q8a_13_primaryearner_new
asdoc tab1 `baseline_freq', save(trainee.doc) append 

* --- A9. Concurrent work status (Section 8B, pre-training baseline only) & aspirations (8C) --
local workstatus_freq q8b_1_worked7d_new q8b_2_absentjob7d_new q8b_3_ownuse7d_new ///
                      q8b_4_absentownuse7d_new q8b_5_1a_monthswork12m_cat ///
                      q8b_5_1b_daysmonth12m_cat q8b_5_1c_hrsday12m_cat ///
                      q8b_5_2a_monthsownuse12m_cat q8b_5_2b_daysmonthownuse12m_cat ///
                      q8b_5_2c_hrsdayownuse12m_cat q8b_6_1a_days_pre_cat ///
                      q8b_6_1b_hrs_pre_cat q8b_6_1c_income_pre_cat ///
                      q8c_1_aspiration_new q8c_2_furtherreason_new
asdoc tab1 `workstatus_freq', save(trainee.doc) append




*==============================================================================
* PART B: SUMMARY STATISTICS (mean, sd, min, max) -- CONTINUOUS VARIABLES
*==============================================================================
local continuous_vars q7_age q2a_3_attachdur ///
    q2b_1_1_classwk_org q2b_1_1_classwk_resp ///
    q2b_1_2_weeksheld_org q2b_1_2_weeksheld_resp ///
    q2b_1_3_totalclass_org q2b_1_3_totalclass_resp ///
    q2b_1_4_hrsperclass_org q2b_1_4_hrsperclass_resp ///
    q2b_1_5_totalhrs_org q2b_1_5_totalhrs_resp ///
    q2b_3_ninstructors attendance_rate hours_attendance_rate ///
    q5_2_stipendamt q5_6_1a_fee q5_6_2a_transport q5_6_3a_equip ///
    q5_6_4a_stationery q5_6_5b_othertotal1 q5_6_6b_othertotal2 ///
    q8b_5_1a_monthswork12m q8b_5_1b_daysmonth12m q8b_5_1c_hrsday12m ///
    q8b_5_2a_monthsownuse12m q8b_5_2b_daysmonthownuse12m ///
	q8b_5_2c_hrsdayownuse12m q8b_6_1a_days_pre ///
	q8b_6_1b_hrs_pre q8b_6_1c_income_pre

asdoc sum `continuous_vars', save(trainee.doc) append 



*==============================================================================
* PART C: CROSS-TABULATIONS BY KEY STRATIFIERS 1 (chi2 & ttest)
* Stratifiers: Division, Training Program Type, Sector, Gender, Disability (PWD)
* Applied selectively to thematically relevant outcome variables, not as a
* blanket cross of every stratifier against every variable.
*==============================================================================

* --- C2. Program design / coverage -----------------------------------------------
asdoc tab division_new sector_name_new, row chi2 save(trainee.doc) append
asdoc tab division_new q2_1_progtype_new, row chi2 save(trainee.doc) append
asdoc tab sector_name_new q2_1_progtype_new, row chi2 save(trainee.doc) append
asdoc tab q2_gender_new q2_1_progtype_new, row chi2 save(trainee.doc) append
asdoc tab q2_gender_new sector_name_new, row chi2 save(trainee.doc) append
asdoc tab q3_status_new sector_name_new, row chi2 save(trainee.doc) append


* Age and attendance by gender and by disability status 

asdoc ttest q7_age if inlist(q2_gender_new, 1, 2), ///
    by(q2_gender_new) ///
    save(trainee.doc) append

asdoc ttest q7_age, by(q3_status_new) save(trainee.doc) append 

asdoc ttest attendance_rate if inlist(q2_gender_new, 1, 2), ///
    by(q2_gender_new) ///
    save(trainee.doc) append


asdoc ttest attendance_rate, by(q3_status_new) save(trainee.doc) append 

*==============================================================================
* PART D: CROSS-TABULATIONS BY KEY STRATIFIERS 2 (frequencies and percentages)
* Stratifiers: Division, Training Program Type, Sector, Gender, Disability (PWD)
* Applied selectively to thematically relevant outcome variables, not as a
* blanket cross of every stratifier against every variable.
*==============================================================================
local strat_vars division_new q2_1_progtype_new ///
		sector_name_new q2_gender_new q3_status_new

* --- D1. Demographic composition / targeting equity -----------------------------
local comp_outcomes q2_gender_new ///
			q3_status_new q6_ethnicity_new ///
			q7_age_cat q8a_1_edulevel_new
foreach sv of local strat_vars {
    foreach cv of local comp_outcomes {
        if "`sv'" != "`cv'" {
            asdoc tab `sv' `cv', row col save(trainee.doc) append ///
                title(Table C1: `cv' by `sv')
        }
    }
}

* --- D2. Program design / coverage -----------------------------------------------
asdoc tab division_new sector_name_new, row col save(trainee.doc) append ///
    title(Table C2a: Sector composition by Division)
asdoc tab division_new q2_1_progtype_new, row col save(trainee.doc) append ///
    title(Table C2b: Program type by Division)
asdoc tab sector_name_new q2_1_progtype_new, row col save(trainee.doc) append ///
    title(Table C2c: Program type by Sector)
asdoc tab q2_gender_new q2_1_progtype_new, row col save(trainee.doc) append ///
    title(Table C2d: Program type by Gender)
asdoc tab q2_gender_new sector_name_new, row col save(trainee.doc) append ///
    title(Table C2e: Sector by Gender)
asdoc tab q3_status_new sector_name_new, row col save(trainee.doc) append ///
    title(Table C2f: Sector by Disability status)
asdoc tab q2a_1_attach_new q2_1_progtype_new, row col save(trainee.doc) append ///
    title(Table C2g: Industry attachment uptake by Program type)

* --- D3. Attendance & training-quality perception (continuous outcomes) ----------
* A simple mean satisfaction index across the six 6.3 Likert items, built here
* purely for these summary cross-tabs (not altering existing variables)
capture drop satisfaction_index
egen satisfaction_index = rowmean(q6_3_1_scheduling_new q6_3_2_matavail_new ///
                                  q6_3_3_matquality_new q6_3_4_overallquality_new ///
								  q6_3_5_trainerquality_new q6_3_6_industryfacility_new)
label variable satisfaction_index "Mean of six 6.3 training-satisfaction items (1-5), built for this file"


* Attendance rate by division
asdoc tabstat attendance_rate, ///
    by(division_new) ///
    statistics(mean sd N) ///
    save(trainee.doc) append ///
    title(Table C3: Attendance Rate by Division)

* Hours attendance rate by Division
asdoc tabstat hours_attendance_rate, ///
    by(division_new) ///
    statistics(mean sd N) ///
    save(trainee.doc) append ///
    title(Table C3: Hours Attendance Rate by Division)

* Satisfaction index by Division	
asdoc tabstat satisfaction_index, ///
    by(division_new) ///
    statistics(mean sd N) ///
    save(trainee.doc) append ///
    title(Table C3: Satisfaction Index by Division)	
	
* Attendance rate by Program Type
asdoc tabstat attendance_rate, ///
    by(q2_1_progtype_new) ///
    statistics(mean sd N) ///
    save(trainee.doc) append ///
    title(Table C3: Attendance Rate by Program Type)
	
* Hours attendance rate by Program Type	
asdoc tabstat hours_attendance_rate, ///
    by(q2_1_progtype_new) ///
    statistics(mean sd N) ///
    save(trainee.doc) append ///
    title(Table C3: Hours Attendance Rate by Program Type)

	
* Satisfaction index by Program Type
asdoc tabstat satisfaction_index, ///
    by(q2_1_progtype_new) ///
    statistics(mean sd N) ///
    save(trainee.doc) append ///
    title(Table C3: Satisfaction Index by Program Type)
	

* sector_asdoc (for appearing sector name in doc file)
capture drop sector_asdoc
clonevar sector_asdoc = sector_name_new

label define sector_asdoc_lbl ///
    1 "Agro-Food" ///
    2 "Ceramic" ///
    3 "Construction" ///
    4 "Furniture" ///
    5 "Garment/Textile" ///
    6 "Health" ///
    7 "ICT" ///
    8 "Informal" ///
    9 "Light Engineering" ///
    10 "Tourism/Hospitality", replace

label values sector_asdoc sector_asdoc_lbl	


* Attendance rate by Sector
asdoc tabstat attendance_rate, ///
    by(sector_asdoc) ///
    statistics(mean sd N) ///
    save(trainee.doc) append ///
    title(Table C3: Attendance Rate by Sector)

* Hours attendance rate by Sector
asdoc tabstat hours_attendance_rate, ///
    by(sector_asdoc) ///
    statistics(mean sd N) ///
    save(trainee.doc) append ///
    title(Table C3: Hours Attendance Rate by Sector)

* Satisfaction index by Sector
asdoc tabstat satisfaction_index, ///
    by(sector_asdoc) ///
    statistics(mean sd N) ///
    save(trainee.doc) append ///
    title(Table C3: Satisfaction Index by Sector)	
	


	

* --- D4. OHS/PPE and facility compliance (safeguarding equity) -------------------

local strat_vars division_new q2_1_progtype_new ///
		sector_name_new q2_gender_new q3_status_new

local ohs_facility_outcomes q3_1a_ppe_trainee_new ///
	q3_2_ppe_enforced_new q3_3_safetyguard_new ///
    q4_access_new q5_toilet_access_new q4_2_toilets_new q4_4_complaintbox_new
foreach sv of local strat_vars {
    foreach cv of local ohs_facility_outcomes {
        asdoc tab `sv' `cv', row col save(trainee.doc) append ///
            title(Table C4: `cv' by `sv')
    }
}

* --- D5. Financial support and cost-sharing --------------------------------------
local strat_vars division_new q2_1_progtype_new ///
		sector_name_new q2_gender_new q3_status_new

local finance_outcomes q5_1_stipend_new q5_6_1b_feefunder_new
foreach sv of local strat_vars {
    foreach cv of local finance_outcomes {
        asdoc tab `sv' `cv', row col save(trainee.doc) append ///
            title(Table C5: `cv' by `sv')
    }
}

* --- D6. Pre-training baseline / targeting analysis ------------------------------
* Are the most vulnerable / lowest-income groups being reached across
* divisions, sectors, program types, gender and disability status
local strat_vars division_new q2_1_progtype_new /// 
		sector_name_new q2_gender_new q3_status_new

local baseline_outcomes q8a_6_prejobstatus_new ///
		q8a_10_preincome_new q8a_13_primaryearner_new
foreach sv of local strat_vars {
    foreach cv of local baseline_outcomes {
        asdoc tab `sv' `cv', row col save(trainee.doc) append ///
            title(Table C6: `cv' by `sv')
    }
}


*==============================================================================
*MULTIPLE-RESPONSE (MR) FREQUENCY/% TABLES
*============================================
*SCOPE:
    *question sets only:
      *Q12  How did you come to know about this training?
      *Q13  Why did you choose this training?
      *6.2  If attendance was less than 90%, what were the main reasons?
      *5.4  When was the stipend paid?
      *5.5  How did you use your stipend?
    *(Graduate-only multi-selects -- 9A.6, 9C.2, 9D.1 -- are out of scope.)
  *Stratifiers: division_new, q2_1_progtype_new, sector_name_new, q2_gender_new, q3_status_new (disability/PWD status)
  *==============================================================================*/

ssc install mrtab, replace


local strat_vars division_new q2_1_progtype_new sector_name_new q2_gender_new q3_status_new

*==============================================================================
* REUSABLE SUBROUTINE: mr-table for one question set, broken down by every
* category of every stratifier. Tries genuine mrtab first; falls back to an
* equivalent tab1 frequency/% table if asdoc can't capture mrtab's output.
*==============================================================================
capture program drop mrxtab_bygroup
program define mrxtab_bygroup
    syntax varlist, TITLE(string) OUTFILE(string) STRATVARS(string)

    * --- Overall (whole trainee sample) table -------------------------------
    capture noisily asdoc mrtab `varlist', save(trainee.doc) append title(`title' -- Overall)
    if _rc != 0 {
        di as txt "mrtab-via-asdoc not available for [`title' -- Overall]; using tab1 fallback"
        asdoc tab1 `varlist', save(trainee.doc) append title(`title' -- Overall)
    }

    * --- By each stratifier's observed categories ---------------------------
    foreach sv of local stratvars {
        levelsof `sv', local(lvls)
        foreach lv of local lvls {
            local lbl : label (`sv') `lv'
            capture noisily asdoc mrtab `varlist' if `sv'==`lv', ///
                save(trainee.doc) append title(`title' -- `sv' = `lbl')
            if _rc != 0 {
                di as txt "mrtab-via-asdoc not available for [`title' -- `sv' = `lbl']; using tab1 fallback"
                asdoc tab1 `varlist' if `sv'==`lv', ///
                    save(trainee.doc) append title(`title' -- `sv' = `lbl')
            }
        }
    }
end

*==============================================================================
* Q12: How did you come to know about this training?
*==============================================================================
mrxtab_bygroup q12_c01_newspaper q12_c02_govtsite q12_c03_socialmedia q12_c04_workshop ///
    q12_c05_employer q12_c06_wordofmouth q12_c07_cso q12_c08_poster q12_c09_sms q12_c10_other, ///
    title("Table MR1: Q12 How did you come to know about this training") ///
    outfile(trainee.doc) stratvars(`strat_vars')

*==============================================================================
* Q13: Why did you choose this training?
*==============================================================================
mrxtab_bygroup q13_c01_getjob q13_c02_techskills q13_c03_careerprog q13_c04_newtech ///
    q13_c05_family q13_c06_certificate q13_c07_other, ///
    title("Table MR2: Q13 Why did you choose this training") ///
    outfile(trainee.doc) stratvars(`strat_vars')

*==============================================================================
* 6.2: If attendance was less than 90%, what were the main reasons?
*==============================================================================
mrxtab_bygroup q6_2_c01_work q6_2_c02_family q6_2_c03_transport q6_2_c04_illness ///
    q6_2_c05_cancelled q6_2_c06_na q6_2_c07_other, ///
    title("Table MR3: 6.2 Reasons for attendance below 90pct") ///
    outfile(trainee.doc) stratvars(`strat_vars')

*==============================================================================
* 5.4: When was the stipend paid?
*==============================================================================
mrxtab_bygroup q5_4_c01_start q5_4_c02_end q5_4_c03_2wkafter, ///
    title("Table MR4: 5.4 When was the stipend paid") ///
    outfile(trainee.doc) stratvars(`strat_vars')

*==============================================================================
* 5.5: How did you use your stipend?
*==============================================================================

local strat_vars division_new q2_1_progtype_new sector_name_new q2_gender_new q3_status_new

mrxtab_bygroup q5_5_c01_food q5_5_c02_transport q5_5_c03_mobiledata q5_5_c04_household ///
    q5_5_c05_savings q5_5_c06_other, ///
    title("Table MR5: 5.5 How did you use your stipend") ///
    outfile(trainee.doc) stratvars(`strat_vars')


**--------------------------------------------
*			Saving the data as SPSS file
**--------------------------------------------
ssc install savespss

savespss "I:\15. Data Set\Clean\trainee.sav", replace



For Institution Survey Data

cls
clear all

cd "I:\15. Data Set\Clean"

cd "D:\Munem\All Projects\2026\DTE\15. Data Set\Clean"


* --- 0. Load raw data --------------------------------------------------

import excel using "Institutions_Merged", sheet("data") firstrow clear



* 1. New variable names, in EXACT column order ----------------------

rename	NameofEnumera~r		enum_name
rename	NameoftheResp~t		resp_name
rename	Designationof~t		resp_designation
rename	CellNumberoft~t		resp_phone
rename	E					q1_1_inst_name
rename	Division			division
rename	G					q1_2_stp_registered
rename	H					q1_3_stp_reg_year
rename	I	 				q1_4_stp_name
rename	J					q1_5_ind_partner_name
rename	K					q1_6_year_established
rename	L               	q1_7_sector
rename	Other           	q1_7_other
rename	N               	q1_8_avg_workforce_size
rename	O               	q1_9_staff_involved_n
rename	P               	q1_10_know_source
rename	Other2          	q1_10_other
rename	R               	q1_11_grp
rename	S               	q1_11_month
rename	T               	q1_11_year
rename	U               	q1_12_grp
rename	V               	q1_12_month
rename	W               	q1_12_year
rename	X               	q1_13_grp
rename	Y               	q1_13_tstp
rename	Z               	q1_13_adtp
rename	AA              	q1_13_sutp
rename	AB              	q1_13_ihtp
rename	AC              	q1_14_grp
rename	AD              	q1_14_1_tstp
rename	AE              	q1_14_1a_ongoing
rename	AF              	q1_14_1b_completed
rename	AG              	q1_14_1c_assessed
rename	AH              	q1_14_2_adtp
rename	AI              	q1_14_2a_ongoing
rename	AJ              	q1_14_2b_completed
rename	AK              	q1_14_2c_assessed
rename	AL              	q1_14_3_sutp
rename	AM              	q1_14_3a_ongoing
rename	AN              	q1_14_3b_completed
rename	AO              	q1_14_3c_assessed
rename	AP              	q1_14_4_ihtp
rename	AQ              	q1_14_4a_ongoing
rename	AR              	q1_14_4b_completed
rename	AS              	q1_14_4c_assessed
rename	AT              	q1_15_grp
rename	AU              	q1_15_1_tstp
rename	AV              	q1_15_1a_assessed
rename	AW              	q1_15_1b_competent
rename	AX              	q1_15_1c_eligible
rename	AY              	q1_15_1d_employed
rename	AZ              	q1_15_2_adtp
rename	BA              	q1_15_2a_assessed
rename	BB              	q1_15_2b_competent
rename	BC              	q1_15_2c_eligible
rename	BD              	q1_15_2d_employed
rename	BE              	q1_15_3_sutp
rename	BF              	q1_15_3a_assessed
rename	BG              	q1_15_3b_competent
rename	BH              	q1_15_3c_eligible
rename	BI              	q1_15_3d_employed
rename	BJ              	q1_15_4_ihtp
rename	BK              	q1_15_4a_assessed
rename	BL              	q1_15_4b_competent
rename	BM              	q1_15_4c_eligible
rename	BN              	q1_15_4d_employed
rename	BO              	q1_16_grp
rename	First           	q1_16_1_grp
rename	BQ              	q1_16_1a_trade
rename	BR              	q1_16_1b_level
rename	BS              	q1_16_1c_n_trained
rename	Second          	q1_16_2_grp
rename	BU              	q1_16_2a_trade
rename	BV              	q1_16_2b_level
rename	BW              	q1_16_2c_n_trained
rename	Third           	q1_16_3_grp
rename	BY              	q1_16_3a_trade
rename	BZ              	q1_16_3b_level
rename	CA              	q1_16_3c_n_trained
rename	Fourth          	q1_16_4_grp
rename	CC              	q1_16_4a_trade
rename	CD              	q1_16_4b_level
rename	CE              	q1_16_4c_n_trained
rename	Fifth           	q1_16_5_grp
rename	CG              	q1_16_5a_trade
rename	CH              	q1_16_5b_level
rename	CI              	q1_16_5c_n_trained
rename	Sixth           	q1_16_6_grp
rename	CK              	q1_16_6a_trade
rename	CL              	q1_16_6b_level
rename	CM              	q1_16_6c_n_trained
rename	CN              	q1_17_grp
rename	First2          	q1_17_1_grp
rename	CP              	q1_17_1a_trade
rename	CQ              	q1_17_1b_reason
rename	CR              	q1_17_1c_est_needed
rename	Second3         	q1_17_2_grp
rename	CT              	q1_17_2a_trade
rename	CU              	q1_17_2b_reason
rename	CV              	q1_17_2c_est_needed
rename	Third4          	q1_17_3_grp
rename	CX              	q1_17_3a_trade
rename	CY              	q1_17_3b_reason
rename	CZ              	q1_17_3c_est_needed
rename	Fourth5         	q1_17_4_grp
rename	DB              	q1_17_4a_trade
rename	DC              	q1_17_4b_reason
rename	DD              	q1_17_4c_est_needed
rename	DE              	q1_18_skills_gap
rename	DF              	q1_19_skills_gap_detail
rename	DG              	q2_1_grp 
rename	DH              	q2_1a_resp
rename	DI              	q2_1b_obs
rename	DJ              	q2_2_grp
rename	DK              	q2_2a_resp
rename	DL              	q2_2b_obs
rename	DM              	q2_3_grp
rename	DN              	q2_3a_resp
rename	DO              	q2_3b_obs
rename	DP              	q2_4_grp
rename	DQ              	q2_4a_resp
rename	DR              	q2_4b_obs
rename	DateofVisit     	q2_5_date
rename	OfficialTime    	q2_5_time
rename	DU              	q2_5_1_grp
rename	DV              	q2_5_1a_male
rename	DW              	q2_5_1b_female
rename	DX              	q2_5_1c_total
rename	DY              	q2_5_2_grp
rename	DZ              	q2_5_2a_male
rename	EA              	q2_5_2b_female
rename	EB              	q2_5_2c_total
rename	EC              	q2_5_3_grp
rename	ED              	q2_5_3a_ethnic_minority
rename	EE              	q2_5_3b_pwd
rename	EF              	q2_5_4_grp
rename	EG              	q2_5_4a_male
rename	EH              	q2_5_4b_female
rename	EI              	q2_5_4c_total
rename	EJ              	q2_5_5_grp
rename	EK              	q2_5_5a_male
rename	EL              	q2_5_5b_female
rename	EM              	q2_5_5c_total
rename	EN              	q2_5_6_grp
rename	EO              	q2_5_6a_ethnic_minority
rename	EP              	q2_5_6b_pwd
rename	EQ              	q2_5_7_grp
rename	SSC             	q2_5_7_ssc
rename	HSC             	q2_5_7_hsc
rename	Diploma         	q2_5_7_diploma
rename	Bachelororabove	q2_5_7_bachelor_above
rename	EV              	q3_1_grp
rename	EW              	q3_1a_resp
rename	EX              	q3_1b_obs
rename	EY              	q3_2_grp
rename	EZ              	q3_2a_resp
rename	FA              	q3_2b_obs
rename	FB              	q3_3_grp
rename	FC              	q3_3a_resp
rename	FD              	q3_3b_obs
rename	FE             		q3_4_grp
rename	FF              	q3_4a_resp
rename	Other7          	q3_4a_other
rename	FH              	q3_4b_obs
rename	Other8          	q3_4b_other
rename	FJ              	q3_5_grp
rename	FK              	q3_5a_resp
rename	FL              	q3_5b_obs
rename	FM              	q3_6_grp
rename	FN              	q3_6a_resp
rename	FO              	q3_6b_obs
rename	FP              	q3_7_grp
rename	FQ              	q3_7a_resp
rename	FR              	q3_7b_obs
rename	FS              	q3_8_grp
rename	FT              	q3_8a_resp
rename	FU              	q3_8b_obs
rename	FV              	q3_9_grp
rename	FW              	q3_9a_resp
rename	FX              	q3_9b_obs
rename	FY              	q4_1_grp
rename	FZ              	q4_1a_resp
rename	GA              	q4_1b_obs
rename	GB              	q4_2_grp
rename	GC              	q4_2a_resp
rename	GD              	q4_2b_obs
rename	GE              	q4_3_grp
rename	GF              	q4_3a_resp
rename	GG              	q4_3b_obs
rename	GH              	q4_4_grp
rename	GI              	q4_4a_resp
rename	GJ              	q4_4b_obs
rename	GK              	q4_5_grp
rename	GL              	q4_5a_resp
rename	GM              	q4_5b_obs
rename	GN              	q5_1_grp
rename	GO              	q5_1a_resp
rename	GP              	q5_1b_obs
rename	GQ              	q5_2_grp
rename	GR              	q5_2a_resp
rename	GS              	q5_2b_obs
rename	GT              	q5_3_grp
rename	GU              	q5_3a_resp
rename	GV              	q5_3b_obs
rename	GW              	q6_1_fee_received
rename	GX              	q6_2_grp
rename	GY              	q6_2_1_grp
rename	stTrancheNoof~s		q6_2_1_t1_n
rename	stTrancheAmount		q6_2_1_t1_amt
rename	ndTrancheNoof~s		q6_2_1_t2_n
rename	ndTrancheAmount		q6_2_1_t2_amt
rename	rdTrancheNoof~s		q6_2_1_t3_n
rename	rdTrancheAmount		q6_2_1_t3_amt
rename	thTrancheNoof~s		q6_2_1_t4_n
rename	thTrancheAmount		q6_2_1_t4_amt
rename	HH              	q6_2_2_grp
rename	stTrancheNoof~9		q6_2_2_t1_n
rename	stTrancheAmo~10		q6_2_2_t1_amt
rename	ndTrancheNoo~11		q6_2_2_t2_n
rename	ndTrancheAmo~12		q6_2_2_t2_amt
rename	rdTrancheNoo~13		q6_2_2_t3_n
rename	rdTrancheAmo~14		q6_2_2_t3_amt
rename	thTrancheNoo~15		q6_2_2_t4_n
rename	thTrancheAmo~16		q6_2_2_t4_amt
rename	HQ              	q6_2_3_grp
rename	stTrancheNoo~17		q6_2_3_t1_n
rename	stTrancheAmo~18		q6_2_3_t1_amt
rename	ndTrancheNoo~19		q6_2_3_t2_n
rename	ndTrancheAmo~20		q6_2_3_t2_amt
rename	rdTrancheNoo~21		q6_2_3_t3_n
rename	rdTrancheAmo~22		q6_2_3_t3_amt
rename	thTrancheNoo~23		q6_2_3_t4_n
rename	thTrancheAmo~24		q6_2_3_t4_amt
rename	HZ              	q6_2_4_grp
rename	stTrancheNoo~25		q6_2_4_t1_n
rename	stTrancheAmo~26		q6_2_4_t1_amt
rename	ndTrancheNoo~27		q6_2_4_t2_n
rename	ndTrancheAmo~28		q6_2_4_t2_amt
rename	rdTrancheNoo~29		q6_2_4_t3_n
rename	rdTrancheAmo~30		q6_2_4_t3_amt
rename	thTrancheNoo~31		q6_2_4_t4_n
rename	thTrancheAmo~32		q6_2_4_t4_amt
rename	II              	q6_3_grp
rename	General         	q6_3_general
rename	Female          	q6_3_female
rename	PWD             	q6_3_pwd
rename	IM              	q6_3_em
rename	Total           	q6_3_total
rename	IO              	q6_4_grp
rename	IP              	q6_4_doc_delay
rename	IQ              	 q6_4_emp_track
rename	IR              	q6_4_dropout
rename	IS              	q6_4_admin_delay
rename	IT              	q6_4_payment_issue
rename	IU              	q6_4_not_eligible
rename	IV              	q6_4_not_informed
rename	IW              	q6_4_other_flag
rename	Other33         	q6_4_other_text
rename	IY              	q6_5_grp
rename	IZ              	q6_5a_resp
rename	JA              	q6_5b_obs
rename	JB              	q6_6_grp
rename	JC              	q6_6a_resp
rename	JD              	q6_6b_obs
rename	JE              	q6_7_grp
rename	JF              	q6_7a_resp
rename	JG              	q6_7b_obs
rename	JH              	q7_1_industry_contrib_type
rename	JI              	q7_2_cash_amt
rename	JJ              	q7_3_grp
rename	JK              	q7_3_training_space
rename	JL              	q7_3_factory_utilities
rename	JM              	q7_3_machinery_use
rename	JN              	q7_3_trainer_time
rename	JO              	q7_3_coord_salaries
rename	JP              	q7_3_raw_materials
rename	JQ              	q7_3_admin_support
rename	JR              	q7_3_other_flag
rename	Other34         	q7_3_other_text
rename	JT              	q7_4_inkind_value_bdt
rename	JU              	q8_1_other_training_running
rename	JV              	q8_2_grp
rename	JW              	q8_2_tvet
rename	JX              	q8_2_apprenticeship
rename	JY              	q8_2_bizmgmt
rename	JZ              	q8_2_entrepreneurship
rename	KA              	q8_2_finance
rename	KB              	q8_2_digital
rename	KC              	q8_2_softskills
rename	KD              	q8_2_other_flag
rename	Other35         	q8_2_other_text
rename	KF              	q8_3_1a_type
rename	KG              	q8_3_1b_funding
rename	KH              	q8_3_1c_n
rename	KI              	q8_3_2a_type
rename	KJ              	q8_3_2b_funding
rename	KK              	q8_3_2c_n
rename	KL              	q8_3_3a_type
rename	KM              	q8_3_3b_funding
rename	KN              	q8_3_3c_n
rename	KO              	q8_3_4a_type
rename	KP              	q8_3_4b_funding
rename	KQ              	q8_3_4c_n
rename	KR              	q8_3_5a_type
rename	KS              	q8_3_5b_funding
rename	KT              	q8_3_5c_n
rename	KU              	q8_3_6a_type
rename	KV              	q8_3_6b_funding
rename	KW              	q8_3_6c_n
rename	KX              	q8_3_7a_type
rename	KY              	q8_3_7b_funding
rename	KZ              	q8_3_7c_n
rename	LA              	q8_3_8a_type
rename	LB              	q8_3_8b_funding
rename	LC              	q8_3_8c_n
rename	LD              	q8_4_grp
rename	LE              	q8_4_dev_partner
rename	LF              	q8_4_own_revenue
rename	LG              	q8_4_fee_based
rename	LH              	q8_4_govt_grant
rename	LI              	q8_4_csr
rename	LJ              	q8_4_other_flag
rename	OtherDevelopm~s		q8_4_dev_partner_text
rename	Otherspecify    	q8_4_other_text
rename	LM              	q9_1_grp
rename	LN              	q9_1_trainee_engagement
rename	LO              	q9_1_attendance_retention
rename	LP              	q9_1_lack_trainers
rename	LQ              	q9_1_coordination
rename	LR              	q9_1_cblm_quality
rename	LS              	q9_1_equipment_cost
rename	LT              	q9_1_compliance
rename	LU              	q9_1_employment_tracking
rename	LV              	q9_1_payment_delay
rename	LW              	q9_1_gender_inclusion
rename	LX              	q9_1_ohs
rename	LY              	q9_1_other_flag
rename	Otherspecify36  	q9_1_other_text
rename	MA              	q9_2_other_challenge_desc
rename	MB              	q10_1_continue_ebt
rename	MC              	q10_2_grp
rename	MD              	q10_2_industry_partnership
rename	ME              	q10_2_industry_costshare
rename	MF              	q10_2_govt_incentive
rename	MG              	q10_2_cblm_capacity
rename	MH              	q10_2_flex_schedule
rename	MI              	q10_2_curriculum_update
rename	MJ              	q10_2_shared_facility
rename	MK              	q10_2_placement_support
rename	ML              	q10_2_other_flag
rename	Otherspecify37  	q10_2_other_text
rename	MN              	q10_3_sustain_support_needed
rename	MO              	q11_1_willing_increase_contrib
rename	MP              	q11_2_contrib_share_pref
rename	Otherspecify38  	q11_2_other_text
rename	MR              	q11_3_contrib_form
rename	MS              	q11_4_grp
rename	MT              	q11_4_outcomes_demo
rename	MU              	q11_4_govt_incentive
rename	MV              	q11_4_admin_burden_reduce
rename	MW              	q11_4_flex_modality
rename	MX              	q11_4_certification_access
rename	MY              	q11_4_other_flag
rename	Otherspecify39  	q11_4_other_text
rename	NA              	q11_5_cofinance_comments
rename	Pleasecollect~n		gps_grp
rename	_Pleasecollec~o		gps_lat
rename	ND					gps_lon
rename	NE					gps_alt
rename	NF					gps_precision


* --- 4. Variable labels (original question wording, <=80 chars)
label variable enum_name "Name of Enumeraotor"
label variable resp_name "Name of the Respondent"
label variable resp_designation "Designation of the Respondent"
label variable resp_phone "Cell Number of the Respondent"
label variable q1_1_inst_name "1.1 Name of the Institution/Industry"
label variable division "Division"
label variable q1_2_stp_registered "1.2 Is this registered as an Industrial STP under NSDA?"
label variable q1_3_stp_reg_year "1.3 If yes, which year was it registered as an Industrial STP under NSDA?"
label variable q1_4_stp_name "1.4 Name of the STP"
label variable q1_5_ind_partner_name "1.5 Name of the Industry Partner (ISC/Association/Chamber of Commerce)"
label variable q1_6_year_established "1.6 Year of Establishment (this can be different from the registration date)"
label variable q1_7_sector "1.7 Which primary industry sector does this institution belong to?"
label variable q1_7_other "Other"
label variable q1_8_avg_workforce_size "1.8 Average Size: Average size of the factory/enterprise (based on total workfo"
label variable q1_9_staff_involved_n "1.9 How many staff from the industry/factory are directly involved in this trai"
label variable q1_10_know_source "1.10 How did you know about the EBT of ASSET Project?"
label variable q1_10_other "Other2"
label variable q1_11_grp "1.11 When did you apply for conducting the EBT to ASSET Project?"
label variable q1_11_month "1.11.1 Month"
label variable q1_11_year "1.11.2 Year"
label variable q1_12_grp "1.12 When did you sign the contract with ASSET Project for conducting the EBT?"
label variable q1_12_month "1.12.1 Month"
label variable q1_12_year "1.12.2 Year"
label variable q1_13_grp "1.13 Which EBT program types under ASSET are implemented by the IP?"
label variable q1_13_tstp "1.13 Which EBT program types under ASSET are implemented by the IP?/TSTP"
label variable q1_13_adtp "1.13 Which EBT program types under ASSET are implemented by the IP?/ADTP"
label variable q1_13_sutp "1.13 Which EBT program types under ASSET are implemented by the IP?/SUTP"
label variable q1_13_ihtp "1.13 Which EBT program types under ASSET are implemented by the IP?/IHTP"
label variable q1_14_grp "1.14 How many batches of TSTP, ADTP, SUTP, and IHTP has your institute complete"
label variable q1_14_1_tstp "1.14.1 TSTP"
label variable q1_14_1a_ongoing "1.14.1a Ongoing (No.)"
label variable q1_14_1b_completed "1.14.1b Completed (No.)"
label variable q1_14_1c_assessed "1.14.1c Assessed (No.)"
label variable q1_14_2_adtp "1.14.2 ADTP"
label variable q1_14_2a_ongoing "1.14.2a Ongoing (No.)"
label variable q1_14_2b_completed "1.14.2b Completed (No.)"
label variable q1_14_2c_assessed "1.14.2c Assessed (No.)"
label variable q1_14_3_sutp "1.14.3 SUTP"
label variable q1_14_3a_ongoing "1.14.3a Ongoing (No.)"
label variable q1_14_3b_completed "1.14.3b Completed (No.)"
label variable q1_14_3c_assessed "1.14.3c Assessed (No.)"
label variable q1_14_4_ihtp "1.14.4 IHTP"
label variable q1_14_4a_ongoing "1.14.4a Ongoing (No.)"
label variable q1_14_4b_completed "1.14.4b Completed (No.)"
label variable q1_14_4c_assessed "1.14.4c Assessed (No.)"
label variable q1_15_grp "1.15 Please provide details on number of trainees that are already assessed and"
label variable q1_15_1_tstp "1.15.1 TSTP"
label variable q1_15_1a_assessed "1.15.1a Assessed (no. of Trainees)"
label variable q1_15_1b_competent "1.15.1b Competent"
label variable q1_15_1c_eligible "1.15.1c Number of Eligible Trainees for employment (competent for at least 3 mo"
label variable q1_15_1d_employed "1.15.1d Number of employed of those who are competent for at least 3 months"
label variable q1_15_2_adtp "1.15.2 ADTP"
label variable q1_15_2a_assessed "1.15.2a Assessed (no. of Trainees)"
label variable q1_15_2b_competent "1.15.2b Competent"
label variable q1_15_2c_eligible "1.15.2c Number of Eligible Trainees for employment (competent for at least 3 mo"
label variable q1_15_2d_employed "1.15.2d Number of employed of those who are competent for at least 3 months"
label variable q1_15_3_sutp "1.15.3 SUTP"
label variable q1_15_3a_assessed "1.15.3a Assessed (no. of Trainees)"
label variable q1_15_3b_competent "1.15.3b Competent"
label variable q1_15_3c_eligible "1.15.3c Number of Eligible Trainees for employment (competent for at least 3 mo"
label variable q1_15_3d_employed "1.15.3d Number of employed of those who are competent for at least 3 months"
label variable q1_15_4_ihtp "1.15.4 IHTP"
label variable q1_15_4a_assessed "1.15.4a Assessed (no. of Trainees)"
label variable q1_15_4b_competent "1.15.4b Competent"
label variable q1_15_4c_eligible "1.15.4c Number of Eligible Trainees for employment (competent for at least 3 mo"
label variable q1_15_4d_employed "1.15.4d Number of employed of those who are competent for at least 3 months"
label variable q1_16_grp "1.16 List the specific occupations and NTVQF/Level offered"
label variable q1_16_1_grp "First"
label variable q1_16_1a_trade "1.16.1a Trade / Occupation Name"
label variable q1_16_1b_level "1.16.1b Level"
label variable q1_16_1c_n_trained "1.16.1c Number of Trained"
label variable q1_16_2_grp "Second"
label variable q1_16_2a_trade "1.16.2a Trade / Occupation Name"
label variable q1_16_2b_level "1.16.2b Level"
label variable q1_16_2c_n_trained "1.16.2c Number of Trained"
label variable q1_16_3_grp "Third"
label variable q1_16_3a_trade "1.16.3a Trade / Occupation Name"
label variable q1_16_3b_level "1.16.3b Level"
label variable q1_16_3c_n_trained "1.16.3c Number of Trained"
label variable q1_16_4_grp "Fourth"
label variable q1_16_4a_trade "1.16.4a Trade / Occupation Name"
label variable q1_16_4b_level "1.16.4b Level"
label variable q1_16_4c_n_trained "1.16.4c Number of Trained"
label variable q1_16_5_grp "Fifth"
label variable q1_16_5a_trade "1.16.5a Trade / Occupation Name"
label variable q1_16_5b_level "1.16.5b Level"
label variable q1_16_5c_n_trained "1.16.5c Number of Trained"
label variable q1_16_6_grp "Sixth"
label variable q1_16_6a_trade "1.16.6a Trade / Occupation Name"
label variable q1_16_6b_level "1.16.6b Level"
label variable q1_16_6c_n_trained "1.16.6c Number of Trained"
label variable q1_17_grp "1.17 Emerging Trades / Occupations Needed (Next 2–3 Years): What new trades or "
label variable q1_17_1_grp "First"
label variable q1_17_1a_trade "1.17.1a Trade / Occupation Needed"
label variable q1_17_1b_reason "1.17.1b Reason / Demand Driver"
label variable q1_17_1c_est_needed "1.17.1c Est. No. Needed"
label variable q1_17_2_grp "Second"
label variable q1_17_2a_trade "1.17.2a Trade / Occupation Needed"
label variable q1_17_2b_reason "1.17.2b Reason / Demand Driver"
label variable q1_17_2c_est_needed "1.17.2c Est. No. Needed"
label variable q1_17_3_grp "Third"
label variable q1_17_3a_trade "1.17.3a Trade / Occupation Needed"
label variable q1_17_3b_reason "1.17.3b Reason / Demand Driver"
label variable q1_17_3c_est_needed "1.17.3c Est. No. Needed"
label variable q1_17_4_grp "Fourth"
label variable q1_17_4a_trade "1.17.4a Trade / Occupation Needed"
label variable q1_17_4b_reason "1.17.4b Reason / Demand Driver"
label variable q1_17_4c_est_needed "1.17.4c Est. No. Needed"
label variable q1_18_skills_gap "1.18 Are there any specific technical skills gap your sector faces?"
label variable q1_19_skills_gap_detail "1.19 If yes, please provide specific technical skills gap your sector faces."
label variable q2_1_grp "2.1 Is the training venue spacious enough to accommodate all trainees comfortab"
label variable q2_1a_resp "2.1a Institutional Response"
label variable q2_1b_obs "2.1b Physically Observed by Enumerator"
label variable q2_2_grp "2.2 Are manual attendance registers maintained for all trainees?"
label variable q2_2a_resp "2.2a Institutional Response"
label variable q2_2b_obs "2.2b Physically Observed by Enumerator"
label variable q2_3_grp "2.3 Are biometric systems (finger/facial) currently operational? (for trainees)"
label variable q2_3a_resp "2.3a Institutional Response"
label variable q2_3b_obs "2.3b Physically Observed by Enumerator"
label variable q2_4_grp "2.4 Are registration data and milestones uploaded to the TMIS?"
label variable q2_4a_resp "2.4a Institutional Response"
label variable q2_4b_obs "2.4b Physically Observed by Enumerator"
label variable q2_5_date "Date of Visit"
label variable q2_5_time "Official Time"
label variable q2_5_1_grp "2.5.1 Total Participants Enrolled"
label variable q2_5_1a_male "2.5.1a Male"
label variable q2_5_1b_female "2.5.1b Female"
label variable q2_5_1c_total "2.5.1c Total"
label variable q2_5_2_grp "2.5.2 NEET People Enrolled"
label variable q2_5_2a_male "2.5.2a Male"
label variable q2_5_2b_female "2.5.2b Female"
label variable q2_5_2c_total "2.5.2c Total"
label variable q2_5_3_grp "2.5.3 Total Participants Enrolled"
label variable q2_5_3a_ethnic_minority "2.5.3a Ethnic Minority"
label variable q2_5_3b_pwd "2.5.3b Person with Disability"
label variable q2_5_4_grp "2.5.4 Total Participant Present on the day of visit"
label variable q2_5_4a_male "2.5.4a Male"
label variable q2_5_4b_female "2.5.4b Female"
label variable q2_5_4c_total "2.5.4c Total"
label variable q2_5_5_grp "2.5.5 NEET People Present on the day of visit"
label variable q2_5_5a_male "2.5.5a Male"
label variable q2_5_5b_female "2.5.5b Female"
label variable q2_5_5c_total "2.5.5c Total"
label variable q2_5_6_grp "2.5.6 Present on the day of visit"
label variable q2_5_6a_ethnic_minority "2.5.6a Ethnic Minority"
label variable q2_5_6b_pwd "2.5.6b Person with Disability"
label variable q2_5_7_grp "2.5.7 Participants educational qualification (Nos)"
label variable q2_5_7_ssc "<SSC"
label variable q2_5_7_hsc "<HSC"
label variable q2_5_7_diploma "<Diploma"
label variable q2_5_7_bachelor_above "Bachelor or above"
label variable q3_1_grp "3.1 Are there two unique instructors (one Factory, one Industry/Institute)?"
label variable q3_1a_resp "3.1a Institutional Response"
label variable q3_1b_obs "3.1b Physically Observed by Enumerator"
label variable q3_2_grp "3.2 Are instructors certified at CBT&A Level 4 or above?"
label variable q3_2a_resp "3.2a Institutional Response"
label variable q3_2b_obs "3.2b Physically Observed by Enumerator"
label variable q3_3_grp "3.3 Have trainees received the CBLM hard-copy package?"
label variable q3_3a_resp "3.3a Institutional Response"
label variable q3_3b_obs "3.3b Physically Observed by Enumerator"
label variable q3_4_grp "3.4 CBLM Origin: Who developed these materials (NSDA/BTEB/Other)?"
label variable q3_4a_resp "3.4a Institutional Response"
label variable q3_4a_other "Other7"
label variable q3_4b_obs "3.4b Physically Observed by Enumerator"
label variable q3_4b_other "Other8"
label variable q3_5_grp "3.5 Is the Approach a mix of theoretical and practical hands-on?"
label variable q3_5a_resp "3.5a Institutional Response"
label variable q3_5b_obs "3.5b Physically Observed by Enumerator"
label variable q3_6_grp "3.6 Is the training curriculum aligned with the relevant Competency Standards ("
label variable q3_6a_resp "3.6a Institutional Response"
label variable q3_6b_obs "3.6b Physically Observed by Enumerator"
label variable q3_7_grp "3.7 Are training facilities equipped with the necessary tools, equipment, and m"
label variable q3_7a_resp "3.7a Institutional Response"
label variable q3_7b_obs "3.7b Physically Observed by Enumerator"
label variable q3_8_grp "3.8 Do trainees have adequate access to learning resources during training?"
label variable q3_8a_resp "3.8a Institutional Response"
label variable q3_8b_obs "3.8b Physically Observed by Enumerator"
label variable q3_9_grp "3.9 How many MoUs have been done with Industry for Apprenticeships by the STP ?"
label variable q3_9a_resp "3.9a Institutional Response"
label variable q3_9b_obs "3.9b Physically Observed by Enumerator"
label variable q4_1_grp "4.1 Is Personal Protective Equipment (PPE) provided to all trainees?"
label variable q4_1a_resp "4.1a Institutional Response"
label variable q4_1b_obs "4.1b Physically Observed by Enumerator"
label variable q4_2_grp "4.2 Are safety guards and emergency stops installed on machinery?"
label variable q4_2a_resp "4.2a Institutional Response"
label variable q4_2b_obs "4.2b Physically Observed by Enumerator"
label variable q4_3_grp "4.3 Are trainees briefed on occupational hazards?"
label variable q4_3a_resp "4.3a Institutional Response"
label variable q4_3b_obs "4.3b Physically Observed by Enumerator"
label variable q4_4_grp "4.4 Is clean drinking water provided at the venue?"
label variable q4_4a_resp "4.4a Institutional Response"
label variable q4_4b_obs "4.4b Physically Observed by Enumerator"
label variable q4_5_grp "4.5 Are there gender-separated toilets for trainees?"
label variable q4_5a_resp "4.5a Institutional Response"
label variable q4_5b_obs "4.5b Physically Observed by Enumerator"
label variable q5_1_grp "5.1 Is there a functional Grievance Redress Mechanism (GRM)?"
label variable q5_1a_resp "5.1a Institutional Response"
label variable q5_1b_obs "5.1b Physically Observed by Enumerator"
label variable q5_2_grp "5.2 Is the Complaint Box visible and accessible to trainees?"
label variable q5_2a_resp "5.2a Institutional Response"
label variable q5_2b_obs "5.2b Physically Observed by Enumerator"
label variable q5_3_grp "5.3 Is the training venue/washroom accessible for PWDs (ramps, etc.)?"
label variable q5_3a_resp "5.3a Institutional Response"
label variable q5_3b_obs "5.3b Physically Observed by Enumerator"
label variable q6_1_fee_received "6.1 Did your institution receive a per-trainee fee from the ASSET project?"
label variable q6_2_grp "6.2 Please provide the cycle wise amount"
label variable q6_2_1_grp "6.2.1 First Cycle (1st)"
label variable q6_2_1_t1_n "1st Tranche - No. of Trainees"
label variable q6_2_1_t1_amt "1st Tranche - Amount"
label variable q6_2_1_t2_n "2nd Tranche - No. of Trainees"
label variable q6_2_1_t2_amt "2nd Tranche - Amount"
label variable q6_2_1_t3_n "3rd Tranche - No. of Trainees"
label variable q6_2_1_t3_amt "3rd Tranche - Amount"
label variable q6_2_1_t4_n "4th Tranche - No. of Trainees"
label variable q6_2_1_t4_amt "4th Tranche - Amount"
label variable q6_2_2_grp "6.2.2 Second Cycle (2nd)"
label variable q6_2_2_t1_n "1st Tranche - No. of Trainees9"
label variable q6_2_2_t1_amt "1st Tranche - Amount10"
label variable q6_2_2_t2_n "2nd Tranche - No. of Trainees11"
label variable q6_2_2_t2_amt "2nd Tranche - Amount12"
label variable q6_2_2_t3_n "3rd Tranche - No. of Trainees13"
label variable q6_2_2_t3_amt "3rd Tranche - Amount14"
label variable q6_2_2_t4_n "4th Tranche - No. of Trainees15"
label variable q6_2_2_t4_amt "4th Tranche - Amount16"
label variable q6_2_3_grp "6.2.3 Third Cycle (3rd)"
label variable q6_2_3_t1_n "1st Tranche - No. of Trainees17"
label variable q6_2_3_t1_amt "1st Tranche - Amount18"
label variable q6_2_3_t2_n "2nd Tranche - No. of Trainees19"
label variable q6_2_3_t2_amt "2nd Tranche - Amount20"
label variable q6_2_3_t3_n "3rd Tranche - No. of Trainees21"
label variable q6_2_3_t3_amt "3rd Tranche - Amount22"
label variable q6_2_3_t4_n "4th Tranche - No. of Trainees23"
label variable q6_2_3_t4_amt "4th Tranche - Amount24"
label variable q6_2_4_grp "6.2.4 Fourth Cycle (4th)"
label variable q6_2_4_t1_n "1st Tranche - No. of Trainees25"
label variable q6_2_4_t1_amt "1st Tranche - Amount26"
label variable q6_2_4_t2_n "2nd Tranche - No. of Trainees27"
label variable q6_2_4_t2_amt "2nd Tranche - Amount28"
label variable q6_2_4_t3_n "3rd Tranche - No. of Trainees29"
label variable q6_2_4_t3_amt "3rd Tranche - Amount30"
label variable q6_2_4_t4_n "4th Tranche - No. of Trainees31"
label variable q6_2_4_t4_amt "4th Tranche - Amount32"
label variable q6_3_grp "6.3 Provide Participant Wise total per-trainee fee"
label variable q6_3_general "General"
label variable q6_3_female "Female"
label variable q6_3_pwd "PWD"
label variable q6_3_em "EM"
label variable q6_3_total "Total"
label variable q6_4_grp "6.4 If the full payment/all tranches were not received, what were the reasons?"
label variable q6_4_doc_delay "6.4 If the full payment/all tranches were not received, what were the reasons?/"
label variable q6_4_emp_track "6.4 If the full payment/all tranches were not received, what were the reasons?/"
label variable q6_4_dropout "6.4 If the full payment/all tranches were not received, what were the reasons?/"
label variable q6_4_admin_delay "6.4 If the full payment/all tranches were not received, what were the reasons?/"
label variable q6_4_payment_issue "6.4 If the full payment/all tranches were not received, what were the reasons?/"
label variable q6_4_not_eligible "6.4 If the full payment/all tranches were not received, what were the reasons?/"
label variable q6_4_not_informed "6.4 If the full payment/all tranches were not received, what were the reasons?/"
label variable q6_4_other_flag "6.4 If the full payment/all tranches were not received, what were the reasons?/"
label variable q6_4_other_text "Other33"
label variable q6_5_grp "6.5 Is there a dedicated Operational Account (OA) for ASSET?"
label variable q6_5a_resp "6.5a Institutional Response"
label variable q6_5b_obs "6.5b Physically Observed by Enumerator"
label variable q6_6_grp "6.6 Are stipends paid via Bank/Mobile Transfer (Nagad/Bkash)?"
label variable q6_6a_resp "6.6a Institutional Response"
label variable q6_6b_obs "6.6b Physically Observed by Enumerator"
label variable q6_7_grp "6.7 Does the SPMU include female members and experts?"
label variable q6_7a_resp "6.7a Institutional Response"
label variable q6_7b_obs "6.7b Physically Observed by Enumerator"
label variable q7_1_industry_contrib_type "7.1 How did your institution fulfil the required 15% industry contribution?"
label variable q7_2_cash_amt "7.2 If financial, total amount contributed (BDT)"
label variable q7_3_grp "7.3 If in-kind, specify type of contribution (Select all that apply)"
label variable q7_3_training_space "7.3 If in-kind, specify type of contribution (Select all that apply)/Training s"
label variable q7_3_factory_utilities "7.3 If in-kind, specify type of contribution (Select all that apply)/Factory ut"
label variable q7_3_machinery_use "7.3 If in-kind, specify type of contribution (Select all that apply)/Machinery/"
label variable q7_3_trainer_time "7.3 If in-kind, specify type of contribution (Select all that apply)/Industry T"
label variable q7_3_coord_salaries "7.3 If in-kind, specify type of contribution (Select all that apply)/Coordinati"
label variable q7_3_raw_materials "7.3 If in-kind, specify type of contribution (Select all that apply)/Raw materi"
label variable q7_3_admin_support "7.3 If in-kind, specify type of contribution (Select all that apply)/Administra"
label variable q7_3_other_flag "7.3 If in-kind, specify type of contribution (Select all that apply)/Other"
label variable q7_3_other_text "Other34"
label variable q7_4_inkind_value_bdt "7.4 Estimated monetary value of in-kind contribution (BDT)"
label variable q8_1_other_training_running "8.1 Does your institution currently run any other training programs besides ASS"
label variable q8_2_grp "8.2 If yes or being planned, please provide details of each program: Type of Tr"
label variable q8_2_tvet "8.2 If yes or being planned, please provide details of each program: Type of Tr"
label variable q8_2_apprenticeship "8.2 If yes or being planned, please provide details of each program: Type of Tr"
label variable q8_2_bizmgmt "8.2 If yes or being planned, please provide details of each program: Type of Tr"
label variable q8_2_entrepreneurship "8.2 If yes or being planned, please provide details of each program: Type of Tr"
label variable q8_2_finance "8.2 If yes or being planned, please provide details of each program: Type of Tr"
label variable q8_2_digital "8.2 If yes or being planned, please provide details of each program: Type of Tr"
label variable q8_2_softskills "8.2 If yes or being planned, please provide details of each program: Type of Tr"
label variable q8_2_other_flag "8.2 If yes or being planned, please provide details of each program: Type of Tr"
label variable q8_2_other_text "Other35"
label variable q8_3_1a_type "8.3.1a Type of Training"
label variable q8_3_1b_funding "8.3.1b Source of Funding"
label variable q8_3_1c_n "8.3.1c No. of Trainees"
label variable q8_3_2a_type "8.3.2a Type of Training"
label variable q8_3_2b_funding "8.3.2b Source of Funding"
label variable q8_3_2c_n "8.3.2c No. of Trainees"
label variable q8_3_3a_type "8.3.3a Type of Training"
label variable q8_3_3b_funding "8.3.3b Source of Funding"
label variable q8_3_3c_n "8.3.3c No. of Trainees"
label variable q8_3_4a_type "8.3.4a Type of Training"
label variable q8_3_4b_funding "8.3.4b Source of Funding"
label variable q8_3_4c_n "8.3.4c No. of Trainees"
label variable q8_3_5a_type "8.3.5a Type of Training"
label variable q8_3_5b_funding "8.3.5b Source of Funding"
label variable q8_3_5c_n "8.3.5c No. of Trainees"
label variable q8_3_6a_type "8.3.6a Type of Training"
label variable q8_3_6b_funding "8.3.6b Source of Funding"
label variable q8_3_6c_n "8.3.6c No. of Trainees"
label variable q8_3_7a_type "8.3.7a Type of Training"
label variable q8_3_7b_funding "8.3.7b Source of Funding"
label variable q8_3_7c_n "8.3.7c No. of Trainees"
label variable q8_3_8a_type "8.3.88a Type of Training"
label variable q8_3_8b_funding "8.3.88b Source of Funding"
label variable q8_3_8c_n "8.3.88c No. of Trainees"
label variable q8_4_grp "8.4 Sources of Funding for Other Training Programs"
label variable q8_4_dev_partner "8.4 Sources of Funding for Other Training Programs/Other Development Partner(s)"
label variable q8_4_own_revenue "8.4 Sources of Funding for Other Training Programs/Own Revenue / Internal Budget"
label variable q8_4_fee_based "8.4 Sources of Funding for Other Training Programs/Fee-Based (paid by trainees/"
label variable q8_4_govt_grant "8.4 Sources of Funding for Other Training Programs/Government Grant / Subsidy"
label variable q8_4_csr "8.4 Sources of Funding for Other Training Programs/Corporate Social Responsibil"
label variable q8_4_other_flag "8.4 Sources of Funding for Other Training Programs/Other (specify)"
label variable q8_4_dev_partner_text "Other Development Partner(s)"
label variable q8_4_other_text "Other (specify)"
label variable q9_1_grp "9.1 What are the main challenges faced specifically in delivering Enterprise-Ba"
label variable q9_1_trainee_engagement "9.1 What are the main challenges faced specifically in delivering Enterprise-Ba"
label variable q9_1_attendance_retention "9.1 What are the main challenges faced specifically in delivering Enterprise-Ba"
label variable q9_1_lack_trainers "9.1 What are the main challenges faced specifically in delivering Enterprise-Ba"
label variable q9_1_coordination "9.1 What are the main challenges faced specifically in delivering Enterprise-Ba"
label variable q9_1_cblm_quality "9.1 What are the main challenges faced specifically in delivering Enterprise-Ba"
label variable q9_1_equipment_cost "9.1 What are the main challenges faced specifically in delivering Enterprise-Ba"
label variable q9_1_compliance "9.1 What are the main challenges faced specifically in delivering Enterprise-Ba"
label variable q9_1_employment_tracking "9.1 What are the main challenges faced specifically in delivering Enterprise-Ba"
label variable q9_1_payment_delay "9.1 What are the main challenges faced specifically in delivering Enterprise-Ba"
label variable q9_1_gender_inclusion "9.1 What are the main challenges faced specifically in delivering Enterprise-Ba"
label variable q9_1_ohs "9.1 What are the main challenges faced specifically in delivering Enterprise-Ba"
label variable q9_1_other_flag "9.1 What are the main challenges faced specifically in delivering Enterprise-Ba"
label variable q9_1_other_text "Other (specify)36"
label variable q9_2_other_challenge_desc "9.2 Any other challenge not listed above? Please describe:"
label variable q10_1_continue_ebt "10.1 Would your institution be willing to continue EBT after ASSET project fund"
label variable q10_2_grp "10.2 What factors would be most important to sustain EBT?"
label variable q10_2_industry_partnership "10.2 What factors would be most important to sustain EBT?/Continued industry pa"
label variable q10_2_industry_costshare "10.2 What factors would be most important to sustain EBT?/Increased industry co"
label variable q10_2_govt_incentive "10.2 What factors would be most important to sustain EBT?/Government incentives"
label variable q10_2_cblm_capacity "10.2 What factors would be most important to sustain EBT?/Improved CBLM and ins"
label variable q10_2_flex_schedule "10.2 What factors would be most important to sustain EBT?/Flexible training sch"
label variable q10_2_curriculum_update "10.2 What factors would be most important to sustain EBT?/Market-linked curricu"
label variable q10_2_shared_facility "10.2 What factors would be most important to sustain EBT?/Shared training facil"
label variable q10_2_placement_support "10.2 What factors would be most important to sustain EBT?/Improved trainee plac"
label variable q10_2_other_flag "10.2 What factors would be most important to sustain EBT?/Other"
label variable q10_2_other_text "Other (specify)37"
label variable q10_3_sustain_support_needed "10.3 What specific actions or support would your institution need to independen"
label variable q11_1_willing_increase_contrib "11.1 If EBT were to be continued beyond ASSET, would your institution be willin"
label variable q11_2_contrib_share_pref "11.2 If yes, what share of the total EBT cost would your institution be willing"
label variable q11_2_other_text "Other (specify)38"
label variable q11_3_contrib_form "11.3 Would this increased contribution be:"
label variable q11_4_grp "11.4 What conditions or incentives would encourage a higher contribution from y"
label variable q11_4_outcomes_demo "11.4 What conditions or incentives would encourage a higher contribution from y"
label variable q11_4_govt_incentive "11.4 What conditions or incentives would encourage a higher contribution from y"
label variable q11_4_admin_burden_reduce "11.4 What conditions or incentives would encourage a higher contribution from y"
label variable q11_4_flex_modality "11.4 What conditions or incentives would encourage a higher contribution from y"
label variable q11_4_certification_access "11.4 What conditions or incentives would encourage a higher contribution from y"
label variable q11_4_other_flag "11.4 What conditions or incentives would encourage a higher contribution from y"
label variable q11_4_other_text "Other (specify)39"
label variable q11_5_cofinance_comments "11.5 Any additional comments on your institution's capacity or willingness to c"
label variable gps_grp "Please collect your GPS location"
label variable gps_lat "_Please collect your GPS location_latitude"
label variable gps_lon "_Please collect your GPS location_longitude"
label variable gps_alt "_Please collect your GPS location_altitude"
label variable gps_precision "_Please collect your GPS location_precision"





*===============================================================================
* A. GENERIC YES/NO RECODE (Institutional Response vs Physically Observed pairs
*    from Sections 2-6, + a few stand-alone Yes/No items)
*===============================================================================
label define yn01 1 "Yes" 0 "No", replace

local yesno_vars ///
    q2_1a_resp q2_1b_obs q2_2a_resp q2_2b_obs q2_3a_resp q2_3b_obs q2_4a_resp q2_4b_obs ///
    q3_1a_resp q3_1b_obs q3_2a_resp q3_2b_obs q3_3a_resp q3_3b_obs ///
    q3_5a_resp q3_5b_obs q3_6a_resp q3_6b_obs q3_7a_resp q3_7b_obs q3_8a_resp q3_8b_obs ///
    q4_1a_resp q4_1b_obs q4_2a_resp q4_2b_obs q4_3a_resp q4_3b_obs q4_4a_resp q4_4b_obs ///
    q4_5a_resp q4_5b_obs ///
    q5_1a_resp q5_1b_obs q5_2a_resp q5_2b_obs q5_3a_resp q5_3b_obs ///
    q6_5a_resp q6_5b_obs q6_6a_resp q6_6b_obs q6_7a_resp q6_7b_obs ///
    q1_2_stp_registered q1_18_skills_gap q6_1_fee_received

foreach v of local yesno_vars {
    capture confirm string variable `v'
    if _rc == 0 {
        gen byte `v'_n = .
        replace `v'_n = 1 if trim(lower(`v')) == "yes"
        replace `v'_n = 0 if trim(lower(`v')) == "no"
        label values `v'_n yn01
        label variable `v'_n "`v' (numeric)"
    }
    else di as error "`v' is not a string variable - check before recoding"
}

*===============================================================================
* B. AGREEMENT FLAG for every Institutional Response (a) / Enumerator
*    Observation (b) pair -- useful for a data-quality / triangulation
*    cross-tab: 1 = institution and enumerator agree.
*===============================================================================
local pairs q2_1 q2_2 q2_3 q2_4 q3_1 q3_2 q3_3 q3_5 q3_6 q3_7 q3_8 ///
    q4_1 q4_2 q4_3 q4_4 q4_5 q5_1 q5_2 q5_3 q6_5 q6_6 q6_7

foreach base of local pairs {
    capture confirm numeric variable `base'a_resp_n
    capture confirm numeric variable `base'b_obs_n
    if !_rc {
        gen byte `base'_agree = (`base'a_resp_n == `base'b_obs_n) if !missing(`base'a_resp_n, `base'b_obs_n)
        label define agree01 1 "Agree" 0 "Disagree", replace
        label values `base'_agree agree01
        label variable `base'_agree "`base': institution vs enumerator agree"
    }
}

*===============================================================================
* C. MULTI-CATEGORY STRING VARIABLES -> encode into labelled numeric versions
*===============================================================================
encode division,                    gen(division_n)
encode q1_7_sector,                 gen(q1_7_sector_n)
encode q1_10_know_source,           gen(q1_10_know_source_n)
encode q7_1_industry_contrib_type,  gen(q7_1_industry_contrib_type_n)
encode q11_3_contrib_form,          gen(q11_3_contrib_form_n)
encode q11_2_contrib_share_pref,    gen(q11_2_contrib_share_pref_n)

* 3-category items (Yes/No/Not sure or similar) 

encode q8_1_other_training_running,     gen(q8_1_other_training_running_n)
encode q10_1_continue_ebt,              gen(q10_1_continue_ebt_n)
encode q11_1_willing_increase_contrib,  gen(q11_1_willing_increase_contrib_n)

* CBLM origin (NSDA / BTEB / Other) -- both response and observed versions
encode q3_4a_resp, gen(q3_4a_resp_n)
encode q3_4b_obs,  gen(q3_4b_obs_n)

*===============================================================================
* D. NUMERIC-AS-STRING FIELDS -> destring into a companion numeric variable
*    (kept separate rather than replacing, per your instruction). "force"
*    will set any non-numeric text (e.g. "N/A", blank) to missing -- inspect
*    those cases first with:  list q3_9a_resp if real(q3_9a_resp)==.
*===============================================================================
foreach v of varlist q3_9a_resp q3_9b_obs {
    capture confirm string variable `v'
    if _rc == 0 {
        destring `v', gen(`v'_n) force
        label variable `v'_n "`v' (numeric)"
    }
}

*===============================================================================
* E. MULTI-SELECT CHECKBOX ITEMS
*    These (q1_13_*, q7_3_*, q6_4_*, q9_1_*, q10_2_*, q11_4_*, q8_2_*, q8_4_*)
*    were already exported by KoBo as separate 0/1 byte variables -- ONE
*    binary variable per option. No recoding is needed; they are already
*    analysis-ready. 
*===============================================================================

*===============================================================================
* 0. CHECK that count variables are numeric (if any prints an error message,
*    destring it first, e.g. destring varname, gen(varname_num) force)
*===============================================================================
local numchk q1_8_avg_workforce_size q1_9_staff_involved_n q1_6_year_established ///
    q1_3_stp_reg_year q2_5_1a_male q2_5_1b_female q2_5_1c_total q2_5_2c_total ///
    q2_5_3a_ethnic_minority q2_5_3b_pwd q2_5_4c_total q2_5_4b_female ///
    q7_2_cash_amt q7_4_inkind_value_bdt q6_3_total ///
    q1_15_1a_assessed q1_15_1b_competent q1_15_1c_eligible q1_15_1d_employed ///
    q1_15_2a_assessed q1_15_2b_competent q1_15_2c_eligible q1_15_2d_employed ///
    q1_15_3a_assessed q1_15_3b_competent q1_15_3c_eligible q1_15_3d_employed ///
    q1_15_4a_assessed q1_15_4b_competent q1_15_4c_eligible q1_15_4d_employed
foreach v of local numchk {
    capture confirm numeric variable `v'
    if _rc di as error "`v' is NOT numeric - destring before continuing"
}

*===============================================================================
* 1. DERIVED OUTCOME INDICATORS (used here and in 04_crosstabs.do)
*===============================================================================
* --- 1a. Competency and employment rates by programme (Q1.15) ----------------
local i = 1
foreach p in tstp adtp sutp ihtp {
    gen double comp_rate_`p' = q1_15_`i'b_competent / q1_15_`i'a_assessed ///
        if q1_15_`i'a_assessed > 0 & !missing(q1_15_`i'a_assessed, q1_15_`i'b_competent)
    gen double emp_rate_`p'  = q1_15_`i'd_employed / q1_15_`i'c_eligible ///
        if q1_15_`i'c_eligible > 0 & !missing(q1_15_`i'c_eligible, q1_15_`i'd_employed)
    label variable comp_rate_`p' "Competency rate, `=upper("`p'")' (competent / assessed)"
    label variable emp_rate_`p'  "Employment rate, `=upper("`p'")' (employed / eligible)"
    local ++i
}

* --- 1b. Pooled across programmes (per institution) ---------------------------
egen tot_assessed = rowtotal(q1_15_1a_assessed q1_15_2a_assessed q1_15_3a_assessed q1_15_4a_assessed), missing
egen tot_competent = rowtotal(q1_15_1b_competent q1_15_2b_competent q1_15_3b_competent q1_15_4b_competent), missing
egen tot_eligible = rowtotal(q1_15_1c_eligible q1_15_2c_eligible q1_15_3c_eligible q1_15_4c_eligible), missing
egen tot_employed = rowtotal(q1_15_1d_employed q1_15_2d_employed q1_15_3d_employed q1_15_4d_employed), missing
gen double comp_rate_all = tot_competent / tot_assessed if tot_assessed > 0
gen double emp_rate_all  = tot_employed  / tot_eligible if tot_eligible > 0
label variable tot_assessed  "Total trainees assessed (all programmes)"
label variable tot_competent "Total trainees competent (all programmes)"
label variable tot_eligible  "Total trainees eligible for employment (all programmes)"
label variable tot_employed  "Total trainees employed (all programmes)"
label variable comp_rate_all "Competency rate, all programmes (competent / assessed)"
label variable emp_rate_all  "Employment rate, all programmes (employed / eligible)"

* --- 1c. Enrolment / attendance indicators (Q2.5, day of visit) ---------------
gen double female_share_enrol = q2_5_1b_female / q2_5_1c_total if q2_5_1c_total > 0
gen double neet_share_enrol   = q2_5_2c_total  / q2_5_1c_total if q2_5_1c_total > 0
gen double em_share_enrol     = q2_5_3a_ethnic_minority / q2_5_1c_total if q2_5_1c_total > 0
gen double pwd_share_enrol    = q2_5_3b_pwd / q2_5_1c_total if q2_5_1c_total > 0
gen double attend_rate        = q2_5_4c_total / q2_5_1c_total if q2_5_1c_total > 0
gen double female_share_present = q2_5_4b_female / q2_5_4c_total if q2_5_4c_total > 0
label variable female_share_enrol   "Female share of enrolled trainees"
label variable neet_share_enrol     "NEET share of enrolled trainees"
label variable em_share_enrol       "Ethnic-minority share of enrolled trainees"
label variable pwd_share_enrol      "PWD share of enrolled trainees"
label variable attend_rate          "Attendance rate on visit day (present / enrolled)"
label variable female_share_present "Female share of trainees present on visit day"

* --- 1d. Sanity flags: rates above 100% point to data-entry problems ---------
foreach v in comp_rate_all emp_rate_all attend_rate {
    quietly count if `v' > 1 & !missing(`v')
    di as result "`v' > 100% in " r(N) " institution(s) - check in Excel"
}

*===============================================================================
* 2. CATEGORICAL PROFILE VARIABLES -> frequencies and percentages
*===============================================================================
local first = 1
local cat_vars division_n q1_7_sector_n q1_2_stp_registered_n q1_10_know_source_n ///
    q1_18_skills_gap_n q6_1_fee_received_n q7_1_industry_contrib_type_n ///
    q8_1_other_training_running_n q10_1_continue_ebt_n ///
    q11_1_willing_increase_contrib_n q11_2_contrib_share_pref_n q11_3_contrib_form_n ///
    q3_4a_resp_n q3_4b_obs_n

foreach v of local cat_vars {
    local lab : variable label `v'
    if `first' == 1 {
        asdoc tab `v', missing save(institution.doc) title(Frequency table: `v' - `lab')
        local first = 0
    }
    else asdoc tab `v', missing save(institution.doc) append title(Frequency table: `v' - `lab')
}

*===============================================================================
* 3. CONTINUOUS / COUNT VARIABLES -> N, mean, SD, median, min, max
*===============================================================================
local cont_vars q1_8_avg_workforce_size q1_9_staff_involved_n q1_6_year_established ///
    q1_3_stp_reg_year q7_2_cash_amt q7_4_inkind_value_bdt q6_3_total ///
    q2_5_1a_male q2_5_1b_female q2_5_1c_total q2_5_4c_total ///
    female_share_enrol neet_share_enrol em_share_enrol pwd_share_enrol ///
    attend_rate female_share_present ///
    tot_assessed tot_competent tot_eligible tot_employed comp_rate_all emp_rate_all

asdoc tabstat `cont_vars', stat(N mean sd p50 min max) columns(statistics) ///
    save(institution.doc) append dec(2) title(Summary statistics: continuous and derived indicators)

*===============================================================================
* 4. PROGRAMME-LEVEL OUTCOMES (TSTP / ADTP / SUTP / IHTP)
*===============================================================================
* 4a. Batches ongoing / completed / assessed (Q1.14)
asdoc tabstat q1_14_1a_ongoing q1_14_1b_completed q1_14_1c_assessed ///
    q1_14_2a_ongoing q1_14_2b_completed q1_14_2c_assessed ///
    q1_14_3a_ongoing q1_14_3b_completed q1_14_3c_assessed ///
    q1_14_4a_ongoing q1_14_4b_completed q1_14_4c_assessed, ///
    stat(N sum mean sd p50) columns(statistics) save(institution.doc) append dec(2) ///
    title(Batches ongoing, completed and assessed by programme (Q1.14))

* 4b. Trainees assessed / competent / eligible / employed (Q1.15)
asdoc tabstat q1_15_1a_assessed q1_15_1b_competent q1_15_1c_eligible q1_15_1d_employed ///
    q1_15_2a_assessed q1_15_2b_competent q1_15_2c_eligible q1_15_2d_employed ///
    q1_15_3a_assessed q1_15_3b_competent q1_15_3c_eligible q1_15_3d_employed ///
    q1_15_4a_assessed q1_15_4b_competent q1_15_4c_eligible q1_15_4d_employed, ///
    stat(N sum mean sd p50) columns(statistics) save(institution.doc) append dec(2) ///
    title(Trainees assessed, competent, eligible and employed by programme (Q1.15))

* 4c. Competency and employment rates by programme
asdoc tabstat comp_rate_tstp comp_rate_adtp comp_rate_sutp comp_rate_ihtp ///
    emp_rate_tstp emp_rate_adtp emp_rate_sutp emp_rate_ihtp, ///
    stat(N mean sd p50) columns(statistics) save(institution.doc) append dec(3) ///
    title(Competency and employment rates by programme (institution-level))

*===============================================================================
* 5. MULTI-SELECT (CHECKBOX) ITEMS -> % of institutions selecting each option
*    (each variable is 0/1, so the MEAN is the proportion; x100 = percent)
*===============================================================================
asdoc tabstat q1_13_tstp q1_13_adtp q1_13_sutp q1_13_ihtp, stat(N sum mean) ///
    columns(statistics) save(institution.doc) append dec(3) title(EBT programme types implemented (Q1.13))

asdoc tabstat q6_4_doc_delay q6_4_emp_track q6_4_dropout q6_4_admin_delay ///
    q6_4_payment_issue q6_4_not_eligible q6_4_not_informed q6_4_other_flag, ///
    stat(N sum mean) columns(statistics) save(institution.doc) append dec(3) ///
    title(Reasons full payment was not received (Q6.4))

asdoc tabstat q7_3_training_space q7_3_factory_utilities q7_3_machinery_use ///
    q7_3_trainer_time q7_3_coord_salaries q7_3_raw_materials q7_3_admin_support q7_3_other_flag, ///
    stat(N sum mean) columns(statistics) save(institution.doc) append dec(3) ///
    title(In-kind contribution types (Q7.3))

asdoc tabstat q8_2_tvet q8_2_apprenticeship q8_2_bizmgmt q8_2_entrepreneurship ///
    q8_2_finance q8_2_digital q8_2_softskills q8_2_other_flag, ///
    stat(N sum mean) columns(statistics) save(institution.doc) append dec(3) ///
    title(Other training programmes run (Q8.2))

asdoc tabstat q8_4_dev_partner q8_4_own_revenue q8_4_fee_based q8_4_govt_grant ///
    q8_4_csr q8_4_other_flag, stat(N sum mean) columns(statistics) ///
    save(institution.doc) append dec(3) title(Funding sources for other training (Q8.4))

asdoc tabstat q9_1_trainee_engagement q9_1_attendance_retention q9_1_lack_trainers ///
    q9_1_coordination q9_1_cblm_quality q9_1_equipment_cost q9_1_compliance ///
    q9_1_employment_tracking q9_1_payment_delay q9_1_gender_inclusion q9_1_ohs ///
    q9_1_other_flag, stat(N sum mean) columns(statistics) save(institution.doc) append dec(3) ///
    title(Main challenges in EBT delivery (Q9.1))

asdoc tabstat q10_2_industry_partnership q10_2_industry_costshare q10_2_govt_incentive ///
    q10_2_cblm_capacity q10_2_flex_schedule q10_2_curriculum_update ///
    q10_2_shared_facility q10_2_placement_support q10_2_other_flag, ///
    stat(N sum mean) columns(statistics) save(institution.doc) append dec(3) ///
    title(Factors important to sustain EBT (Q10.2))

asdoc tabstat q11_4_outcomes_demo q11_4_govt_incentive q11_4_admin_burden_reduce ///
    q11_4_flex_modality q11_4_certification_access q11_4_other_flag, ///
    stat(N sum mean) columns(statistics) save(institution.doc) append dec(3) ///
    title(Incentives for higher industry contribution (Q11.4))

*===============================================================================
* 6. COMPLIANCE ITEMS (Sections 2-6): share answering "Yes", by source
*    (institutional response vs enumerator observation), mean of 0/1 variables
*===============================================================================
asdoc tabstat q2_1a_resp_n q2_1b_obs_n q2_2a_resp_n q2_2b_obs_n q2_3a_resp_n q2_3b_obs_n ///
    q2_4a_resp_n q2_4b_obs_n q3_1a_resp_n q3_1b_obs_n q3_2a_resp_n q3_2b_obs_n ///
    q3_3a_resp_n q3_3b_obs_n q3_5a_resp_n q3_5b_obs_n q3_6a_resp_n q3_6b_obs_n ///
    q3_7a_resp_n q3_7b_obs_n q3_8a_resp_n q3_8b_obs_n, stat(N mean) ///
    columns(statistics) save(institution.doc) append dec(3) ///
    title(Share answering Yes: Sections 2 and 3 (response vs observed))

asdoc tabstat q4_1a_resp_n q4_1b_obs_n q4_2a_resp_n q4_2b_obs_n q4_3a_resp_n q4_3b_obs_n ///
    q4_4a_resp_n q4_4b_obs_n q4_5a_resp_n q4_5b_obs_n q5_1a_resp_n q5_1b_obs_n ///
    q5_2a_resp_n q5_2b_obs_n q5_3a_resp_n q5_3b_obs_n q6_5a_resp_n q6_5b_obs_n ///
    q6_6a_resp_n q6_6b_obs_n q6_7a_resp_n q6_7b_obs_n, stat(N mean) ///
    columns(statistics) save(institution.doc) append dec(3) ///
    title(Share answering Yes: Sections 4 to 6 (response vs observed))


	
	
	
	
	
*******************************************************************************
* 04_crosstabs.do   (Stata 17)
* Cross-tabulations planned from the questionnaire logic. Every table is
* APPENDED to the same Word file: institution.doc  (created by 03_descriptives.do)
*
* Two-way tables are produced twice: once with ROW % and once with COLUMN %.
* Cell counts are small (about 104 institutions), so read percentages with care.
* No chi-square/Fisher tests are included yet (add ", chi2" or "exact" later).
*


*-------------------------------------------------------------------------------
* Helper: one program that writes a two-way table with row % and again with col %
*-------------------------------------------------------------------------------
capture program drop xt2
program define xt2
    args rowvar colvar ttl
    asdoc tab `rowvar' `colvar', row save(institution.doc) append title(`ttl' - ROW %)
    asdoc tab `rowvar' `colvar', col save(institution.doc) append title(`ttl' - COLUMN %)
end

*===============================================================================
* BLOCK 1. Institutional profile and programme attitudes (categorical x categorical)
*===============================================================================
* 1. Sector x willingness to continue EBT after ASSET funding ends (Q1.7 x Q10.1)
xt2 q1_7_sector_n q10_1_continue_ebt_n "Sector by willingness to continue EBT"

* 2. Division x willingness to continue EBT
xt2 division_n q10_1_continue_ebt_n "Division by willingness to continue EBT"

* 3. Sector x how the 15% industry contribution was fulfilled (Q1.7 x Q7.1)
xt2 q1_7_sector_n q7_1_industry_contrib_type_n "Sector by type of industry contribution"

* 4. Division x per-trainee fee received from ASSET (Q6.1)
xt2 division_n q6_1_fee_received_n "Division by per-trainee fee received"

* 5. STP registration x instructor certification, response and observed (Q1.2 x Q3.2)
xt2 q1_2_stp_registered_n q3_2a_resp_n "STP registration by instructors certified (institution response)"
xt2 q1_2_stp_registered_n q3_2b_obs_n  "STP registration by instructors certified (enumerator observed)"

* 6. Willing to continue x willing to increase contribution (Q10.1 x Q11.1)
xt2 q10_1_continue_ebt_n q11_1_willing_increase_contrib_n "Continue EBT by willingness to increase contribution"

* 7. Sector x reported technical skills gap (Q1.7 x Q1.18)
xt2 q1_7_sector_n q1_18_skills_gap_n "Sector by reported technical skills gap"

* 8. Industry contribution type x willingness to increase contribution (Q7.1 x Q11.1)
xt2 q7_1_industry_contrib_type_n q11_1_willing_increase_contrib_n "Current contribution type by willingness to increase"

* 9. How institution heard about EBT x willingness to continue (Q1.10 x Q10.1)
xt2 q1_10_know_source_n q10_1_continue_ebt_n "Source of EBT information by willingness to continue"

* 10. CBLM origin: institution response x enumerator observed (Q3.4a x Q3.4b)
asdoc tab q3_4a_resp_n q3_4b_obs_n, row save(institution.doc) append title(CBLM origin: response vs observed - ROW %)
asdoc tab q3_4a_resp_n q3_4b_obs_n, col save(institution.doc) append title(CBLM origin: response vs observed - COLUMN %)

*===============================================================================
* BLOCK 2. Categorical group x continuous / derived indicators (means)
*===============================================================================
* Workforce size, fee level and in-kind value
foreach g in q1_7_sector_n division_n {
    local glab : variable label `g'
    asdoc tabstat q1_8_avg_workforce_size q1_9_staff_involved_n q6_3_total ///
        q7_2_cash_amt q7_4_inkind_value_bdt, by(`g') stat(N mean sd p50) ///
        save(institution.doc) append dec(2) title(Size, fees and contributions by `g')
}

* Outcome rates by sector, division and STP registration
foreach g in q1_7_sector_n division_n q1_2_stp_registered_n {
    asdoc tabstat comp_rate_all emp_rate_all attend_rate female_share_enrol ///
        neet_share_enrol em_share_enrol pwd_share_enrol, by(`g') ///
        stat(N mean sd p50) save(institution.doc) append dec(3) ///
        title(Outcome and inclusion indicators by `g')
}

* Programme-level rates by sector and division
foreach g in q1_7_sector_n division_n {
    asdoc tabstat comp_rate_tstp comp_rate_adtp comp_rate_sutp comp_rate_ihtp ///
        emp_rate_tstp emp_rate_adtp emp_rate_sutp emp_rate_ihtp, by(`g') ///
        stat(N mean) save(institution.doc) append dec(3) ///
        title(Competency and employment rates by programme and `g')
}

* Trainees assessed / employed totals by sector
asdoc tabstat tot_assessed tot_competent tot_eligible tot_employed, ///
    by(q1_7_sector_n) stat(N sum mean) save(`doc') append dec(1) ///
    title(Total trainees assessed, competent, eligible and employed by sector)

*===============================================================================
* BLOCK 3. Data-quality triangulation: institution response vs enumerator observation
*===============================================================================
* 3a. Response x observed cross-tab for every checklist pair (counts and row %)
local pairs q2_1 q2_2 q2_3 q2_4 q3_1 q3_2 q3_3 q3_5 q3_6 q3_7 q3_8 ///
    q4_1 q4_2 q4_3 q4_4 q4_5 q5_1 q5_2 q5_3 q6_5 q6_6 q6_7
foreach b of local pairs {
    capture confirm numeric variable `b'a_resp_n
    if !_rc {
        asdoc tab `b'a_resp_n `b'b_obs_n, row save(institution.doc) append ///
            title(Response vs observed for `b' - ROW %)
    }
}

* 3b. Agreement rate per item (mean of the 0/1 *_agree flags = share who agree)
asdoc tabstat q2_1_agree q2_2_agree q2_3_agree q2_4_agree q3_1_agree q3_2_agree ///
    q3_3_agree q3_5_agree q3_6_agree q3_7_agree q3_8_agree q4_1_agree q4_2_agree ///
    q4_3_agree q4_4_agree q4_5_agree q5_1_agree q5_2_agree q5_3_agree q6_5_agree ///
    q6_6_agree q6_7_agree, stat(N mean) columns(statistics) save(institution.doc) append dec(3) ///
    title(Agreement rate between institution response and enumerator observation)

* 3c. Overall agreement score per institution, then by sector and division
*egen n_items_checked = rownonmiss(q2_1_agree q2_2_agree q2_3_agree q2_4_agree q3_1_agree ///
    q3_2_agree q3_3_agree q3_5_agree q3_6_agree q3_7_agree q3_8_agree q4_1_agree q4_2_agree ///
    q4_3_agree q4_4_agree q4_5_agree q5_1_agree q5_2_agree q5_3_agree q6_5_agree q6_6_agree q6_7_agree)
egen n_items_agree = rowtotal(q2_1_agree q2_2_agree q2_3_agree q2_4_agree q3_1_agree ///
    q3_2_agree q3_3_agree q3_5_agree q3_6_agree q3_7_agree q3_8_agree q4_1_agree q4_2_agree ///
    q4_3_agree q4_4_agree q4_5_agree q5_1_agree q5_2_agree q5_3_agree q6_5_agree q6_6_agree q6_7_agree)
*gen double pct_agree = n_items_agree / n_items_checked if n_items_checked > 0
label variable pct_agree "Share of checklist items where institution and enumerator agree"

*asdoc tabstat pct_agree, stat(N mean sd p50 min max) save(institution.doc) append dec(3) ///
    title(Overall institution-enumerator agreement score)
foreach g in q1_7_sector_n division_n {
    asdoc tabstat pct_agree, by(`g') stat(N mean sd p50) save(institution.doc) append dec(3) ///
        title(Agreement score by `g')
}	
	
	
	
*===============================================================================
* BLOCK 4. Multi-select items by group
* Mean of 0/1 variables = share selecting the option
*===============================================================================

*-------------------------------------------------------------------------------
* Step 1. Create a clean sector variable for asdoc
*-------------------------------------------------------------------------------

capture drop sector_asdoc

clonevar sector_asdoc = q1_7_sector_n

capture label drop sector_asdoc_lbl
label define sector_asdoc_lbl ///
    1 "Agro-Food" ///
    2 "Ceramics" ///
    3 "Construction" ///
    4 "Furniture" ///
    5 "Garment/Textile" ///
    6 "Health" ///
    7 "ICT" ///
    8 "Light Engineering" ///
    9 "Others" ///
    10 "Tourism/Hospitality"

label values sector_asdoc sector_asdoc_lbl


*-------------------------------------------------------------------------------
* Step 2. Define grouping variables
*-------------------------------------------------------------------------------

local strat_vars sector_asdoc division_n


*-------------------------------------------------------------------------------
* Step 3. Challenges in EBT delivery
*-------------------------------------------------------------------------------

asdoc tabstat ///
    q9_1_trainee_engagement ///
    q9_1_attendance_retention ///
    q9_1_lack_trainers ///
    q9_1_coordination ///
    q9_1_cblm_quality ///
    q9_1_equipment_cost ///
    q9_1_compliance ///
    q9_1_employment_tracking ///
    q9_1_payment_delay ///
    q9_1_gender_inclusion ///
    q9_1_ohs, ///
    by(sector_asdoc) ///
    stat(mean) ///
    save(institution.doc) append dec(3) ///
    title(Challenges in EBT delivery by Sector)


asdoc tabstat ///
    q9_1_trainee_engagement ///
    q9_1_attendance_retention ///
    q9_1_lack_trainers ///
    q9_1_coordination ///
    q9_1_cblm_quality ///
    q9_1_equipment_cost ///
    q9_1_compliance ///
    q9_1_employment_tracking ///
    q9_1_payment_delay ///
    q9_1_gender_inclusion ///
    q9_1_ohs, ///
    by(division_n) ///
    stat(mean) ///
    save(institution.doc) append dec(3) ///
    title(Challenges in EBT delivery by Division)


*-------------------------------------------------------------------------------
* Step 4. Sustainability factors
*-------------------------------------------------------------------------------

asdoc tabstat ///
    q10_2_industry_partnership ///
    q10_2_industry_costshare ///
    q10_2_govt_incentive ///
    q10_2_cblm_capacity ///
    q10_2_flex_schedule ///
    q10_2_curriculum_update ///
    q10_2_shared_facility ///
    q10_2_placement_support, ///
    by(sector_asdoc) ///
    stat(mean) ///
    save(institution.doc) append dec(3) ///
    title(Sustainability factors by Sector)


asdoc tabstat ///
    q10_2_industry_partnership ///
    q10_2_industry_costshare ///
    q10_2_govt_incentive ///
    q10_2_cblm_capacity ///
    q10_2_flex_schedule ///
    q10_2_curriculum_update ///
    q10_2_shared_facility ///
    q10_2_placement_support, ///
    by(division_n) ///
    stat(mean) ///
    save(institution.doc) append dec(3) ///
    title(Sustainability factors by Division)


*-------------------------------------------------------------------------------
* Step 5. Incentives for higher contribution
*-------------------------------------------------------------------------------

asdoc tabstat ///
    q11_4_outcomes_demo ///
    q11_4_govt_incentive ///
    q11_4_admin_burden_reduce ///
    q11_4_flex_modality ///
    q11_4_certification_access, ///
    by(sector_asdoc) ///
    stat(mean) ///
    save(institution.doc) append dec(3) ///
    title(Incentives for higher contribution by Sector)


asdoc tabstat ///
    q11_4_outcomes_demo ///
    q11_4_govt_incentive ///
    q11_4_admin_burden_reduce ///
    q11_4_flex_modality ///
    q11_4_certification_access, ///
    by(division_n) ///
    stat(mean) ///
    save(institution.doc) append dec(3) ///
    title(Incentives for higher contribution by Division)	
	
	





*===============================================================================
* A. OVERALL MULTIPLE-RESPONSE TABLES
*===============================================================================


ssc install mrtab, replace
	
* Q9.1: Main challenges in EBT delivery
asdoc mrtab q9_1_trainee_engagement q9_1_attendance_retention ///
    q9_1_lack_trainers q9_1_coordination q9_1_cblm_quality ///
    q9_1_equipment_cost q9_1_compliance q9_1_employment_tracking ///
    q9_1_payment_delay q9_1_gender_inclusion q9_1_ohs q9_1_other_flag, ///
    save(institution.doc) append ///
    title(Main challenges in EBT delivery)	
	

	
* Q1.13: Programme types offered
asdoc mrtab q1_13_tstp q1_13_adtp q1_13_sutp q1_13_ihtp, ///
    save(institution.doc) append ///
    title(Programme types offered by the institution)


* Q6.4: Reasons for the reported issue
asdoc mrtab q6_4_doc_delay q6_4_emp_track q6_4_dropout ///
    q6_4_admin_delay q6_4_payment_issue q6_4_not_eligible ///
    q6_4_not_informed q6_4_other_flag, ///
    save(institution.doc) append ///
    title(Reasons for the reported issue)


* Q7.3: Types of in-kind contributions
asdoc mrtab q7_3_training_space q7_3_factory_utilities ///
    q7_3_machinery_use q7_3_trainer_time q7_3_coord_salaries ///
    q7_3_raw_materials q7_3_admin_support q7_3_other_flag, ///
    save(institution.doc) append ///
    title(Types of in-kind contributions provided)


* Q8.2: Other types of training provided
asdoc mrtab q8_2_tvet q8_2_apprenticeship q8_2_bizmgmt ///
    q8_2_entrepreneurship q8_2_finance q8_2_digital ///
    q8_2_softskills q8_2_other_flag, ///
    save(institution.doc) append ///
    title(Other types of training provided)


* Q8.4: Sources of funding
asdoc mrtab q8_4_dev_partner q8_4_own_revenue q8_4_fee_based ///
    q8_4_govt_grant q8_4_csr q8_4_other_flag, ///
    save(institution.doc) append ///
    title(Sources of funding for training activities)


* Q9.1: Main challenges in EBT delivery
asdoc mrtab q9_1_trainee_engagement q9_1_attendance_retention ///
    q9_1_lack_trainers q9_1_coordination q9_1_cblm_quality ///
    q9_1_equipment_cost q9_1_compliance q9_1_employment_tracking ///
    q9_1_payment_delay q9_1_gender_inclusion q9_1_ohs q9_1_other_flag, ///
    save(institution.doc) append ///
    title(Main challenges in EBT delivery)


* Q10.2: Measures to sustain EBT
asdoc mrtab q10_2_industry_partnership q10_2_industry_costshare ///
    q10_2_govt_incentive q10_2_cblm_capacity q10_2_flex_schedule ///
    q10_2_curriculum_update q10_2_shared_facility ///
    q10_2_placement_support q10_2_other_flag, ///
    save(institution.doc) append ///
    title(Measures to sustain and strengthen EBT)


* Q11.4: Incentives/support needed
asdoc mrtab q11_4_outcomes_demo q11_4_govt_incentive ///
    q11_4_admin_burden_reduce q11_4_flex_modality ///
    q11_4_certification_access q11_4_other_flag, ///
    save(institution.doc) append ///
    title(Incentives or support needed to encourage EBT)	
	

*===============================================================================
* END
*===============================================================================

di as result "Done. Multiple-response tables appended to institution.doc"	
	

**--------------------------------------------
*			Saving the data as SPSS file
**--------------------------------------------
ssc install savespss

savespss "I:\15. Data Set\Clean\institution.sav", replace
	



Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • Independent Verification of Enterprise Based Training (EBT)
  • Independent Verification of Enterprise Based Training (EBT)
  • Does sustainable industrialization reduce climate vulnerability?
  • Gender analysis of Waste Value Chain in Chattogram, Cox’s Bazar & Tangail
  • Does sustainable industrialization reduce climate vulnerability?