How to split vacation expenses in a group

Group trips generate the messiest expense situations of any human activity: multiple currencies, ad-hoc sub-groups, shared rooms but not shared dinners. Here's a workflow that survives a 10-day trip across three countries without anyone doing math on a napkin at the airport.

The short version
  1. Set up a shared group before you leave.
  2. Agree which categories are split equally vs. only among participants.
  3. Log every expense in its native currency, the same day.
  4. Mark exceptions (the scuba divers, the non-drinkers) at the moment.
  5. Settle on the last day with a minimum-transfer algorithm.

Before the trip: set up the group

Create the trip group the day everyone confirms their tickets, not the morning of the flight. Add every traveller, including the one who "doesn't do apps" — especially them. Pick a display currency: the currency most of you will be settling in. For a German-Norwegian group flying to Thailand, that's EUR. For a UK-US group doing Italy, that's GBP or USD.

You don't have to enter anything yet. But the group exists, the invitations are accepted, and everyone has the app on their phone before the first airport coffee gets charged to someone's card.

Decide the default split rules

Most groups run on three buckets:

Agree this in principle over the pre-trip beer. In practice you'll still decide case-by-case, but having the buckets named upfront stops arguments at midnight on day four.

During the trip: multi-currency done right

This is where most group-trip apps fall apart. You pay THB 3,600 for a beach-side dinner on day 3 of a 10-day trip. Ten days later when you settle, the THB/EUR rate has moved 2%. What was €92 at the time is now €90 — or €94 — depending on the app.

The correct approach: store each expense in its native currency, and convert using the rate on the day it was spent. That way the balance you settle on is stable — it's not re-computing as rates drift. Monkey Split uses ECB daily reference rates and caches the conversion on the server the first time the expense is viewed, so everyone sees the same number.

The wrong approaches:

Worked example: a real 4-person trip

Alice, Bob, Carol, and Dan go to Thailand for a week. The trip accumulates:

DayExpensePaid byNative≈ EUR
1Airbnb (7 nights)AliceTHB 28,000€720
2Group dinnerBobTHB 4,200€108
3Scuba (Carol + Dan only)CarolTHB 6,000€154
4Rental car (4 days)DanTHB 8,400€216
5Grocery runAliceTHB 2,100€54
6Group dinnerBobTHB 5,600€144
7Airport taxiCarolTHB 1,200€31

Scuba is split between two people (Carol + Dan), everything else four ways. The app runs the math:

PersonPaidOwedNet
Alice€774€318+ €456
Bob€252€318− €66
Carol€185€395− €210
Dan€216€395− €179

The minimum-transfer algorithm collapses this to three transfers: Bob → Alice €66, Carol → Alice €210, Dan → Alice €179. Not six criss-crossing payments — just three.

Handling exceptions without friction

The biggest source of settle-up drama is the expense where someone wasn't involved but got charged anyway. Catch these in the moment:

A 30-second fix at the moment beats a 30-minute debate on the last day.

Settling up

On the last day (or the flight home), open the group and tap "Settle up". A good app shows the minimum set of transfers — typically N − 1 or fewer for a group of N — with PayPal.me deep-links so everyone can pay in one tap.

If some travellers use different settle-up currencies (the German half wants EUR, the Norwegian half wants NOK), the app should show each payer-payee pair in both currencies so nobody has to open a converter.

Common pitfalls

How Monkey Split handles this

Start a trip group — free See how it compares to Tricount

FAQ

What if we're using multiple currencies on one trip (e.g. EU + UK)?

Log each expense in the currency it was paid in. The app converts each expense using the rate on the date it was spent — so an expense in GBP on day 2 uses day 2's rate, and an expense in EUR on day 6 uses day 6's rate. The final balance is stable.

Should we settle daily or at the end?

End of trip, almost always. Daily settlement defeats the point of a group expense app — you're just doing the settle-up six times instead of once. The exception: trips longer than two weeks, where settling weekly keeps balances small enough to feel low-stakes.

What about pre-paid things like flights and the Airbnb deposit?

Log them as expenses on the day they were paid. Flights are usually individual (each person books their own) so they don't go in the group at all. Shared bookings (Airbnb, rental car reserved on one card) go in on their actual booking date.

One person paid for basically everything. How do we avoid bankrupting them on day one?

Rotate who pays. If one person books the accommodation, someone else covers the rental car, a third handles the first round of dinners. This keeps any one person's outstanding balance manageable so the final settle-up isn't one giant transfer.

Does Monkey Split work offline (e.g. on a flight or in the Thai islands)?

Yes. It's a PWA with an offline sync queue — you can create, edit, and delete expenses with no signal, and it reconciles when you reconnect. Data lives locally on the device until it syncs.