Murad Farzulla — coding task submission, August 2026.
report.pdf— the analysis report (report.texis its source)code/01_build_panel.py— cleans the three input files and buildsoutputs/analysis_panel.csvcode/02_analysis.py— every table, figure, and regression in the report, including the backer-clustering checkcode/03_audit_checks.py— reproduces the audit figures quoted in the report textcode/04_duckdb_check.sql— independent SQL recomputation of the headline numbers (report Appendix A)outputs/—analysis_panel.csv,tables/,figures/,CHECKSUMS.txtrun_all.sh— one-command reproduction with checksum verification
data/company_snapshot.csv ──┐
data/accounts_filings.csv ──┼─▶ 01_build_panel.py ─▶ outputs/analysis_panel.csv
data/psc_snapshot.csv ──────┘ │
▼
02_analysis.py ─▶ outputs/tables/ + outputs/figures/
│
03_audit_checks.py ─▶ audit numbers quoted in prose
04_duckdb_check.sql ─▶ independent SQL cross-check
Place the three input CSVs in data/ next to this file, then:
pip install -r requirements.txt # exact tested versions pinned inside
./run_all.shrun_all.sh rebuilds everything and verifies the rebuilt CSVs against
outputs/CHECKSUMS.txt (SHA-256), finishing with an explicit
REPRODUCTION VERIFIED or a non-zero exit. Runs in under two minutes on a
laptop; no network access needed (ECB exchange rates are hard-coded with
their source and retrieval date in 01_build_panel.py). The pipeline is
deterministic: all seven CSV outputs reproduce byte-identically. Figures
regenerate visually identical but embed production timestamps, so they are
not checksummed.
The independent DuckDB cross-check needs the duckdb CLI:
duckdb -c ".read code/04_duckdb_check.sql"Expected: 26204 | 1920 | 36.667 | 22.480 | 23.519 — matching Appendix A.