Data audit (P1)
File: data/firms.csv, SHA-256 78f119a92d7c11aebb8c238c69d62687a80d91031f1e8a30fb412b9e77e1625a (matches bundle.json).
- 445 data rows + header, 5 columns: firm_id (str, format F####), sector (str), revenue (float, unit per row), unit (str), employees (int).
- No leading/trailing whitespace in any cell. No dates in the file.
- sector: services 124, manufacturing 122, retail 76, technology 75, energy 48 (raw rows). Five sectors, consistent spelling.
- unit: USD_millions 378 rows, USD_thousands 67 rows. Thousands rows have mean 199,224 (≈199 M USD after /1000), consistent in magnitude with millions rows (mean 260.9) → mixed units confirmed; converted by /1000.
- revenue: 7 empty cells (raw rows), all with unit USD_millions; all non-empty values parse as numbers; min 5.742, max 1,005,760 (thousands). No negatives.
- employees: no missing, all integers, range 19–7953.
- Duplicates: 45 rows duplicate an earlier firm_id; all 45 are exact full-row duplicates (no conflicting records). After deduplication: 400 rows = 400 distinct firm_id.
- Missing revenue after dedup: 6 distinct firms (F0399 appeared twice with empty revenue).
- Plausibility: revenue per employee after conversion ranges 85.9k–826.9k USD, no outliers suggesting mislabelled units.
- Information-availability: only input is data/firms.csv; no violation.