F1-conf-03 — Leverage at end of year t and default in year t+1
Question
The question is how leverage at the end of year t relates to default in year t+1, using only information available at the end of year t. The estimand is b1 in the linear-probability model default_next = a + b1·leverage + b2·cash_ratio + b3·log_sales + e. It is estimated by OLS with standard errors clustered by firm. Data are simulated (synthetic panel).
Data and exclusions
- Input:
data/firm_panel.csv, 2140 data rows (n_input_rows). A balanced panel would have 300 firms × 7 years (2016–2022) = 2100 rows. - Column excluded:
rating_2025(variables_excluded). The codebook says it is a 2025 final-vintage rating. It was built from each firm's realised default history through 2022 and its average leverage over the sample, so it was not known at the end of year t and would leak the outcome. It is not used and does not appear inout/analytic.csv. - Row exclusions (
out/exclusions.csv, see alsodata_issues):- Dropped the column
rating_2025: 2140 → 2140. - Removed 40 exact duplicate rows (an assembly error: the same firm-year appeared twice with identical values): 2140 → 2100. No conflicting duplicates remained.
- Removed 300 firm-years with no observed
default_next. All are from 2022, whose outcome year (2023) falls after the data cut. Outcomes were not imputed: 2100 → 1800. - Removed rows missing any predictor: none, 1800 → 1800.
- Dropped the column
- Estimation sample:
n_analysed= 1800 firm-years fromn_firms= 300 firms, covering origin years 2016–2021 (supp_year_range).
Method
Baseline: the unconditional default rate in the estimation sample (default_rate). Main model: OLS of default_next on an intercept, leverage, cash_ratio and log_sales (predictors_used), with the covariance clustered by firm_id (statsmodels, cluster-robust with small-sample correction). The method uses no randomness (random_seed = null). out/analysis.py regenerates every output from data/.
Results
- Baseline default rate: 0.1211 (
default_rate). beta_leverage= 0.2638. Holding cash ratio and log sales fixed, a 0.10 higher leverage ratio goes with about 2.6 percentage points higher probability of default the next year. That is large next to the 12.1% baseline.- Clustered SE = 0.0408 (
se_leverage_cluster). R² = 0.0349 (r2). - Other coefficients, for reference: cash_ratio
supp_beta_cash_ratio, log_salessupp_beta_log_sales, interceptsupp_intercept.
Uncertainty
The firm-clustered 95% confidence interval for the leverage coefficient is [0.184, 0.344] (supp_ci95_leverage_cluster). It excludes zero. The heteroskedasticity-robust (HC1) SE without clustering is reported as supp_se_leverage_hc1 for comparison. Clustering uses 300 firms, enough for the cluster-robust asymptotics to be reasonable.
Limitations and open issues
- This is an association, not a causal effect. With a linear-probability model, fitted values can fall outside [0,1], and the coefficient is an average linear approximation.
- The data are synthetic, so the findings do not describe real firms.
- I assumed duplicates were pure assembly errors because every duplicate is an exact copy. I kept one copy of each.
- The low R² means leverage and the two controls explain little of the firm-year variation in default.
- None of the task's requirements was left unmet:
feasibility= "complete".