Parental Investment and School Quality: Evidence from Ghana

Last registered on May 06, 2026

Pre-Trial

Trial Information

General Information

Title
Parental Investment and School Quality: Evidence from Ghana
RCT ID
AEARCTR-0017433
Initial registration date
December 08, 2025

Initial registration date is when the trial was registered.

It corresponds to when the registration was submitted to the Registry to be reviewed for publication.

First published
December 09, 2025, 8:23 AM EST

First published corresponds to when the trial was first made public on the Registry after being reviewed.

Last updated
May 06, 2026, 12:47 PM EDT

Last updated is the most recent time when changes to the trial's registration were published.

Locations

There is information in this trial unavailable to the public. Use the button below to request access.

Request Information

Primary Investigator

Affiliation
University of Washington

Other Primary Investigator(s)

Additional Trial Information

Status
On going
Start date
2025-12-01
End date
2026-09-01
Secondary IDs
Prior work
This trial does not extend or rely on any prior RCTs.
Abstract
I am running an RCT in 80 government and 40 low-cost private schools in Cape Coast Ghana for first grade students. These schools get one or both of two cross-randomized treatments. One treatment organizes scripted parent meetings where parents are 1) told the benefits of doing literacy activities with their child at home (e.g. asking what they learned in school, reading with them, going through school materials etc.), 2) trained on how to understand the report card they get on students literacy scores, and 3) briefly trained how to run a 1-minute reading assessment using provided materials on their child. The other cross-randomized treatment trains school leaders to better coach their teachers in teaching literacy, and also how to interact/engage parents. I am studying the interaction of the exogenous changes in school quality and parental investment at home, and how these work together to impact the reading ability of the students.

External Link(s)

Registration Citation

Citation
Andersen, Erik. 2026. "Parental Investment and School Quality: Evidence from Ghana." AEA RCT Registry. May 06. https://doi.org/10.1257/rct.17433-1.1
Experimental Details

Interventions

Intervention(s)
Intervention Start Date
2025-12-01
Intervention End Date
2026-07-01

Primary Outcomes

Primary Outcomes (end points)
Letter sound knowledge measured by teacher-led oral reading fluency assessments.
Primary Outcomes (explanation)
I am only using letter sound knowledge rather than other literacy components because it is one of the most basic literacy skills and thus closest on the causal chain.

Secondary Outcomes

Secondary Outcomes (end points)
For the government schools, I will explore using attendance as an outcome, but not all schools are reliably recording this. Conditional on securing grant funding, I will also measure parental engagement using a survye.
Secondary Outcomes (explanation)

Experimental Design

Experimental Design
I will use a 2 by 2 factorial design where the parent meetings are randomized to half the schools, and school leader training is cross randomized on top of that. So there will be 4 total groups: 1 getting nothing, 1 getting only parent meetings, 1 getting only school leader training, and 1 getting both.
Experimental Design Details
Not available
Randomization Method
Done using R in office using the following randomization code and seed.

# Randomize government schools

here::i_am("code/randomize_baseline.R")

pacman::p_load(tidyverse, randomizr)

gov_schools_orf_df = haven::read_dta(here::here(
"data",
"clean_baseline_gov_schools.dta"
))
orf_df = haven::read_dta(here::here("data", "clean_baseline_gov_students.dta"))

set.seed(612873201)


# Create stratification cells: 4 schools per cell
# There are three schools that ran no assessments: they are in a strata of three together
# There are 62 remaining after that, so 2 over 4 per cell. Those are added to cells roughly in the middle
gov_schools_orf_df = gov_schools_orf_df |>
arrange(letter_sound_knowledge_eb) |>
mutate(
stratification_cell = c(
rep(1:6, each = 4), # First 24 schools: 6 strata of 4
rep(7, 4), # Next 4 schools: 1 stratum of 4 (was 5)
rep(8, 4), # Next 4 schools: 1 stratum of 4 (was 5)
rep(9:15, each = 4), # Next 28 schools: 7 strata of 4
rep(16, 3) # Last 3 schools: 1 stratum of 3
)
) |>
mutate(
treat = block_ra(
blocks = stratification_cell
)
) |>
relocate(treat, .after = school) |>
relocate(stratification_cell, .after = treat)

haven::write_dta(
gov_schools_orf_df,
here::here("data", "clean_baseline_gov_schools_with_treatment.dta")
)


# Merge with student level
tmp_schools = gov_schools_orf_df |> select(school, treat, stratification_cell)

orf_df = orf_df |>
left_join(tmp_schools, by = join_by(school)) |>
relocate(treat, .after = student_name) |>
relocate(stratification_cell, .after = treat)

orf_df |>
haven::write_dta(here::here(
"data",
"clean_baseline_gov_students_with_treatment.dta"
))


#### Randomize private schools

private_schools_df = haven::read_dta(here::here(
"data",
"clean_baseline_private_schools.dta"
))

private_students_df = haven::read_dta(here::here(
"data",
"clean_basleine_private_students.dta"
))


set.seed(12398173)

# Firsts randomize 24 private schools that have an observation for beginning of the year assessments
# Create stratification cells: 4 schools per cell

private_schools = private_schools_df |>
filter(!is.na(letter_sound_knowledge_eb)) |>
arrange(letter_sound_knowledge_eb) |>
mutate(
stratification_cell = c(
rep(1:6, each = 4) + 16 # There are 16 strat cells from gov schools
)
) |>
mutate(
treat = block_ra(
blocks = stratification_cell
)
) |>
relocate(treat, .after = school) |>
relocate(stratification_cell, .after = treat)

# Now randomize 16 schools that didn't have an assessment
private_schools_egra = private_schools_df |>
filter(is.na(letter_sound_knowledge_eb)) |>
arrange(letter_sound_knowledge_eb) |>
mutate(
stratification_cell = c(
rep(1:4, each = 4) + 22 # There are 16 strat cells from gov schools and 6 from first batch of private schools
)
) |>
mutate(
treat = block_ra(
blocks = stratification_cell
)
) |>
relocate(treat, .after = school) |>
relocate(stratification_cell, .after = treat)


# Combine
private_schools_combined_df = private_schools |>
bind_rows(private_schools_egra)


haven::write_dta(
private_schools_combined_df,
here::here("data", "clean_baseline_private_schools_with_treatment.dta")
)


# Write treated schools list for Simon
gov_schools_orf_df |>
filter(treat == 1) |>
select(school) |>
writexl::write_xlsx(here::here("data", "treated_gov_schools.xlsx"))

private_schools_combined_df |>
filter(treat == 1) |>
select(school) |>
writexl::write_xlsx(here::here("data", "treated_private_schools.xlsx"))


# Combine into one data set
all_schools_df = gov_schools_orf_df |>
bind_rows(private_schools_combined_df) |>
rename(treat_parent = treat)


### Now cross-randomize school leader training

# This is done using the same stratification cels
# So basically within strat cell 1, the two treat schools are split and the two control schools are split
set.seed(312323814)

cross_randomized_df = map(
seq_along(1:max(all_schools_df$stratification_cell)),
function(i) {
all_schools_df |>
filter(stratification_cell == {{ i }}) |>
mutate(treat_school_leader = block_ra(blocks = treat_parent)) |>
relocate(treat_school_leader, .after = treat_parent)
}
) |>
bind_rows()

# Write to excel
cross_randomized_df |>
haven::write_dta(here::here(
"data",
"full_treatment_list.dta"
))
Randomization Unit
Schools.
Was the treatment clustered?
Yes

Experiment Characteristics

Sample size: planned number of clusters
103 schools. 63 government and 40 private.
Sample size: planned number of observations
Approximately 25 children per school, so 2,575 students.
Sample size (or number of clusters) by treatment arms
51 treatment schools and 52 control.
Minimum detectable effect size for main outcomes (accounting for sample design and clustering)
IRB

Institutional Review Boards (IRBs)

IRB Name
University of Ghana Ethics Committee for the Humanities
IRB Approval Date
2024-07-04
IRB Approval Number
ECH 278/23-24