Turn CSV differences
into a clear
pass or fail.
Row counts can match while values change. Match records by one or more keys, set the amount differences you accept, and save a readable report for each export. Your files stay on your machine.
New to CSV migration checks? Start with the worked example →
Python 3.11+ · Standard library only · macOS and Ubuntu tested
Prefer an app or need Excel files? ExportCheck Desk compares CSV and XLSX — $39 once + applicable tax. No Python installation needed; check supported computers before buying.
| Record | Before | After |
|---|---|---|
| SAMPLE-002 / 1 state | pending | paid |
Reordered rows → matched by order_id + line
9.50 → 9.505 → within the chosen 0.01 tolerance
pending → paid + new record → acceptance fails
Inputs + rules + SHA-256 fingerprints → retained
Set the rules once.
Check the next export, too.
Built for developers and technical operations teams handling recurring exports and small migrations. Keep the profile beside your migration script, then attach the output to the review ticket.
Identify the records
Choose one or more key columns. Row ordering does not matter. Missing and duplicate keys fail explicitly.
Make acceptance explicit
Define decimal tolerances, ignored columns, and permitted additions, removals or changes in a JSON profile.
Keep the evidence
Read the HTML report, process the JSON, or inspect the CSV. Exit codes support your existing automation.
python3 exportcheck.py before.csv after.csv \ --profile profile.json --out migration-report # 0 = accepted · 1 = acceptance failed · 2 = invalid input
Run your first check: requirements, commands and troubleshooting →
Useful when the export
needs a repeatable check.
- Customer, order or inventory exports with stable keys
- One-off migrations you need to review and explain
- Recurring comparisons with the same acceptance rules
- UTF-8 CSV; comma, semicolon, tab or pipe
- Up to 20 MiB and 100,000 records per input
- Up to 200 columns and 1,000,000 cells per input
- No XLSX, database connection or fuzzy matching. For CSV/XLSX comparison with a local app, see ExportCheck Desk and its requirements.
- Tested: macOS/Python 3.14 and Ubuntu 24.04 x86_64/Python 3.12.3; Windows unverified
- Not a certified audit or a data-correction service
A local tool for
your own workflow.
What is included?
The Python CLI source, example CSV files, a JSON profile, instructions and a single-user commercial licence. HTML, CSV and JSON reports are generated locally.
Can I use it for client work?
Yes, with permission to process that data. One purchased seat covers one individual and their internal automation. You may inspect and modify the source internally; redistribution and hosted resale are excluded.
Can I inspect the output before buying?
Yes. The free sample pack contains synthetic inputs, the profile and real generated reports. It does not include the paid CLI. The sample intentionally fails acceptance to show a changed state and an added record.
Do my files leave my machine?
The tool makes no network calls and sends no telemetry. Reports contain your source data; choose carefully where you store or share them.
Need a small CSV tidied?
Our separate AI-assisted CatalogOps service handles limited product CSV formatting: one UTF-8 file, up to 100 rows, 20 columns and 20 KB. $15 base price, 2-day delivery, with orders and files handled on Upwork.
CatalogOps is a service, separate from the ExportCheck software. No personal or confidential files.
Contact ExportCheck Support
For product or download questions, include a brief description and an order reference if applicable. Please do not email passwords, payment-card details, personal data or confidential CSV files. We use enquiries to provide support, which may be assisted by AI. Orders are paid through Stripe / Link. Please keep your download recovery code private.