F1-conf-03 — Leverage and next-year default (information-respecting)
Question
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: the coefficient on leverage in the linear-probability model default_next = a + b1·leverage + b2·cash_ratio + b3·log_sales + e, estimated by OLS with firm-clustered standard errors. The data are simulated (synthetic panel), not observed.
Data and exclusions
Input data/firm_panel.csv: 2140 data rows read (n_input_rows). Ledger (out/exclusions.csv):
- Column
rating_2025dropped (0 rows removed): it is a 2025 final-vintage rating built from the firm's realised default history through 2022 and its sample-average leverage, so it was not known at the end of year t and would leak the outcome (variables_excluded). - 40 exact duplicate rows removed (assembly error; 2140 → 2100 = 300 firms × 7 years) (
supp_n_exact_duplicates). - 300 firm-years with missing
default_nextremoved (all origin year 2022: outcome year 2023 lies after the end-2022 data cut); no imputation (2100 → 1800). - Missing predictors: none (1800 → 1800).
Estimation sample: n_analysed = 1800 firm-years, n_firms = 300, origin years 2016–2021 (supp_years_analysed). Detected data problems and how each was handled are listed in data_issues. These include a mass point of leverage at 0.02, which I kept as recorded.
Method
OLS of default_next on a constant, leverage, cash_ratio and log_sales (predictors_used). Standard errors are clustered by firm_id (300 clusters, supp_n_clusters) using statsmodels' CR1 small-sample correction. I re-derived the coefficient and SE independently with numpy and got the same values (out/state/checks.md). Nothing in the analysis is random (random_seed = null). Baseline: the unconditional default rate in the estimation sample (default_rate).
Results
- Baseline default rate: 0.121 (
default_rate). beta_leverage= 0.264. Holding cash ratio and log sales fixed, a firm with 0.10 higher debt/assets at the end of year t has a default probability in t+1 that is about 2.6 percentage points higher. That is large next to the 12.1% baseline.- Other coefficients (
supp_coefficients): cash_ratio −0.186, log_sales −0.0073, intercept 0.090. r2= 0.035.
Uncertainty
- Firm-clustered SE of
beta_leverage: 0.0408 (se_leverage_cluster). The 95% CI is [0.184, 0.344] (supp_ci95_leverage_cluster) and p ≈ 1e-10 (supp_pvalue_leverage_cluster). - The heteroskedasticity-robust SE without clustering is 0.0374 (
supp_se_leverage_hc1), so clustering makes the SE only slightly larger.
Limitations and open issues
- The estimate is a descriptive conditional association from a linear-probability model. It is not a causal effect. LPM fitted values can fall outside [0,1].
- The 2022 origin year cannot be used because its outcome had not been observed by the data cut, so the result applies to origin years 2016–2021.
- I dropped duplicate rows on the assumption that they are verbatim copies created when the file was assembled; all duplicates were identical in every field.
- The leverage mass point at 0.02 may reflect a floor or clipping in the source. I did not correct for it.
- The low R² (0.035,
r2) means these three accounting ratios explain little of the firm-year variation in default. - Feasibility: complete (
feasibility).