Budget apps have traditionally offered two options for getting your transactions in: manual entry (tedious and error-prone) or bank linking (convenient but privacy-invasive). LiteWork Finance's AI Import is a third approach - and we think it threads the needle better than either.
Here's exactly how it works and why we believe it's a better model.
The Three Approaches Compared
Before diving into AI Import specifically, it's worth mapping the full landscape:
- Manual entry: You type in each transaction by hand - date, amount, description, category. Accurate, but 20–30 minutes per month for an average user. Most people give up within a few months because the friction is too high.
- Bank linking: The app connects to your bank via an aggregator (Plaid, Finicity, etc.) and automatically pulls every transaction. Fully automated, but requires handing credentials to a third party, which stores and monetises your data continuously.
- AI Import: You export your bank statement (a file that your bank generates - you own it), upload it to LiteWork, and AI categorises every transaction automatically. You review and confirm. Takes about 90 seconds for a full month of transactions.
AI Import captures most of the convenience benefit of bank linking with none of the privacy cost. The only meaningful trade-off is that it's not real-time - you import once a month rather than seeing transactions appear automatically each day. For budgeting purposes, monthly is sufficient.
What Actually Happens During an AI Import
Here's the technical flow when you upload a bank statement to LiteWork Finance:
- File upload. You drag-and-drop or select your bank statement file - CSV, PDF, or image screenshot. The file is transmitted over an encrypted HTTPS connection to a Netlify serverless function.
- Parsing. The serverless function reads the file content. For CSVs, it parses rows and columns. For PDFs, it extracts text. For images, it uses OCR (optical character recognition) to read the transaction data.
- AI categorisation. The raw transaction data is passed to an AI model with context about LiteWork's spending categories. The AI assigns each transaction to the most appropriate category based on the merchant name, description, and transaction amount.
- Review screen. You see every parsed transaction with its suggested category. You can change any category before confirming. Nothing is imported without your explicit approval.
- Save to Firestore. When you confirm, the approved transactions are written to your personal Google Cloud Firestore account. The uploaded file is discarded - we don't store it.
From upload to confirmed import takes under 90 seconds for a typical monthly statement of 50–80 transactions.
Why the Review Step Matters
Both manual entry and AI Import include a human review step that bank linking skips. This matters more than it might seem.
Bank-linked apps pull transactions automatically, which means miscategorisations accumulate silently. "AMZN Mktp" might be categorised as Shopping, but it was actually a work expense. A coffee shop visit might be categorised as Dining when you use it as Entertainment. Over months, your category data becomes increasingly inaccurate - and inaccurate data is worse than no data, because it gives you false confidence.
With AI Import, you review every categorisation before it's saved. The AI is accurate for the vast majority of transactions, but the ones it flags or gets wrong are correctable before they enter your records. Your category data stays clean.
What File Types Are Supported
LiteWork's AI Import accepts:
- CSV exports - available from virtually every major bank. Go to your bank's website, find the transaction export or download section, export the date range you want.
- PDF bank statements - your official monthly statement in PDF format. Most standard bank PDFs parse cleanly.
- Screenshots - a photo or screenshot of your transactions on your bank's website or app. Useful when your bank's export is limited or awkward. Images are compressed automatically before upload.
The CSV route is the most reliable because the data is structured. Screenshots work well for recent transactions but can be harder to parse for older statements with complex layouts.
Privacy and Data Handling
The file you upload is processed transiently - it's read, parsed, and discarded. It's never written to a database, stored long-term, or shared with third parties. The only data that persists is the structured transaction list you approve, which is written directly to your Firestore account.
We don't have a copy of your financial data on our servers. We can't access your Firestore account because it's governed by per-user security rules. If we have a data breach, your financial data isn't in scope - because we don't have it.
This is the privacy model bank linking makes impossible. The moment you use an aggregator, your data exists on a server you don't control. AI Import avoids that entirely.