A CSV has duplicate email rows, blank dates and amounts written with currency symbols. Propose a cleaning contract that does not silently discard information.
Keep the raw file unchanged. Normalize email whitespace and case in a derived column; report duplicate groups rather than deleting them automatically. Preserve blank dates as missing, and reject ambiguous date formats for review. Parse amount and currency into separate fields; do not assume every symbol means the same currency. Produce a row-level change log and a rejected-row file with reasons.
