clear
clear matrix
set mem 300m
set more off
cd "C:\otherresearch\SriLanka\SLMS\data\"

use sciencerepdata.dta, clear

*** Table 1: Impact of Grants on Business Closures/Attrition
** Males
* Closed business
reg max_closed_business mamount if mmale==1 & wave==1, robust
outreg2 mamount using table1d.out, replace
sum max_closed if mmale==1 & mamount<1 & e(sample)
* Reporting profits 
reg max_reports_profits mamount if mmale==1 & wave==1, robust
outreg2 mamount using table1d.out, append
sum max_reports_profits if mmale==1 & mamount<1 & e(sample)
** Females
* Closed business
reg max_closed_business mamount if mfemale==1 & wave==1, robust
outreg2 mamount using table1d.out, append
sum max_closed if mfemale==1 & mamount<1 & e(sample)
* Reporting profits 
reg max_reports_profits mamount if mfemale==1 & wave==1, robust
outreg2 mamount using table1d.out, append
sum max_reports_profits if mfemale==1 & mamount<1 & e(sample)


*** Table 2: Do the grants affect who survives?
* Baseline characteristics

foreach var of varlist  agebus realprof realsales K1_noland trade ownhours  ownerage ednyears dspan assetindex_mg riskav  {
ttest `var' if wave==1 & max_reports_profits==1 & mmale==1, by(treat2)
ttest `var' if wave==1 & max_reports_profits==1 & mfemale==1, by(treat2)
}
* F-test of joint orthogonality
reg treat2 agebus realprof realsales K1_noland trade ownhours ownerage ednyears dspan assetindex_mg riskav if wave==1 & max_reports_profits==1 & mmale==1
reg treat2 agebus realprof realsales K1_noland trade ownhours ownerage ednyears dspan assetindex_mg riskav if wave==1 & max_reports_profits==1 & mfemale==1


**** Table 3: Impacts on Real Profits Conditional on Survival
* Truncate profits at top 1% separately by gender
sum realprof if mmale==1, de
gen rprof_trunc=realprof
replace rprof_trunc=28203.23 if mmale==1 & realprof>28203.23 & realprof~=.
sum realprof if mfemale==1, de
replace rprof_trunc=19334.37 if mfemale==1 & realprof>19334.37 & realprof~=.

gen earlytreat=1 if wave==2 & amount>0 & amount~=.
egen etreat=max(earlytreat), by(sheno)
replace etreat=0 if etreat==.
gen ltreat=etreat==0 & treat2==1
gen timesincetreat=0 
replace timesincetreat=1 if wave==2 & etreat==1
replace timesincetreat=4 if wave==3 & etreat==1
for num 4/9: replace timesincetreat=3*(X-2)+1 if wave==X & etreat==1
replace timesincetreat=28 if wave==10 & etreat==1
replace timesincetreat=34 if wave==11 & etreat==1
replace timesincetreat=60 if wave==12 & etreat==1
replace timesincetreat=66 if wave==13 & etreat==1
replace timesincetreat=1 if wave==4 & ltreat==1
for num 5/9: replace timesincetreat=3*(X-4)+1 if wave==X & ltreat==1
replace timesincetreat=22 if wave==10 & ltreat==1
replace timesincetreat=28 if wave==11 & ltreat==1
replace timesincetreat=54 if wave==12 & ltreat==1
replace timesincetreat=60 if wave==13 & ltreat==1

gen year1since=amount if timesincetreat>0 & timesincetreat<=12
gen year2since=amount if timesincetreat>12 & timesincetreat<=24
gen year3since=amount if timesincetreat>24 & timesincetreat<=36
gen year5since=amount if timesincetreat>=54 & timesincetreat<=66
for var year1since-year5since: replace X=0 if X==.


* Counting profits as zero if business is closed
gen profclosed=rprof_trunc
replace profclosed=0 if profclosed==. & closed==1
gen lprof=log(realprof)
replace workerwage=0 if workerwage==.
gen profwork=profclosed+(4*workerwage)

*** Table 3 columns
* Males
xtreg realprof year1since year2since year3since year5since wave2-wave13 if mmale==1, cluster(sheno) fe i(sheno)
outreg2 year1since year2since year3since year5since using table2.out, replace
test year1since==year2since==year3since==year5since
xtreg rprof_trunc year1since year2since year3since year5since wave2-wave13 if mmale==1, cluster(sheno) fe i(sheno)
outreg2 year1since year2since year3since year5since using table2.out, append
test year1since==year2since==year3since==year5since
xtreg lprof year1since year2since year3since year5since wave2-wave13 if mmale==1, cluster(sheno) fe i(sheno)
outreg2 year1since year2since year3since year5since using table2.out, append
test year1since==year2since==year3since==year5since
xtreg profwork year1since year2since year3since year5since wave2-wave13 if mmale==1, cluster(sheno) fe i(sheno)
outreg2 year1since year2since year3since year5since using table2.out, append
test year1since==year2since==year3since==year5since
*Females
xtreg realprof year1since year2since year3since year5since wave2-wave13 if mfemale==1, cluster(sheno) fe i(sheno)
outreg2 year1since year2since year3since year5since using table2.out, append
test year1since==year2since==year3since==year5since
xtreg rprof_trunc year1since year2since year3since year5since wave2-wave13 if mfemale==1, cluster(sheno) fe i(sheno)
outreg2 year1since year2since year3since year5since using table2.out, append
test year1since==year2since==year3since==year5since
xtreg lprof year1since year2since year3since year5since wave2-wave13 if mfemale==1, cluster(sheno) fe i(sheno)
outreg2 year1since year2since year3since year5since using table2.out, append
test year1since==year2since==year3since==year5since
xtreg profwork year1since year2since year3since year5since wave2-wave13 if mfemale==1, cluster(sheno) fe i(sheno)
outreg2 year1since year2since year3since year5since using table2.out, append
test year1since==year2since==year3since==year5since

** Data for Figure 1: mean real profits by wave for treatment and control
* Males
table treat2 wave if (mmale==1), c(mean realprof)
* Females
table treat2 wave if (mfemale==1), c(mean realprof)


**** Supporting Online Material Tables and Figures
***** SOM FIGURES
* Figure S1: CDFs of baseline profits for survivors among male owners
gen control=mamount<1
cumul realprof if (wave==1) & control==1 & mmale==1 & max_closed==0, gen(cum1ma)
cumul realprof if (wave==1) & control==0 & mmale==1 & max_closed==0, gen(cum3ma)
label var cum1ma "Control Survivors"
label var cum3ma "Treatment Survivors"
sort realprof
twoway line cum1ma cum3ma  realprof if (wave==1) & mmale==1 & realprof<15000

* Figure S2: CDFs of baseline profits for survivors among female owners
cumul realprof if (wave==1) & control==1 & mfemale==1 & max_closed==0, gen(cum1fa)
cumul realprof if (wave==1) & control==0 & mfemale==1 & max_closed==0, gen(cum3fa)
label var cum1fa "Control Survivors"
label var cum3fa "Treatment Survivors"
sort realprof
twoway line cum1fa cum3fa  realprof if (wave==1) & mfemale==1 & realprof<15000

* Figure S3: Data on Standard Deviations used to construct 
bysort wave: sum realprof if mmale==1 & treat2==0
bysort wave: sum realprof if mmale==1 & treat2==1

**** SOM TABLES

*** Table S1: Pooled Sample Results
* Closed business
reg max_closed_business mamount if  wave==1, robust
outreg2 mamount using table1d.out, replace
sum max_closed if  mamount<1 & e(sample)
* Reporting profits 
reg max_reports_profits mamount if  wave==1, robust
outreg2 mamount using table1d.out, append
sum max_reports_profits if  mamount<1 & e(sample)
* Impact on Profit and Income Levels
xtreg realprof year1since year2since year3since year5since wave2-wave13, cluster(sheno) fe i(sheno)
outreg2 year1since year2since year3since year5since using table2.out, replace
test year1since==year2since==year3since==year5since
xtreg rprof_trunc year1since year2since year3since year5since wave2-wave13, cluster(sheno) fe i(sheno)
outreg2 year1since year2since year3since year5since using table2.out, append
test year1since==year2since==year3since==year5since
xtreg lprof year1since year2since year3since year5since wave2-wave13, cluster(sheno) fe i(sheno)
outreg2 year1since year2since year3since year5since using table2.out, append
test year1since==year2since==year3since==year5since
xtreg profwork year1since year2since year3since year5since wave2-wave13, cluster(sheno) fe i(sheno)
outreg2 year1since year2since year3since year5since using table2.out, append
test year1since==year2since==year3since==year5since
sum realprof rprof_trunc lprof profwork if mamount<1 


*** Table S2: Robust to removing can't locate or refusals
gen cantlocateorrefuse=sheno==217|sheno==407|sheno==518|sheno==164|sheno==67|sheno==149|sheno==569|sheno==81|sheno==102
* Males
* Table 1 specification Closed business
reg max_closed_business mamount if mmale==1 & wave==1, robust
outreg2 mamount using table1robust.out, replace
sum max_closed if control==1 & e(sample)
* excluding those who weren't in June/Dec surveys
reg max_closed_business mamount if mmale==1 & wave==1 & cantlocateorrefuse==0, robust
outreg2 mamount using table1robust.out, append
sum max_closed if control==1 & e(sample)
** Females
* Closed business
reg max_closed_business mamount if mfemale==1 & wave==1, robust
outreg2 mamount using table1robust.out, append
sum max_closed if control==1 & e(sample)
reg max_closed_business mamount if mfemale==1 & wave==1 & cantlocateorrefuse==0, robust
outreg2 mamount using table1robust.out, append
sum max_closed if control==1 & e(sample)

*** Table S5
*** Is there a differential effect for poor males?
gen mamount_assets=assetindex_mg*mamount
reg max_closed_business mamount mamount_assets assetindex_mg if mmale==1 & wave==1, robust
outreg2 mamount mamount_assets assetindex_mg using robusttab1.out, replace


*** Section in text: robustness of profits to selective attrition
* Bounding exercise for profits of survivors who can't trace
bysort wave: egen profmean=mean(realprof) if mmale==1
gen rprofhigh1=realprof
replace rprofhigh1=profmean if realprof==. & cantlocate==1 & mmale==1 & mamount<1
xtreg rprofhigh1 year1since year2since year3since year5since wave2-wave13 if mmale==1, cluster(sheno) fe i(sheno)


*** Tables S3 and S4 are pieced together from round by round reports on firms which closed

