# Data audit (P1) | file | SHA-256 | size | |---|---|---| | data/sales.csv | 0a53f5e851e31130083cfc70aafd2e2a644eadbc734d6928782d6d6cb60caf53 | 46836 bytes | | data/metadata.json | 2aefdcfaf936c7a301d4fa32aa05cb04bff46ad2fd34c423a358e423ec47ac8f | 349 bytes | ## sales.csv - UTF-8, pure ASCII, LF line endings, no BOM, trailing newline. Header `sale_id,municipality,sale_date,price_cad,area_m2`; 1200 data lines (1201 lines incl. header). - Comma counts per line: 4 → 1139; 5 → 30 (25 of these are rows with quoted "ddd,ddd" price; the rest garbled); other (0,7–11) → garbled. - 61 lines fail the strict plain pattern: 25 are well-formed rows whose price is a quoted thousands-separated string (e.g. `"280,000"`) – unambiguous under CSV quoting, kept; 36 consecutive lines (data lines 700–735) are random-character garbage, unreadable, excluded. - Readable records: 1164; sale_id unique (no duplicates); ids S00001–S01200 except S00700–S00735 (contiguous block of 36). - Municipalities: Gatineau 335, Laval 274, Sherbrooke 209, Longueuil 187, Levis 159 (all in control list). Control minus observed: 11, 8, 7, 7, 3 = 36. - sale_date 2021-01-01 … 2022-12-31, all valid ISO dates. price_cad 92,000–1,363,000 CAD (integers). area_m2 39.8–335.9 m². price/m² 1,320–6,923 CAD/m²: no implausible values. No missing values in readable rows. ## metadata.json - n_records 1200, sum_price_cad 471,287,000, n_by_municipality sums to 1200. Units: CAD, m². ## Information availability - No input violates the rules. Garbled lines will NOT be reconstructed (their ids/municipalities are inferable only as aggregates and are not used to impute records).