← всі звіти · index.md

type: project name: Фінбот (Expense Bot) slug: finbot status: active readiness_pct: 75 owner_agent: TODO products: [] created: 2026-05-01 last_updated: 2026-05-03 aliases: [expense-bot, фінбот, expense bot, трекер витрат]

Фінбот (Expense Bot) — @Finance_vereschak_family_bot

Особистий Telegram-бот трекінгу витрат родини Сергія: text/voice/photo чека → Gemini 2.5 Flash → Google Sheets.

Meta

Why this exists:

KPIs:

Status snapshot: Бот працює у проді на GCP e2-micro (~$3.64/міс), родина його використовує. У процесі міграції на VPS (#37) — чекає handoff коду від Desktop Claude. Категоризація апгрейднута до 2-рівневої 2026-05-02.

Stakeholders:


Design

Стек

Flow

Telegram вхід (text / voice / photo чека)
    │
    ▼
expense_parser.py — Gemini 2.5 Flash
    │
    ▼
ConversationHandler — підтвердження inline-кнопками
    │
    ▼
sheets.py — gspread → worksheet "Expenses"

Структура коду (зараз D:/Claude Code/expense-bot/ на Windows у Сергія)


Implementation

Категоризація — 2-рівнева (зупинилися 2026-05-02)

Замість плоских 10 категорій (Food/Transport/Housing/...) — 8 макро × 2-4 sub = ~22 категорії. Підтверджено Сергієм після аналізу квітневих витрат.

Макро Підкатегорії
🏠 Дім Ремонт / Побут-хімія / Меблі / Комуналка
🚗 Авто Паливо / Обслуговування / Кредит
🍔 Їжа Продукти (закупка тижня) / Кафе-ресторани / Кава (закупка зерен)
🚬 Шкідливі звички Алкоголь / IQOS
🎁 Соціальне Подарунки / Тусовки / Друзі
👨‍👩‍👧 Родина Освіта дітей / Здоров'я (діти) / Допомога батькам / Дитячі речі
💪 Спорт і здоров'я Басейн / Вітаміни / Особистий догляд
📱 Технології Гаджети / Електроніка / Підписки

Чому виокремили 🚬 Шкідливі звички — Сергій захотів бачити ці витрати окремою макро-категорією (а не всередині «Соціального» або «Здоров'я»), щоб мати чесний show-down.

Спостереження з квітневого аналізу (/srv/reports/expense-april-2026-2level.md):

Як впровадити у бот

  1. Оновити Gemini-промпт у expense_parser.py — давати йому 2-рівневу таксономію + просити вибрати макро+sub
  2. Google Sheet headers: додати колонки Macro_Category + Sub_Category поряд з оригінальною Category
  3. Backward-compatibility — старі записи з flat Category залишаються, нові пишуться з обома

Поточний хостинг (GCP)

Cross-references


Notes & Backlog

Активні задачі

Known issues (вже вирішені у production коді)


Questions for human (waiting for Сергій)

High-priority

  1. Репо — є git? URL? Чи живе тільки локально на D:/Claude Code/expense-bot/?
  2. Сховище — Sheets залишаємо чи мігруємо в Supabase/SQLite? (При міграції на VPS — момент, коли можна перейти на щось більш query-friendly).
  3. MASTER_PASSWORD — оновити на новій інсталяції чи лишити як є?

Medium

  1. Дружина як другий користувач — додати її Telegram ID у ALLOWED_USERS?
  2. Authority of edits — якщо AI неправильно категоризував і юзер виправив через кнопку — це фідбек-сигнал у промпт?

Legacy