# Data audit (P1) | file | sha256 | notes | |---|---|---| | data/sales.csv | 0a53f5e851e31130083cfc70aafd2e2a644eadbc734d6928782d6d6cb60caf53 | 1201 lines incl. header, LF endings, trailing newline; 1200 data lines; 5 columns intended | | data/metadata.json | 2aefdcfaf936c7a301d4fa32aa05cb04bff46ad2fd34c423a358e423ec47ac8f | n_records=1200, sum_price_cad=471287000, n_by_municipality (sums to 1200) | Hashes match bundle.json. ## Schema / anomalies (sales.csv) - 1139 lines match the strict pattern `S\d{5},Name,YYYY-MM-DD,int,float`. - 25 lines have price written as a quoted string with comma thousands separator (e.g. `"280,000"`). Under RFC-4180 quoting these parse to exactly 5 fields and the value is unambiguous (all prices are multiples of 1000). **Decision: keep, convert by removing the separator.** - 36 lines (file lines 701–736) are corrupted/garbled (random symbols, wrong field counts, no valid sale_id). Sale IDs S00700–S00735 are absent from the readable records, consistent with these 36 lines being those records. **Decision: exclude; do not reconstruct (information rule).** - Readable records: 1164; no duplicate sale_id; no missing values; all dates valid in 2021-01-01..2022-12-31; price 92,000..1,363,000 CAD; area 39.8..335.9 m²; price/m² 1,321..6,923. No implausible values. - Municipalities (readable): Gatineau 335, Laval 274, Sherbrooke 209, Longueuil 187, Levis 159; shortfall vs control 11/8/7/7/3 = 36. - Units: CAD and m² per metadata note. - No input violates the information-availability rules.