# 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).