# Checks (P4) | check | outcome | |---|---| | Clean rerun of out/analysis.py reproduces results.json byte-identically | PASS | | Input SHA-256 unchanged after run | PASS | | beta_ci_low < beta_fe < beta_ci_high | PASS | | se_conventional > 0, se_cluster > 0 | PASS | | LSDV beta_fe equals two-way within-transform beta (diff < 1e-10) | PASS | | n_analysed = n_firms × n_years = 1200 (balanced) | PASS | | exclusion ledger: 1200 − 0 = 1200 = n_analysed | PASS | | manual cluster SE (all dummies counted) equals statsmodels LSDV cluster SE | PASS | | magnitude vs baseline: beta_fe (0.604) differs from beta_pooled (1.268); plausible if firm/year effects correlate with x; se_cluster/se_conventional = 1.38 consistent with within-firm dependence | noted |