When designing a personal finance app, the absolute hardest part of the workflow is transaction categorization.
The easy way out in 2026 is to just throw an API key at a massive LLM, send the user's raw bank strings to the cloud, and let OpenAI guess if "AMZN MKTPLACE" is Groceries or Shopping.
The hard—but infinitely more private—way out is making the categorization engine run entirely locally on the client's machine.
For my offline finance dashboard, FinFortress, I decided to ditch the LLM hype entirely. Instead, I built a local text classifier in Python using scikit-learn.
The Setup: The user imports their .csv and manually categorizes a baseline of just 20 to 30 transactions.
The Engine: The app uses a TfidfVectorizer to break down the text strings, and trains a lightweight LinearSVC model against their custom budget categories.
The Result: From then on, every time they drop a new bank CSV into the folder, the local processor handles the ML predictions on their own CPU in milliseconds.
It is incredibly fast, costs me absolutely $0 in API maintenance fees, and completely preserves the user's financial privacy. It isn't AGI, but it perfectly solves the exact problem it was designed to solve.
I’d love to hear from other developers handling text classification: Are you defaulting to cloud LLMs for simple sorting tasks now, or are you still utilizing classic, lightweight ML models like LinearSVC?