- I.The premise§1
- II.The twelve patterns, in priority order§2
- III.The number I'd judge it all by§3
- IV.The failure modes§4
- V.What I would automate if I were you§5
The premise: most bookkeeping isn't automatable. The hard part is figuring out which 30% is.
I’m going to spend the next ten minutes arguing two things at once, which is always a bad rhetorical move. The first is that automation has finally become the right answer for a small but specific slice of the monthly close. The second is that nine out of ten “AI bookkeeping” pitches you’ll get this year are selling you the wrong slice, because the slice that’s actually automatable is boring, narrow, and doesn’t make for a great demo.
The narrow slice is this: transaction classification, three-way reconciliation, anomaly detection, and the assembly of a board packet from numbers that already tie. Everything else — judgment entries, accruals, intercompany, revenue recognition, the work of actually understanding what the books mean — remains human. That is not going to change in the next two years and it probably will not change in the next five.
Working definition“Automation, in this essay, means: a job that runs on a schedule, produces output a CPA reviews in under two minutes per client per day, and gets removed from the engagement if it ever fails silently.
”
I keep this definition tight because the alternative — “anything an LLM can plausibly draft” — turns out to be a great way to ship broken automations into production. The two-minute review budget is the constraint that does the real work.
The twelve patterns, in priority order.
In rough order of return on the time it takes to ship them. The numbers in the right rail are the cumulative hours-per-month we’ve measured each pattern returning across our roster.
- 01Transaction classification against a stable chart of accounts
- 02Three-way reconciliation: bank ↔ processor ↔ GL
- 03Daily anomaly diff against a rolling 90-day baseline
- 04AP invoice intake & auto-coding (with a human approval step)
- 05Sales-tax filing prep: jurisdiction routing + remittance
- 0613-week rolling cash forecast, assembled from the GL
- 07Month-end accrual templates (subscription, payroll, COGS)
- 08Intercompany reconciliation for multi-entity SMBs
- 09KPI catalogue: definition, query, owner, last-refreshed
- 10Vendor onboarding & 1099 hygiene
- 11Board-pack PDF assembly from the close pack
- 12A close-status dashboard the operators can read
The first three pay for the entire engagement on their own. The next three pay for the next CPA you’d otherwise have to hire. The last six are quality-of-life — they make the firm more pleasant to work with, but they aren’t where the leverage is.
The number I'd judge it all by.
Most of our clients have been on the full automation stack for the better part of a year. If I had to pick a single number to judge the whole thing by, it’s close time — days from period-end to books a CPA has signed off on.
The number that matters“Close time is the metric that moves when the automation is working and stays stubbornly flat when it isn’t. It’s the first thing I look at on an engagement and the last thing I’d give up.
”
Close time isn’t a complete KPI on its own, but it captures everything else: how clean your feeds are, how often you have to touch the GL, whether your reports are getting read. A business that closes on day 5 is a different operating animal from one that closes on day 18, and the difference shows up in every decision the operators make in the back half of the month.
A note on attribution“When close time drops on a new engagement, I can’t honestly attribute all of it to automation. Often a good part is simply that hiring our firm replaced a junior bookkeeper who was working in QBO with no scripts at all.
”
The failure modes.
I’ve been doing this for four years and the same three things break, in the same order, every time —
The classifier was tuned against last year’s chart of accounts and the bookkeeper added two new vendors a quarter without noticing. Three months later, 8% of transactions are landing in “Other” and nobody saw it because nobody checked. Fix: a daily report that just counts “Other,” with a hard ceiling of 2%. When it trips, the CPA looks.
The model says it’s 96% sure when it’s actually 71% sure. Two ways to fix this — temperature down to zero, or layer a deterministic check (matched memo, matched amount, matched cadence) on top of the LLM call and only trust the model when all three agree. We do both.
You can ship a 27-page board packet on time, every time, for eight months and never realize the CEO is reading the cash slide and ignoring everything else. The fix is not in the automation — it’s in talking to the operator and cutting the packet to a page-and-a-half they’ll actually read.
The interesting failure mode I expected and have not seen: the CPA losing track of the books because the agents handle so much of the day-to-day. That’s the headline fear in every conference talk on accounting + AI; in practice it’s the opposite. Reviewing exception queues is a much higher-leverage way to stay close to the GL than re-keying transactions.
What I would automate if I were you, in order.
If you’re an operator running a 5–50 person business and you’ve read this far, here is the order I would build in. It is the same order I build in for new engagements, with one exception I will flag.
Start with reconciliation. Not categorization — reconciliation. The bank ↔ processor ↔ GL three-way match is the load-bearing wall of the close. If it breaks, nothing downstream is trustworthy; if it holds, you can build the rest on top of it and sleep through the night. 1
Then the classifier. Then the anomaly diff. Then the cash forecast. Then everything else — in whatever order pays for itself first.
The exception I flagged: if you do not yet have a stable chart of accounts, do nothing on this list. Fix the chart first. Automating a wobbly chart is how you build a system that has to be torn out in six months.
- Two-week median to stand it up properly across QBO + Stripe + a single primary bank. Multi-entity adds a week per additional entity, in our experience.
- We’ve experimented with classifier confidence thresholds between 0.85 and 0.97. The sweet spot — at least for familiar charts — is 0.92, with anything below that going to a human queue.
- The 90-day window in the anomaly diff is a tunable. Some seasonal businesses need a year-over-year diff instead; that’s a one-line change.