Edit CSV files without silent surprises

Open the table, edit cells, filter rows, calculate columns and build repeatable transformations. CSVProof shows how the file is interpreted, what changed, and why.

Private early access · macOS & Windows

Product previewView and edit the CSV
CSVProof
Local file
vendor-september.csv×
DataTransformCompareIssues 6RecipeRun report
12,481 rows6 columns · text preserved
Edited cells: 2
F2= quantity * unit_priceCalculated column
customer_iditemquantityunit_priceline_total
1001234Shipping box124.5054.00
2001235Label roll812.0096.00
3001236Paper tape243.2076.80
4001237Packing slip49.2537.00
5001238Return label67.5045.00
Text values remain textUTF-8 · comma · CRLF2 unsaved edits
OpenVerifyCompareReviewRepeatProve

CSV is simple until correctness matters

Values that look numeric are not always numbers. A line is not always a record. And two exports can describe the same customers in a completely different order.

CSVProof keeps the raw value and its interpretation in view, so a convenient guess does not quietly become a business decision.

CSV says001234819200450000018703/04/26=2+2
Spreadsheet may show12348.192E+154 Mar 20264

From incoming file to defensible output

CSVProof joins the steps that usually disappear between opening a CSV and sending the result downstream.

Product previewView and edit the CSV
CSVProof
Local file
vendor-september.csv×
DataTransformCompareIssues 6RecipeRun report
12,481 rows6 columns · text preserved
Edited cells: 2
F2= quantity * unit_priceCalculated column
customer_iditemquantityunit_priceline_total
1001234Shipping box124.5054.00
2001235Label roll812.0096.00
3001236Paper tape243.2076.80
4001237Packing slip49.2537.00
5001238Return label67.5045.00
Text values remain textUTF-8 · comma · CRLF2 unsaved edits

No invisible import wizard

Encoding, delimiter, quote rules, newlines, headers and row width are a visible parser contract. Confirm the assumptions before they become changes.

Understand CSV parsing
Product previewTable with visible parsing
CSVProof
Local file
vendor-september.csv×
DataTransformCompareIssues 6RecipeRun report
EncodingUTF-8
DelimiterComma
QuotesDouble quote
NewlinesCRLF
HeaderRow 1
Row width2 issues
customer_idnameopenedaccount_ref
1001234Northwind AB03/04/268192004500000187
2001235Acme Goods2026-09-18004912
3001236Meridian Supply2026-09-19004915
1837 of 8 fieldsMalformed recordReview issue!
12,481 recordsValues displayed exactly as parsed6 issues

Compare records, not lines

Select the column, or combination of columns, that identifies a record. Reordered rows stay unchanged. Added, removed, changed and duplicate records become clear.

See keyed CSV comparison
Product previewKeyed record comparison
CSVProof
Local file
vendor-september.csv×
DataTransformCompareIssues 6RecipeRun report
Compare bycustomer_id
September to August
12,201Unchanged
184Added
93Removed
41Changed
3Duplicate keys
Statuscustomer_idnamecountry beforecountry after
Changed001284Nord ASNOSE
Added001309Atlas GoodsDK
Duplicate001177Meridian SupplyNONO
Removed001101Old HarbourGB

Change and calculate with a preview

Trim text, map values, filter records, join lookups and calculate new columns as explicit transformation steps. See the resulting table before you apply or save anything.

Product previewTransform and calculate
CSVProof
Local file
vendor-september.csv×
DataTransformCompareIssues 6RecipeRun report
Build a repeatable transformEvery change previews against the table
Trim whitespacename, item228 cells
Calculate line_totalquantity * unit_price12,481 cells
Map country codescountry_lookup.csv4 misses
Keep active recordsstatus = active93 removed
line_totalquantity * unit_pricePreview
customer_idquantityunit_priceline_total
001234124.5054.00
001235812.0096.00
001236243.2076.80
00123749.2537.00

Review what needs judgment

Most runs should not require scanning every row. Duplicate keys, malformed records, lookup misses and parser drift arrive in one exception queue with an explicit decision.

See validation beyond syntax
Product previewReview table exceptions
CSVProof
Local file
vendor-september.csv×
DataTransformCompareIssues 6RecipeRun report
6 issues need a decision12,475 rows pass
Duplicate customer_idChoose the row to keep
Keeprowcustomer_idname
177001177Meridian Supply
902001177Meridian Supply AS

Do it once, replay it

Turn an approved cleanup into a readable recipe instead of a remembered sequence of spreadsheet clicks. The same parser contract, rules and output format run again next week.

Product previewSaved repeatable workflow
CSVProof
Local file
vendor-september.csv×
DataTransformCompareIssues 6RecipeRun report
Vendor Import v4Last run 17 Sep 2026
Ready to run
Require unique customer_idcontractRequired
Trim name and addresstransform228 cells
Calculate line_totalquantity * unit_priceFormula
Join account lookupone to one match4 misses
Write UTF-8, comma, CRLFoutput formatOutput
Expected result
Rows read12,481
Rows ready12,475
Issues6
Changed cells228

Know exactly what happened

Each run ends with the output and a record of the input, parser contract, recipe version, exceptions, counts and hashes. That is the paid product endpoint, not another prettier grid.

Read the safety benchmark
Product previewOutput and run evidence
CSVProof
Local file
vendor-september.csv×
DataTransformCompareIssues 6RecipeRun report
Run completeVendor Import v4
Output verified
RUN 2026-09-24 / 09:42

12,475 records released

6 exceptions reviewed · 3 records rejected

Input
vendor-september.csv
9ef4…a813
Parser contract
UTF-8 · comma · CRLF
v2
Recipe
Vendor Import
v4
Changes
228 values in 184 records
reviewed
Output
vendor-september-clean.csv
4b28…9c0f

Buy the version, keep the version

Expected one-time pricing is $99 Personal and $199 Business, with perpetual use of the purchased major version. No subscription invented for files that stay on your computer.

Make the next CSV run easier to trust

CSVProof is currently in private early access for macOS and Windows.

Get early access