The "Privacy vs. Utility" trade-off in FinTech AI is a false dichotomy. You just have to be willing to engineer a harder architecture. ️
Lately, I've had a lot of conversations with CTOs panicking about upcoming DORA regulations. They want to use fr...
In our Sovereign Intelligence series, we broke down the FinTech privacy gap. We argued that piping raw financial ledgers to centralized cloud LLMs is an architectural failure, and introduced the "Sanitized Snapshot" pattern as the alternative.
Many ...
Open Sourcing our Financial System Prompts Code Dump
This post gives implementers a high-signal reference: system prompt structure, key functions, and file paths. The why matters as much as the what.
System prompt outline minimal
1 Role: "You are...
The Roadmap: Moving from AI Chatbots to Autonomous Financial Agents
Today: user asks, model answers. Tomorrow: user asks, model proposes an action e.g. "Add AAPL to watchlist" and the user confirms. The roadmap: confirmation UI, audit log, no auton...
The Future of Finance is Client-Side AI
Many fintech products lock data in their own APIs and dashboards. Universal Import is a step toward user-owned data: the user exports, holds, and imports; the app is a tool that runs on their data.
From SaaS...
Flash vs. GPT-4o: Benchmarking latency for financial reasoning
We benchmarked Gemini Flash, Pro vs. OpenAI e.g. GPT-4o for financial Q&A. Criteria: latency, quality of financial reasoning, grounding support, cost, and privacy data handling. Gemini ...
Beyond Finance: Use Cases for Client-Side ETL
Any source that can export CSV can be supported. The same pipeline applies; only the header vocabulary and locale may differ.
Brokers, banks, crypto, tax tools
Traditional brokers US/UK/EU, banks, cry...
Economic Modeling: Running a free AI tier without going bankrupt
Gemini Flash free tier: low cost per token; suitable for most portfolio and market questions. Gemini Pro paid: higher capability and cost; for power users. We estimate cost per query ...
Security & Threat Modeling for Local Apps
Full CSV never touches your server. Here's what the design guarantees—and how we mitigate the rest.
What is never transmitted by design
Full CSV: Never sent to the server. Only headers and a small sample ...
Building Tactile AI: Optimistic UI and the Vercel AI SDK
The feeling of "someone is typing"—streaming tokens, optimistic UI updates, clear loading states—makes the assistant feel responsive. We use Vercel AI SDK streamText, useChat for consistent s...
Transient File I/O: Parsing massive CSVs in the browser without server storage
The user can drop a CSV or text file into the chat to ask "analyze this" or "what do you see?" We parse the file in the browser e.g. with PapaParse, extract text or a ta...
The Interface of Uncertainty: Designing Human-in-the-Loop
When the heuristic or LLM isn't confident, we don't guess. We show the mapping UI and let the user confirm or correct. That's REQUIRESMAPPING—the interface of uncertainty.
Production touchp...
Prompt Guardrails: Forcing an LLM to only talk about finance
The system prompt defines who the assistant is and what it can do. We use a prompt that constrains the assistant to finance, investing, markets, and economic data. It states: "You are the...
Google Drive as Dumb Storage
Google Drive isn't your backend. We use it as file storage for a single export file. The app creates/updates that file and can read it back. Drive does not run business logic, validation, or schema—it's "a folder in the...
AI Grounding: Connecting local data to live stock prices using Gemini 1.5
Users ask "What's the current price of AAPL?" or "Any news on TSLA?" The model must not guess; it must use live, authoritative data. Gemini's native grounding e.g. Google Sea...
Data Normalization: Solving the Date/Locale Nightmare
03/04/2024 is March 4 in the US and April 3 in the UK. Get the locale wrong and you silently corrupt trade dates. We make locale explicit and use deterministic, locale-aware parsers for every va...
The Context Engine: Squashing 10,000 trades into 4,000 tokens
The context engine is the code that maps the user's portfolio state to a string the LLM can use. In our implementation it is a single function: buildPortfolioContexttrades, positions in ...
The 3-Row Snapshot: Privacy-Preserving Inference
Sending the full CSV to an API would be a privacy and cost disaster. We send only headers and three sample rows. That's enough for the model to infer which column is date, ticker, quantity, price—wit...
Architecting a Local-First Hybrid RAG for Finance
Server: Next.js App Router, Vercel AI SDK streamText, useChat, Gemini 1.5 Flash default and optional Pro for paid tiers. The API route /api/ai/chat is the gatekeeper: it receives sanitized context,...