CSV cleanup / checked output

Every row accounted for.

Source: messy_customers.csv. The source file was read, never edited.

8Rows read
5Ready
1Duplicates removed
2Need review

8 input rows = 5 ready + 1 duplicate + 2 for review.

Spreadsheet safety: CSV values are not sanitized for formulas. Import untrusted columns explicitly as text before opening these CSV files in spreadsheet software.

Files to use

cleaned.csv
Rows with the expected number of columns. Values stay text, including IDs with leading zeroes.
review.csv
Rows with missing or extra cells, with their original values and source record number.
audit.jsonl
One event for each changed, removed or quarantined record.
summary.json
Counts, settings and the source fingerprint.

What was applied

Trim outer whitespace: yes. Remove exact duplicate rows: yes. Cells changed: 3.

Duplicates use every cell, after optional trimming. The first matching record is kept. No names, dates, numbers or currencies were inferred.

View the source and quick start on GitHub