The Local Political Economy Effects of School Construction in Indonesia

Monica Martinez-Bravo (2017) · American Economic Journal: Applied Economics

Published

October 10, 2026

import sys
from pathlib import Path

ROOT = next(
    p for p in [Path.cwd(), *Path.cwd().parents]
    if (p / "scripts/tranche50_report.py").exists()
)
sys.path.insert(0, str(ROOT / "scripts"))
from tranche50_report import report
report("aeraej-390")

Monica Martinez-Bravo (2017). American Economic Journal: Applied Economics. Table 6.

Source specification

Source coefficient Template on source sample Source N Template source-sample N
0.43297 0.43297 59130 59130

Source-to-template coefficient difference: 3.23e-11, in original outcome units.

Role Column
Outcome yrsedu
Treatment post92
Unit v_id
Time year
Cluster idkab_num

No additional covariates beyond fixed effects.

Estimates below divide the outcome by its source-sample standard deviation, 3.13152. Static TWFE is the treatment coefficient. Dynamic TWFE, BJS and Sun–Abraham average supported post-treatment cells by observation count. CS-DID additionally reports an equal-event-time average.

Analysis sample and treatment timing

Observations Units Treated Control units Cohorts Clusters
39420 9855 1983 7872 2 82

No never-treated group is available. The window ends before the latest cohort adopts; that cohort is the untreated comparison group within this window.

Adoption is the first observed treated period. Initially treated units and units without an observed minus-one baseline are excluded. Post-adoption untreated rows are excluded for switching policies. The plot shows at most 100 seeded-sample units; estimation uses the full eligible sample. Empty cells remain missing.

y__d: 100 of 9855 units shown (seed 20261008). All eligible units enter estimation. Purple: untreated; yellow: treated; white: unobserved.

Estimates

Estimator Estimate (SD) SE 95% lower 95% upper Target Status
Static TWFE 0.088725 0.037587 0.01394 0.16351 Coefficient estimated
Dynamic TWFE 0.31233 0.0406 0.23155 0.39311 Treated cells estimated
BJS / did2s 0.08464 0.037175 0.010672 0.15861 Treated cells estimated
Sun–Abraham 0.37637 0.042083 0.29264 0.4601 Treated cells estimated
CS-DID (equal event-time) 0.37673 0.042544 0.29334 0.46011 Equal post-event times estimated
CS-DID (treated cells) 0.37658 0.041935 0.29439 0.45877 Treated cells estimated
SDID nan nan nan nan Treated cells failed
Matrix completion 0.27812 nan nan nan Treated cells estimated
Horizontal ridge nan nan nan nan Treated cells failed
Multisynth (cohort-averaged) nan nan nan nan Treated cells failed
Multisynth (individual) nan nan nan nan Treated cells failed

Intervals use the configured clusters and the estimator’s available inference. Hollow points have no computed interval; no new refit-bootstrap batch is run.

Estimator Reason
SDID TimeoutExpired: Command ‘[’/Users/alal/Desktop/big-did-replication/.venv/bin/python’, ’/Users/alal/Desktop/big-did-replication/templates/expensive/matrix_worker.py’, ’/Users/alal/Desktop/big-did-replication/analyses/new-library/tranche50/aeraej-390/results/y__d’, ’sdid’, ’/Users/alal/Desktop/big-did-replication/analyses/new-library/tranche50/aeraej-390/results/y__d/sdid-worker-parameters.json’]’ timed out after 300 seconds
Horizontal ridge TimeoutExpired: Command ‘[’/Users/alal/Desktop/big-did-replication/.venv/bin/python’, ’/Users/alal/Desktop/big-did-replication/templates/expensive/matrix_worker.py’, ’/Users/alal/Desktop/big-did-replication/analyses/new-library/tranche50/aeraej-390/results/y__d’, ’horizontal-ridge’, ’/Users/alal/Desktop/big-did-replication/analyses/new-library/tranche50/aeraej-390/results/y__d/horizontal-ridge-worker-parameters.json’]’ timed out after 300 seconds
Multisynth (cohort-averaged) RuntimeError: multisynth-cohort failed; see multisynth-cohort.log
Multisynth (individual) RuntimeError: multisynth-individual failed; see multisynth-individual.log

Event studies

Cohort homogeneity

The imported TestingInEventStudies deviations design tests positive-event-time cohort deviations jointly. This is the homoskedastic nested-model F-test; the estimator confidence intervals above use clustered inference.

**y__d: homogeneity test not identified.** No post-treatment cohort deviations to test.

Fitting settings and checks

Specification Estimator Settings Pooling
y__d CS-DID {“est_method”: “dr”, “control_group”: “notyettreated”, “xformla”: “y ~ 1”, “base_period”: “universal”, “anticipation”: 0, “panel”: true, “allow_unbalanced_panel”: false, “clustervar”: “cluster”, “clusters”: 82, “bstrap”: false, “cband”: false, “aggregate”: “dynamic”, “event_aggregate”: “dynamic”, “balance_e”: null, “post_event_min”: 0, “post_event_max”: 1} {“parameter”: null, “value”: null, “status”: “not_applicable”, “fit_scope”: “Group-time DIDs; no synthetic-control pooling parameter”}
y__d SDID {} {}
y__d Matrix completion {“lambda_fraction”: 0.25, “max_iterations”: 1000, “tolerance”: 1e-12} {“parameter”: null, “value”: null, “status”: “not_applicable”, “fit_scope”: “Joint untreated-cell fit”, “within_cohort_target”: null, “cross_cohort_partial_pooling”: false, “shared_structure”: “Low-rank matrix and unit/time effects”, “note”: “Regularization penalties are not partial-pooling parameters.”}
y__d Horizontal ridge {“penalty”: 1.0} {}
y__d Multisynth (cohort-averaged) {} {}
y__d Multisynth (individual) {} {}
{
  "did2s_vs_direct_imputation_max_post_difference": 2.0816681711721685e-17,
  "package_aggregate_vs_estimable_cell_weights": 0.0
}