Natural-language expense tracker in Telegram

No amount/category fields. One message, as to a friend: “breakfast 240 baht, then a taxi 180, all from the card.”

Log the first purchase

Sample phrase

Breakfast 240 baht today, then a taxi 180, all from the card.

Ledger meaning

Breakfast · 240 THB · cardTaxi · 180 THB · card

  1. 1

    Write the sentence

    As in chat, not form fields. Not “amount / category / pocket” — one message, as to a friend.

  2. 2

    Check the parse

    Amount, currency, category and pocket come from how you said it, not from drop-down lists.

  3. 3

    Confirm

    A voice note asks first. A disputed line or a huge amount too. A clear "taxi home 340 rubles" goes to the journal. While "Record it?" is on screen, the journal does not move.

Tracking without a form

Galka’s free speech is not an “amount / category / pocket” field. You send one message, as to a friend. The bot reads the whole line with rules. There is no three-screen wizard.

No category menu

A known hook — coffee, taxi, groceries — becomes a category. No hook, and she still offers “other”. A category picker does not pop up for every purchase. Those same hooks later fill the report shelves.

Several spends in one message

Breakfast and a taxi in one sentence become two lines, one currency, one pocket if you said it that way. You do not have to ping after every espresso when you already list the tickets together.

Currency and pocket in the same line

“Dinner 18 euros cash” carries amount, currency and pocket. “Coffee 120 baht from the card” does the same for baht and card. If there is no currency, she leans on the chat’s usual spend currency. Junk code like xyz goes to RUB without asking — a parsing limitation.

How to fix it

While “Record it?” is on screen the journal is empty — type the line again. After a save, cancel is a reversal and a fix is a correction. You cannot just strike a row out of the journal.

Ambiguous messages

“I love coffee” with no amount never becomes a spend. A joke, a question without a figure, a story without money — not a journal line. Unclear cases she asks; she does not write in silence.

See how Galka parsed 20 hard phrases

Straight answers

Is every sentence a spend?

No. “I love coffee” with no amount stays out of the journal. Visible money is required.

Two purchases in one message?

Yes. Breakfast and a taxi become two lines, one currency, one pocket.

How do I fix a mistake?

While “Record it?” is on screen the journal is empty. After a save, cancel is a reversal and a fix is a correction. A clear “coffee 80” saves at once — then reverse at once.

Is this just a text field?

No. She parses a free sentence: amount, currency, category and pocket. You do not fill a form.

Do I have to pick a category?

No. She assigns it from the words. If there is no hook she offers “other”.