# F1-conf-03 — Next-year default and leverage (information-respecting analytic dataset) ## Question How is a firm's leverage at the end of year t associated with default in year t+1, using only information available at the end of year t? Estimand: coefficient b1 on `leverage` in the linear-probability model default_next = a + b1·leverage + b2·cash_ratio + b3·log_sales + e, OLS on firm-years with observed outcome, SEs clustered by firm. The data are simulated (synthetic), not observed. ## Data and exclusions `data/firm_panel.csv` has 2140 data rows (`n_input_rows`). Steps (see `out/exclusions.csv`): 1. Column `rating_2025` removed (0 rows): it is assigned in 2025 from the firm's realised default history through 2022, so it was not known at the end of year t (`variables_excluded`). In the data every default carries rating D and A/B/C firms never default, confirming the leakage. 2. 40 rows that exactly duplicated another row (same firm-year, identical values) dropped → 2100 rows = 300 firms × 7 years (`data_issues`). 3. 300 firm-years with empty `default_next` dropped (all origin year 2022; outcome year 2023 lies beyond the end-2022 data cut). No outcomes imputed. 4. Missing predictors: none (0 removed). Estimation sample: `n_analysed` = 1800 firm-years, `n_firms` = 300, origin years 2016–2021. Predictors: `predictors_used` = leverage, cash_ratio, log_sales. firm_id and year are not regressors (firm_id is used only for clustering). ## Method OLS of default_next on an intercept and the three predictors (statsmodels), with a cluster-robust covariance by `firm_id` (CR1, small-sample factor G/(G−1)·(N−1)/(N−K), 300 clusters). Baseline: unconditional default rate in the estimation sample (`default_rate`). No randomness (`random_seed` = null). Estimates were checked against an independent numpy computation (out/state/checks.md). ## Results - Baseline default rate: `default_rate` = 0.121. - `beta_leverage` = 0.264: holding cash_ratio and log_sales fixed, a 0.1 increase in leverage (debt/assets) goes with about 2.6 percentage points higher probability of default next year. - `r2` = 0.035. Other coefficients, reported in `supplementary` (not required): cash_ratio −0.186, log_sales −0.0073. ## Uncertainty `se_leverage_cluster` = 0.0408 (firm-clustered). The 95% CI is [0.184, 0.344] (`supplementary.ci95_leverage_cluster`), with p < 1e-9 (`supplementary.p_leverage_cluster`). The heteroskedasticity-robust SE without clustering is 0.0374 (`supplementary.se_leverage_hc1`), so clustering makes the SE somewhat larger. ## Limitations and open issues - The result is an association, not a causal effect. The LPM can produce fitted probabilities outside [0,1]. R² is low, so leverage explains only a small share of the variation in default. - Some firms have default_next = 1 in more than one year. The codebook does not say that default is absorbing, so these rows were kept. If default should end a firm's time at risk, the sample definition would change. - Leverage is bounded exactly at 0.02 and 0.95, which suggests truncation in the source. Values were kept as recorded. - Duplicates were treated as assembly errors because the copies were identical on every column, so no conflicts had to be resolved. - Feasibility: complete (`feasibility`).