← The Catalogue desktop app
No. 14

A reconciliation engine that does 70–80% of the match before an analyst touches it

A deterministic two-file reconciliation app that handles any recon — vendor, customer, bank — with a header-mapping layer that absorbs mismatched files and remembers the settings.

PythonopenpyxlpandasDesktop GUIsaved mapping profilesdeterministic matching
How it works — the logic, animateddesktop app

Context

Finance analysts run reconciliations endlessly — vendor balances, customer balances, bank accounts, and on down the list. Strip away the labels and it's the same job every time: take two files, match them, and surface the differences. It's done by hand, ledger against ledger, and it eats days — especially when someone has to reconcile years of history in one go.

Challenge

At its core a recon is deterministic, so it *should* be a program — but the real-world friction isn't the matching, it's the files. Two ledgers rarely share the same column headers, and even when the names line up, the intent behind a column may not (one file's "reference" is another file's "document number"). A tool that assumes clean, identical inputs is useless on the files analysts actually have.

What I built

A desktop reconciliation app built on a deterministic Python core (openpyxl): load File A and File B, run the match, get the result. No model, no guessing — same inputs, same answer.

  • Header-mapping pane — before the run, the user maps which column in File A corresponds to which in File B, resolving both name *and* intent mismatches. This is the piece that makes it work on real files instead of idealised ones.
  • Saveable mapping profiles — once a recon type is mapped (say, a vendor-balance recon from two specific systems), the settings save and reload. The second run, and every run after, is instant.
  • Two-file match + difference report — runs the comparison and outputs the matched items and the exceptions: what's in A and not B, in B and not A, and where amounts disagree.
  • Built to generalise — because the engine reconciles "two files" rather than one hard-coded ledger type, the same tool covers AP, AR, bank, and anything else with the same shape.

Outcome

On complex reconciliations, 70–80% of the match is done before an analyst looks at anything — they work the genuine exceptions instead of the whole population. Reconciling five years of data in a mid-size operation — at least a couple of FTE-days of grinding — collapses to about two minutes. Multiply that across an AP and AR team running recons every cycle, and it stops being a time-saver and becomes capacity the function gets back.

Why it's here

Pattern recognition over busywork: I saw that a dozen differently-named "reconciliations" are one deterministic problem, then built the single tool that does all of them — and solved the part that actually breaks these tools, the mismatched files, with a mapping layer that learns the setup once.

© Deepak Sharma — Finance Transformation ca.deepaksharma1@gmail.com Back to the catalogue →