The tedious half, done for you
One receipt and one bank line, end to end
A receipt photo arrives
A parent photographs the Costco run in the parking lot and submits it. The photo is queued for reading the moment the report is sent, so it is usually already read by the time you open it.
Three things are read off it
The total paid, the date, and the merchant. Several receipts on one line are read together as one purchase, so the total is the purchase's total and not the first photo's.
It is checked against what the volunteer typed
Amount within a cent, date within seven days, merchant name overlapping what was entered. Agreement reads Verified. Disagreement names the fields that differ and offers the scanned values as a suggestion — the number your volunteer typed is never quietly overwritten.
Separately, the bank feed lands
Two hundred lines come in from the bank overnight. Your own rules go first: anything matching a standing instruction you wrote is categorized by that rule and the AI is never asked about it.
A category is proposed for the rest
The model sees the description, payee, amount and date, your chart of accounts, and the last twenty categorizations your organization actually made. It answers with an account, sometimes a vendor, and how sure it is.
It asks whether you already recorded this
Before proposing anything it weighs the row against entries already on your books for that amount. If it could be a second copy of money you already entered, it says so and leaves the row uncategorized on purpose, so the obvious next click is Match rather than Add.
Then it stops
The suggestion is written onto the row and goes no further. Nothing reaches your ledger. At 90% or better the row is pre-filled and marked Matched so a batch can be swept up at once — but the sweep is still a button you press.
You accept, and it posts
The entry is written, and your decision is recorded as an example for next time. Only your acceptances become examples — the model's own guesses never teach it, so a wrong guess cannot become its own precedent.
The rule everything else follows
That is a design decision, not a limitation we are working around. A bank feed row that duplicates an entry you already made looks exactly like a new transaction to a categorizer, and posting it silently doubles an amount in a register nobody was asked to re-read. We would rather you click.
The job is not hard. It is just long.
Forty receipts, three fields each, at a kitchen table after everyone is in bed.
The feed knows the amount and the date. It does not know that this one was the fall festival and that one was the book fair.
Costco, Smart and Final, the district, the printer. You categorize them, and next month you categorize them again.
PTA accounting that runs itself
Built for school groups. Free for 30 days, no credit card required.
Where the line is
Point your own AI assistant at your books
Create an API key in your FutureFund account and point Claude Desktop, Claude Code, ChatGPT or VS Code Copilot at https://beekeeper.futurefund.com/mcp/messages. The key only reaches organizations you belong to.
It can list your organizations, read accounts and read journal entries. There is no tool that writes, changes or deletes anything — not a setting you have to remember to switch off.
What did we spend on the carnival across three years. Which months look nothing like the others. Why is this account bigger than it was. Then you go and look at the ledger yourself.
And so much more
Frequently Asked Questions
Keep looking around
Easy Import
Import your chart of accounts, budget, vendors and full transaction history. Switching mid-year is normal here, and we do the hard part with you.
Budgets & Amendments
Build the annual budget, take it from working draft to proposed to approved, and track actuals against it all year. Amendments are numbered, carry their reason, and stay on the record.
FutureFund Sync
Link your FutureFund account once and each payout lands in BeeKeeper as a journal entry — income per campaign, fees grossed up, sales tax where it belongs, deposit matching the bank.