Kitchen CFO AI: Receipt Bot for a Household Kitchen
A Telegram bot for a private household: the cook sends a photo of a receipt, the bot reads the date, store, total and items, catches duplicates, deducts the amount from the kitchen cash and writes everything to a Google Sheet. Kitchen CFO, the bot’s built-in assistant, answers questions about spending in plain language.
Problem :
Cash spending on groceries was tracked by hand: receipt photos had to be matched against a spreadsheet one by one and the balance recalculated every time. It was slow, and duplicate receipts were easy to miss.
Solution :
A Telegram bot that does the checking. The cook sends a photo of a receipt, the bot reads the date, store, total and line items, checks it is not a repeat, deducts the amount from the kitchen cash and adds a row to a Google Sheet with a link to the photo.
Anything unusual becomes a question instead of a silent write: an old receipt, a total that does not match the items, a purchase that is not for the kitchen, a blurry photo. Questions go to the cook first and to the manager who approves spending if needed.
The bot also has an assistant mode, Kitchen CFO, “your AI kitchen finance director”. It answers questions about spending in plain language, warns the owner when the cash is running low and records new cash he hands over.
Each role has its own rights. The cook sends receipts and answers questions about them, the household manager approves flagged receipts and gets the Sunday report, her assistant receives copies, and the owner records the cash he issues and gets low-balance alerts. Access is tied to each person’s Telegram account, and nobody edits the ledger by hand: a correction is added as a reversal row.
My Role :
Everything: the architecture, receipt recognition, the money logic, the assistant, the Google Sheet with its summary dashboard and the server setup.
Process :
I started from the household’s existing spreadsheet and used its months of receipts to tune recognition: dates printed in different orders, handwritten corrections, two receipts in one photo, multi-page PDF invoices, VAT and discounts.
The main rule is that money only moves through code. The language model reads receipts and understands questions, but every deduction, top-up and cancellation goes through checks in the code, with a lock against double writes. Each change was tested on a full regression suite before going live.
The tone was tuned together with the client: polite, short, with a little humour, and never the same phrase twice in a row.
Outcome :
The bot runs in production on its own server. Receipts land in the ledger seconds after the cook sends them, duplicates and unclear receipts are caught before they reach the balance, and the owner and the manager get the numbers by asking in the chat. The screens here use invented stores and amounts, so the household’s real chats and ledger stay private.
Tech Stack :
Python, aiogram 3, an LLM for receipt vision and the assistant, SQLite as the ledger, Google Sheets with Apps Script (receipts, cash issued, line items, a summary dashboard), receipt photos archived on Google Drive, faster-whisper for voice messages, Pillow and ImageHash for photo processing and duplicate detection, PyMuPDF for PDF invoices. Runs as a systemd service on an Ubuntu VPS.





