Local-First Financial Intelligence
Python / Plaid / Google Sheets / Apps Script / Gemini
What this project is
Local-First Financial Intelligence is a private finance-automation project that syncs transaction data into Google Sheets, models it into spreadsheet-native analytics tables, and exposes a Gemini-powered sidebar for grounded finance questions.
The public proof layer documents the architecture, privacy model, synthetic fixtures, and sanitized integration pattern. It does not publish real transaction data, Plaid tokens, spreadsheet IDs, Apps Script deployment IDs, local shortcuts, or private runtime state.
What it demonstrates
- Python sync logic for authenticated transaction extraction and normalization.
- Plaid OAuth integration boundaries without exposing tokens or live account data.
- Google Sheets as a local-first data mart for raw ledger rows, category summaries, and rolling review tables.
- Google Apps Script dashboards and sidebar UI for spreadsheet-native analytics workflows.
- Gemini integration that receives only explicit, bounded context supplied by the Apps Script workflow.
- Demo-mode discipline through synthetic fixtures and sanitized examples.
Architecture
- Plaid-linked institutions feed a private Python sync engine.
- Python normalizes new transaction rows and appends them into Google Sheets.
- Spreadsheet logic builds raw ledger, category, monthly, weekly, and review tables.
- Apps Script renders charts, controls, and a sidebar interface.
- Deterministic local summaries answer structured finance questions first.
- Gemini synthesis is used only after the workflow supplies bounded spreadsheet context.
Why local-first matters
The project is intentionally privacy-sensitive. Personal finance automation is useful only if the boundary is clear:
- the private system can work with real records;
- the public docs use synthetic examples;
- model prompts are bounded to explicit spreadsheet context;
- credentials and financial records never become portfolio artifacts.
That privacy model is part of the proof. It shows practical judgment around fintech automation rather than treating sensitive records like ordinary demo data.
Public / private boundary
Public:
- architecture summaries and flowcharts;
- synthetic sample fixtures;
- sanitized Python and Apps Script excerpts;
- demo-mode behavior;
- privacy and validation notes.
Private:
- Plaid access tokens, client IDs, OAuth state,
.envfiles, and local credentials; - real bank transaction data and exported financial records;
- live Google spreadsheet IDs, Apps Script deployment IDs, or local machine paths;
- private packaged commands, runtime caches, logs, and provider payloads.
What this does not claim
- It is not a public budgeting app.
- It is not a bank account management product.
- It does not expose real financial records.
- It does not claim regulated financial advice.
- It does not publish the private implementation repo.
Public docs path
Professional relevance
This project demonstrates multi-system automation with privacy judgment: Python sync, OAuth boundaries, spreadsheet modeling, Apps Script UI, charts, deterministic summaries, and bounded AI assistance for fintech, analytics, automation, data, financial-analysis, and BI workflows.