AI Transaction Categorization: How Your App Learns Where You Spend
A detailed look at how IterArc's two-tier categorization system — rule-based pattern matching plus AI fallback — automatically sorts your bank transactions and gets smarter with every correction.
🇭🇺 Olvasd magyarul
The Problem with Manual Transaction Categorization
If you have ever tried to manually categorize every bank transaction at the end of the month, you know the pain. Fifty, a hundred, sometimes two hundred transactions — each one needing a label. Groceries, dining, transport, subscriptions, transfers, cash withdrawals. After twenty minutes of scrolling and tapping, you give up and mark everything as “Other.”
This is why most budget apps fail at their core promise. They can import your transactions, but turning raw merchant strings like “PAYPAL *SPOTIFYAB” or “POS 0429 BUDAPEST SPAR” into meaningful spending categories is the hard part.
Key Takeaways
- IterArc uses a two-tier system: deterministic rule matching first, AI classification second
- Tier 1 rules are instant, free, and predictable — they handle 70-80% of transactions from day one
- Tier 2 AI classification uses Claude to interpret ambiguous merchant names and assign categories with confidence scores
- Every manual correction you make creates a permanent Tier 1 rule — the system literally learns from you
- After 2-3 weeks of active use, most users see 90%+ of transactions categorized without any AI calls
- Your transaction data is never used for advertising or sold to third parties
Tier 1: Rule-Based Pattern Matching
The first line of categorization is entirely deterministic — no AI involved. When a transaction arrives from your Revolut via Open Banking, IterArc runs it through a series of pattern-matching rules in order of priority.
Built-In Merchant Patterns
IterArc ships with a base set of merchant patterns covering common European retailers and services:
| Category | Example Merchants | Pattern Type |
|---|---|---|
| Groceries | Lidl, Spar, Aldi, Tesco, Auchan, Penny | Name contains |
| Dining Out | Wolt, Bolt Food, Foodpanda | Name contains |
| Transport | BKK, Budapest GO, MOL, Shell, OMV | Name contains |
| Subscriptions | Netflix, Spotify, YouTube, Apple, Google | Name contains |
| Health | Gyogyszertar, DM, Rossmann | Name contains |
| Utilities | ELMU, FOGAZ, Digi, Telekom, Vodafone | Name contains |
| Entertainment | Cinema City, Jegymester | Name contains |
These patterns use case-insensitive substring matching. “SPAR 4012 BUDAPEST” matches the Groceries rule because it contains “SPAR”. The matching is intentionally simple — complexity belongs in Tier 2.
User-Created Rules
This is where the system gets powerful. Every time you manually correct a transaction’s category, IterArc creates a persistent rule:
- You see a transaction from “KISVENDEGLO MATYAS” categorized as “Other”
- You tap it and select “Dining Out”
- IterArc creates a rule: any transaction containing “KISVENDEGLO MATYAS” maps to “Dining Out”
- Every future transaction from this restaurant is categorized instantly, with no AI call
User rules take priority over built-in patterns. If a built-in rule categorizes “DM DROGERIE” as Health but you want it under “Personal Care”, your correction wins permanently.
Pro tip: Be specific in your first few weeks. The more unique merchant names you correct, the faster the system reaches full automation. Focus especially on local businesses that are not in the built-in pattern list.
Amount and Recurrence Detection
Beyond merchant names, Tier 1 also looks at structural patterns:
- Recurring same-amount transactions — If “DIGI TAVKOZLESI” charges exactly 3,490 HUF every month, it is flagged as a subscription even before the merchant name is checked
- Transfer detection — Transactions between your own accounts (identified by matching IBANs or specific transfer references) are auto-categorized as internal transfers
- ATM withdrawals — Identified by merchant codes and categorized as cash withdrawals
Tier 2: AI Classification
When no rule matches a transaction, it enters the AI classification pipeline. This is where Claude analyzes the transaction metadata and assigns a category.
What the AI Sees
The AI receives a minimal, privacy-preserving payload:
| Data Sent | Example | Purpose |
|---|---|---|
| Merchant name | ”ETTEREM FIRENZE KFT” | Primary classification signal |
| Amount | 8,400 HUF | Context for category likelihood |
| Date and time | 2026-04-10 19:42 | Time-of-day patterns |
| Country | HU | Regional merchant conventions |
What the AI does NOT see:
- Your account number or IBAN
- Your account balance
- Your card number
- Other transactions in your history
- Your name or personal details
Each transaction is classified independently. The AI does not build a profile of your spending — it simply answers: “Given this merchant name and amount, what category does this transaction most likely belong to?”
Confidence Scoring
The AI returns a category assignment along with a confidence score:
| Confidence Level | Action | Example |
|---|---|---|
| High (>85%) | Applied automatically, no review needed | ”BOLT TECHNOLOGY” -> Transport |
| Medium (60-85%) | Applied but flagged for review | ”PAPIRUS BT” -> could be Office Supplies or Entertainment |
| Low (<60%) | Marked as “Uncategorized”, surfaced for manual review | ”KFT 29471 BUDAPEST” -> ambiguous |
High-confidence results are silent — you only see them if you scroll through your transaction list. Medium-confidence results show a subtle indicator so you can confirm or correct at your convenience. Low-confidence results appear in your review queue.
Important: Every correction on an AI-categorized transaction creates a Tier 1 rule. This means the AI is self-obsoleting by design — the more it categorizes, the more rules accumulate, and the fewer future transactions need AI at all.
The Learning Curve: How Accuracy Improves Over Time
The system gets measurably better with use. Here is a typical trajectory for a new user:
| Week | Tier 1 Match Rate | AI Needed | Manual Review Needed |
|---|---|---|---|
| Week 1 | ~65% | ~25% | ~10% |
| Week 2 | ~80% | ~15% | ~5% |
| Week 3 | ~90% | ~8% | ~2% |
| Month 2+ | ~95% | ~4% | ~1% |
The improvement is driven entirely by your corrections. Each correction eliminates one merchant from the AI pipeline permanently. After a month, the only transactions reaching the AI are genuinely new merchants you have never transacted with before.
Why This Approach Beats Pure AI
Some finance apps run every transaction through an AI model. This has three problems:
- Cost — AI classification costs compute resources for every single transaction, every month, forever
- Latency — AI calls take 1-3 seconds; rule matching takes milliseconds
- Consistency — AI models can classify the same merchant differently on different days. Rules are deterministic: same input, same output, every time
IterArc’s hybrid approach uses AI as a bootstrap mechanism. It handles the cold-start problem (new user, no rules) and gracefully fades out as your rule set grows. This is not machine learning in the traditional sense — it is human-in-the-loop rule generation with AI as the suggestion engine.
Category Taxonomy
IterArc uses a flat category list rather than nested hierarchies. Complex multi-level category trees look impressive in screenshots but create decision paralysis when you are trying to quickly categorize a transaction.
The default categories:
| Category | Description |
|---|---|
| Groceries | Supermarkets, markets, food shops |
| Dining Out | Restaurants, cafes, food delivery |
| Transport | Public transit, fuel, parking, ride-sharing |
| Subscriptions | Recurring digital services |
| Utilities | Electricity, gas, water, internet, phone |
| Health | Pharmacy, doctor, gym, supplements |
| Entertainment | Cinema, events, games, hobbies |
| Shopping | Clothing, electronics, household items |
| Housing | Rent, mortgage, maintenance |
| Personal Care | Haircut, cosmetics, personal items |
| Education | Books, courses, training |
| Transfers | Between own accounts |
| Cash | ATM withdrawals |
| Income | Salary, freelance, refunds |
| Other | Uncategorized |
You can rename categories and create new ones. Deleted categories reassign their transactions to “Other” and trigger a re-categorization pass on affected rules.
Pro tip: Resist the urge to create too many categories. Five to eight active budget categories is the sweet spot. More than that, and you spend more time deciding where a transaction belongs than the insight is worth.
Privacy: What Happens to Your Data
Your transaction data exists in three places, all under your control:
-
Your device — The primary copy, stored in the local SQLite database. This is the offline-first source of truth. Available without internet.
-
Your encrypted backend — Synced to your Supabase project for cross-device access and backup. Encrypted at rest. Row-level security ensures only your household can read it.
-
AI processing (transient) — When a transaction hits Tier 2, its metadata (merchant name, amount, date, country) is sent to Claude for classification. This data is not stored after classification. It is not used for model training. It is processed and discarded.
Your transaction data is never:
- Sold to data brokers
- Shared with advertisers
- Used to build a financial profile for credit scoring
- Aggregated with other users’ data
- Retained by the AI after classification
Integration with Daily Tracking
Finance categorization feeds directly into IterArc’s daily view. Your spending is not isolated in a separate finance app — it shows up alongside your habits and food tracking on the daily summary.
Key integrations:
- Budget alerts as notifications — When a category approaches its monthly limit, you receive a push notification. These are generated from local data, not AI.
- Daily spend in the evening wrap — Your evening briefing includes a one-line spending summary: total amount, transaction count, and any budget warnings.
- Food spend correlation — Transactions categorized as Groceries or Dining Out can be cross-referenced with your food log entries from the same day, giving you a cost-per-calorie perspective over time.
This cross-domain visibility is what separates IterArc from standalone budget apps. A budget app tells you that you spent 45,000 HUF on dining out this month. IterArc can also show you that your dining-out days correlate with exceeding your calorie target, or that weeks where you cook more (lower Dining Out spend) align with better habit streaks.
For the full picture on how the bank connection works securely, see Open Banking Finance Tracking: How IterArc Connects to Your Revolut Securely.
Summary
IterArc’s transaction categorization is a two-tier system built for accuracy, speed, and privacy. Tier 1 handles the majority of transactions with deterministic rules — instant and free. Tier 2 uses AI for ambiguous cases and bootstraps the rule engine through your corrections. The result: a system that starts at 65% automation and reaches 95%+ within a month, with every manual correction making it permanently smarter. Your data stays on your device first, syncs encrypted to your backend, and is never sold or shared. And because IterArc is not just a finance app, your categorized spending feeds directly into your daily habits, food tracking, and briefing — one app, one picture, one daily routine.
Try IterArc
AI food tracking, science-based habits, household sharing. Free, offline, no ads.