# F1-conf-03 — Leverage and next-year default (information-respecting) ## Question How strongly is a firm's leverage at the end of year t associated with default in year t+1, after conditioning on cash_ratio and log_sales? Only information known at the end of year t may be used. The estimand is b1 in the linear-probability model default_next = a + b1·leverage + b2·cash_ratio + b3·log_sales + e, estimated by OLS with standard errors clustered by firm. The data are simulated (synthetic). ## Data and exclusions - Input: `data/firm_panel.csv`, 2140 data rows (`n_input_rows`). - `rating_2025` was removed. It was assigned in 2025 from each firm's realised default history through 2022, so it contains the outcome. In years before 2022, ratings A, B and C have a 0 % default rate and D has about 23 % (see `out/state/data_audit.md`). That makes it target leakage (`variables_excluded`). - 40 exact duplicate firm-year rows were dropped. These were assembly errors; after dropping them the panel is balanced, 300 firms × 7 years (`data_issues`). - 300 rows have no observed `default_next`. These are all from origin year 2022, whose outcome year (2023) falls after the data cut. They were excluded, not imputed (`data_issues`, `out/exclusions.csv`). - No predictor values were missing. - Estimation sample: `n_analysed` = 1800 firm-years from `n_firms` = 300 firms, covering origin years 2016–2021. Every step appears in `out/exclusions.csv`: 2140 − 40 − 300 = 1800. ## Method - Baseline: the unconditional default rate in the estimation sample (`default_rate`, also `baseline_default_rate`). - Main model: OLS linear-probability model on `predictors_used` = leverage, cash_ratio, log_sales, plus an intercept. Standard errors are cluster-robust by `firm_id`, using statsmodels' default small-sample correction (`n_clusters` = 300). - The analysis uses no randomness (`random_seed` = null). `out/analysis.py` regenerates every output deterministically. ## Results - Baseline default rate: 0.1211 (`default_rate`). - Leverage coefficient: `beta_leverage` = 0.2638. A 0.10 increase in leverage goes with about 2.6 percentage points higher next-year default probability, holding cash_ratio and log_sales fixed. - Other coefficients: `beta_cash_ratio` = −0.1859, `beta_log_sales` = −0.0073, `intercept` = 0.0900. - In-sample fit: `r2` = 0.0349. ## Uncertainty - Firm-clustered SE: `se_leverage_cluster` = 0.0408. The 95 % CI is [0.1839, 0.3437] (`ci95_leverage_cluster`), with p ≈ 1e-10 (`p_leverage_cluster`). - The classical (non-clustered) SE is 0.0358 (`se_leverage_classical`). The clustered SE is somewhat larger because outcomes are correlated within firms. ## Limitations and open issues - This is a descriptive conditional association, not a causal effect. - A linear-probability model can produce fitted values outside [0, 1], and its errors are heteroskedastic. The cluster-robust SE accounts for the heteroskedasticity. - Leverage has a mass point at its minimum value of 0.02 (54 estimation firm-years), which suggests flooring or censoring in the extract. These values were kept as recorded (`data_issues`). - Origin year 2022 cannot be used because its outcomes are not yet observed. - Year effects are not included, because the specified model does not include them. - The data are synthetic, so these results say nothing about real firms. - Feasibility: `feasibility` = "complete".