Automatic categorization · Built for Canada

Your transactions, sorted the moment they land.

Nobody wants to hand-label a month of coffees, groceries, and rideshares. Mozaic categorizes your transactions automatically as they sync: your bank's own category first, and Google Gemini fills only what the bank leaves blank. Every category stays yours to correct.

Bank category first via Plaid · AI gap-fill · About 85 categories · Yours to override
01 · How it works

The bank's category first, AI only for the gaps

When a transaction syncs from a connected bank through Plaid, Mozaic uses the bank's own category if there is one. Only the transactions the bank leaves uncategorized are sent to Google Gemini, which reads the merchant name and whether it was money in or out and returns a category. That order matters: it keeps the AI focused on the hard cases instead of second-guessing a category your bank already got right.

Brokerage transactions from SnapTrade arrive with no category of their own, so those go straight to the AI. Imported CSV transactions are handled the same way. The result is that most of your history is sorted without you touching it.

02 · It remembers, privately

Seen once, sorted instantly next time

Once a merchant has been categorized a couple of times, Mozaic saves that as an exact-match rule. The next transaction from that merchant is categorized instantly from the rule, without going back to the AI. This is a plain lookup, not a model trained on your habits, so it is fast, predictable, and keeps repeat merchants off the AI entirely.

Privacy is built into the order of operations. Only the merchant name and whether the amount was a debit or a credit are ever sent to the model. Account numbers, balances, and personal notes are not.

T
Tim HortonsDebit · Bank category (Plaid)
Coffee Shops
U
UberDebit · AI gap-fill
Rideshare/Taxi
P
Payroll depositCredit · Saved rule
Salary/Wages
03 · Always yours to correct

Re-categorize anything, and make it a rule

Every category is a suggestion you can change. Re-categorize any transaction and Mozaic marks it as yours, so no future sync ever overwrites it. Turn a correction into a rule, matched by exact text, contains, starts-with, or a regular expression, and apply it to past transactions in bulk, not just new ones. There are roughly 85 built-in categories across income, housing, transport, food, and more, and you can add your own.

Prefer to label everything yourself? Turn automatic categorization off entirely, and every new transaction stays uncategorized until you touch it. The choice of how much to automate is yours, not ours.

04 · Clear about the limits

Best-effort, never a black box

Automatic categorization is best-effort. If the AI is unavailable or you have turned it off, transactions simply stay uncategorized rather than getting a wrong label forced on them. Nothing blocks a sync waiting on a category.

Because the AI reads only the merchant and the amount direction, an ambiguous merchant name can land in the wrong bucket. That is exactly why every category stays one tap away from a correction that sticks, and why a single fix can become a rule that cleans up every past and future match at once.

Categorization questions, answered.

Five questions about automatic categorization in Mozaic. General security and pricing questions are answered at /security and /pricing.

No. Transactions from connected banks are categorized automatically as they sync. Mozaic uses your bank's own category first, through Plaid, and sends only the transactions the bank leaves uncategorized to Google Gemini to fill in. You can re-categorize anything, but you do not have to start from a blank slate.
No. Only the merchant name and whether the amount was money in or out are sent to the model. Account numbers, balances, and personal notes are never sent. Once a merchant has been categorized a couple of times, Mozaic saves an exact-match rule and stops sending that merchant to the AI at all.
Yes. Re-categorize any transaction and Mozaic marks it as your choice, so no future sync overwrites it. You can also turn the correction into a rule, matched by exact text, contains, starts-with, or a regular expression, and apply it to past transactions in bulk. There are about 85 built-in categories, and you can create your own.
Yes. Brokerage transactions from SnapTrade arrive without a category of their own, so they go straight to the AI gap-fill. Imported CSV transactions are categorized the same way. Bank transactions from Plaid keep the bank's category whenever there is one.
Yes. Automatic categorization is a setting you can disable. With it off, neither the AI nor its saved rules run, and every new transaction stays uncategorized until you label it yourself. It is best-effort by design: if the AI is ever unavailable, transactions stay uncategorized rather than getting a wrong label forced on them.

Let your transactions sort themselves. Free for 14 days, no credit card to start.

Try automatic categorization