CSV Diff Checker

Compare two CSV or TSV inputs by primary key column(s) or row index to inspect added, removed, and cell-level modified records.

Private by architecture: All processing is 100% client-side memory. Your data never leaves this browser tab.

CSV Inputs

Diff Summary & Cell Breakdown

Added in B
0
Removed from A
0
Modified
0
Unchanged
0
Paste two CSVs above or click Load Sample to inspect differences.

About This Tool

Compares two CSV or TSV datasets by matching rows on one or more primary key columns (or row position when no key is specified) so reordered rows do not trigger false diffs.

Classifies every record as Added, Removed, Modified, or Unchanged with cell-by-cell before/after values and exports a plain-text diff report.

Key Features

  • Primary key matching: Match rows using one or more key columns (e.g. id or sku,region) so row reordering does not cause false positives.
  • Cell-level diff breakdown: Highlights only the specific columns that changed inside modified rows alongside before and after values.
  • Summary counters & status filter: View total Added, Removed, Modified, and Unchanged counts and filter the diff table to changes only.
  • Exportable diff report: Copy or download a structured text summary of all added, removed, and modified records.

Frequently Asked Questions

Why should I set a Primary Key column instead of comparing line by line?
In a line-by-line text diff, inserting or sorting a single row shifts every subsequent line and marks the rest of the file as changed. Matching on a primary key column pairs records by their ID regardless of row order.
Can I use a composite primary key across multiple columns?
Yes. Enter comma-separated column names (for example user_id,date) in the Primary key column(s) field.
What happens if one CSV has a new column not present in the other?
The comparator merges the header union from both inputs and treats missing columns in the older CSV as empty strings.
Are my CSV files uploaded to a server?
No. All parsing and comparison run locally in your browser.