Compare CSV files
Upload two exports and see which rows were added, removed or changed. Your data is read locally and never leaves your browser.
Text comparison tool
Paste text into both panes, then press Compare.
Comparing spreadsheet exports
CSV is the format almost every system will export to, which makes it the natural common ground when you need to know what changed between two snapshots of the same data. A customer list from last month against this month, two versions of a product catalogue, an inventory count before and after a stock take.
Because each CSV record occupies one line, line-level comparison maps cleanly onto rows. A changed row shows up as a modification with the old values on the left and the new ones on the right. A row that only exists in one file shows as an addition or a deletion.
Sort both files first
This is the single most useful piece of advice for CSV comparison. A diff aligns lines in order, so if the two exports list the same records in a different sequence, almost every row will be reported as changed even though the underlying data is identical.
Sort both files by the same key column — usually an ID — before comparing. In a
spreadsheet that is one sort operation; on the command line it is one
sort call. Do that and the comparison goes from unreadable to obvious.
Keep the header row in both files so the columns stay aligned.
Finding which field changed
Line granularity tells you a row changed. To find out which column, switch to word or character granularity — the highlighting then narrows to the specific value that differs rather than the whole row.
This is especially useful for wide exports with twenty or thirty columns, where visually scanning a modified row for the one altered cell is genuinely slow. At character granularity a changed postcode or a flipped digit in an amount becomes immediately visible.
Why local processing matters for data exports
CSV exports are, by their nature, the files most likely to contain personal information — names, email addresses, phone numbers, order histories, salaries. Under GDPR and similar regimes, sending that data to a third-party service is a processing activity you would need a basis for.
Here there is no transfer to consider. The file is read by your browser and compared on your own machine. You can verify it: open developer tools, watch the Network tab, and run a comparison. Nothing is sent.
Handling large exports
Exports of tens of thousands of rows work, though very large files take a moment because the processing happens on your device. If a file exceeds the 5 MB upload cap, split it or filter to the columns you actually care about first. There is no monthly quota — compare as often as you need.
Comparing CSV — common questions
Is my text uploaded to a server?
No. The entire comparison runs in your browser using JavaScript. Your text is never transmitted, logged or stored anywhere. You can verify this yourself: open your browser developer tools, switch to the Network tab, and run a comparison — no request carrying your text will appear. The only network activity is the page itself and, if enabled, analytics and advertising scripts, none of which receive what you typed.
How do I compare CSV files?
Upload both CSV files and use line comparison, which aligns naturally with CSV rows. Each changed row is highlighted, and switching to word or character granularity shows precisely which fields within a row differ. Large exports work fine — the comparison is limited only by your browser, not by a server quota.
Is there a limit on how much text I can compare?
There is no artificial limit. Uploaded files are capped at 5 MB to keep the browser responsive, but pasted text has no cap. Very large inputs — tens of thousands of lines — will take a moment to process because the work happens on your own device rather than on a server.
How do I ignore whitespace when comparing?
Tick the "Ignore whitespace" option before comparing. This collapses runs of spaces and tabs and trims each line, so differences in indentation or trailing spaces are not reported. There are matching options to ignore letter case and to ignore blank lines.
Can I download the comparison result?
Yes. Use the Download button to save the result as a plain text file in unified diff format, with minus and plus prefixes marking removed and added lines. You can also copy the result to your clipboard.