/********Stata code used to compute productivity series 1820-2025***/
/*****series using 57 core territories: 48 countries + 9 subregions**/

#delimit;
clear all;
set more off;
set maxvar 6000;
do Codes/doglobalvariables.txt;

/***computation of productivity series***/
use Data\hours.dta, clear;
merge 1:1 year using Data\popndp.dta;
drop _merge;
foreach i in WO EURO NAOC LATA MENA SSAF RUCA EASA SSEA DE DK ES FR GB IT NL NO SE OC QM US CA AU NZ OH AR BR CL CO MX OD AE EG DZ IR MA SA TR OE CD CI ET KE ML NE NG RW SD ZA OJ RU OA CN JP KR TW OB BD IN ID MM PK PH TH VN OI
{;
gen prod`i'=ndp`i'/(poptot`i'*pwh`i');
};
order year prodWO prodEURO prodNAOC prodLATA prodMENA prodSSAF prodRUCA prodEASA prodSSEA prodDE prodDK prodES prodFR prodGB prodIT prodNL prodNO prodSE prodOC prodQM prodUS prodCA prodAU prodNZ prodOH prodAR prodBR prodCL prodCO prodMX prodOD prodAE prodDZ prodEG prodIR prodMA prodSA prodTR prodOE prodCD prodCI prodET prodKE prodML prodNE prodNG prodRW prodSD prodZA prodOJ prodRU prodOA prodCN prodJP prodKR prodTW prodOB prodBD prodIN prodID prodMM prodPK prodPH prodTH prodVN prodOI;
save Data\prod.dta, replace;

/***export series for appendix tables and figures**/
use Data\prod.dta, clear;
keep prod*;
export excel using Andreescuetal2025Appendix.xlsx, sheet("C2", modify) cell(B5) keepcellfmt;

/***regressions etc.*/
use Data\hours.dta, clear;
merge 1:1 year using Data\popndp.dta;
drop _merge;
foreach i in WO EURO NAOC LATA MENA SSAF RUCA EASA SSEA DE DK ES FR GB IT NL NO SE OC QM US CA AU NZ OH AR BR CL CO MX OD AE EG DZ IR MA SA TR OE CD CI ET KE ML NE NG RW SD ZA OJ RU OA CN JP KR TW OB BD IN ID MM PK PH TH VN OI
{;
gen prod`i'=ndp`i'/(poptot`i'*pwh`i');
};
keep year prod* pwh* wwh* awh*;
foreach i in WO EURO NAOC LATA MENA SSAF RUCA EASA SSEA
{;
drop prod`i' pwh`i' awh`i' wwh`i';
};
reshape long pwh awh wwh prod, i(year) j(country) string;
reg awh prod;
reg wwh prod;
reg pwh prod;
xi: reg awh prod i.year;
xi: reg awh prod i.country;
xi: reg awh prod i.country i.year;
gen logawh=log(awh);
gen logwwh=log(wwh);
gen logprod=log(prod);
reg logawh logprod;
xi: reg logawh logprod i.country;
xi: reg logawh logprod i.country if year>=1980;
xi: reg logawh logprod i.year;
xi: reg logawh logprod i.country i.year;
reg logwwh logprod;
xi: reg logwwh logprod i.country;
xi: reg logwwh logprod i.country if year>=1980;
xi: reg logwwh logprod i.year;
/***preferred specification and simulations for the future**/
xi: reg logawh logprod i.country;