Data audit
| file | sha256 | notes |
|---|---|---|
| data/sales.csv | 0a53f5e851e31130083cfc70aafd2e2a644eadbc734d6928782d6d6cb60caf53 | 1201 lines = header + 1200 data lines; 5 intended columns; trailing newline present |
| data/metadata.json | 2aefdcfaf936c7a301d4fa32aa05cb04bff46ad2fd34c423a358e423ec47ac8f | n_records=1200, sum_price_cad=471287000, n_by_municipality (5 municipalities), units CAD and m² |
Findings (csv-module parse):
- Field-count distribution: 5 fields: 1165 lines (1164 valid + header), others 1–12 fields: 36 lines.
- 36 data lines (file lines 701–736, sale_id positions S00700–S00735) are garbled random characters (e.g.
S00qz|6y%yw;*!0;...), wrong field count, non-conforming sale_id. Unreadable → excluded, not reconstructed. - 25 valid records have price_cad as quoted "NNN,NNN" (thousands separator). Unambiguous under CSV quoting → parsed by stripping commas, retained.
- 1164 valid records: sale_id unique (no duplicates), all match S\d{5}; municipalities all in control list (Gatineau 335, Laval 274, Sherbrooke 209, Longueuil 187, Levis 159); dates valid ISO 2021-01-01..2022-12-31; price 92,000–1,363,000 CAD; area 39.8–335.9 m²; no missing values.
- sale_id numbers present 1..1200 except exactly 700..735 (contiguous gap matching the garbled block).
- No input violates the availability rules (both files are the permitted inputs).