# Global Findex 2025 Microdata Cleaning

# For the code used to output this data see our reproducibility package: https://reproducibility.worldbank.org/index.php/catalog/299
# All variables used to create the constructed variables are created there

micro <- TS %>%
  filter(i24 == 1) %>% # Filter for observations from 2024 round of the Global Findex Survey
  # Keeping relevant variables:
  transmute(year,
            economy = countrynewwb,
            economycode = country_iso3,
            regionwb = regionwb24_hi,
            pop_adult = pop_adult_l1,
            wpid_random,
            wgt,
            
            # DEMOGRAPHICS
            female = case_when(women == 1 ~ 1,
                               men == 1 ~ 2,
                               TRUE ~ NA),
            age = agenumber,
            educ = case_when(wp3117 == 1 ~ 1,
                             wp3117 == 2 ~ 2,
                             wp3117 == 3 ~ 3,
                             TRUE ~ NA),
            inc_q = income_5,
            emp_in = case_when(lf_in == 1 ~ 1,
                               lf_out == 1 ~ 2,
                               TRUE ~ NA),
            urbanicity = case_when(rural == 1 ~ 1,
                                   urban == 1 ~ 2,
                                   TRUE ~ NA),
            # CONSTRUCTED GLOBAL FINDEX 2025 VARIABLES
            account_fin = acc24fin,
            account_mob = acc24mob,
            account = acc24any,
            dig_account = fin_dig_acc,
            borrowed = ts_anyborrowing,
            saved = ts_anysavings,
            receive_wages = case_when(ts_wg_dig == 1 ~ 1,  # receive wages into an account, card, or mobile phone
                                      ts_wg_cashonly == 1 ~ 2, # receive wages in cash only
                                      ts_wg_any == 1 & ts_wg_dig == 0 & ts_wg_cashonly == 0 ~ 3, # receive wages in other ways
                                      wp19507_r == 2 ~ 4, # did not receive any wages
                                      wp19507_r %in% c(3,4) ~ 5, # DK/ref
                                      TRUE ~ NA),
            receive_transfers = case_when(ts_gt_dig == 1 ~ 1, # received government transfers into an account, card, or mobile phone
                                          ts_gt_cashonly == 1 ~ 2, # received government transfers in cash only
                                          ts_gt_any == 1 & ts_gt_dig == 0 & ts_gt_cashonly == 0 ~ 3, # received government transfers in other ways
                                          wp21386 == 2 ~ 4, # did not receive government transfers
                                          wp21386 %in% c(3,4) ~ 5, # DK/ref
                                          TRUE ~ NA),
            receive_pensions = case_when(ts_pension_dig == 1 ~ 1, # received a public sector pension into an account, card, or mobile phone
                                         ts_pension_cashonly == 1 ~ 2, # received a public sector pension in cash only
                                         ts_pension_any == 1 & ts_pension_dig == 0 & ts_pension_cashonly == 0 ~ 3, # received a public sector pension in some other way
                                         wp19515 == 2 ~ 4, # did not receive a public sector pension
                                         wp19515 %in% c(3,4) ~ 5, # DK/ref
                                         TRUE ~ NA),
            receive_agriculture = case_when(ts_agpay_dig == 1 ~ 1, # received an agricultural payment using an account, mobile phone, or card
                                            ts_agpay_cashonly == 1 ~ 2, # received an agricultural payment in cash only
                                            ts_agpay_any == 1 & ts_agpay_dig == 0 & ts_agpay_cashonly == 0 ~ 3, # received an agricultural payment in some other way
                                            wp19522 == 2 ~ 4, # did not receive an agricultural payment
                                            wp19522 %in% c(3,4) ~ 5, # DK/ref
                                            TRUE ~ NA),
            merchantpay_dig = ts_merpaydig_acc,
            pay_utilities = case_when(ts_util_dig == 1 ~ 1, # made a utility payment using an account or mobile phone
                                      ts_util_cashonly == 1 ~ 2, # made a utility payment using cash only
                                      ts_util_any == 1 & ts_util_dig == 0 & ts_util_cashonly == 0 ~ 3, # made a utility payment in some other way
                                      wp14940 == 2 ~ 4, # did not make a utility payment
                                      wp14940 %in% c(3,4) ~ 5, # DK/ref
                                      TRUE ~ NA),
            domestic_remittances  = case_when(fin_SRrem_dig == 1 ~ 1, # sent or received a domestic remittance using an account or phone
                                              fin_SRrem == 1 & fin_SRrem_dig == 0 ~ 2, # sent or received a domestic remittance not using an account or phone
                                              wp19494_r == 2 & wp24018 == 2 ~ 3, # did not send or receive a domestic remittance
                                              findex_q != 5 & !wp19494_r %in% c(1,2) & !wp24018 %in% c(1,2) ~ 4, # DK/ref, questionnaire identifier added so certain economies not asked will not be coded as 0 when it should be missing
                                              TRUE ~ NA),
            anydigpayment = ts_digpay_imputed,
            
            # FINDEX VARIABLES
            fin2  = wp14888_r,
            fin3  = wp23973,
            fin4  = wp23974,
            fin5  = wp23975,
            fin6  = wp23976,
            fin7  = wp19477_r,
            fin8  = wp21360_r,
            fin9a = wp23977,
            fin9b = wp23978,
            fin10 = wp14891_r,
            
            # ONLY ASKED OF PEOPLE WHO DON'T HAVE FI ACCOUNTS - CASE STUDY ADDITIONS ARE CODED AS NA
            fin11_0 = case_when(acc24fin == 1 ~ NA,
                                TRUE ~ wp15153_r),
            fin11_1 = case_when(acc24fin == 1 ~ NA,
                                TRUE ~ wp23979),
            fin11_2 = case_when(acc24fin == 1 ~ NA,
                                TRUE ~ wp21361_r),
            fin11a = case_when(acc24fin == 1 ~ NA,
                               TRUE ~ wp14894_r),
            fin11b = case_when(acc24fin == 1 ~ NA,
                               TRUE ~ wp14895_r),
            fin11c = case_when(acc24fin == 1 ~ NA,
                               TRUE ~ wp21362_r),
            fin11d = case_when(acc24fin == 1 ~ NA,
                               TRUE ~ wp14898_r),
            fin11e = case_when(acc24fin == 1 ~ NA,
                               TRUE ~ wp14900_r),
            fin11f = case_when(acc24fin == 1 ~ NA,
                               TRUE ~ wp14897_r),
            
            # ONLY ASKED OF PEOPLE WITH MOBILE MONEY ACCOUNTS
            fin13_1 = case_when(acc24mob == 1 ~ wp23980,
                                TRUE ~ NA),
            fin13a = case_when(acc24mob == 1 ~ wp23981,
                               TRUE ~ NA),
            fin13b = case_when(acc24mob == 1 ~ wp23982,
                               TRUE ~ NA),
            fin13c = case_when(acc24mob == 1 ~ wp23983,
                               TRUE ~ NA),
            fin13d = case_when(acc24mob == 1 ~ wp23984,
                               TRUE ~ NA),
            fin13e = case_when(acc24mob == 1 ~ wp23985,
                               TRUE ~ NA),
            fin13f = case_when(acc24mob == 1 ~ wp23986,
                               TRUE ~ NA),
            fin13f_1 = case_when(acc24mob == 1 ~ wp23987,
                                 TRUE ~ NA),
            # ONLY ASKED OF PEOPLE WITHOUT MOBILE MONEY ACCOUNTS
            fin14a = case_when(acc24mob == 1 ~ NA,
                               TRUE ~ wp21418_r),
            fin14b = case_when(acc24mob == 1 ~ NA,
                               TRUE ~ wp21419_r),
            fin14c = case_when(acc24mob == 1 ~ NA,
                               TRUE ~ wp21420_r),
            fin14d = case_when(acc24mob == 1 ~ NA,
                               TRUE ~ wp21421_r),
            fin14e = case_when(acc24mob == 1 ~ NA,
                               TRUE ~ wp23988),
            fin15 = case_when(acc24mob == 1 ~ NA,
                              TRUE ~ wp23989),
            fin16 = case_when(acc24mob == 1 ~ NA,
                              TRUE ~ wp23990),
            
            fin17a = wp15165_r,
            # Only asked in economies where mobile money products are offered (m24 indicates whether an economy has mobile money)
            fin17b = case_when(m24 == 1 ~ wp21375_r,
                               TRUE ~ NA),
            fin17c = wp19486_r,
            fin17d = wp23991,
            fin17e = wp23992,
            fin17f = wp21374_r,
            fin18 = wp14914_r,
            fin19 = wp23993,
            fin20 = wp23994,
            fin21 = wp23995,
            fin22a = wp19489_r,
            # Only asked in economies where mobile money products are offered
            fin22a_1 = case_when(m24 == 1 ~ wp23996,
                                 TRUE ~ NA),
            fin22b = wp19490_r,
            fin22c = wp19491_r,
            fin22d = wp19487_r,
            fin22e = wp23997,
            fin22f = wp23998,
            fin22g = wp19476_r,
            fin22h = wp21357_r,
            fin23 = wp14924_r,
            fin24 = wp21376_r,
            fin24a = wp21377_r,
            fin24b = wp23999,
            fin24c = wp24000,
            fin24d1 = wp24001,
            fin24d2 = wp24002,
            fin24d3 = wp24003,
            fin25e1 = wp24004,
            fin25e2 = wp24005,
            fin25e3 = wp24006,
            fin25e4 = wp24007,
            fin26a = wp21369_r,
            fin26b = wp21370_r,
            fin27 = wp21371_r,
            fh1 = wp19494_r,
            fin28 = wp21379_r,
            fh2 = wp24018,   
            fin29 = wp21381_r,
            fh2a = wp24008, 
            fin30 = wp14940,
            fin31a = wp19504_r,
            fin31b = wp19505,
            fin31c = wp24009,
            fin31d = wp24010,
            fin32 = wp19507_r,
            fin33 = wp14945_r,
            fin34a = wp19508_r,
            fin34b = wp19509_r,
            fin34c = wp21384_r,
            fin34d = wp21385_r,
            fin35 = wp24011,
            fin36 = wp24012,
            fin36a = wp24013,
            fin37 = wp21386,
            fin38 = wp19515,
            fin39a = wp19516_r,
            fin39b = wp19517_r,
            fin39c = wp21388_r,
            fin39d = wp21389_r,
            fin40 = wp24014,
            fin41 = wp24015,
            fin41a = wp24016,
            fin42 = wp19522,
            fin43a = wp19523_r,
            fin43b = wp19524,
            fin43c = wp21392_r,
            fin43d = wp21393_r,
            fin44 = wp24017,
            fin45 = wp21398_r,
            
            
            # CONNECTIVITY
            internet_use = con_internet3, # constructed from con24 and con25
            con1 = wp17624_con, 
            con2a = wp24019, 
            con2b = wp24020, 
            con2c = wp24021 , 
            con2d = wp24022 , 
            con2e = wp24023 , 
            con2f = wp24024 , 
            con2g = wp24025 , 
            con3 = wp24026 , 
            con4 = wp24027 ,
            con5 = wp24028 ,
            con6 = wp24029 , 
            con7 = wp24030 , 
            con8 = wp24031 , 
            con9 = wp24032, 
            con10 = wp24033 , 
            con11 = wp24034 , 
            con12 = wp24035 , 
            con13 = wp24036 ,
            con14 = wp24037 ,
            con15 = wp24038 , 
            con16 = wp24039 , 
            con17 = wp24040 ,
            con18 = wp24041 , 
            con19 = wp24042 , 
            con20 = wp24043 , 
            con21 = wp24044 ,
            con22 = wp24045 ,
            con23 = wp24046 , 
            con24 = wp15862_con , 
            con25 = wp24047 , 
            con26 = wp24048 , 
            con27 = wp24049 ,
            con28 = wp24050 ,
            con29 = wp24051 , 
            con30a = wp24052 , 
            con30b = wp24053 ,
            con30c = wp24054 , 
            con30d = wp24055 ,
            con30e = wp24056 , 
            con30f = wp24057 , 
            con30g = wp24058 , 
            con30h = wp24059 , 
            con31a = wp24060 , 
            con31b = wp24061 ,
            con31c = wp24062 ,
            con31d = wp24063 , 
            con31e = wp24064 ,
            con31f = wp24065 ,
            con31g = wp24066 , 
            con31h = wp24067 , 
            con32 = wp24068)


# export microdata
write_csv(micro, "\\\\wbntpcifs\\gallop\\alexandra\\Findex_Microdata_2025.csv")
haven::write_dta(micro, "\\\\wbntpcifs\\gallop\\alexandra\\Findex_Microdata_2025.dta")