Compare two CSV files
Find added, removed, and changed records between two snapshots. The free tool runs in your browser, without an account.
Start with an example
- Open the tool and choose Try an example instead in both panels.
- Choose
order_idas the matching column. - Keep the comparison columns selected and choose Compare files.
- You should see 1 added, 1 removed, 1 changed, and 2 unchanged records.
You can download the old sample and new sample to try the upload flow.
Match your own records
Export both snapshots as UTF-8, comma-delimited CSV. Upload the earlier snapshot as the old file and the later snapshot as the new file. Pick an ID column present in both files. Each key must be non-empty and unique within its file. Row order does not matter.
Select at least one other shared column to compare. Column names must match exactly, including spaces and letter case. Columns found only in one file are listed and excluded from comparison.
Understand the results
- Added means the key appears only in the new file.
- Removed means the key appears only in the old file.
- Changed means the key is in both files, but at least one selected field differs.
- Unchanged means the selected fields match. Excluded fields can still differ.
Values compare as case-sensitive text. 500 and 500.00 are different, as are 00123 and 123. Leading and trailing spaces count unless you enable the trim option. Trimming also applies to keys and may reveal duplicates.
Supported files and limits
- UTF-8 CSV with commas as separators. Quoted commas, escaped quotes, multiline cells, and Unicode text are supported.
- Up to 2 MiB per file (2,097,152 bytes, shown as 2 MB in the tool).
- Up to 50,000 data records, 100 columns, and 250,000 data cells per file. All limits apply together.
- Header-only files are valid. Fully empty records are ignored. Empty or repeated headers and inconsistent field counts are rejected.
- Excel workbooks, alternate separators, fuzzy matching, and multiple-column matching keys are not supported yet.
Performance depends on your browser and device. Background workers keep processing separate from the interface, but memory limits still apply. Use smaller files on constrained devices. Cancel processing or reload the page if needed.
Download reports
Added and removed reports retain their source file's column order. Changed fields has one row for each field difference, with matching key, column, old value, and new value. Summary contains counts for all four categories. Reports include the whole category, even if the table shows only one page or a different filter. Empty categories produce headers only.
Exports use UTF-8 with a byte order mark. Formula-like cells receive a leading apostrophe for spreadsheet safety; this changes their exported text. Import columns as text to avoid spreadsheet software reformatting IDs or dates. This tool is a comparison aid: check important reconciliation results before relying on them.
Fix common errors
- Duplicate key: select another unique column or correct the duplicates in the source file.
- No shared columns: make header names match exactly.
- Encoding error: export the file as UTF-8 CSV.
- Wrong field count: check delimiters and quoting; commas inside values need CSV quotes.
- File too large: split it into smaller files or reduce unused columns.
Send feedback
Report a problem or suggest an improvement on GitHub. GitHub sign-in may be required. Do not attach private files or personal records. Use a small made-up example.