Skip to content
Nexus Benders

Thought Expense

Thought Expense is an AI-assisted personal finance app for Android and the web. People log expenses in plain language, and the backend turns them into categorized entries, budgets and spending insights.

Category
AI expense tracker app
Platform
Android app, web app & API
Thought Expense home dashboard and Quick Log screen turning “coffee 120, uber 250 and groceries 900” into three expenses

01

The problem

Most expense trackers ask for the same thing every time: open a form, choose a category, type an amount, pick a date. The friction is small, but it repeats — and it is usually why people stop tracking after a few weeks.

Even when the data is there, turning a list of transactions into an understanding of where money goes takes effort most people don't want to spend.

02

Product goals

  • Make logging an expense as quick as typing a sentence
  • Keep categories consistent for each user over time
  • Never let the AI invent numbers in insights
  • Offer a useful free tier with a clear path to Premium

03

Conversational expense entry

Quick Log is the core of the product. A user types something like “coffee 120, uber 250 and groceries 900” and gets three categorized, dated expenses. Gemini handles messy separators, currencies and natural dates such as “yesterday”, with the user's own history included in the prompt.

Latency is designed for rather than tolerated. A lightweight on-device parser previews detected items and category guesses before any network call, so composing works offline. The AI step shows staged progress, and all parsed items are saved in one batched write instead of one request per item.

04

Categorization that learns

When a user corrects a category, the server stores a keyword mapping; successful parses reinforce it. Those learned mappings are fed back into the prompt, so the same merchant lands in the same category for that user every time.

Because a probabilistic model needs deterministic guardrails, a hand-written category catalog overrides the model when a known keyword matches, and low-confidence results are returned for the user to confirm rather than saved silently. Expenses are also embedded per user in Pinecone to support semantic search such as “coffee last month over 500”.

05

Insights: statistics decide, the model narrates

Insights that must be correct are never left to the model. Unusual spending, large transactions, overlapping subscriptions and creeping prices are detected with plain, currency-normalized functions and conservative thresholds.

The language model then writes the summary under strict rules: quote the real numbers, never invent them. The same approach powers a savings advisor and a weekly email briefing scheduled per user through a BullMQ queue.

06

Budgets, goals and multiple currencies

Budgets use the same interface as logging: type limits such as “Food 500, Rent 2000” in one line, review the generated breakdown, and save it. The budget screen leads with a single “safe to spend” figure and warns at 90% and 100% of a limit.

Amounts are stored in their original currency and converted when read, through a cached exchange-rate layer that falls back to the original amount rather than ever showing a wrong conversion.

07

Billing and the Premium tier

Premium features — receipt scanning, CSV and PDF export, full history and a larger advisor allowance — are offered at the point where a free user reaches a limit, not as interruptions. The advisor's monthly allowance is metered in Redis and fails open, so an outage never blocks the user.

Subscriptions run through RevenueCat on Google Play, with webhook handling for cancellations, billing grace periods and refunds.

08

Technical implementation

One Express API serves two clients: the React Native (Expo) Android app and a Next.js codebase that contains both the marketing site and a web version of the app. PostgreSQL with Prisma stores the core data, Redis and BullMQ handle quotas and scheduled jobs, Gemini performs parsing and narration, and Pinecone stores per-user embeddings.

The marketing site treats search as part of the product, with structured data, generated Open Graph images, a sitemap and robots rules that keep the signed-in app out of the index. Account deletion removes the user's data from the database, vector index, file storage and cache.

09

What this project reinforced

Put deterministic rules around probabilistic models wherever correctness matters, show progress instead of hiding latency, and design billing edge cases before launch rather than after the first refund.

Screens

Quick Log screen parsing natural language into categorized expensesHome dashboard with learned category mappingsSpending Analysis screen with the statistical rules that drive itMonthly Budget screen with natural-language category budget generationExpenses and Profile screens with the premium gating modelThought Expense marketing site in a browser frameThree explored art directions: Refined Teal, Ink & Mint, Paper Ledger

Services behind this project

Start a project

Building an app like this?

Tell us what you're building. We'll reply with honest questions, a sensible first step, and whether we're the right team for it.