An AI-powered bookkeeping assistant that categorizes your transactions while you sleep, and learns your preferences over time.
Bank transactions, credit card charges, and payroll journal entries are already flowing into QB automatically. The bookkeeper reads them from there.
An AI model reads each transaction, looks up the vendor's history, checks the chart of accounts, and picks the right category.
If the AI is confident, it posts the transaction. If anything is uncertain, it parks it in your review queue with an explanation of why.
Every time you file a parked transaction, the system learns. After a few corrections, that vendor starts getting auto-posted.
This already happens automatically through QB's bank feeds. Payroll transactions and journal entries also flow in from your payroll provider. Nothing changes here.
Each night, the system connects to your QB account via the official API and pulls any uncategorized transactions that came in during the day.
For each one, the AI model receives the transaction details (vendor, amount, date, description) along with your chart of accounts and that vendor's filing history. It decides the best category.
If the AI is sure about the categorization, it writes the transaction directly into QuickBooks with the correct account code. Your books are updated before you wake up.
If anything is ambiguous — a new vendor, an unusual amount, an unclear description — the transaction gets parked in the dashboard for human review. Nothing questionable is ever posted without your approval.
All signals are green or amber. The system has seen this vendor before and knows where it goes. Posted automatically to QuickBooks.
One or more signals are red. Something is unfamiliar or ambiguous. Held in the dashboard with an explanation so you can decide.
The system has no history. Most transactions get parked for review. You (or your CPA) provide an Excel file with historical categorizations to bootstrap the system — this gives it a head start instead of learning from zero.
As you file parked transactions, the system records each decision. Common vendors start accumulating history. The park queue begins shrinking.
Most regular vendors have 5+ consistent filings and are now auto-posted. Your review queue is mostly new vendors and genuine edge cases that deserve human judgment. The system is doing the heavy lifting.
The model receives a structured prompt containing:
The model responds with a structured answer (in strict JSON format, not freeform text) containing the recommended account, a confidence score, and a brief reasoning. This structured output format is critical — it must be machine-readable every single time, which is why model reliability matters so much.
The AI's recommendation is just one input into the 10-signal scoring system. Even if the AI is confident, the scoring system might still park the transaction if other signals raise concerns (like an unusually large amount for that vendor).
| Model | Per Transaction | 500 Txns / Month | Reliability | Verdict |
|---|---|---|---|---|
| Claude Haiku 4.5 Anthropic — $0.80 / $4.00 per M tokens | $0.0012 | $0.60 | 99.5% | Best for routine transactions |
| GPT-4.1 mini OpenAI — $0.40 / $1.60 per M tokens | $0.0006 | $0.28 | ~98% | Cheapest reliable option |
| Llama 4 Maverick Meta (open-weight) — ~$0.27 / $0.85 per M tokens | $0.0004 | $0.18 | 85-98% | Cheapest, but inconsistent output |
| Muse Spark 1.1 Meta — $1.25 / $4.25 per M tokens | $0.0017 | $0.84 | Untested | Brand new (July 9) — watch list |
| Claude Sonnet 4.6 Anthropic — $3.00 / $15.00 per M tokens | $0.0045 | $2.25 | 99.8% | Best accuracy for hard cases |
| Claude Opus 4.6 Anthropic — $15.00 / $75.00 per M tokens | $0.0225 | $11.25 | 99.9% | Overkill for this use case |
Use a cheap, fast model for the easy transactions (known vendors, recurring charges) and a smarter model for the hard ones (new vendors, ambiguous descriptions, large amounts).
In practice, about 80% of transactions are routine and 20% need more careful analysis.
The default behavior is caution. If any signal is unclear, the transaction gets parked for human review. It's better to ask than to guess wrong.
The AI must respond in a specific, machine-readable format every time. If the response doesn't match the expected structure (which happens rarely with the right model), the transaction is automatically parked.
If the system crashes mid-run, it picks up exactly where it left off. No transactions are lost or double-posted. Each transaction moves through states: PARKED → PREPARED → SENT, and each transition is recorded.
Even auto-posted transactions appear in the daily summary. If something looks wrong, you can reverse it. The system proposes; you dispose.
In shadow mode, the system runs but doesn't post anything. Instead, it generates a report comparing what it would have posted vs. what was actually filed. This lets you validate accuracy before going live.