Contract — F1-conf-03
Question: association between end-of-year-t leverage and default in t+1, using only information known at end of year t. Estimand: b1 in OLS LPM default_next ~ 1 + leverage + cash_ratio + log_sales on firm-years with observed outcome; SE clustered by firm_id. Meaningful as a conditional association (not causal); LPM with clustered SE robust to heteroskedasticity / within-firm correlation. Outputs: out/results.json (task_id, n_analysed, n_firms, predictors_used, variables_excluded, beta_leverage, se_leverage_cluster, r2, default_rate, feasibility, feasibility_reason, data_issues, n_input_rows, random_seed); out/analytic.csv; out/exclusions.csv; out/report.md (6 sections); out/analysis.py; out/claims.json. Information rules: predictor allowed only if known at end of year t (codebook). rating_2025 known 2025 and built from realised defaults -> excluded. Rows with missing default_next excluded, not imputed. Only data/firm_panel.csv. Invalidity: using rating_2025; imputing outcomes; keeping duplicate firm-years; conflicting duplicates that cannot be resolved; missing required columns.