Sample deliverable

CSV reconciliation that ends with files, not guesswork.

This case study shows the output format for a small paid reconciliation job: compare two exports by a shared key, identify missing rows, duplicates, and field-level mismatches, then hand over a repeatable command with sample reports.

Client situation

A founder has two monthly exports from different systems. The row counts do not match, manual spreadsheet checks are slow, and the team needs a clean report before updating customer records.

Input A
System export with customer ID, status, plan, and amount.
Input B
Billing export with the same ID but different column names.
Rules
Match by ID, normalize whitespace, compare selected fields.
Output
Summary JSON plus missing-row, duplicate, and mismatch CSVs.

Delivered files

Verification log sample

Unit tests: PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 python -m pytest tests/test_reconcile.py -> passed
Smoke run: python reconcile.py --left sample_data/source_a.csv --right sample_data/source_b.csv --rules rules.yml --out output/round9_csv_smoke
Summary: matched_keys=3, missing_in_left=1, missing_in_right=1, mismatches=2, duplicates=1
Not tested: live private exports, accounting decisions, production writes

What the buyer can inspect

The buyer does not need to trust a verbal claim. They can rerun the command, open the output folder, and check whether the reported rows match the sanitized sample. If the real export uses different names or matching rules, the rules file changes without rewriting the whole script.

Safe intake brief

Send one sanitized or fake-data sample from each source, the matching key, fields to compare, and the preferred output format. Do not send payment details, passwords, private customer records, API keys, or production credentials.

Need this report for your exports?

Open a quote request with a fake-data sample and the matching rules. I will quote the smallest fixed script or diagnostic first.

Request a quote CSV starter kit Back to services