CAPABILITY · OPS & BACK-OFFICE
AI Bookkeeping
Receipts post to the right account code automatically. No bookkeeper touch required.
Audit this workflow →What it does
Ingests receipts from email, SMS, or upload. Uses your chart of accounts to classify each line item and writes the entry directly to QuickBooks or Xero. Flags uncategorized items and ambiguous vendors for one-click review.
Most bookkeepers will tell you categorization isn't hard. It's relentless. Every week the same vendors show up, the same account codes apply, and someone still has to touch every transaction. That runs five to eight hours a week at most small businesses. The rules-based auto-categorization inside QuickBooks and Xero helps at the margins, but it breaks the moment a vendor name changes, a transaction splits across two lines of business, or the owner charges something personal on the company card and the bookkeeper has to decide what to do with it.
The other issue is trust. Owners who've watched auto-rules file a reimbursable travel expense as office supplies (or worse, had a CPA find a year of miscategorized transactions at tax time) stop trusting automation entirely. So the bookkeeper reviews everything anyway, which defeats the purpose.
Golden Horizons builds expense categorizers trained on your specific chart of accounts and your actual transaction history, not generic templates. Before any automation runs, we pull twelve to twenty-four months of categorized transactions from your QuickBooks or Xero file and use it to build the pattern library: which vendors map to which codes, how you've historically handled mixed personal-business charges, how you split expenses across cost centers when one transaction spans them. Edge cases you've already resolved (like the owner's fuel card that sometimes covers company services and sometimes the owner's personal truck) get encoded as explicit rules the model applies consistently instead of guessing.
Once the system is live, new transactions from your bank feed or uploaded receipts get categorized in real time. The bookkeeper's queue shrinks to exceptions: genuinely ambiguous vendors, first-time payees with no historical analog, and flagged items above a spend threshold you set. Everything else posts automatically, with the categorization logic and confidence score logged for every entry, so your CPA can see exactly why a transaction landed where it did.
Firms with a single bookkeeper handling several entities or locations typically cut manual categorization hours by sixty to eighty percent. The bookkeeper's time shifts from data entry to exception review and reconciliation, the higher-judgment work that actually needs a human.
Use cases
- Multi-LLC real estate investor with eight entities: bank feeds from all entities route through one categorization layer trained on each entity's chart of accounts, so management fees, maintenance costs, and mortgage payments post to the right LLC without the bookkeeper sorting them manually.
- Mid-size HVAC company with field technicians: parts purchases from four suppliers and fuel card transactions across twelve trucks categorize automatically by job code and cost center, replacing a Friday afternoon reconciliation ritual that used to run three hours.
- Dental practice with a single owner: the categorizer handles the split between personal and business charges on the owner's credit card, flags owner's-draw transactions for monthly partner review, and keeps the practice P&L clean without the owner submitting expense reports.
- Independent restaurant group with three locations: food and beverage purchases, linen service, and equipment rentals post to location-specific cost-of-goods and operating expense codes automatically, giving the owner a real-time food cost percentage without waiting for month-end close.
- Residential general contractor: vendor invoices and material receipts categorize by job and phase (framing, electrical, finish work) so the job-cost report reflects actual spend against budget without the project manager touching the accounting system.
- Accounting firm managing books for fifteen clients: the categorizer handles routine classification per client's chart of accounts and surfaces only exceptions, which the bookkeeper clears in one daily review session instead of working through each file separately.
What’s included
- Fixed scope with written acceptance criteria before any build starts
- Customization layer for your brand voice and business rules
- Clean handover with documented runbook and live training
- Monthly ROI report for three months post-delivery
- Source code delivered to your GitHub on handover
What’s NOT included
- Third-party API subscription costs (billed to your accounts)
- Data migration from legacy systems
- Ongoing infrastructure costs after handover
How clients use this
Fixed-scope build with clean handover, documented ownership, and optional support for monitoring, maintenance, and minor changes.
Part of
Used in: Construction Firms , Restaurants
Questions Expense Categorizer clients ask
What counts as an exception, and how does the review queue actually work?
An exception is any transaction the system can't categorize with high confidence: a first-time vendor with no historical match, a transaction that's been split differently across past entries, or a charge that pattern-matches to more than one account code at roughly equal confidence. The system doesn't guess and silently post. It flags the item and puts it in a review queue with a suggested categorization and the reason it was flagged. The bookkeeper sees the vendor, amount, suggested code, and a one-line explanation, then confirms or overrides with one click. Overrides feed back into the pattern library so the same vendor doesn't flag again. The threshold for high confidence is configurable during setup. Some clients run a tighter threshold and review more, some run looser and touch less. We calibrate it to how much your bookkeeper wants to catch versus how much time they want to spend reviewing.
How deeply does this integrate with QuickBooks and Xero, and does it write directly or queue entries for approval?
Both options are available, and most clients run the first few weeks in queue-for-approval mode to build confidence before switching to direct write. The integration uses the official QuickBooks Online API and Xero API with a dedicated service account scoped to the ledger and bank feed. It never has admin access to user management or payroll. In direct-write mode, categorized transactions post to the ledger with a memo noting the categorization source and confidence score, so the audit trail sits in the register alongside the entry. In queue mode, entries appear as pending in the bank feed for the bookkeeper to batch-approve. If you use QuickBooks Desktop rather than Online, we integrate through a local connector. That setup takes a few extra days, but the categorization logic is identical.
What does the CPA see at year-end, and does this hold up under audit?
Every automatically categorized transaction carries a logged entry in a separate audit table: the vendor string, the matched account code, the confidence score, and the rule or pattern that drove the match. CPAs reviewing the books can pull a categorization log filtered by date range or account code to see exactly how any entry was restricted. Overrides made by the bookkeeper are logged with a timestamp and the corrected code, so there's a clear record when a human changed a system suggestion. This is the same information your bookkeeper would have put in a notes field if they were doing it manually, just structured and queryable instead of living in someone's head. The system doesn't create accounting entries from scratch. It applies codes to transactions your bank or card feed has already recorded, so the underlying source data is unchanged.
How does it handle commingled accounts and owner draws versus distributions?
Commingled accounts, where personal and business charges run on the same card, are one of the more common edge cases we encode explicitly during setup. We map the known personal vendors and recurring personal charges the owner has historically run through the account, flag net-new personal-looking charges for bookkeeper review, and give the review queue a clear 'personal, exclude from business P&L' option that posts a memo without hitting operating expenses. Owner draws versus distributions need a bit more configuration because the tax treatment depends on entity type. An S-corp distribution has different journal logic than a sole-prop draw. We work through those specific cases with the bookkeeper during the training period and encode the rules before going live. This is exactly the kind of edge case where generic auto-rules inside QuickBooks tend to break, and where training on your actual history makes the difference.
How long does training take before the system is accurate enough to trust?
For most businesses with twelve or more months of transaction history in QuickBooks or Xero, the initial pattern library is strong enough to run at useful accuracy before we go live. The two-week build window includes one week of pattern extraction and configuration (pulling historical transactions, building the chart-of-accounts mapping, encoding edge-case rules) and one week of parallel testing where the system runs against your incoming transactions and we compare its categorizations against what the bookkeeper would have done. By the end of that second week, most clients see the system agree with the bookkeeper on the large majority of routine transactions, with exceptions concentrated in the genuinely ambiguous cases. The system keeps improving after go-live: every override the bookkeeper makes feeds back into the pattern library, so accuracy tends to increase over the first sixty to ninety days as the remaining edge cases get encoded.