I'm doing something similar with Tiller (which I've been using since Mint was acquired by Intuit).
It's neat to see how OP did this using a Claude Routine though. My version locally uses a local qwen model + an API key (annoyingly created using OAuth) with sheets access. A Claude Routine would've been significantly easier
Here's the initial spec it created. I started off writing to a local sqlite db instead of Supabase: https://gist.github.com/cowlby/0dbeb52403c3f3c0f1d8122505203...
Edit: Here's also the DSL categorization spec. First one was string based, found it cumbersome, so second one was the Markdown table refactor: https://gist.github.com/cowlby/30d6b5cf132fc1424ab146f0eaf4a...
https://gist.github.com/cowlby/d569c8e05b5b6eecfd4d237372c06...
(edit: put in Gist instead of inline here)
How well has the cash flow prediction worked?
The key was normalizing the payee/categories so we can analyze month to month, and separating fixed vs variable spend. It then did a fancy Monte Carlo simulation with the computed mean/stddev per payee. And out came T+30/T+60 estimates at P50/P80/P90.
Do they pull it through Plaid and the like? It's been a while since I checked them out.
Does it still entail entrusting Plaid with your web banking user credentials? How's 2FA handled?
Does Plaid still rely on screen scraping for certain financial institutions who lack formal API's? What happens if there's a bug and they inadvertently click something they shouldn't, eg. "I Agree" to a popup or something you don't consent to, or even send funds to the wrong place? I know they claim they are "read only" but afaik no bank offers the ability to set up secondary user accounts (on personal banking plans) that truly are just read only?
Do they maintain underwriten insurance or a bond or something to improve your confidence you'll be reimbursed if they, say, cause you a million+ dollars worth of financial damage?
How about the implications of letting both those parties see all your private banking data? I heard there was a class action lawsuit with allegations data was sold or shared inappropriately, any indications on what actually happened?
Or how about the clauses in your banking Terms of Service where you agree not to share your password with third parties?
I just feel queesy using a web / cloud service to manage my finances. Would prefer some client software that runs locally and talks to some kind of bank API's. Does such a thing exist in Canada? (Open Banking is supposed to be coming but I'm not clear if individuals will be able to access it for software they write themselves?) I would switch banks if it did.
These are genuine questions, I sure could use something like an API to my bank, if it were impeccably trustworthy and enforced policies of limited internal data retention once I've "downloaded" it.
For all those concerns, I bet you could automate just parsing all the data from the statements or a CSV export.
Plaid does do screen scraping for smaller banks, but they have agreements for OAuth-based access with most of the largest institutions.
From there, Supabase MCP or psql gives Claude/Codex access to the transactions/balances for english queries. Really impressed with their ability to find subscription patterns, abnormal patterns, etc. Also to predict cashflow which no online tool so far is good at i.e. "tell me how much cash I can move to savings based on my monthly spend patterns and available cash".
For autocategorization, I learned Claude is really good at custom DSLs. Had it create a markdown table based ruleset to normalize payee/categories. I also run the autocat rules as part of the GitHub actions.