SYSTEM TIME --:--:-- IST · 152 TOOLS LIVE · RUNS IN YOUR BROWSER — NOTHING UPLOADED
← Back to DATA TOOLS
DATA TOOLS

Compare Two CSV Exports (Row-Aware Diff)

Compare two CSV exports pulled at different times and see exactly what changed.

🔒 Nothing you enter on this page is sent anywhere.

This tool runs entirely as JavaScript in your browser. both CSV files you load is never transmitted over the network to this site's server or any third party, and is never written to a cookie, to browser storage, or to any log — there is nothing on our end to breach, subpoena, or accidentally leak, because it was never received in the first place. Closing or refreshing this tab clears it completely.

This describes only what this specific tool does with what you type into it. It doesn't cover the rest of this site — see the Privacy Policy for how analytics and advertising cookies are handled elsewhere.

About this tool

Load two CSV exports — an older one and a newer one — and see exactly which rows were added, which were removed, and which changed, down to the specific column that's different. This is different from a plain text diff (like this site's Diff Checker), which only compares line by line and has no idea that two files are really the same table with rows in a different order — a CSV diff needs to match rows by identity, not by position.

That's what the key column is for: pick whichever column uniquely identifies a row (an ID, an email, an order number) and rows are matched across both files by that value, regardless of what order they're in or whether rows were inserted or deleted in between. Once rows are matched, every other column is compared cell by cell, so a row that moved to a different position in the file but didn't actually change any values is correctly shown as unchanged, not as a false add-and-remove pair.

Useful for comparing two exports of the same data pulled a day (or a month) apart, checking what a script or import actually changed, or reviewing a data migration before trusting it. Nothing here touches a server — both files are parsed and compared entirely in your browser, and nothing is saved between visits.

Frequently asked questions

Why do I need to pick a key column — can’t it just compare row by row?

If it compared purely by position, a single inserted or deleted row partway through the file would make every row after it look changed, even though nothing about them actually is. Matching by a unique key (like an ID) correctly follows each real-world row even if its position shifted.

What if the two files don’t have the same columns?

That’s fine — columns that exist in one file but not the other are still compared, and show up as a difference (going from a value to blank, or blank to a value) for any row that has one but not the other.

Does this upload my files anywhere?

No — both files are parsed and compared entirely in your browser. Nothing is uploaded to a server.

What counts as "changed" if a value looks the same but formatted differently, like 500 vs 500.0?

Values are compared as text after parsing, so 500 and 500.0 would currently show as changed even though they represent the same number — worth knowing if your export tool is inconsistent about number formatting between runs.

Can I compare TSV files too, not just CSV?

Yes — the delimiter (comma, tab, semicolon, or pipe) is detected automatically for each file, the same as the CSV SQL Query Tool.

Other countdown scenarios

Related tools