Note: This project is an experiment in the use of AI to produce new empirical research. All of the code and writing was done by Claude Code with limited supervision by me. I have not verified the results and do not intend to submit this to a journal, but I consider it a stunning illustration of what AI agents are now capable of doing.
— Andrew B. Hall
This repository contains a complete replication and extension of Thompson, Wu, Yoder, and Hall (2020), published in the Proceedings of the National Academy of Sciences.
Original Paper: Thompson, D. M., Wu, J. A., Yoder, J., & Hall, A. B. (2020). Universal vote-by-mail has no impact on partisan turnout or vote share. PNAS, 117(25), 14052-14056.
- All 12 coefficients from Tables 2 and 3 replicate exactly to 3 decimal places
- Python implementation using
pyfixestmatches original Stata results
- Turnout: VBM increases turnout by ~2 percentage points (robust across all specifications)
- Partisan Effects: No systematic effect on Democratic vote share
- Original period effect (0.007) diminishes to 0.003 (not significant) with extended data
- Only 2018 pilot counties show positive partisan effect; later cohorts show zero effect
- Population-weighted estimates show precisely zero partisan effect
vbm_replication/
├── README.md # This file
├── requirements.txt # Python dependencies
├── original/ # Original paper materials
│ ├── code/ # Original Stata do-files
│ ├── data/
│ │ ├── raw/ # Raw data files
│ │ └── modified/ # analysis.dta
│ └── paper/ # Original paper PDF
├── code/ # Python replication code
│ ├── 02_replicate.py # Replicates Tables 2 & 3
│ ├── 03_prepare_extension.py # Prepares extension data
│ └── 04_extension_analysis.py # Runs extension analysis
├── data/
│ ├── raw/ # Raw extension data
│ │ └── cvap_2018_2022/ # Census CVAP data
│ ├── extension/ # Processed extension data
│ │ ├── california_vbm_adoption.csv
│ │ ├── election_results_2020_2024.csv
│ │ └── cvap_2018_2022.csv
│ └── processed/ # Analysis-ready data
│ └── analysis_extended.csv
├── output/
│ ├── tables/ # Results tables (CSV)
│ ├── figures/ # Figures (PNG/PDF)
│ └── paper/ # Paper draft and LaTeX tables
└── notes/ # Documentation and notes
├── original_materials_review.md
├── original_paper_summary.md
├── literature_review.md
├── extension_rationale.md
├── replication_comparison.md
├── extension_data_documentation.md
├── data_preparation_notes.md
└── extension_analysis_results.md
pandas>=1.3.0
numpy>=1.20.0
pyfixest>=0.18.0
matplotlib>=3.4.0
seaborn>=0.11.0
scipy>=1.7.0
requests>=2.25.0
Install with: pip install -r requirements.txt
cd vbm_replication
python code/02_replicate.pyThis reproduces Tables 2 and 3 from the original paper.
python code/03_prepare_extension.pyThis creates data/processed/analysis_extended.csv with 2020-2024 data.
python code/04_extension_analysis.pyThis runs all extension analyses and generates figures.
| Data | Source | Years |
|---|---|---|
| Original analysis data | Stanford Digital Repository | 1996-2018 |
| CA VCA adoption | California Secretary of State | 2018-2024 |
| Presidential results | MIT Election Data + Science Lab | 2020, 2024 |
| Governor/Senate results | MIT Election Data + Science Lab | 2022 |
| CVAP | U.S. Census Bureau (ACS 5-year) | 2018-2022 |
| Outcome | Specification | Original (1996-2018) | Extended (1996-2024) |
|---|---|---|---|
| Dem Vote Share | Basic | 0.029** | 0.024*** |
| Linear Trends | 0.011** | 0.006* | |
| Quadratic Trends | 0.007* | 0.003 | |
| Turnout | Basic | 0.021** | 0.026*** |
| Linear Trends | 0.022*** | 0.020*** | |
| Quadratic Trends | 0.021** | 0.021*** |
| Cohort | Counties | Dem Vote Share | Turnout |
|---|---|---|---|
| 2018 | 5 | 0.032** | 0.025** |
| 2020 | 10 | -0.007 | 0.028** |
| 2022 | 12 | 0.006 | 0.029** |
| 2024 | 3 | -0.014 | 0.041 |
table2_replication.csv- Replication of Table 2table3_replication.csv- Replication of Table 3extension_partisan_results.csv- Extended partisan analysisextension_turnout_results.csv- Extended turnout analysiscohort_results.csv- Heterogeneity by adoption cohortevent_study_results.csv- Event study coefficients
main_results.png/pdf- Original vs extended comparisonevent_study.png/pdf- Event study plotscohort_heterogeneity.png/pdf- Effects by adoption cohort
vbm_extension_paper.md- Full research papertables.tex- LaTeX formatted tables
If you use this replication or extension, please cite:
@article{thompson2020universal,
title={Universal vote-by-mail has no impact on partisan turnout or vote share},
author={Thompson, Daniel M and Wu, Jennifer A and Yoder, Jesse and Hall, Andrew B},
journal={Proceedings of the National Academy of Sciences},
volume={117},
number={25},
pages={14052--14056},
year={2020}
}- Utah 2022: The Senate race featured McMullin (I) vs Lee (R) with no Democratic candidate. McMullin votes are coded as the Democratic proxy.
- CVAP: Uses 2018-2022 ACS 5-year estimates for all extension years.
- Pre-trends: Evidence of pre-trends for 2018 pilot counties suggests caution in interpreting their treatment effects causally.
This replication is provided for academic purposes. Original data is subject to the terms of the Stanford Digital Repository.