Skip to main content
When a transaction arrives from your bank, it carries raw, cryptic text such as “COMPRA CONTINENTE COLOMBO 12345”. guito turns that into a clean merchant name, a category and a logo, automatically, so you can read and analyze your spending without sorting anything by hand. This page explains how guito reaches that result, why it sometimes prefers to set no name at all, and what happens when you correct it.
Transactions come from the accounts you connect through open banking. To see automatic categorization in action, connect a bank from the Accounts page. See Bank sync.

What gets filled in

For every transaction, guito works out four things:
  • Merchant — the canonical merchant name (for example, “Continente”, “Zara”, “Galp”). This is the merchant only: no category words and no role prefixes attached.
  • Display name — what you read in the list. When the merchant is known, the display name becomes the canonical merchant name: “Compras Zara” becomes “Zara”, “Gasolineira Galp Oeiras” becomes “Galp”.
  • Category — which of your categories the transaction belongs to, so all your spending analysis groups correctly.
  • Logo — the merchant logo, matched from the merchant’s web domain.
Categorization happens just after a transaction is synced, in the background. New rows briefly show their raw bank text with a shimmer effect, then settle into the clean name and category a few moments later. Your account becomes visible immediately, without waiting for categorization to finish.

How guito decides

guito does not call an AI model on every transaction. It works through a series of layers and stops at the first one that can answer, which keeps recurring transactions (your supermarket, your salary, your rent) fast and consistent:
1

Your personal cache

If you have already categorized a transaction with the same descriptor before, guito reuses that earlier answer. Because most transactions repeat, this covers the bulk of your activity without any further work.
2

Your personal rules

When you correct a category or a merchant, the correction takes effect on the very next matching transaction. You do not need to repeat it. If you change your mind later and correct it again, the most recent correction wins.
3

Your merchant identity cache

The same merchant often shows up under slightly different bank text (“continente loures” versus “continente s j talha”). When guito recognizes that a new variant points to a merchant you already have, it reuses your earlier answer.
4

An anonymised cross-user hint

guito keeps a shared table that maps descriptors to canonical merchants, but only under strict anonymity: many users must have independently seen the same pattern and their names must agree, and only merchants ever qualify (never people, never government entities). When a pattern clears those gates, the AI receives it as a hint, but it still decides for itself.
5

AI with a web search

For descriptors whose shape looks like a brand, guito first runs a web search for that row and feeds the top results to the model as candidates. The model picks the candidate that genuinely matches, or abstains when none does, which stops it from inventing a brand. To be safe, the model is asked the same question three times in parallel and the answers are reconciled by majority, and a combined confidence score weighs how much the three answers and the web results agree.
6

Save and audit

guito writes the result to the transaction, updates the shared merchant directory and your personal cache, and records an audit entry for each layer that fired.
guito sets a name only when it is confident enough. Ambiguous transactions such as ATM withdrawals or generic card terminals are left without a merchant rather than guessed, so they never pollute the shared merchant directory.

What happens when you correct

Categorization is automatic, but you are always in control, and your correction always wins over guito’s decision. When you edit a transaction’s category, merchant or display name, that choice becomes one of your personal rules (the second layer above) and takes effect on the very next matching transaction, without you having to repeat it. If you change your mind later and correct it again, the most recent correction is the one that stands. When you save, guito asks whether to extend the change to past transactions that share the same descriptor, and shows the exact count. That bulk propagation only touches the rows you have not already corrected by hand: your existing manual edits are never overwritten. This is why you can fix a one-off case without fear of undoing work you had already done elsewhere. Renaming a merchant follows the same logic, but applies to everything that shares the same merchant, not just one descriptor. The change is personal: only you see the new name, while other users still see the canonical name (for example, “Continente”). Underneath, merchants are grouped by web domain, so every spelling variant that shares the same domain (“Continente Loures”, “CONTINENTE LX”) counts as a single merchant in your summaries and charts. A merchant without a domain (a personal payment, a small local shop you type by hand) stays in your own scope without a logo until you later link it to a brand.
For the step-by-step of how to edit a transaction or rename a merchant in the interface, see Transactions and cash flow.

How categories interact with the charts

guito treats categories as direction-agnostic. A refund credit that lands on a spending category (for example, a Continente return) stays under Groceries as a reduction in spending, not as income. The charts add up transactions by their sign (money in versus money out), not by the category’s type, so your totals stay correct either way.
This is why a refund on the Groceries category lowers your groceries spending instead of showing up as income, and a tax refund counts as income on the cash-flow chart. For the full sign convention, see Cash flow.

Your privacy

  • Your personal cache never leaves your account. What you have categorised and corrected stays scoped to you.
  • The shared table holds no personal data. It stores only descriptors with personal information stripped out (no IBAN, no tax number, no phone number), and it never propagates people’s names: any descriptor that looks like a person’s name is rejected.
  • Custom categories are first-class. The model never assumes specific category names; it receives your catalog at the time and adapts. Rename Market to Groceries, or create Streaming next to Subscriptions, and guito picks the best option from your own list.

Transactions and cash flow

View, filter and analyze your bank transactions.

Cash flow

How guito calculates income, expenses and the sign convention.

Bank sync

How automatic open banking sync works.

AI assistant

Ask questions about your spending in natural language.