VImplement CSV Compare

Guide · Order and invoice exports

Reconcile two order or invoice exports by record ID

Month-end checks often come down to two lists that should agree: orders in the web shop and invoices in the accounting system, or invoices in a billing tool and the same invoices in the ledger. CSV Compare matches the two exports on a shared ID and gives you a review list. This page covers the preparation that makes that list trustworthy, and what to check for each result.

Try the free demo ↗ See licenses and prices ↗

1. Choose the record ID

2. Align the scope before you export

3. Map the files and compare

Example: invoices in a billing tool and in the ledger

The billing tool exports comma-separated values with dot decimals. The ledger exports semicolon-separated values with comma decimals. Each file is read with its own settings.

Left file: billing.csv
invoice_noamountcurrency
INV-20411500.00NOK
INV-2042980.00NOK
INV-2043-250.00NOK
INV-20444200.00NOK
Right file: ledger.csv
invoice_numberamountcurrency
INV-20411500,00NOK
INV-2042890,00NOK
INV-2043-250,00NOK
INV-20442100,00NOK
INV-20442100,00NOK
INV-2045640,00NOK

Map invoice_no to invoice_number as the record key, amount to amount and currency to currency. The app suggests invoice_no on the left, but you choose invoice_number yourself, because INV-2044 appears twice in the ledger.

What the comparison reports
Record IDReport statusWhat to check
INV-2044Duplicate right keyThe ledger has two rows of 2100,00, for example two installments. The app does not add them up; INV-2044 is left out of matching on both sides until each file has one row for it.
INV-2041Mapped fields match1500.00 and 1500,00 are the same amount in the same currency.
INV-2042Amount differs980.00 in billing, 890,00 in the ledger. Possibly a typing error; check the invoice itself.
INV-2043Mapped fields matchThe credit note is -250 in both files. Negative amounts are compared like any other.
INV-2045Only on rightOnly in the ledger. Was it created directly in accounting, or dated outside the billing export’s period?

That is 2 matches and 3 review entries. None of them proves an error by itself; each one tells you where to look.

Copy the example as CSV text

Paste each block into the left and right text boxes of the demo. Choose comma and dot for the left file, semicolon and comma for the right file, and map the key, amount and currency as above.

invoice_no,amount,currency
INV-2041,1500.00,NOK
INV-2042,980.00,NOK
INV-2043,-250.00,NOK
INV-2044,4200.00,NOK
invoice_number;amount;currency
INV-2041;1500,00;NOK
INV-2042;890,00;NOK
INV-2043;-250,00;NOK
INV-2044;2100,00;NOK
INV-2044;2100,00;NOK
INV-2045;640,00;NOK

4. What each result means and what to check next

Report statuses and next checks
Report statusWhat to check
Only on left / Only on rightThe export period and date type, status filters, and whether the correct column is mapped as the record ID on both sides.
Amount differsGross versus net, VAT, shipping or fees, discounts, partial credits, and rounding in one of the systems.
Currency differsWhich currency each system reports. Amounts are never converted.
Amount and currency differBoth of the above.
Text differs / Multiple fields differThe report names the changed fields. Text comparison is exact, so check case and spaces as well.
Duplicate left key / Duplicate right keyInstalments, split payments, order lines or an invoice entered twice. Get to one row per ID, then compare again.
Invalid left row / Invalid right rowAn empty ID, an amount with a thousands separator or currency symbol, or a currency that is not three letters. Fix the export and compare again.
Unresolved left record / Unresolved right recordA record appears in one file only, but the other file contains a row without an ID. Fix the empty ID before concluding that anything is missing.
A review entry is not a loss.

A missing or changed record can come from a different export filter, period or billing schedule. Check the source before you correct anything. The report is a work list, not accounting advice or proof of lost or recovered money.

5. Repeat it next month

After the first run, export a mapping profile. It stores the delimiters, decimal separators and column mappings, but none of your rows. Next month, import the profile, choose the new exports and compare. Keep downloaded reports private: they contain the compared values.

Privacy and limits

The comparison runs in your browser tab. The app makes no network requests while it compares, saves no input to browser storage and contains no analytics, so the invoice data is not uploaded. The free demo handles up to 50 data rows and 2 MiB per file; the full version handles up to 10,000 data rows and 2 MiB per file, offline after you extract the ZIP. Both use exact IDs. Fuzzy matching, currency conversion, combining split invoices and automatic accounting entries are not included.

Related: worked example with eight order outcomes · compare two CSV files · compare two Excel sheets via CSV · format guide · see licenses and prices

Start with this month’s exports

Try two small files first.

Open the free demo ↗