Verification checks (P4) — all PASS
- Clean re-run (deleted results.json, analytic.csv, exclusions.csv; reran): results.json byte-identical; analytic/exclusions SHA-256 identical. PASS
- analytic.csv rows = n_analysed (1800); distinct firms = n_firms (300). PASS
- analytic.csv columns = firm_id, year, leverage, cash_ratio, log_sales, default_next; no rating_2025. PASS
- Ledger: n_before − n_removed = n_after every row; chained; first n_before = 2140 = n_input_rows; last n_after = 1800 = n_analysed. 2140−40−300 = 1800. PASS
- se_leverage_cluster > 0; CI95 contains beta. PASS
- default_rate equals mean of default_next in analytic.csv (0.121111). PASS
- Max origin year in sample 2021 (all outcomes realised by end-2022 cut); no duplicate firm-year; no NaN. PASS
- 0 ≤ R² ≤ 1 (0.0349). PASS
- Magnitude: beta 0.264 per unit leverage => +0.026 per 0.10 leverage, vs baseline default rate 0.121 — plausible. Cluster SE (0.0408) > non-robust SE (0.0358), as expected with within-firm correlation. PASS
-
- Report numbers cross-checked against results.json (floor count corrected 57→54 for estimation sample). PASS