I think most people here have some automation to import bank statements into their ledger. So do I. But when the monthly summary says “30%+ goes to groceries,” I can’t make a budget with that coarse number.
So I built BeanBeaver: an iPhone app that turns a photo of a grocery receipt into a Beancount transaction — one posting per line item, each item sorted into an expense category.
How it works:
- OCR runs entirely on-device (PP-OCRv5 via ONNX Runtime). No server, no network, no analytics — it works in airplane mode.
- The parser uses each text fragment’s position on the receipt (its bounding box) to extract merchant, date, item names, and prices.
- The output is plain Beancount text you can copy or share. Optionally, connect a GitHub repo and each scan opens a PR with the transaction.
It’s in TestFlight now (iPhone, iOS 17+): https://testflight.apple.com/join/6mw5ScqH
I’d love to hear how it does on your receipts, and what would make it fit your workflow.
that em-dash …
easy to say “all on device”. but given the LLM vibe here in the post - not something id trust without source code.
Besides, you can verify by airplane mode on
Good call, and here is the source code: https://github.com/Endle/beanbeaver-core https://github.com/Endle/beanbeaver-ios



