Local Data Reconciliation Engine (QBO/Excel/CSV)

$65.00

For a bookkeeper who currently reconciles by putting two exports side by side in Excel and scrolling.

Local-firstNo telemetry — nothing phones homeNo lock-inNo migration

Give it two CSV exports and tell it which columns form the match key.

It hands back the matched rows, the amount mismatches, and a UNMATCHED.csv correction workpaper for everything that exists on one side and not the other.

$65 a month for the firm, every client file included. No row limits, no per-reconciliation charge. Cancel any day and the reports stay on your disk.

The 2% that quietly falls off the bottom

Bank export on the left. Books export on the right. Both sorted by date, and both nearly the same, which is the problem, because “nearly” is the whole job.

Somebody scrolls. Somebody ticks. Somebody’s eye skips a row at 4pm on the 9th of the month and a $340 deposit never gets posted. It surfaces in a quarter, or it surfaces in an audit, or it never surfaces and the client’s revenue is quietly wrong by $340 forever.

Nobody is bad at this. Eyes are just not a reconciliation engine, and two long columns of numbers are exactly the shape of problem eyes are worst at.

Two files, one key, four buckets

  1. It parses both CSVs properly. Quoted fields, embedded commas, newlines inside a cell, ""-escaped quotes. The stuff that breaks a naive split-on-comma and silently shifts a column, which is a failure mode worse than not reconciling at all.
  2. It builds a composite key per row from the columns you name in KEY_COLUMNS (say Date,Reference,Amount), matched case and whitespace insensitively, and reads the money from AMOUNT_COLUMN. Currency parsing strips the $ and the thousands commas, and it knows that (45.00) means minus forty-five.
  3. It diffs the two sets into four buckets: MATCHED, AMOUNT_MISMATCH (same key, amount off by more than TOLERANCE, default one cent), ONLY_IN_A, and ONLY_IN_B.

What lands in the output folder

  • UNMATCHED.csv: the correction workpaper, one row per discrepancy: type, key, amountA, amountB, delta. Open it in Excel and work down it. That is the entire deliverable, honestly.
  • RECONCILIATION_REPORT.md: counts and dollar totals per discrepancy type, with a sample of each. Readable enough to attach to a workpaper file without editing it.
  • report.json for anything you want to automate downstream.
  • Duplicate keys don’t blow up. They’re matched greedily in row order and the leftovers fall through to the only-in lists, which is a decision we made on purpose and would rather tell you about now than have you discover.
  • TOLERANCE is yours. Set it to 0.01 and catch rounding. Set it to 1.00 and stop caring about pennies on a 4,000-line file.

Two exports, any two exports

Bank versus books is the obvious pair. It’s also QBO versus a POS export, a payroll register versus the GL, a merchant statement versus deposits, an AR aging versus the customer’s remittance file. It doesn’t know or care what the two files mean. It knows a key and an amount.

Not for you if you need the reconciliation to *post* the correcting entries. It writes a workpaper. It does not touch QuickBooks, it has no write access to your books, and it isn’t going to. If you want a tool that reconciles and posts, you want a bookkeeping platform, not this.

Against Excel, honestly

The real competitor is a VLOOKUP, or Power Query if the bookkeeper is good. And Excel deserves credit: it’s already on the machine, it costs nothing extra, and a skilled person with Power Query can build a match that handles cases this tool doesn’t.

What Excel does not do is run the same way twice. The formula gets dragged wrong. The key gets built off a column with a trailing space. The (45.00) gets read as text. Every reconciliation is a fresh chance to make a new mistake, and the mistakes are invisible.

This runs the same logic every time, on every client, and writes down what it did.

Where the numbers stay

On the machine. Both CSVs are read from disk, nothing is uploaded, and there is no cloud component in this product to turn on even if you wanted to. The only thing it writes is the report, and only under OUTPUT_FOLDER, at 0600 permissions, with every write path checked by assertWithinRoot.

That matters more here than in most tools, because a bank export is a list of every dollar a client moved and where it went.

$65 a month and about four minutes

The trial is the full product. Export two files you already have, set KEY_COLUMNS and AMOUNT_COLUMN to match their headers, and run it.

The setup that trips people up is the key, not the software. If your two exports don’t share a stable reference column, no reconciliation tool on earth will save you, and you’ll want to fix that upstream first.

Security and privacy

Handles client financial exports (bank transactions, books/ledger data, POS/FSM revenue). Security is designed in.

Principles
Local-first. SOURCE_A/SOURCE_B are read from disk and never transmitted anywhere; nothing in this tool touches the network. Nothing is uploaded, no telemetry, no cloud dependency.
Non-destructive. Source CSVs are only read, never modified or deleted.
Least privilege. Reads SOURCE_A/SOURCE_B, writes only under OUTPUT_FOLDER.

Protections implemented (v0.1.0)
Path-traversal defense — every output filename is sanitized (safeSegment) and every write is checked with assertWithinRoot(), so the report can’t be written outside OUTPUT_FOLDER.
Fail-fast config validation — clear errors for missing/invalid SOURCE_A/SOURCE_B/OUTPUT_FOLDER/KEY_COLUMNS/AMOUNT_COLUMN/TOLERANCE before any file is touched.
Restrictive permissions — the generated report (RECONCILIATION_REPORT.md, report.json, UNMATCHED.csv) is written 0600.
Defensive parsing — the CSV parser and currency parser never throw on malformed input (missing fields default to empty string, unparseable amounts default to 0); a bad row degrades the reconciliation rather than crashing it.
Secrets discipline.env and generated Reconciliations/ output are git-ignored; no secrets or client data in the repo.

Distribution / AV trust

Known limitations / roadmap
– Matching is exact-key only in v0.1.0 — a typo’d reference number (e.g. transposed digits) will not match and will surface as ONLY_IN_A/ONLY_IN_B rather than a fuzzy match. Reviewers should scan the only-in lists for likely near-matches.
TOLERANCE is a flat $ amount, not a percentage — large-dollar accounts may need a higher tolerance than small ones; percentage-based tolerance is on the roadmap.
– Duplicate keys are matched greedily in file row order (first-seen to first-seen); if duplicate rows genuinely differ (e.g. two identical-key transactions with different amounts), review the matched pairs, not just the mismatch/only-in lists.

Reporting
Report suspected vulnerabilities privately to the maintainer before public disclosure.

Frequently asked questions about Local Data Reconciliation Engine (QBO/Excel/CSV)

What is the local data reconciliation engine, and how does it work?

The local data reconciliation engine cross-matches financial records across QBO exports, Excel ledgers, and CSV statements in a single pass on your own machine. You load a client’s sources, and the engine lines up the transactions between them, flagging what does not agree. Instead of eyeballing two windows side by side, you get a list of mismatches and gaps to work through. It is built for the accountant who closes books for many clients, not for one company balancing a single account.

The work is deliberately concrete. You point the tool at a QBO export, an Excel ledger, and a CSV bank or processor statement. It reads all three, matches line items across them, and shows where a transaction appears in one source but not another, or where amounts differ. Those are the differences that quietly break a close if no one catches them, and finding them by hand across large files is slow and error-prone.

A close only means something if the records behind it are complete. The IRS describes the supporting documents a business is expected to keep in Publication 583, Starting a Business and Keeping Records, including the bank statements, invoices, and canceled checks that a reconciliation is supposed to tie back to. When your ledger and your statements finally agree line for line, you have evidence those underlying records are all present and accounted for, which is exactly what the recordkeeping guidance assumes.

Because it runs locally, the engine handles large multi-client files without the browser timeouts that stall web tools mid-reconciliation. A month of transactions across several client books is a heavy file, and pushing that through a browser session often ends in a stall or a dropped connection. Running on your machine, the tool can work through the whole set at once and hand back a single reconciled view rather than failing partway.

It helps to be clear about what the tool is not. It is not a bookkeeping system, and it does not want to become the place your client’s books live. It reads exports and statements you already have and compares them. That narrow scope is a feature, because it means there is nothing to migrate and no new ledger to maintain. You keep working in QBO or whatever you already use, and the engine simply checks that the numbers agree across the sources you feed it. The heavy lifting it saves you is the line-by-line comparison that no one enjoys and everyone rushes, which is precisely where mistakes slip through. By taking that comparison off your hands and doing it the same way every time, the tool frees your attention for the differences that actually need a human decision.

The output is a working list, not a black box. Each flagged item points at the sources it came from so you can open the right records and resolve it, then move to the next. Nothing is posted or changed for you. You can see how the local data reconciliation engine fits a multi-client workflow, but the shape of it is simple. Load the sources, let the tool match them, and review what does not line up before you close.

How does reconciling across sources support my recordkeeping obligations?

Reconciliation and recordkeeping are two halves of the same duty. It is not enough to keep records. Those records have to agree with each other and with the bank. The IRS sets out how long a business must hold its records in its guidance on how long you should keep records, and the retention clock only matters if the records you kept are the correct ones. A ledger that never reconciled to the statements is a stack of numbers you cannot stand behind years later.

The local data reconciliation engine helps by proving the tie-out while the source files are still in front of you. When the QBO export, the Excel ledger, and the CSV statement all agree line for line, you have shown that the retained records are consistent and complete. If they do not agree, the tool tells you exactly where, so you can fix the underlying record now instead of discovering the break during a review long after the season closed.

Catching sync drops is central to this. A QBO export can silently lose transactions, and a reconciliation built on an incomplete export looks clean while hiding a hole. The engine cross-checks the export against the other sources and surfaces the dropped items, which means the records you retain actually reflect what happened rather than what synced. That is the difference between a file that survives scrutiny and one that quietly does not.

Working across many client books makes this discipline scale. Reconciling one company by hand is manageable. Reconciling dozens each period is where drift creeps in and small unreconciled differences accumulate into records that no longer tie. By running the check the same way across every client file, the tool keeps each set of records in the state the retention rules assume, ready to be produced and defended if anyone asks.

There is a compounding effect worth naming. Small unreconciled differences do not stay small. A transaction that was dropped in one period and never caught becomes the opening difference in the next, and the gap travels forward until someone finally hunts it down. By the time it surfaces, the records on both sides have moved, and the reconstruction is painful. Running the local data reconciliation engine at every close stops that compounding at the source. Each period leaves the books already tied out, so the next period starts from a clean base rather than inheriting last period’s unsolved puzzle. That discipline is what keeps a book of clients in the state the retention rules assume, where any period can be produced and defended without a long dig through old exports and statements.

The tool does not decide what you must keep or for how long. That judgment stays with you. It gives you the evidence that what you kept is internally consistent, which is the part that is tedious to prove by hand. Firms managing this across a book of clients often fold it into a wider set of accounting and tax tools, running reconciliation as the last step before a close so the retained records leave the season already tied out.

Is my clients’ financial data safe, and where does it live?

It lives on your machine and stays there. The local data reconciliation engine loads QBO exports, Excel ledgers, and CSV statements from your own drive and works on them in place. There is no upload step and no cloud copy of client financial data. When the reconciliation is done, the sources are still where you put them and nothing has been shipped to an outside server. For a firm holding the books of many clients, keeping all of that on local hardware is a deliberate design choice.

That approach fits the security duties accounting firms already carry. Under the FTC Safeguards Rule, firms that handle this kind of customer financial information are expected to maintain administrative, technical, and physical safeguards over it. A tool that never transmits the data keeps it inside the controls you already run, rather than adding a new hosted system that would have to be secured, monitored, and trusted on its own.

Running locally also removes a common weak point. Web reconciliation tools push large client files through a browser and out to a server, which both risks timeouts and means sensitive ledgers travel across the network. The engine avoids that entirely by doing the matching on your own processor. The heavy multi-client files never leave the building, which is better for both reliability and confidentiality.

The tool is also read-first. It reports mismatches and dropped transactions and leaves the corrections to you. It does not post entries back into QBO or overwrite your ledger on its own. That keeps you in control of the books and means the tool cannot silently change a client’s records. You review the flagged differences, decide what is right, and make the change yourself in the system of record.

It is worth being concrete about the alternative the local approach avoids. A web reconciliation tool has to receive your client’s full ledger to do its job, which means that ledger travels across the network and sits, at least briefly, on a server you do not control. Every one of those steps is a place where something could go wrong, from an interception in transit to a misconfigured store on the far end. None of that risk exists when the matching happens on your own processor, because the data never makes the trip. The engine opens the files that are already on your drive, compares them, and writes its findings back to the same drive. There is no account to be breached, no server-side copy to be exposed by accident, and no vendor data-retention policy you have to read and trust. For a firm that holds many clients’ books, that smaller footprint is not a luxury. It is the difference between a tool you can adopt without a long security review and one you cannot.

Because it adds no second copy of the data, it does not widen the area a breach could reach or leave client numbers sitting in someone else’s cloud. Your existing backups, encryption, and access rules continue to cover the files, since they never move. You can read more about the local-first design of the local data reconciliation engine before you load a single real client export into it.

How is this different from QBO reconciliation, Xero, or BlackLine?

The difference starts with who the tool is for. QBO reconciliation and Xero are built to close one company’s books from inside that company’s file. BlackLine sits at the other end, an enterprise platform for large finance teams. The local data reconciliation engine is aimed at the space between them, the accountant or bookkeeper closing many client files who needs to reconcile across QBO, Excel, and CSV without adopting an enterprise system or fighting a single-company tool one client at a time.

Scope is the second difference. In-app reconciliation reconciles within its own data. It is not designed to line up a QBO export against an Excel ledger and a CSV statement from three different sources at once. That cross-source matching is the whole job here. When a client’s records live in more than one place, the tool reads all of them together and shows where they disagree, which is exactly the check a single-app reconciler cannot perform.

Handling large files locally is the third. Browser-based tools stall on the big multi-client exports that a busy firm produces, timing out partway through a reconciliation. Running on your own machine, the engine works through heavy files in one pass without a connection to drop. That reliability is not a small thing when a close is waiting on the result.

Data handling is the fourth. Because the tool keeps everything local, it fits the written-plan approach the IRS describes for firms in Publication 5708, Creating a Written Information Security Plan, where technical safeguards over client data are expected. Cloud reconciliation platforms move that data off your machine. This one does not, which keeps the reconciliation inside the controls your firm already maintains.

There is a reason cross-source matching is where the value sits. A single application reconciles neatly against its own numbers, but the errors that actually break a close usually live in the seams between systems. A payment shows in the bank export but never posted to the ledger. A journal entry exists in the spreadsheet a client sent but not in the accounting file. A processor deposit lands net of fees while the books recorded it gross. None of those breaks are visible from inside one system, because each system is internally consistent. They only appear when you lay the sources side by side and compare them line for line, which is exactly the work no one has time to do by hand across a full book of clients. Automating that comparison is the whole point. The tool does not replace your judgment about what a difference means. It just makes sure the difference is in front of you instead of hidden in a file you did not think to open.

None of this means the incumbents are wrong for their audience. A single small business is well served by QBO or Xero, and a large enterprise has reasons to run BlackLine. The gap is the multi-client firm in the middle, and that is the seat this tool is built for. You can see how it complements rather than replaces those systems on the local data reconciliation engine page.

Can the engine catch QBO sync drops and reconcile 1099-K deposits?

Catching QBO sync drops is one of the reasons the local data reconciliation engine exists. A QBO export can quietly omit transactions, and when it does, a reconciliation built on that export looks balanced while hiding a hole. The engine cross-checks the export against your Excel ledger and CSV statements, so a transaction that lives in the bank feed but never made it into QBO shows up as a flagged difference instead of disappearing into a clean-looking but wrong close.

Reconciling processor deposits is the related case. A client who takes card and third-party-network payments receives a Form 1099-K, and the IRS explains in its guidance on understanding your Form 1099-K that the form reports the gross payments received for goods or services during the year. That gross figure rarely matches the net deposits that hit the bank after fees and refunds, and reconciling the two by hand across many clients is exactly the tedious work that hides errors.

The tool lines up the 1099-K totals, the processor’s own report, and the deposits in the ledger so you can see how gross reconciles to net. When the numbers do not tie, it flags the difference and points at the sources, letting you trace whether the gap is fees, timing, or a genuine missing entry. That keeps a client’s reported income consistent with what actually landed in the account.

Both checks run in the same pass over the same loaded sources. You do not run one tool for sync drops and another for processor deposits. The engine matches everything you gave it and reports every difference it finds, whether that is a dropped QBO line or a 1099-K total that does not agree with the deposits. You review the flagged items and resolve them in your system of record.

It is worth understanding why the gross-to-net gap causes so much trouble. A client sees a deposit hit the bank and assumes that is the sale. The processor, though, reports the gross amount before it took its fee, netted refunds, or held a chargeback. So the income figure on the 1099-K and the deposits in the ledger describe the same activity from two different angles, and they will almost never match on their face. Reconciling them means accounting for every fee, refund, and timing difference until the two views agree. Done by hand across many clients, that is hours of tedious tracing. The local data reconciliation engine lines the sources up and shows exactly where the gross and net diverge, so you are confirming known fees rather than hunting for an unexplained gap. When the two finally tie, you can report the client’s income with confidence that it reflects what actually happened.

As always, the tool reports rather than posts. It shows the drops and the mismatches and leaves the fix to you, which keeps you in control of the client’s books. Firms handling many sets of books often run this as a standard step, and you can see how it fits alongside our other accounting and tax tools before pointing it at a live client file.

Attributes Value
Deployment

On-Premises

Platform

Windows

License Type

Subscription

Billing Period

Monthly

Target Customer

Accounting & CPA Firms

Free Trial

Yes

Reviews

Be the first to review “Local Data Reconciliation Engine (QBO/Excel/CSV)”

Your email address will not be published. Required fields are marked *