Data audit (P1)
| file | sha256 | notes |
|---|---|---|
| data/sales.csv | 0a53f5e851e31130083cfc70aafd2e2a644eadbc734d6928782d6d6cb60caf53 | 1201 lines (header + 1200 data lines), 5 columns declared, LF line endings, UTF-8 |
| data/metadata.json | 2aefdcfaf936c7a301d4fa32aa05cb04bff46ad2fd34c423a358e423ec47ac8f | n_records=1200, sum_price_cad=471287000, n_by_municipality (5 municipalities); price CAD, area m² |
Findings (sales.csv):
- 36 data lines (file lines 701–736) are garbage: random symbols, 1–12 fields. sale_id sequence S00001–S01200 has exactly the gap S00700–S00735 (36 ids). Municipality gaps vs control: Gatineau 11, Laval 8, Levis 3, Longueuil 7, Sherbrooke 7 (sum 36). Handling: excluded, not reconstructed.
- 25 rows have price_cad as quoted "280,000"-style thousands-separated strings. Handling: kept, converted to integer (unambiguous under CSV quoting; single integer reading). Sensitivity reported.
- Remaining 1164 rows: no empty fields, no duplicate ids, dates 2021-01-01..2022-12-31 all valid, price 92,000–1,363,000 CAD, area 39.8–335.9 m², price/m² 1,321–6,923. No other anomalies.
- No input violates the information-availability rules (both files are permitted inputs).