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

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


/****importation of aggregate GDP, NDP and population series***/ 
wid, ind(npopul mgdpro) ag(999) pop(i) clear; 
save Data/prod.dta, replace;
wid, ind(mconfc mndpro) ag(999) pop(i) clear;
append using data/prod.dta;
save data/prod.dta, replace;
wid, ind(xlceup) ag(999) pop(i) clear;
append using data/prod.dta;
save data/prod.dta, replace;
keep country variable year value;
gen coreterritory="";
foreach c of global coreterritories
{;
replace country="`c'" if country=="`c'-PPP";
replace coreterritory="1" if country=="`c'";
};
keep if coreterritory=="1";
reshape wide value, i(country year) j(variable) string;
rename value* *;
rename *999i *;
rename npopul pop;
rename mgdpro gdp;
rename mconfc cfc;
rename mndpro ndp;
rename xlceup ppp;
save data/prod.dta, replace;
use data/prod.dta, clear;
keep if year==2024;
keep ppp country;
save data/temp/ppp.dta, replace;
use data/prod.dta, clear;
drop ppp;
merge n:1 country using data/temp/ppp.dta;
drop _merge;
foreach v in gdp cfc ndp
{;
replace `v'=`v'/ppp;
};
drop coreterritory ppp;
sort country year;
reshape wide pop gdp cfc ndp, i(year) j(country) string;
save data/prod.dta, replace;


/***add year 2025 and update to 2025 PPP euros**/
use data/prod.dta, clear;
insobs 1;
sort year;
replace year=year[_n-1]+1 if year==.;
foreach i in 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
{;
foreach k in pop gdp ndp cfc
{;
replace `k'`i'=`k'`i'[_n-1]*((`k'`i'[_n-1]/`k'`i'[_n-11])^(1/10)) if year>2024;
};
foreach k in gdp ndp cfc
{;
replace `k'`i'=1.02*`k'`i';
};
};
sort year;
save data/prod.dta, replace;

/****import series on labour hours per capita from Andreescu et al 2025***/
import excel "D:\Users\t.piketty\Dropbox\GJP2026LabourHours\Paper\Andreescuetal2025Appendix.xlsx", sheet("B8") cellrange(A4:BO230) firstrow clear;
rename * h*;
rename hA year;
rename hWorld hWO;
rename hEurope hEURO;
rename hNorthAmericaOceania hNAOC;
rename hLatinAmerica hLATA;
rename hMiddleEastNorthAfrica hMENA;
rename hSubsaharanAfrica hSSAF;
rename hRussiaCentralAsia hRUCA;
rename hEastAsia hEASA;
rename hSouthSouthEastAsia hSSEA;
merge 1:1 year using Data/prod.dta;
drop _merge;
save Data/prod.dta, replace;

/***computation of world region totals***/
use data/prod.dta, clear;
foreach k in pop gdp cfc ndp
{;
gen `k'EURO=`k'DE+`k'DK+`k'ES+`k'FR+`k'GB+`k'IT+`k'NL+`k'NO+`k'SE+`k'OC+`k'QM;
gen `k'NAOC=`k'US+`k'CA+`k'AU+`k'NZ+`k'OH;
gen `k'LATA=`k'AR+`k'BR+`k'CL+`k'CO+`k'MX+`k'OD;
gen `k'MENA=`k'AE+`k'DZ+`k'EG+`k'IR+`k'MA+`k'SA+`k'TR+`k'OE;
gen `k'SSAF=`k'CD+`k'CI+`k'ET+`k'KE+`k'ML+`k'NE+`k'NG+`k'RW+`k'SD+`k'ZA+`k'OJ;
gen `k'RUCA=`k'RU+`k'OA;
gen `k'EASA=`k'CN+`k'JP+`k'KR+`k'TW+`k'OB;
gen `k'SSEA=`k'BD+`k'IN+`k'ID+`k'MM+`k'PK+`k'PH+`k'TH+`k'VN+`k'OI;
gen `k'WO=`k'EURO+`k'NAOC+`k'LATA+`k'MENA+`k'SSAF+`k'RUCA+`k'EASA+`k'SSEA;
};
save Data/prod.dta, replace;

/***computations of hourly ndp (prod) and hourly gdp (grossprod)***/
use data/prod.dta, clear;
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
{;
replace ndp`i'=ndp`i'/pop`i';
replace gdp`i'=gdp`i'/pop`i'; 
gen prod`i'=ndp`i'/h`i';
gen grossprod`i'=gdp`i'/h`i';
replace pop`i'=pop`i'/1000000;
};
sort year;
save data/prod.dta, replace;

/***ordering variables***/
use Data/prod.dta, clear;
order year popWO popEURO popNAOC popLATA popMENA popSSAF popRUCA popEASA popSSEA popDE popDK popES popFR popGB popIT popNL popNO popSE popOC popQM popUS popCA popAU popNZ popOH popAR popBR popCL popCO popMX popOD popAE popDZ popEG popIR popMA popSA popTR popOE popCD popCI popET popKE popML popNE popNG popRW popSD popZA popOJ popRU popOA popCN popJP popKR popTW popOB popBD popIN popID popMM popPK popPH popTH popVN popOI 
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 
grossprodWO grossprodEURO grossprodNAOC grossprodLATA grossprodMENA grossprodSSAF grossprodRUCA grossprodEASA grossprodSSEA grossprodDE grossprodDK grossprodES grossprodFR grossprodGB grossprodIT grossprodNL grossprodNO grossprodSE grossprodOC grossprodQM grossprodUS grossprodCA grossprodAU grossprodNZ grossprodOH grossprodAR grossprodBR grossprodCL grossprodCO grossprodMX grossprodOD grossprodAE grossprodDZ grossprodEG grossprodIR grossprodMA grossprodSA grossprodTR grossprodOE grossprodCD grossprodCI grossprodET grossprodKE grossprodML grossprodNE grossprodNG grossprodRW grossprodSD grossprodZA grossprodOJ grossprodRU grossprodOA grossprodCN grossprodJP grossprodKR grossprodTW grossprodOB grossprodBD grossprodIN grossprodID grossprodMM grossprodPK grossprodPH grossprodTH grossprodVN grossprodOI 
ndpWO ndpEURO ndpNAOC ndpLATA ndpMENA ndpSSAF ndpRUCA ndpEASA ndpSSEA ndpDE ndpDK ndpES ndpFR ndpGB ndpIT ndpNL ndpNO ndpSE ndpOC ndpQM ndpUS ndpCA ndpAU ndpNZ ndpOH ndpAR ndpBR ndpCL ndpCO ndpMX ndpOD ndpAE ndpDZ ndpEG ndpIR ndpMA ndpSA ndpTR ndpOE ndpCD ndpCI ndpET ndpKE ndpML ndpNE ndpNG ndpRW ndpSD ndpZA ndpOJ ndpRU ndpOA ndpCN ndpJP ndpKR ndpTW ndpOB ndpBD ndpIN ndpID ndpMM ndpPK ndpPH ndpTH ndpVN ndpOI 
gdpWO gdpEURO gdpNAOC gdpLATA gdpMENA gdpSSAF gdpRUCA gdpEASA gdpSSEA gdpDE gdpDK gdpES gdpFR gdpGB gdpIT gdpNL gdpNO gdpSE gdpOC gdpQM gdpUS gdpCA gdpAU gdpNZ gdpOH gdpAR gdpBR gdpCL gdpCO gdpMX gdpOD gdpAE gdpDZ gdpEG gdpIR gdpMA gdpSA gdpTR gdpOE gdpCD gdpCI gdpET gdpKE gdpML gdpNE gdpNG gdpRW gdpSD gdpZA gdpOJ gdpRU gdpOA gdpCN gdpJP gdpKR gdpTW gdpOB gdpBD gdpIN gdpID gdpMM gdpPK gdpPH gdpTH gdpVN gdpOI; 
save data/prod.dta, replace;

/***export productivity series and other macro series**/
use Data/prod.dta, clear;
keep prod*;
export excel using Equality2025Appendix.xlsx, sheet("B1a", modify) cell(B5) keepcellfmt;
use Data/prod.dta, clear;
keep grossprod*;
export excel using Equality2025Appendix.xlsx, sheet("B1c", modify) cell(B5) keepcellfmt;
use Data/prod.dta, clear;
keep ndp*;
export excel using Equality2025Appendix.xlsx, sheet("B1d", modify) cell(B5) keepcellfmt;
use Data/prod.dta, clear;
keep gdp*;
export excel using Equality2025Appendix.xlsx, sheet("B1e", modify) cell(B5) keepcellfmt;
use Data/prod.dta, clear;
keep pop*;
export excel using Equality2025Appendix.xlsx, sheet("B1f", modify) cell(B5) keepcellfmt;


/****export series on human capital expenditure***/
import excel "D:\Users\t.piketty\Dropbox\GJP2026HumanK\Paper\Bhartietal2025Appendix.xlsx", sheet("A2a") cellrange(B5:BO230) clear;
export excel using Equality2025Appendix.xlsx, sheet("B2a", modify) cell(B5) keepcellfmt;
import excel "D:\Users\t.piketty\Dropbox\GJP2026HumanK\Paper\Bhartietal2025Appendix.xlsx", sheet("C1a") cellrange(B5:BO230) clear;
export excel using Equality2025Appendix.xlsx, sheet("B2b", modify) cell(B5) keepcellfmt;
import excel "D:\Users\t.piketty\Dropbox\GJP2026HumanK\Paper\Bhartietal2025Appendix.xlsx", sheet("C1b") cellrange(B5:BO230) clear;
export excel using Equality2025Appendix.xlsx, sheet("B2c", modify) cell(B5) keepcellfmt;
import excel "D:\Users\t.piketty\Dropbox\GJP2026HumanK\Paper\Bhartietal2025Appendix.xlsx", sheet("C1c") cellrange(B5:BO230) clear;
export excel using Equality2025Appendix.xlsx, sheet("B2d", modify) cell(B5) keepcellfmt;
import excel "D:\Users\t.piketty\Dropbox\GJP2026HumanK\Paper\Bhartietal2025Appendix.xlsx", sheet("C4b") cellrange(B5:BO230) clear;
export excel using Equality2025Appendix.xlsx, sheet("B2e", modify) cell(B5) keepcellfmt;