Using Claude Code with TIller to create a full financial tool system

In case helpful.

I did not want my financial data to end up in an AI. So, I used Claude Code (with a dummy spreadsheet) to build me a tool that does the following reading from my Tiller sheet (including the new Holdings feature which is AWESOME). It is amazing how you can use Claude Code + Tiller to create a system that works for our individual cases:

a) Reading transactions, and accounts and using machine learning, suggesting categories. Also can handle cases where aggregator errors result in account duplication. Also, can read QFX files and PDF statements for selected institutions to remove/correct incorrect transactions.

b) Understanding cost-bases and computing both pre-tax and post-tax net-worth (it can also do multiple countries, states)

c) Budgets - allows changing budgets mid-year (e.g., when the phone bill goes up…) such that it knows that the annual budget is a mix.

d) Goals (education, retirement, …) and allocations of funds across different accounts for each. A retirement calculator that understands 401Ks/403Bs/IRAs vs Roth vs taxable accounts vs Life insurance

d) Tracking my kids spending, and understand what is 529 reimbursable vs not, and then when the cheques come in from the 529 allowing for matching so I know what is not yet reimbursed

e) A Monte Carlo simulator that shows the range of financial outcomes between now and death under different scenarios and life choices

f) A weekly view of spending tracking on key areas against budget, and expected deficit vs surplus (it can read my GMail and figure out electricity / gas expectations also)

g) A dashboard I can see on the computer, iphone, ipad (I VPN in into my home machine where all this runs) - anything I do via the dashboard syncs with the tiller sheet also so that I can use either the dashboard or Google Sheets and the two don’t diverge

h) I am currently working on a local LLM that I can use to probe for easy questions - still WIP…

7 Likes

Arvind – Your post rocks! It’s refreshing to see someone use an agentic CLI (Claude Code) as a software compiler rather than blindly dumping live bank feeds into a cloud chat window.

What local model/runner (e.g. Ollama, vLLM, etc.) are you spinning up for the easy queries? Since LLMs oftentimes struggle with correct math, does your setup generate Python or SQL queries against your local datastore or is the model calculating totals by its own merit?

With your self-hosted dashboard syncing two-way with the Tiller sheet, have you run into any Google Sheets API rates or payload issues on heavier tasks like the Monte Carlo runs?

Wonderful Post!

-David

1 Like

Hi David: on the local model - I use Ollama + gemma + qwen. I had Claude do a test across a number of different approaches. The one that works best is: I created a set of tools (MCP-lite basically) that can query and write to my files (the raw data is stored in sqlite sync’d with Google Sheets). I then have the harness do the following with a chat - compare to prior requests, and if close, run the same plan as the prior request. If not, it runs Gemini (not gemma) or claude code with the chat request and the tool schema (no data or tool access, importantly; just what tools exist; these tools are python scripts to query the data) and then asks for the plan on how to answer it with a local LLM. If neither gemini or claude code are accessible, then, it falls back on gemma. The plan is then executed by the harness locally. This way, I can use the full power of a cloud-based LLM to design a plan on how to execute without sending it any data. The actual execution is done by the local LLM. Re sync back: no issues with API calls as I don’t generate that many requests a day and it is batched. THe issue is that there are timeouts frequently, in which case the tool tells me, and tries again periodically

2 Likes

Re: math, the tools include functions to do basic math and comparisons

1 Like

Good to see your choice is a database to run queries against and not a spreadsheet which would complicate things and have more memory buffer errors locally. Have you tried running your API calls at different times during the day and night? I wonder if that’s an issue or is it transaction size? How many rows or heavy calculations in the spreadsheets? Are you using a date filter to limit rows pulled?

Love the workflow it’s brilliant!

David

1 Like

I’ve not - in general, I have not had issues with the API calls: the auto-retry with wait takes care of it. My spreadsheets are very large (10s of thousands of rows with some analytics on top since I use the sheets to do quick calculations etc, I have some analytics also available on Sheets). I could compress the sheets by removing rows (which I do annually to only have three years of data on the Sheet), but performance is right now not a problem. Direct Fill has been great that way

2 Likes

Can’t a database be in a spreadsheet? Or am I missing something?

2 Likes

Great question, PCB! You’re definitely not missing anything on the surface—both tools organize information into rows and columns, so a spreadsheet table often looks like a database.

The distinction comes down to what happens under the hood as data grows:

  1. A spreadsheet (Excel or Google Sheets) loads everything into active memory along with formulas, cell formatting, font weights, and calculation dependency trees. A database (like SQLite, MS SQL Server, or Postgres) stores only raw data on disk, using indexed lookups so it only pulls into memory the exact records you ask for.
  2. Once a spreadsheet reaches tens of thousands of rows tied to formulas, the file can slow down, freeze, or hit memory timeouts because it re-evaluates dependency trees. A database can effortlessly handle hundreds of thousands—or millions—of rows with sub-second query times. For instance Arvind mentioned having to manually delete older years from his sheet to keep performance snappy, while his local SQLite file (a database) doesn’t have that limitation.
  3. Spreadsheets are unmatched as interactive scratchpads, flexible calculators, and visual interfaces. Databases excel as long-term, indexed, tamper-proof storage vaults.
  4. With their indexes databases excel in large datasets with data aggregations. Such as summarizing in a split second weekly, monthly, or annual aggregations as an example. The datasets are oftentimes analyzed and processed on servers that have lots of memory and processing power.

People mistakenly use a spreadsheet like a database with large datasets, but separating them—letting a database store your lifetime history and letting spreadsheets use small datasets present the result that avoids hitting that performance wall entirely!
For a clean, visual breakdown that illustrates the architectural differences between spreadsheets grids and relational storage, This YouTube video : Database vs Spreadsheet: Key Differences & When to Switch covers how data integrity, scaling, and indexing differ between the two formats.

The video has an ad at the end for Baserow a database product. I’ve never used this product so I can’t endorse it. But it explains some of the reasons you’d want to go to a database over a spreadsheet. Personally my experience and background is with MS SQL server. It’s fantastic!

4 Likes

Agree! In a way, spreadsheets can do more than databases (I can do random calculations that are one-off, so more complex calculations without resorting to code etc). The flip side is that they slow down a lot with lots of data and complex calculations. I use both (with the underlying datasets being sync’d) for different purposes

3 Likes

Thank you. So I would you implement that with Tiller? Have the core sheets be the database and then one spreadsheet per template needed using importrange?

@PCB if that question is for me? I’ve designed a Microsoft Power BI solution against a database set up from Tiller’s Foundation Template. The mechanism to use my database is by emailing your Tiller Foundation to me saved as an Excel attachment and through Powershell scripting I load it into an Azure SQL database. Power BI provides dashboards to each unique user. I do have a sample data Power BI dashboard if you’d like to see it and the measures it provides with full documentation on how to use the measures. My website is: https://freshman-finance.com and the topic here in the community is : [Show & Tell] New Microsoft Power BI Website based off of Tiller Foundation Template - Report Site Works with Mac or PC or Mobile Phone. I think Arvind’s solution is for his own use but I’ll let him speak for himself. -David