Open ten budgeting apps and try the same exercise. Tell each one you spent the local equivalent of a normal coffee. Eight of them will react like you bought a small island.

The tells are obvious once you start looking. The dollar sign is baked into the empty state. The example transactions are "$12.50 Starbucks" and "$1,800 rent." Marvin's chat — when there is one — calls a ₹500 ride "very expensive" because, to a model trained on USD examples, ₹500 looks like 500 of something familiar. It is $500-shaped to the model, even when it isn't.

We built Marvin in India. The first user is an Indian on Indian rupees. The second is a Canadian on Canadian dollars. The hundredth is in Lagos. None of them should feel like they're using a translation of someone else's app.

The smell test

The shortest version of the problem: ₹400 for coffee in Mumbai is normal. CA$400 for coffee in Toronto is a heist. A reasonable financial assistant should say "fine" to the first and "what happened?" to the second. Most apps say neither, or they say the same thing to both.

A bigger version: when you tell an app "I make ₹80,000 a month", most apps quietly translate that to USD ($960) and judge your spending against US norms. ₹80,000 is a perfectly comfortable income in Pune. Translated to $960, it looks like poverty. The app starts shaking at every restaurant bill.

What "USD-anchored" looks like in the apps people use

When we looked at the apps that anchor most personal-finance users in the Anglosphere — Mint (US-only, shut down by Intuit in March 2024), YNAB, Monarch, Copilot, Lunch Money — two things kept showing up:

  • Subscription pricing in USD, converted by the App Store / Play Store with no purchasing-power adjustment. The same $14.99/mo bill can feel cheap in San Francisco and unaffordable in Pune. (For reference: YNAB and Monarch list $14.99/mo, Copilot $13/mo, Lunch Money $10/mo — all USD, all the same number worldwide.)
  • US-first cost-of-living defaults. Even when the UI lets you display ₹ or €, the app's "is this a lot?" judgment is built around US norms — restaurant bills, rent, coffee, car costs. The threshold for "you're overspending" doesn't move when you do.

None of this is malicious. It's the path of least resistance. Anglosphere fintech grew up in dollars, and "we'll internationalise later" became "we never quite did."

The trap: if the app's core model thinks in dollars, translating the strings doesn't fix it. The app still feels like dollars, because the judgments under the hood are still dollar-shaped.

What we did differently

Three concrete changes, in order of importance.

1. The currency follows the user, not the app.

Your currency is yours. Every screen, every chart, every Marvin reply uses the symbol that matches where you live — and stays in sync if you ever move. No hard-coded "$", no remembered USD ghost.

That sounds like the bare minimum. It is the bare minimum. But most apps don't do it cleanly because the fix has to carry through every layer of the product, end-to-end. You have to mean it.

2. Marvin reasons in your currency's terms, not just digits.

A number on its own doesn't say much. Marvin doesn't just see "400" — it sees ₹400 in India, calibrated against what ₹400 actually buys. ₹400 for a coffee is unusual; ₹400 for a week of groceries is hard. The same digits mean different things in different lives, and Marvin treats them that way.

The same applies to forecasts and verdicts. Marvin's "can I afford this?" answer for a ₹4,000 dinner in Mumbai isn't the same as for a $4,000 dinner in Toronto, even though the digits rhyme. The judgment has to know which world it's living in.

3. Pricing should feel the same weight, not the same digits.

Exchange rates can make a fair Canadian price look cruel in India and trivial in Switzerland. So our pricing isn't an FX conversion — it's set per country to match what the plan should actually feel like to someone living there. Same plan, same value, calibrated to local life.

The App Store and Play Store are closer to exchange rates than purchasing-power, and they control the conversion in their stores — we get as close as their tiering allows. So we tell users honestly: the best price is on the web, where we control the conversion ourselves.

The hard part nobody warns you about

The hardest part isn't the symbol or the conversion. It's natural-language entry. When a user types "$5 for coffee today", what do we do? Take it literally? Treat the "$" as a generic currency marker and apply their settings currency?

We picked the second. If your settings currency is anything but USD — ₹, €, £, ¥, R$, kr, RM, anything — "$5" is treated as 5 of your currency. Because almost nobody outside the US actually means USD when they type "$" out of habit. The few who do can clarify. The many who don't would be confused if Marvin turned every "$" into a strict USD entry.

That's the kind of tiny decision that doesn't show up on a feature list, but it's why someone in São Paulo or Manila or Warsaw opens Marvin and things just feel right, in a way other apps don't.

What it cost us

Less than you'd guess, technically. There's no exotic engineering here — just a few small, focused pieces that talk to each other across the stack.

What it actually cost was the discipline to never accept a USD default. Every review, someone has to ask: "does this assume USD?" Every new feature: same question. Internationalisation is a habit, not a feature you ship.

The honest version

Most of the world isn't in the US. Yet most personal-finance apps are built like it is — defaults, examples, advice, even the math, all quietly anchored to dollars. We wanted Marvin to feel like it was made for you, wherever you means. That requires starting from currency as a first-class concept, not bolting it on after the dashboard ships.

A coffee in Mumbai costs what a coffee in Mumbai costs. The same coffee in São Paulo, Manila, Warsaw, Lagos, Toronto, or Auckland costs something different — and Marvin should know the difference in every one of them. That's it. That's the whole feature.


Want the full breakdown of how Marvin's chat reasons about your numbers? Read the math behind Marvin's forecast.