1step,rule,n_before,n_after,n_removed,rationale21,row parses into exactly 5 CSV fields,1200,1164,36,rows with wrong field count are corrupted (garbled bytes); content cannot be read unambiguously32,sale_id matches S + 5 digits,1164,1164,0,malformed identifier indicates a corrupted record43,municipality in control-total list,1164,1164,0,unknown municipality indicates a corrupted record54,sale_date is a valid ISO date,1164,1164,0,unreadable date65,price_cad is a positive integer (optionally with thousands separators inside quotes),1164,1164,0,unreadable price76,area_m2 is a positive number,1164,1164,0,unreadable area87,sale_id unique,1164,1164,0,duplicate records would double count9