第4話

Chapter 4: officeHours

“Receipts, Reviewed”

AI bookkeeping for solo therapists in Ontario. The AI reads the receipts and the therapist decides.

PILOTPilot running October to November 2026

BRYAN

A shoebox of receipts at tax time

The problem

I became a therapist to help people, not to type up receipts for my accountant every April.

A solo therapist

Solo therapists in Ontario keep their own books. Receipts and supplier invoices pile up, and the accountant needs them sorted.

How it works

  1. Step 1: Upload

    Drop in receipts and supplier invoices. Uploads are resumable, duplicates are caught, and HEIC photos are converted.

  2. Step 2: Read

    Claude Sonnet 5 runs a fixed three-step pipeline: classify, extract, categorize. Every call is forced through a single strict tool.

  3. Step 3: Approve

    The therapist reviews and approves every transaction, then exports a two-sheet Excel workbook for their accountant.

Behind the ink

How it's built, and how the AI is kept honest.

A human approves everything

Auto-approve is hard-coded off on the server. Every value is re-validated in code, and every user or AI change goes to an audit log.

Data minimization

Raw model responses are never stored, and no client-identifying data is collected. Data and backups stay in Canada (ca-central-1).

Locked down

Row-Level Security on every user-owned row and file, 60-second download links, and staged account deletion. Tenant isolation is proven by automated pgTAP tests.

Less clicking, faster CI

Receipts from the same supplier are grouped, so in a scripted test 40 receipts needed only 14 confirmations. Running tests in parallel cut median CI time by 34%, from 13m45s to 9m04s.

Built withNext.js · TypeScript (strict) · Supabase · Claude Sonnet 5 · Vitest · pgTAP · Playwright · GitHub Actions