Free browser tool
Reconcile two CSV exports in your browser.
Compare invoices with payments, orders with shipments, or any two exports that share a key. AlcorReconcile matches rows by the key column you choose, compares amounts with exact decimal arithmetic, and lists every key as matched, different, missing from one file, duplicated, or unreadable. This page reads the files on your device; they are not uploaded.
- Runs in this browser tab
- Exact decimal amounts
- Duplicate keys reported, never picked
- CSV and JSON report export
Reconciliation tool
Loading the tool…
How matching works
- One row per key. The report lists each key once, sorted, with how many rows each file has for it.
- Keys. Leading and trailing spaces are removed and inner runs of spaces become one space. Matching ignores case unless you turn on case-sensitive keys. There is no fuzzy matching. A row with an empty key is listed by its row number, for example <EMPTY@ROW:2>, and pairs with an empty-key row at the same row number in the other file, so review those rows by hand.
- Duplicates. If a key is in both files and either file has it more than once, the key is reported as a duplicate and its amounts are not compared. A key found in only one file is reported as missing from the other file even if it repeats; the Left rows and Right rows columns show how many times it appears.
- Amounts. The decimal point is “.”. Commas, spaces, and $, €, £, ¥ signs are removed, so “1,234.50” reads as 1234.50 and “1,5” reads as 15. Parentheses mean a negative amount. Values are compared exactly, without floating-point rounding. A NaN amount, or one too large for exact decimal arithmetic, stops the whole comparison; the message names the key so you can fix that cell.
- Tolerance. A difference equal to the tolerance still counts as matched.
- Files. Comma-separated UTF-8 text with a header row, up to 10 MB each. Quoted fields, embedded commas and line breaks, and a UTF-8 byte-order mark are handled.
These rules match Alcor Industries’ alcor-reconcile 0.1.0 Python package, and both are checked against the same test cases. The browser tool differs in a few places: it refuses a key or amount column whose header name appears more than once, reads files up to 10 MB with up to 1,000 columns, stops with an error where the Python package would crash, and marks formula-like cells in the CSV export as text.
What it does not do
- It does not connect to banks, QuickBooks, payment processors, or any other service.
- It does not upload your files or save them. They stay in this browser tab and are gone when you close it.
- It does not make accounting decisions or say which record is correct. You choose the key and decide what each difference means.
- It does not read Excel workbooks, semicolon- or tab-separated files, or text encodings other than UTF-8.
Need a tool like this for your business?
We build websites and custom tools for small businesses. You talk to the person who builds it, and you get a written price before any work starts.