Bookkeeping on autopilot for a 20-year-old accounting system
Client: a solo CPA practice in Western New York, 36 years in business, 14+ write-up clients
- Problem
-
The practice runs on MYOB Accounting Plus, a 32-bit desktop program from 2003. It has no API, no SDK, no ODBC, no command line and no supported export. The only way in is its own text import format; the only way out is a printed report. So every bank statement, payroll run and credit card was being keyed in by hand as general journal entries.
We analysed 22 years of one client's ledger (31,215 lines), plus two years of books for two further clients, to see where the time went and to check that the patterns held across different sets of books. Bank write-up was 43% of all activity, payroll re-entry another 13%, credit cards and payables 9%. Across 217 reports, 96% of the practice's work carried manual-entry risk.
- What we built
-
A local Windows companion that sits beside MYOB and never modifies it. First we reverse-engineered MYOB's company file format and the proprietary format of the practice's scanning software, recovering every record layout from the files themselves. The extractor pulls the full ledger, chart of accounts, invoices and payroll tables without MYOB even being open, and it ties to the practice's printed trial balances to the cent on every client tested.
On top of that, an auto-coder learns each client's coding habits by joining years of historical statements to historical entries. A one-click run reads a year of scanned statements, codes the transactions, produces a review workbook with self-checks and scan crops for any day that doesn't add up, then writes a native MYOB import file with safety rules: date and lock-period checks, duplicate detection, splits that must balance, and each company's own numbering conventions.
We measured it the way an auditor would: run it against a client's actual books and compare every line to what the accountant had entered, then repeat across three clients with different banks and different charts of accounts. Pointed straight at the books with no training step, it codes transactions with 99.7% accuracy, and anything it isn't sure about is flagged for review rather than guessed. The system is also self-learning: every correction the accountant makes in the review workbook feeds back into the coder, so it improves with every month it runs.
Everything runs on the accountant's own machine. No cloud, no language model in the pipeline, and SSNs, tax IDs and card numbers redacted on output.
- Result
-
Imports tie to the penny. Roughly 25 hours of bookkeeping removed per client per year, around 350 hours across the practice. Automated work papers (trial balance, bank proofs per account, payroll reconciliation, proposed payroll journal, year-end payables candidates and account analyses) are generated from the same data. Payroll-tax impounds, previously a frequent source of misallocation, dropped from $4,004 misallocated to $147 across 40 impounds on one client.
$ python regress.py --all client A · 22 yrs match 98.2% · accuracy 99.7% client B · 2 yrs tie ✓ · accounts 54/54 client C · 2 yrs tie ✓ · variance $0.00 import A · Jan $30,043.06 · variance $0.00 PASS · no regression
Why this matters beyond accounting
If we can automate around a 2003 program with no API, we can automate around whatever your business runs on. Legacy software is usually the reason people assume automation isn't an option. It isn't.