How to Stop Guessing What Your Trips Actually Cost

How to Stop Guessing What Your Trips Actually Cost

· Nen

Most people can tell you what their last trip cost to within about forty per cent. They know the flight, because they booked it and the number arrived in an email. They know roughly what the hotel came to. Everything after that — the taxi in from the airport, four days of lunches, museum tickets, the bottle of wine that seemed cheap at the time — dissolves into a card statement that lands three weeks later, in the wrong currency, sitting next to the weekly grocery shop.

That gap matters more than it looks. It is the difference between "Portugal was expensive" and "Portugal came to £94 a day once I take the flights out". Only one of those two sentences is any use the next time you plan something.

This is a guide to closing that gap: what to write down while you are away, why the currency and the date matter more than the category, and which numbers are worth looking at when you get home. It is written from building the expense side of MapMyWorld, so it is also honest about what this approach costs you in effort — because it does cost you effort, and anyone promising otherwise is selling something.

Why the total is always wrong

Two things make a trip total drift.

The first is that big spending is memorable and small spending is not. Flights and accommodation get booked in advance, from a desk, with a confirmation email. They are the two numbers everyone can quote. But on a two-week trip they are often less than half the money. The other half arrives in forty small pieces, most of them under fifteen units of a currency you were still doing mental arithmetic in.

The second is that the evidence expires. A card statement flattens everything into your home currency at whatever rate the bank felt like applying, weeks after the fact, described as "SumUp *ATHENS" or a merchant name that means nothing. Cash leaves no evidence at all. By the time you sit down to work it out, the raw material is gone.

The fix is not a better spreadsheet at the end. It is writing four things down at the time.

The four fields that matter

Everything else is decoration. These four are load-bearing:

Amount. In the currency you actually paid, not converted in your head at the exchange rate you half-remember from the airport.

Currency. The three-letter code. This is the one people skip, and skipping it is what makes a total unrecoverable later — €18 and £18 and 18 zloty are three very different lunches.

Date. Not "sometime that week". The exact day, because that is what a conversion has to be anchored to.

Category. Food, transport, accommodation, activities, whatever taxonomy you like. Without it you get a total; with it you get an answer to "where did the money actually go", which is the only question worth asking afterwards.

In MapMyWorld each expense stores exactly these, plus optional description and notes, a payment method, and an optional link to a place you have already logged. The table definition is in shared/schema.ts (trip_expenses), and the app ships 27 default categories grouped into food, accommodation, transport and the rest, so you are not inventing a taxonomy at a bus stop.

Cash is the part people get wrong

Split every payment into card or cash as you write it down. It sounds fussy. It is the single most useful field after the amount, for one reason: cash and card fail in opposite directions.

Card spending is recoverable but delayed — you can reconstruct it from a statement, badly, later. Cash spending is immediate but evaporates. If you do not separate the two, your total silently becomes "card spending plus whatever cash I happened to remember", which is neither one thing nor the other.

One rule that saves a lot of confusion: an ATM withdrawal is not an expense. It is moving your own money from one pocket to another. If you record the withdrawal and the meals you paid for with it, you have double-counted. Record the ATM fee, if there was one, and record what you spent the cash on. Nothing else.

MapMyWorld stores this as a paymentMethod of card or cash on every expense, and the trip page shows the two as separate rows that add up to the total, each with a home-currency equivalent alongside.

Currency conversion, and where the numbers quietly drift

If you spend in more than one currency, the total is not addition — it is a conversion, and conversions have opinions.

The important decision is which day's rate. Converting a whole trip at today's rate is wrong: you did not spend the money today. MapMyWorld converts each expense at the rate for that expense's own date, fetching historical rates from Frankfurter, a free API built on central bank reference data (frankfurter.dev). The converted figure and the rate used are both stored on the expense, so the number does not silently change under you next month.

Two honest caveats, both visible in server/currency.ts:

Reference rates only exist for working days. The European Central Bank publishes its euro reference rates at around 16:00 CET every working day, and not on weekends or TARGET closing days (ECB). So a Saturday coffee has no rate of its own. The app falls back to the current rate rather than failing, which is right for a travel record and would be wrong for accounting.

And a converted total is an estimate of value, not a record of what your bank charged. Your card issuer applied its own rate, plus a foreign transaction fee, on its own settlement date. Those will not match to the penny and are not supposed to.

While we are here: if a card terminal abroad offers to charge you in pounds or dollars instead of the local currency, decline. That is dynamic currency conversion, and it applies a markup over the interbank rate that commonly runs from about 3% to 8%, and considerably worse in some venues (One Mile at a Time, Upgraded Points). Always pay in the local currency and let your own bank convert.

Set a daily number, not just a total

A total budget is a scoreboard you read once, at the end, when it is too late to do anything. A daily budget is a decision aid you can read on a Tuesday afternoon.

MapMyWorld lets a trip carry both — a total and a daily figure, in a chosen currency (trip_budgets in shared/schema.ts). The daily one is the one that changes behaviour.

The two averages worth looking at

Once expenses are in, most apps show you one average: total divided by trip length. It is nearly useless mid-trip, because it flattens your spending over days you have not travelled yet.

The trip page in MapMyWorld shows two better ones instead (the logic is in client/src/pages/trip-detail.tsx):

Average per day so far divides by days elapsed, not days booked. On day three of a fourteen-day trip that is your actual current burn rate, and it is the number that tells you whether to keep going or ease off.

Daily excluding flights and accommodation strips out the two big pre-booked lumps and leaves what the days on the ground cost — food, local transport, tickets, everything you decide in the moment. This is the figure that transfers. Your flight to Japan tells you nothing about your next trip. "Roughly €55 a day on the ground in Kyoto" tells you a great deal.

Ranked category totals sit under both, so "where did it go" has an answer rather than a feeling.

What this will not do for you

Nothing here reads your bank account. There is no bank connection, no receipt scanning, no automatic import anywhere in the codebase, and none is planned as a shortcut. Every expense is typed in by you. That is a genuine cost, and it is the reason this method works at all — the discipline is the product. Realistically it is ninety seconds at the end of the day, over a drink, while you still remember what the taxi cost.

A few more limits worth knowing before you start:

Expenses belong to one person and one trip. There is no bill-splitting between travellers — if you are settling up with three friends, this is not that tool.

On the free plan you get 1 trip, along with 5 places (a lifetime allowance — deleting one does not free the slot), 10 countries, 10 airports and 1 friend connection. That is enough to try the routine on one trip and see whether you stick with it. Pro removes the limits at $7.99 a month, $59.99 a year, or $199.99 once for lifetime access.

CSV export is a Pro feature; a JSON export of your places, trips and stats is available on any signed-in account, and per-trip PDF export can include a total or the full itemised list (server/routes/subscription.ts, client/src/components/export-trip-modal.tsx). Your numbers are yours to take out.

Starting from trips you have already taken

You do not have to wait for the next departure. Old trips can be reconstructed from card statements, photo timestamps and booking emails — approximate figures logged against the right dates and currencies are far more useful than no figures at all. We wrote a full method for that in how to log your travel history retroactively, and the same reconstruction works for spending. Flights in particular are easy to recover, and pairing them with a log of every airport you have passed through fills in the transport line quickly.

If you are weighing options after Trail Wallet's discontinuation, we compared what is left in the 2026 alternatives round-up — including where MapMyWorld is the wrong choice.

The routine, in one paragraph

Each evening, open the trip and enter what you spent: amount, currency, date, category, card or cash. Sixty to ninety seconds. Set a daily budget on day one and glance at the per-day-so-far figure every few days. When you get home, read the on-the-ground daily average and the ranked categories, and write the one number you will actually reuse — the daily cost with flights and accommodation removed — somewhere you will find it again.

Do that for three trips and you stop guessing. You will be the only person you know who can answer, precisely, what a week away actually costs you.

Start your record — free