Skip to content

Adding an expense in one line

You are walking and adding a coffee. Instead of a form, one line written the way you would say it: the app takes the amount, the currency, the date and the category out of it. The parsing happens on the device, so it works with no network and uses no AI allowance.

Author: Oleksii Itseksonthe developer of FinLad, and its user since 2025

Published: Updated:

How it works

  1. 1

    “coffee 85 yesterday” — 85,00, the date moves to yesterday, and “coffee” becomes the note the rule engine files under cafés.

  2. 2

    “20 dollars at rate 45” — the line names a currency the account does not hold, and a rate for it. The keypad shows 900,00: a rate written into the line beats the day’s, because the person who wrote it knows what they actually paid.

  3. 3

    “three hundred hryvnia yesterday on a taxi” — there is no digit anywhere in the line, which is exactly why this is the one case of the three that goes to the model. It comes back with 300,00, yesterday’s date and “on a taxi” as the note, and the amount is accepted only when the model shows where it read it from.

  4. 4

    The parse fills the form and saves nothing: you see what it made of the line, and one tap puts it back exactly as you typed it. Dates are read too — “yesterday”, “the day before yesterday”, “last week”.

Why a line rather than a form

A form for adding an expense is five fields, and each of them wants its own tap: amount, date, category, account, note. Twenty times a day that is twenty small decisions, and it is on those that tracking ends — not through laziness, but because the daily price turns out to be higher than the benefit.

A line removes not the fields but the switching between them. “coffee 85” is one action instead of five, and you can write it while putting your card away, without stopping. The app then unpacks the line into those same fields and shows you what it made of it.

The important part is that parsing saves nothing by itself. It fills the form in, you see the result, and one tap puts the line back exactly as you wrote it. So a parsing mistake costs a second rather than a spoiled record.

What it actually understands

  • An amount anywhere in the line, with a comma or a full stop, with a currency or without. With no currency it uses the account’s.
  • Another currency and a rate for it: “50 dollars at 44.5”. A rate in the line beats the rate of the day — you know what you actually paid and the app does not.
  • Dates in words: “yesterday”, “the day before yesterday”, “last week”, as well as ordinary numbers. With no date it uses today.
  • The category — through your own categorisation rules, from a word in the line. “coffee” lands in cafés because that is how you have it set up, not because a model knows it.
  • The rest of the line becomes the note. Nothing is thrown away: whatever the app did not understand stays as text you will see on the transaction.

Where the device ends and the model begins

Everything above is parsed on the device itself: no network, no delay, no AI allowance, and on any plan. It is ordinary rule-based text parsing, which is exactly why it works on the underground and on a plane.

The line goes to a model only when it contains no digits at all — “three hundred yesterday on a taxi”. That is the rare case, it needs Plus with AI switched on, and the result is accepted only when the model shows where it read the amount from.

The two paths are worth telling apart for one practical reason: if you write the amount in figures, your AI allowance is never spent, however many expenses you add in a day.

Which plan you need

Parsing a line works on every plan, because it happens on the device. Asking the model when a line falls short needs Plus and AI switched on.

Worth knowing

  • The line fills the form and saves nothing. You see what it made of it before you confirm, and one tap undoes the parse and puts the line back exactly as you typed it.
  • If your keyboard dictates — and most modern phones do — the same line can simply be spoken. That is your keyboard’s feature rather than ours: the app asks for no microphone and records nothing.
  • The model is asked only when the local parse falls short, only online and only with AI on. It never invents an amount.