ContextCleaner: see every entry in the Windows 11 right-click menu, and which app added it — on the Microsoft Store.

Last updated:

Guided workflow variation

What is in one fileand missing from the other.

Totals that differ by twelve say something is gone, not which twelve. LedgerPair names every record found in only one of the two files by its key and row number, and points out near-miss keys that look like typos.

Pair both files on their identifier and read two lists: records only in file A and records only in file B, each with its row number and every column.

Pay once. Own it forever.

One-time purchase on the Microsoft Store · No subscription · Instant install

Buy through the Microsoft Store—instant install, automatic updates, and a Microsoft receipt for easy expensing. No account needed on our site, and no subscription on Store purchases.

Full LedgerPair overview
One-time purchase No telemetry Local-first

windows · originals never changed · nothing uploads · 15-day free trial

If this sounds like your week

A count shows a gap, not where it is.

The CRM says 4,812 contacts; the mailing platform says 4,800. Somewhere twelve records fell out during an import, a sync, or a manual cleanup. Sorting both lists and scrolling them in parallel works for a few dozen entries. For thousands, the eye gives out long before the twelfth gap, and any entry that landed elsewhere after sorting makes the two columns drift apart.

Where tooling usually breaks

Typos and repeats hide inside the totals.

Absence is not the whole story. A record keyed as PO-7781 in one system and PO-7718 in the other counts toward both totals while pairing with nothing. A contact imported twice inflates one side, so the gap looks smaller than it is. Lookups return #N/A for the first problem and quietly ignore the second, and neither tells you which line to open.

Where LedgerPair lands

Two lists of leftovers, plus suggestions for the typos.

LedgerPair pairs records by key and puts the leftovers in plain view: only in file A, only in file B, each with its row number. Keys that occur more than once in a file are listed as duplicates. For an unmatched key that nearly matches one on the other side, such as INV-2026-0042 and INV-2026-0O42, it shows a fuzzy candidate beside the row, never counted as a match.

Pay once. Own it forever.

One-time purchase on the Microsoft Store · No subscription · Instant install

Buy through the Microsoft Store—instant install, automatic updates, and a Microsoft receipt for easy expensing. No account needed on our site, and no subscription on Store purchases.

Learn more about LedgerPair

windows · originals never changed · nothing uploads · 15-day free trial

What you get

Feature highlights

Rows paired on the keys you pick

tick one key column or several in each file, with different names allowed, and rows pair wherever they sit, so two exports sorted in different orders still line up.

Changed cells, side by side

every matched row whose values differ is listed with the columns that changed, and the detail pane shows both files’ values with the differing cell highlighted.

Formatting is not a difference

spaces are trimmed, amounts compare as exact decimals, and dates as calendar dates, so 1,250.00 equals 1250 and 2026-03-01 equals 03/01/2026, with a day-first option.

Duplicate and empty keys surfaced

a key that appears more than once in a file is listed with every row number, and rows with an empty key are listed on their own, never matched.

Near-miss keys suggested

an unmatched key spelled almost like one in the other file is shown as a fuzzy candidate in its own column, with a similarity score in the export, and never counted as a match.

An evidence workbook you can keep

a new .xlsx with Summary, Additions, Deletions, Changes, and Duplicates sheets, while the originals are opened read-only and nothing uploads.

Especially when

  • Compare two CSV or Excel exports by a key column instead of building VLOOKUP or XLOOKUP formulas for every column
  • Find the rows that are in one export and missing from the other, plus the keys that appear twice, with row numbers
  • Stop formatting differences such as 1,250.00 against 1250 or two date notations from showing up as false mismatches
  • Keep a reconciliation record as a new Excel workbook, with the original files untouched and nothing uploaded

Who benefits

Real-world scenarios

A contact list after a migration

After moving contacts from an old CRM to a new one, the new system holds fewer records than the old export. Marketing needs the missing contacts by ID so they can be imported again.

With Contact ID as the key, the rows only in the old export are the ones that did not arrive. Export evidence workbook writes them to the Deletions sheet with every column, ready to copy into an import file.

A stock count against the system

A warehouse exports a stock count from its scanners and compares it with the stock list in the inventory system. Some SKUs were scanned but are unknown to the system, and some were never scanned.

The two only-in lists split the problems cleanly: SKUs only in the scan file need setting up, and SKUs only in the system export were not counted. Changed rows show quantities that differ for SKUs found in both files.

A key typed with a letter O

Two invoice exports differ by one record each way, and the key that went missing from one file looks almost identical to the extra key that turned up in the other.

LedgerPair lists INV-2026-0042 as only in file A and INV-2026-0O42 as only in file B, and shows each as the other’s fuzzy candidate. The export records the candidate, its row number, and a similarity score, so the typo can be fixed at the source.

Deep dive

How LedgerPair finds missing, extra, repeated, and near-miss rows

Pairing by key. Every row in each file is identified by its key, from one column or several. Rows whose keys match are paired, whatever their position in the file, and compared column by column. What remains after pairing are the rows that are missing from the other file.

Only in file A, only in file B. The table labels each leftover row with the file it came from, such as Only in contacts-old.csv, and gives its row number as a spreadsheet would show it. The filter shows just the rows only in file A, or just those only in file B. In the export they become the Deletions sheet (only in A) and the Additions sheet (only in B), with every column of the original row.

Keys compared sensibly. Keys are compared without regard to case or extra spaces, so inv-001 matches INV-001. Thousands separators and a trailing .0 are ignored, so 1,001 matches 1001, while leading zeros are kept, so 00123 stays distinct from 123. Dates used as keys are compared as calendar dates.

Duplicates counted, not hidden. A key that appears more than once in a file is listed as a duplicate key with every row number. Duplicates pair with the other file in order of appearance, and any extra occurrence is listed as only in its file and marked duplicate key, so a repeated record explains a gap in the totals.

Empty keys. A row with no key value is listed as only in its file and marked empty key, and it is never paired with anything. The Summary sheet counts them for each file.

Near-miss keys. For each unmatched row, LedgerPair looks for an unmatched key on the other side that is spelled almost the same and shows it as a fuzzy candidate in its own column. With a composite key, all parts but one must be equal before a candidate is suggested, so a shared date never makes unrelated keys look alike. Candidates are suggestions to check, never counted as matches, and the export gives each one’s row number and a similarity score.

The record. The Summary sheet opens the evidence workbook with the row count of each file; the matched, changed, addition, and deletion counts; duplicate keys and empty keys for each file; and the number of fuzzy candidates. The sheets behind it hold the rows themselves, with frozen headers and filters.

How it is built

Built to read both files and leave them exactly as they were.

Originals only read

Both exports are opened read-only. The result is a new .xlsx you name in the Save dialog, and saving over either source file is refused.

Nothing leaves your PC

No network code, no account, no sign-in, and no telemetry. Files reach LedgerPair only through the Windows file dialog. One-time purchase in the Microsoft Store.

Formatting is not a difference

Spaces, amounts, and dates are normalized before comparing, so 1,250.00 equals 1250. Near-miss keys are suggested in their own column and never counted as matches.

FAQ

Straight answers—no glossary dump

How do I find rows that are in one file but not the other?

Open the two files in LedgerPair, pick the column that identifies a row in each, and press Compare. Rows only in file A and rows only in file B are listed with their row numbers, and the filter shows either list on its own. Export evidence workbook writes them to the Deletions and Additions sheets with every column.

What is a fuzzy candidate?

A suggestion for an unmatched key: an unmatched key in the other file that is spelled almost the same, such as INV-2026-0042 and INV-2026-0O42. LedgerPair shows it beside the row in its own column, and the export adds the other file’s row number and a similarity score. It is never counted as a match, so your totals stay exact.

How are duplicate keys handled?

Each key that appears more than once in a file is listed as a duplicate key with every row number. The occurrences pair with the other file in order of appearance, and any extra one is listed as only in its file and marked duplicate key. The Duplicates sheet of the export lists the file, key, row, and number of occurrences.

What happens to my original files?

They are opened for reading only and are never written. LedgerPair compares the data it has read and saves its results to a new .xlsx file that you name in the Save dialog. Saving over either source file is refused with the message that originals are never overwritten, and a name that does not end in .xlsx is refused as well. If an export cannot be built, no file is left behind.

Where do my files go, and how do I get LedgerPair?

They stay on your PC. LedgerPair has no network code, no account, no sign-in, and no telemetry, and it opens only the files you pick in the Windows file dialog. It is a one-time purchase in the Microsoft Store, which installs and updates it, and the Store runs a 15-day free trial with every feature, so you can compare your own exports before you buy.

Two exports that should agree.
Every difference, listed and saved.

LedgerPair pairs two CSV or Excel exports on the key you pick, lists matched, changed, missing, and duplicate rows, suggests near-miss keys, and saves a new .xlsx evidence workbook. Originals are never changed, nothing uploads, and the Microsoft Store runs a 15-day free trial.

Pay once. Own it forever.

One-time purchase on the Microsoft Store · No subscription · Instant install

Buy through the Microsoft Store—instant install, automatic updates, and a Microsoft receipt for easy expensing. No account needed on our site, and no subscription on Store purchases.

Open full product page

Excel is a trademark of Microsoft Corporation. LedgerPair is made by Automata Labs and is not affiliated with or endorsed by Microsoft.

Technical specifications

Technical specifications for procurement

Spec Implementation
Data Sovereignty Opens only the two CSV or XLSX files you pick in the Windows file dialog, read-only; writes only the new .xlsx evidence workbook you name in the Save dialog, refusing either source file; remembers the last picked pair on this PC so it can be reopened
Telemetry Status None; no account, no sign-in, no telemetry, and no network code in the app
Core Runtime .NET 10 and WinUI 3 (Windows App SDK), packaged as MSIX; files reach the app only through the Windows file pickers
Network Requirements Fully functional offline; the app makes no network connections
Deployment Compatibility Windows 10 version 2004 or later and Windows 11, x64 or ARM64; one-time purchase on the Microsoft Store with a 15-day free trial
Inputs CSV (UTF-8, UTF-16, or Windows-1252; comma, semicolon, tab, or pipe; RFC 4180 quoting) and XLSX workbooks with a worksheet picker, in any combination; files open in Excel can be read
Keys One or several key columns per file, with different names allowed; compared ignoring case, thousands separators, and a trailing .0, with leading zeros kept; composite keys shown joined by a vertical bar
Normalization Spaces trimmed and collapsed; amounts as exact decimals with thousands separators, decimal commas, currency symbols or codes, parentheses, and trailing minus; dates as calendar dates, with a day-first option
Results Matched, changed (cell by cell), only in file A, only in file B, duplicate keys, and empty keys, with row numbers; fuzzy candidates for near-miss keys in their own column, never counted as matches
Output New .xlsx evidence workbook with Summary, Additions, Deletions, Changes, and Duplicates sheets; raw values as text, frozen headers, and filters; suggested name a-vs-b-evidence.xlsx
Originals Opened read-only and never written; saving over either source file is refused