A real build, working end to end. No web app and no deployment: a tool you run against a ledger. It catches seeded and synthetic anomalies; not yet validated on a real accountant's messy ledger.
Every journal entry, cross-examined three ways.
Month-end close is where booking mistakes get caught, or don't. I built a detector that reads the general ledger and works it over in three layers: deterministic rules for what is provably wrong, Benford and round-number heuristics for what looks engineered, and per-client learned models for what is simply out of character. Wired to QuickBooks Online through a sandbox-tested OAuth integration.
What it looks for
Six classes of mistakes, from arithmetic to patterns. Every flag knows which layer raised it.
Three layers, three kinds of certainty
Verdicts of different strength. The output never passes a hunch off as a fact.
Provably wrong.
Deterministic accounting rules: unbalanced journal entries, duplicate transactions, transfers booked as income. Every flag traces back to a rule you can read.
Statistically suspicious.
Probabilistic screens: Benford's law on digit distributions and round-number structuring. Flags arrive scored as suspicion, not asserted as fact.
Not like this client.
Per-client models learn each client's own booking history. An amount that is routine for one business is an outlier for another.
Wired to real books
The most sensitive thing this tool holds: access to real books.
- QuickBooks Online, by the bookAn OAuth 2.0 integration, exercised end to end against Intuit's sandbox environment.
- Secrets encrypted at restOAuth tokens are stored AES-encrypted at rest: access to the books is the most sensitive thing this tool holds.
- A standalone toolNo web app and no deployment: you run it against a ledger and get flags back.
What's proven, and what isn't
Numbers exactly as the test report prints them. Nothing rounded.
- ✓Every seeded anomaly class gets caught. The TDD suite plants imbalances, duplicates, transfers-as-income, Benford drift and round-number patterns in synthetic ledgers, and the detector finds them.
- ✓The QuickBooks OAuth flow works end to end against Intuit's sandbox environment.
- ✓Tokens are AES-encrypted at rest.
- …Detection quality on real data. Synthetic anomalies are cleaner than a real accountant's messy ledger; until the detector has run on live books, precision there is an open question.
- …Production operation. Nothing is deployed and nothing runs unattended: a standalone tool, run by hand.
- …That 1 failing test. A stale local CSV fixture: known, tracked, not a code regression. Written down here instead of rounded away.
Under the hood
- Certainty carries a labelA hard-rule violation and a statistical hunch never look the same in the output. Every flag carries its layer and its reason.
- Honest test math434 passing, 2 skipped, 1 known-failing from a stale CSV fixture. Reported exactly as printed, never rounded up.
- Secrets treated as radioactiveOAuth tokens are AES-encrypted at rest, because access to the books is the most sensitive thing this tool holds.
- Tests firstEvery detector class landed together with its tests: seeded anomalies in synthetic ledgers the code had to catch before it counted as done.
Does your month-end close still rely on tired eyes alone?
Three detection layers, a sandbox-tested QuickBooks integration, and a test suite that reports its own failing test. What it needs next is a real ledger. It could be yours.