Advanced Free CSV Diff Tool — 10+ Features for Fast Comparison

Find added, deleted, and modified rows. 100% browser-based. With 10+ features, filters, and column operations.

Old CSV

Drop CSV or click

.csv or .txt

New CSV

Drop CSV or click

.csv or .txt

Your files never leave your browser

Every diff runs 100% client-side — no upload, no server, no storage. Close the tab and it's gone.

What you can do here

Smart row matching

Pick any column as a key — duplicates and mismatches are flagged automatically.

Full / Inner / Left / Right join

Compare exactly the rows you care about, just like a database join.

Numeric tolerance

Ignore tiny float rounding — set a threshold so 100.001 ≈ 100.002.

Advanced filters

Sort, filter by condition, hide columns, export just the rows you need.

Cross-column analysis

Find common, duplicate, or unique values between any two columns.

Git-style merge

Resolve conflicts row-by-row: take old, new, both, or skip.

Free · Browser-Based · No Signup

Compare two CSV files online and see exactly what changed

This CSV diff tool compares an old and a new CSV file and reports added, deleted, and modified rows in secondsmatched by a key column you choose, not by line position. It's built for developers, data analysts, QA engineers, and anyone who reconciles database exports, product catalogs, or payroll files and needs to know precisely what moved, without manually scanning spreadsheets or wrestling with fragile VLOOKUP formulas. Every comparison runs entirely in your browser.

0Files uploaded to a server
2Types to Export (CSV or JSON)
3Datatypes supported (String, Number, Boolean)
4Join modes — Full, Inner, Left, Right
1M+Rows handled via chunked parsing

Features

Twelve capabilities, one tool. Tap any feature to see what it actually does.

Key-column matching

Match rows by id, email, or SKU — not line position.

Pick any column as the unique identifier. Reordered or resorted exports are matched correctly instead of producing false differences.

How to compare two CSV files

Five settings determine the entire result. Here's what each one actually does.

Upload your Old CSV and New CSV

Drop in the original file on the left and the updated version on the right. Both files are read with chunked, in-browser parsing, so even exports with hundreds of thousands of rows load without freezing the page — and nothing is ever sent to a server.

Why it matters: parsing in the browser means there’s no upload size limit and no privacy risk — your data stays on your device.

Choose a key column

Pick the column that uniquely identifies each row — id, email, SKU, order number, or any column where every value (or combination of values) is distinct. This is the single most important setting in the whole tool.

Why it matters: the key column is what lets the tool match rows by identity instead of by line position, so a reordered or resorted export never produces a false "deleted + added" pair.

Pick a join mode

Full shows every row from both files. Inner shows only keys present in both. Left keeps every row from the Old file. Right keeps every row from the New file — the same four options a SQL JOIN gives you.

Why it matters: join mode controls which rows even enter the result set, before any cell-level comparison happens — get this wrong and you’ll see rows you didn’t mean to include, or miss ones you did.

Tune comparison rules

Toggle case sensitivity, ignore whitespace, set a numeric tolerance for rounding differences, treat empty/null/placeholder values as equal, or add noisy columns like LastUpdated to the ignore list.

Why it matters: these toggles run before equality is checked, so they decide what counts as "the same value" — skipping them is the #1 reason a diff shows false positives.

Read the result, then merge or export

Review added, deleted, modified, and unchanged rows with cell-level old-vs-new highlighting. Resolve each change in the Merge tab (take old, new, both, or skip), or export the full report as CSV or JSON.

Why it matters: the diff is the analysis, but merge and export are how you act on it — without writing a single formula.

Real examples

Three situations that look identical to a plain text diff, but resolve differently here.

Price list update

sku:SKU-1042
price:19.99
stock:120
sku:SKU-1042
price:21.50
stock:85

Modified — 2 fields changed

Both price and stock changed for the same SKU, so the row is flagged modified with both old and new values shown side by side.

Row reordered, not changed

id:7
name:A. Patel
dept:Finance
id:7
name:A. Patel
dept:Finance

Unchanged — matched by key, not position

Even if this row moved from line 40 to line 612 in the export, key-based matching on id finds it instantly and reports no change.

Rounding difference within tolerance

metric:CTR
value:4.1300
metric:CTR
value:4.1296

Unchanged — within 0.01 tolerance

With numeric tolerance set to 0.01, this 0.0004 difference is treated as the same value instead of a false modification.

Frequently asked questions

Everything you need to know about comparing CSV files with this tool.

Upload your old CSV and new CSV into the two drop zones, choose a key column such as ID or Email to match rows, and the tool instantly shows added, deleted, modified, and unchanged rows. Everything runs in your browser, so there is no file size limit imposed by a server and no signup required.
Use Cases

Common ways people use this tool

Compare, validate and audit structured datasets without scripts.

Reconcile database exports after migration

Verify ETL changed only expected rows

Track supplier price / stock changes

Audit config CSV before deployment

Compare payroll exports month to month

Check CRM export vs backup

Confirm bulk import dropped no rows

Spot duplicate customer records

UntangleTools Logo
UntangleTools Logo
UntangleTools Logo