Story

Why I Built Split Money: A Google Sheet, a Trip to Vietnam, and an App

A phone app growing out of a spreadsheet notebook

I didn’t set out to build an app. I just wanted to track what I was spending.

So I built myself the smallest possible version of that: a plain web page where I typed in an amount and a note, and it appended a row to a Google Sheet I owned. No categories, no charts, no login. Ugly, fast, and mine.

That was the whole project for a while. It did one thing, it did it in about four seconds, and if life hadn’t intervened it would probably still be a scrappy little page.

Then came the trip

A friend and I planned two weeks in Vietnam. Shared cabs, shared meals, shared everything — the normal texture of travelling with someone. I assumed the hard part would be splitting: who paid, who owes, how do we settle. That part turned out to be easy.

The hard part was that the trip happened in three currencies at once.

The flights went on an Indian card, in rupees, weeks before we left. One booking was charged in dollars. And then everything that actually happened on the ground — the taxis, the pho, the boat tickets, the hotel in Hoi An — happened in Vietnamese dong, in numbers with so many zeroes that you stop reading them properly by day three.

Every splitting app I tried had the same shape of answer: pick one currency for the group, and convert everything into it as you type. Which sounds reasonable right up until you try it.

The bit that actually broke

Here is what our money actually did, because the exact numbers are the whole argument.

Follow the chain and our real exchange rate falls out of it: $740 cost us ₹70,477, and it bought ₫19,367,500. So our dong cost ₹1 for every ₫275.

No converter will ever show you that number. It isn’t a market rate — it is two counter spreads, one in India and one in Vietnam, welded onto whatever the mid-market happened to be on those two particular mornings. And it is the only rate that describes what this trip cost us.

We bought our dong once, at one rate, and then spent them over fourteen days. The rate never changed. Only the internet’s opinion of it did.

That is exactly what an app that converts as you type gets wrong. It reaches for today’s live rate at the moment you log the spend — a rate that drifts while you are still spending money you already bought, and that was never yours in the first place. A ₫60,000 bowl of pho in week one ends up recorded at a different cost from the identical bowl in week three, for no reason connected to anything either of us did. Multiply that by a hundred small entries and the totals stop meaning anything. Worse, they stop agreeing — my phone’s idea of what we’d spent and my friend’s drifted apart, and nobody enjoys a balance sheet that doesn’t match.

The workaround people reach for is a group per currency: a rupee group, a dollar group, a dong group. We tried it for a day. It is tidy and it is useless, because it can’t answer the only question that matters at the end of a trip — what do we owe each other, in total?

So I added it to my own tool

Instead of picking one of those apps, I added splitting to the scrappy page, and I built it around one rule: store what was actually paid, in the currency it was actually paid in. Convert later, once, in a place you control.

Four things fell out of that rule, and they’re still the shape of the app today.

1. Every spend keeps its own currency

₫793,500 is logged as ₫793,500. $940 is logged as $940. ₹3,800 is logged as ₹3,800. The entry matches the receipt, forever, and no exchange rate is baked into it at the moment of typing. Everything else in the list below is only possible because of this one decision.

2. The group total works both ways

A group holds all of its currencies side by side. Left alone, our Vietnam group reads as three real numbers — ₹360,494, $1,260 and ₫19,367,500 — none of them invented. The $1,260 is simply what was left of the cash envelope after $740 of it became dong. Tap Merge and the same group collapses into one figure, ₹550,973, converted at the rate you chose. Tap Show All and the three originals are back.

A group total shown as three separate currency totals — INR 360,494, USD 1,260 and VND 19,367,500 — with a balance line for each
Kept apart: three currencies, three real totals
The same group total merged into a single figure of INR 550,973 with one combined balance
Merged: one number, at the rate you chose
Merging is a lens, not a rewrite. The original amounts are never overwritten, so you can switch back whenever you want.

3. Balances stay split too

This is the part I didn’t expect to matter as much as it does. A single merged “you’re owed ₹13,548” is a fine summary and a useless instruction. Split the same balance by currency and you get something you can act on:

Same friend, same trip, same net position — but now it tells you what to do. Hand over the dong in cash at dinner. Settle the rupees by bank transfer once you’re home. Leave the dollars alone, because you’re both travelling again in a month anyway.

A member card listing what each person paid and their share in dollars, rupees and dong separately, with three balances
Per currency: owed $620, owe ₹84,726.95, owed ₫10,779,750
The same member card merged into a single rupee figure showing one balance of INR 13,548.44
Merged: one net balance of ₹13,548.44
The merged view answers “are we roughly even?” The split view answers “what do I hand over tonight?”

4. You can set the rate yourself

Live rates are the sensible default — nobody has to look anything up, and for a weekend across a border they’re all you need. But when real money changed hands at a real rate, that rate is the truth of the trip. So a conversion rate can be set on the group itself, and every merged total and balance in it uses the number your group agreed on.

Watch what that does to our numbers. Set the group to the rates we actually paid — ₹95.24 to the dollar, ₫275 to the rupee — and the leftover $1,260 comes to ₹120,002, the ₫19,367,500 comes to ₹70,477, and together they are ₹190,479. Which is, to the rupee, exactly what we handed over in India for that cash in the first place. Add the ₹360,494 that went on the card and the merged total is ₹550,973.

That figure isn’t an approximation of what the trip cost. At our own rate, it is what the trip cost.

The fairness case: a group rate is also the honest way to handle whoever went to the ATM. If one person withdrew all the local cash and everyone spent it, the cost of obtaining that currency should be shared — not quietly absorbed by the person who happened to be holding the card.

We used all of this for the rest of the trip — logging tuk-tuks and pho and boat tickets as we went, settling before we flew home. It worked. Somewhere in that fortnight the scrappy page stopped feeling like a hack and started feeling like something other people might actually want.

What it turned into

Split Money is that tool, grown up. Track spending, split evenly or with custom amounts, organise by group for roommates or trips, see what a trip cost by category and by person, and settle up when you’re ready — with as many currencies in a group as the trip actually had.

The Mine view: a group total of INR 550,973 with what you paid, your share and what you are owed, and a donut of your own INR 275,469.07 broken down by category
Your share of the trip, category by category
Once every spend is stored in its own currency, the breakdowns come for free — and they only convert at the point of display.

It works offline, because logging a cab shouldn’t depend on a signal you don’t have in a country you just landed in. There are no ads and nothing is sold. Your data stays yours — export everything to CSV whenever you want.

The principles that survived

A lot changed between that Google Sheet and the app on your phone. A few things deliberately didn’t:

If you’re about to travel with friends

The short version of everything above, for your next trip:

There’s a longer, more practical version of this in how to split expenses in multiple currencies, if you want the full system rather than the origin story.

Frequently asked questions

Why not just convert everything to one currency as you go?

Because you never paid those rates. Converting at entry permanently bakes a one-off, arbitrary rate into each record, so identical purchases end up costing different amounts and two people’s totals drift apart. Store the original amount and convert at the point of display instead.

How many currencies can one group hold?

As many as the trip had. Each spend carries its own, the group total lists them separately, and merging into a single figure is a toggle rather than a setup decision you’re stuck with.

Live exchange rates or a rate I set myself?

Live rates by default. Set your own on the group when real money changed hands at a known rate — a cash exchange, an ATM withdrawal, a card statement — because that is what the trip actually cost you.

Does it work with no internet abroad?

Yes. Spends are added offline and sync when you’re back on a connection, which is exactly what you need in the first few days of a trip with a SIM that hasn’t woken up.

Is Split Money free?

Yes, on both iOS and Android, with no ads and nothing sold on. You can export your data to CSV at any time.

Built on a trip, for trips

Log every spend in the currency you paid it in, merge into one total when you want it, and settle in whichever money makes sense.

Download on the App Store Get it on Google Play