Key Takeaways
- CSV Diff compares two CSV files by a key column and reports added, removed and changed rows.
- You get a match rate plus a downloadable diff in seconds, with no upload.
- Use it to verify exports, audit imports and keep records in sync.
- For reconciliation across many files, Flookup in Google Sheets adds fuzzy matching and merge workflows.
Introduction
Your CRM exports a customer list on Monday and again on Friday. Between the two, people joined, left and changed their details. Finding what changed by hand is slow and error-prone.
The free CSV diff tool does it in one click: load both files, pick a key column and see exactly which rows were added, removed or changed. Open the CSV diff tool.
What CSV Diff Does
Feed it two CSV files and a key column and it reports every difference between them in four categories:
- Added: rows in file B that are not in file A.
- Removed: rows in file A that are missing from file B.
- Changed: rows present in both but with different values.
- Match rate: what share of file B matched file A by key.
Every category is listed in a colour-coded table and the whole diff can be downloaded as a CSV.
A Worked Example
Suppose file A is your user list as exported on Monday:
| id | name | plan |
|---|---|---|
| 1 | Alice | Pro |
| 2 | Bob | Free |
| 3 | Carol | Team |
And file B is Friday's export:
| id | name | plan |
|---|---|---|
| 1 | Alice | Pro |
| 3 | Carol | Enterprise |
| 4 | Dave | Free |
With id as the key column, the diff reports:
| Category | Rows | Why |
|---|---|---|
| Added | id 4 (Dave) | Present in B, not in A |
| Removed | id 2 (Bob) | Present in A, not in B |
| Changed | id 3 (Carol) | Same key, plan changed from Team to Enterprise |
Rows that match on key and match on every value, such as id 1, appear as unchanged. That distinction is what makes a diff useful: an unchanged row is proof an import or export landed correctly, not just a row the tool happened to leave alone.
Why a Key Column Matters
A diff only makes sense if you can say which row in file A "is" which row in file B. The key column is that identity, usually an ID, order number or email.
Rows sharing a key are treated as the same record, so the tool can tell you when that record's other values changed rather than simply treating everything as a new row.
Choose a key that is stable and unique. An order ID generated in one system works well because it never changes. A display name does not, because people are renamed and two rows can share a name. If your data has no natural key, a concatenated set of columns such as email plus country can act as one.
Privacy First
Both files are parsed in a background worker in your browser. Nothing is uploaded, stored or logged, so you can safely diff customer data, payroll and vendor records.
How to Use It
- Load file A (the current version) and file B (the version to compare).
- Confirm the header row setting and choose the key column in each file.
- Press Compare and review the added, removed and changed rows.
- Download the diff CSV if you need a record of the changes.
Reading the Match Rate
The match rate tells you what share of file B was found in file A by key. A high rate with a small set of changes means the export is trustworthy. A low rate usually points to a problem upstream: a different key chosen in each file, a header row treated as data or two files that were never meant to line up. When the rate is lower than you expect, check the header setting first, then confirm both files use the same key column.
Troubleshooting Common Issues
- Everything shows as added or removed: the key column differs between files or one file treats the header as data. Re-check the header toggle and the key selection.
- Duplicate keys: if the same key appears more than once, the tool cannot tell which row is which. Deduplicate or add a second column to the key.
- Encoding or delimiter problems: exports saved with a different delimiter or encoding can misparse. Re-save the file as CSV with a comma delimiter before comparing.
- Trailing whitespace: a stray space in a key makes two identical-looking rows appear different. Trim cells in your spreadsheet before exporting.
When to Use a Diff
- Checking that a CRM or ERP export contains exactly what changed.
- Auditing an import: did every row land and did any get changed?
- Keeping a product, user or inventory list in sync between two systems.
- Verifying a migration by comparing the old export against the new system's export.
- Reviewing a vendor or payroll file for rows that changed after sign-off.
Beyond Two Files
The CSV diff tool compares two files on one key. When you need to reconcile many files, match on fuzzy keys or merge duplicate records, the Flookup Data Wrangler add-on brings matching and merge workflows directly into Google Sheets. See the data cleaning tools for details.
Final Thoughts
A two-file diff is one of the most common data tasks there is and it should take seconds, not a spreadsheet full of VLOOKUPs. CSV Diff gives you added, removed and changed rows with a match rate, plus a downloadable record of every change. Both files stay on your device, so exports from your CRM, ERP or payment processor can be compared without a second thought.
For recurring reconciliations, fuzzy keys or merging duplicates across many files, Flookup Data Wrangler brings the same matching engine into Google Sheets with workflow templates for vendor, order and user-list reconciliation.