Live demo · no signup needed
Connect QuickBooks directly, or upload a CSV from Square, your bank, or anywhere else. Get charts in seconds and an AI summary that reads your numbers like a financial analyst.
Revenue grew 18% in March driven by a surge in catering orders on weekends. Payroll held steady, so margin expanded to 34%. If you're planning April hires, the weekend volume is your signal.
Every insight links back to the exact numbers it came from.
Connect QuickBooks and it syncs automatically, or export a CSV from Square, Wave, or any tool. For CSVs we need date, amount, and category columns, that's it. Bad rows get flagged, not silently dropped.
Revenue trend, expense breakdown, profit margin, year-over-year comparison. Filter by date or category. Charts are free forever.
AI reads your trends, spots anomalies, and writes a summary your business partner would understand. Free tier gets a preview; Pro gets the full analysis.
Whether your data comes from a CSV upload or a QuickBooks sync, Tellsight computes the stats (totals, trends, anomalies, year-over-year) and sends only those summaries to Claude. Claude never sees your individual transactions.
The function that builds the AI prompt has a signature that won't accept raw rows. Try to pass them and TypeScript refuses to compile. The privacy boundary is enforced by the type system, not by code-review discipline.
The prompt-assembly function in apps/api/src/services/curation/assembly.ts takes ScoredInsight[], not DataRow[]. Trying to pass raw transactions is a TypeScript compile error.
The pipeline is three layers: compute statistics, score them, assemble the prompt. Only the third layer talks to Claude, and its input type is structurally unable to carry raw user data.
Side benefit of the same boundary: the cost ceiling in apps/api/src/lib/cost.ts catches anomalously expensive AI calls before they pollute the rolling-median baseline.