Why manual csv diff fails on real files
Comparing last week’s price list with this week’s by cutting and pasting into two columns, then scrolling for cells that look different. At a few hundred rows, people stop checking and start assuming.
You see this most often in supplier price updates, inventory snapshots, catalogue migrations. Row order changes between exports, so a positional comparison reports every row as different.
What actually goes wrong
Manual handling fails in a specific way: it does not produce obviously broken output, it produces output that is almost right. Row order changes between exports, so a positional comparison reports every row as different. The mistake survives review because nothing looks wrong until an importer rejects the file or a report is quietly incorrect.
A cheaper habit
Check the file before it leaves your machine. That is the entire purpose of CSV Diff — it reads the data you paste, applies the same rules an importer would, and shows the row that will break, rather than a summary of how many rows broke.
Reporting changed, added and removed counts separately means you can tell a repricing from a product launch before reading a single row.
For the full picture — imports, feeds, variants, identifiers — see the pillar guide: Shopify product data management.
Try it on your own file
Open CSV Diff and paste a sample. It is free, it does not store anything, and you do not need an account. If the file is sensitive, save the page locally and run it offline.
Questions people ask
How are rows matched?
By the first column (usually id), not by position — so reordering does not create false differences.
Does it show which column changed?
Yes, each changed row lists the column, the old value and the new value.
CSV Diff — free, runs in your browser, nothing uploaded.
Open CSV DiffDealing with a messy supplier table? Our free Chrome extension expands merged cells into complete rows and keeps leading zeros as text, then exports a Shopify-ready CSV — no Excel round-trip.
Get the ExtensionFree for 10 rows per table. $9 once for unlimited.