Say it, do not categorise it
Type what happened in a sentence and the balance sheet updates. No forms, no category picker, no monthly reconciliation ritual.
Devs Core product
WebiOSAndroidTrack expenses, set budgets and understand where the money went by saying it in a sentence. Budge updates the balance sheet from a chat message, works in over 150 currencies, and runs on a model we customised and host ourselves.
spent 82 on groceries at Trader Joe’s
Confirm entry
Saved to ledger
how much on eating out this month?
$214 across 14 entries — 18% below last month.
The problem
Every personal finance app asks you to categorise, tag and reconcile — clerical work, done daily, for a benefit that arrives weeks later. Almost everybody stops. The apps are not badly built; the interaction is simply more expensive than the insight.
The reward for all that data entry is a dashboard. But nobody wants a pie chart; they want to know whether they can afford something this month. The question is conversational and the interface is not.
What it does
Type what happened in a sentence and the balance sheet updates. No forms, no category picker, no monthly reconciliation ritual.
Ask what you spent on eating out this month, or whether you are ahead of last month, and get the answer in a sentence — with the numbers behind it if you want them.
Categories are created as you use them rather than chosen from a fixed list, because the list never matches how anyone actually spends.
Built for people who earn in one currency and spend in another — which is most of the world, and almost none of the apps.
Observations that lead somewhere, not notifications. The useful version of an insight tells you what to do differently next week.
What actually happened over a year, assembled from the same records, without a separate export or spreadsheet.
How it works
The stage marked amber is the point of the whole design: the run stops there and waits for a person.
"Spent 1,200 on groceries" — one line, no form, no category chosen.
The model extracts amount, currency, merchant and category, and asks only when something is genuinely ambiguous.
The parsed entry is shown before it is saved. One tap to accept, one to correct — the correction teaches the next parse.
The record is written to a real double-entry ledger rather than to a chat log, so the totals are always reconcilable.
Questions are answered from the ledger, so the number you get is the number in the record.
The temptation with a conversational finance app is to keep state in the conversation. That fails the first time a total is wrong and nobody can say why. Budge writes to a proper ledger and treats chat as an input method — which means every figure is reconcilable and the assistant answers from records rather than from memory of the thread.
Budge runs on a customised DeepSeek model we host rather than a commercial API. That was a deliberate experiment: financial detail is sensitive, and per-message API pricing does not survive a consumer product where a user might log twenty things a day. Self-hosting changed the unit economics and taught us where the real operational costs of an agent sit — GPU time, cold starts, and the long tail of retries.
Budge shows you the parsed entry before it saves. That single beat — one tap to accept, one to correct — is the same idea as the reviewed write queue in our client systems, at consumer scale. It is the cheapest possible place to catch a mistake, and corrections make the next parse better.
What building it taught us
Running our own products is where a good deal of what we know about agent cost, failure and review actually came from. These four findings shape every client system we build.
Per-message API pricing is fine for a business tool used ten times a day and fatal for a consumer app used thirty. Moving to a hosted customised model turned a variable cost into a fixed one — the single most useful thing we learned about agent viability.
Showing the parsed entry before saving costs one tap and removes almost all of the frustration of a wrong parse. It is the consumer-scale version of the reviewed write queue, and it works for the same reason.
Conversation is an input method. The moment a total is questioned, only a proper ledger can answer. Every conversational system we have built since keeps that separation.
A user fixing a category is a labelled example, produced for free at exactly the moment the model was wrong. Designing to capture that is worth more than a larger model.
Where it fits
The original case: knowing where it went without doing bookkeeping to find out.
Earning in one currency and spending in another, without maintaining a conversion spreadsheet.
Irregular income logged as it arrives, and expenses captured at the moment they happen rather than at tax time.
Shared categories and a shared picture, without one person being the designated data-entry clerk.
The same pattern — say it, confirm it, write it — applied to any operational record a client needs captured quickly.
The shape we reuse when people need to record something on a phone, fast, without a form.
Technology
How to get it
Use the product, have it built for your domain, or have the pattern.
Live at mybudge.ai
Web and Android today, with the interface built mobile-first.
Conversational capture, confirmed
Say it, confirm it, write it — reused wherever a client needs records captured fast without a form.
Self-hosted inference
Where data cannot go to a commercial API, or per-message pricing does not survive the volume.
Questions
Budge is a personal finance agent built by Devs Core. You log expenses and income by typing what happened in a sentence, and it updates a real ledger rather than a chat log — then answers questions about your spending from those records. It supports over 150 currencies and runs on web, iOS and Android.
Conventional budgeting apps ask you to categorise and reconcile — clerical work done daily for a benefit that arrives weeks later, which is why most people stop. Budge takes a sentence, parses it, shows you what it understood, and writes the record. The reward is an answer to a question rather than a dashboard to interpret.
A customised DeepSeek model that we host ourselves rather than a commercial API. That was deliberate: financial detail is sensitive, and per-message API pricing does not survive a consumer product where someone might log twenty things a day. It turned a variable cost into a fixed one.
It shows you the parsed entry before saving — amount, currency, merchant, category — and one tap accepts or corrects it. Corrections improve the next parse. It is the same principle as the reviewed write queue in the systems we build for clients: catch it at the cheapest possible moment.
Web and Android today, built mobile-first, with iOS shipped from the same Flutter codebase. The interface is responsive across mobile, tablet and desktop, with dark mode.
Yes, and Budge is why we can talk credibly about what it costs. The patterns in it — conversational capture with a confirm step, a real ledger under a chat interface, self-hosted inference where the economics demand it — are ones we reuse in client work.
No. The model is self-hosted on our own infrastructure, which was a significant part of the reason for customising and hosting one rather than calling a commercial API.
Yes. The interesting part is rarely the chat — it is the ledger underneath, the confirm step, and the decision about where inference runs. Those are scoped in a readiness audit and built as a fixed-price engagement like any other.
Also ours
Thirty minutes, no preparation, no deck. You describe what keeps going wrong and we tell you whether AI is the answer — including when it is not.
Prefer email? contact@devs-core.com