# Data audit | file | sha256 | rows (excl. header) | cols | |---|---|---|---| | data/firm_panel.csv | a1f1af88b1ab05900155991f2468cce09695af978923e5bc3ef9c28d45683b6f | 2140 | 7 | | data/README.md (codebook) | 26573e982ab6ca9e7f90d2b89bd2878aa6a670f90da21496bff787b59216b9a2 | – | – | Schema: firm_id (str, F### pattern, 300 distinct), year (int 2016–2022), leverage (ratio, 0.02–0.95), cash_ratio (ratio, 0.0046–0.7406), log_sales (log thousand USD, 1.29–8.88), rating_2025 (A/B/C/D, constant within firm), default_next (0/1, 307 empty). - Missing: only default_next, 307 rows, all year 2022 (outcome 2023 is after the end-2022 cut). After de-duplication: 300. - Duplicates: 40 rows exactly identical to another row on all columns; 40 duplicated (firm_id, year) keys; no conflicting duplicates. After removal: 2100 rows = 300 firms × 7 years, balanced. - Range anomalies: none (ratios in [0,1], no negatives). - Information availability: rating_2025 known in 2025 and built from realised defaults through 2022 → violates rule; excluded. Diagnostic: default rate is 0 for A/B/C and ~0.227 for D (leakage). - Observation: firms can default in several years (up to 4 defaults per firm); the codebook defines default per year and gives no exit rule, so rows are kept as given (noted as limitation).