Splitty

How to manage multi-currency group expenses

A multi-currency group needs two truths at the same time: the amount that actually appeared on the payer's receipt, and a common value that can be added to everyone else's expenses. Keep both. If you replace the original amount with a conversion, the record cannot be checked later. If you keep only the originals, the group cannot produce one final balance.

Choose one base currency

The base currency is the unit used for shares, balances and settlement. A group living in Oman might choose OMR even if the trip includes EUR and AED spending. Another group may choose the currency in which most people hold their bank accounts. There is no universally correct choice. Write it down before the first conversion and do not change it halfway through the ledger.

Changing the base currency later is possible only by rebuilding every converted value consistently. Converting the running total at a new rate is not equivalent, because each purchase may have happened on a different day at a different rate.

Store four values for every converted expense

  1. Original amount and currency. This must match the receipt or card entry.
  2. Rate and direction. Record exactly what the rate means, such as OMR per EUR. A number without its direction is ambiguous.
  3. Rate date or event. Use the transaction date, card-posting rate, or another rule the group chose. Identify which rule was used.
  4. Converted base amount. This is the value used in shares and balances after the stated rounding rule.

A source note can be as simple as “card statement” or “rate agreed by group”. The purpose is not to predict the foreign-exchange market. It is to make the calculation reproducible.

Freeze the rate when the expense enters the ledger

A frozen rate means an expense keeps the conversion used when it was recorded. Tomorrow's market movement does not rewrite yesterday's dinner or alter balances that people already reviewed. If the card statement later confirms a different settled amount, edit the rate once with a note, then freeze the confirmed value.

Do not refresh old expenses to today's rate. That creates gains or losses inside the group even though nobody made another purchase. For a refund, keep a separate credit with its own actual amount and rate. Linking the credit to the original purchase preserves the audit trail without deleting history.

Respect each currency's decimal precision

Currency amounts do not all use two decimal places. OMR, BHD and KWD use three; JPY uses no decimal fraction in ordinary currency amounts; many other currencies use two. Store money in integer minor units, such as baisa for OMR or cents for EUR. Formatting comes after the calculation.

For a three-decimal base currency, 12.345 is 12,345 minor units. Treating it as 1,234 or 1,235 loses a decimal place. Floating-point arithmetic can also produce values such as 12.344999 internally. Integer minor units avoid that class of error.

Worked example with a three-decimal base

This illustrative group uses OMR as its base. The rates below are invented for the arithmetic example and are not live or historical exchange-rate claims. Each rate states OMR per one unit of the original currency.

ExpenseOriginalFrozen rateOMR value
Hotel 420.00 EUR 0.416 OMR/EUR 174.720 OMR
Taxi 360.00 AED 0.105 OMR/AED 37.800 OMR
Dinner 57.350 OMR 1.000 OMR/OMR 57.350 OMR
Base-currency total269.870 OMR

The integer formula is: original minor units multiplied by base minor units per original currency unit, divided by the original currency's minor units per unit, then rounded once. For example, the EUR hotel becomes 174.720 OMR. The original 420.00 EUR remains visible beside it.

Convert the expense first, then split it

Convert the whole expense to the base currency once, then allocate that base amount among its participants. Do not convert each person's fraction independently. Separate conversions can round in different directions and make the shares disagree with the expense total.

TravellerEqual share of 269.870 OMR
Traveller 189.957 OMR
Traveller 289.957 OMR
Traveller 389.956 OMR
Allocated total269.870 OMR

The total does not divide evenly into three baisa amounts. The largest-remainder rule assigns the unavoidable one-baisa difference deterministically, and the three shares still add to the exact converted total.

Separate conversion cost from the shared purchase

A card issuer may add a foreign transaction fee, or a cash machine may charge a withdrawal fee. Those are real costs, but they are not the same transaction as the hotel, taxi or meal. Record the fee as its own expense with an explicit participant rule. The whole group may agree to share it, or only the cardholder may bear it. Hiding it inside the exchange rate makes both the rate and the fee impossible to check.

Decide how the final payment will happen

The ledger may calculate all balances in OMR while two travellers agree to settle in EUR. If so, freeze and record a settlement conversion rate at the time of payment. The payment must reduce the base-currency balance by the agreed base amount, while its actual currency and amount remain visible. Never subtract a EUR transfer directly from an OMR balance as though the units were interchangeable.

Where conversion fees would exceed a small balance, the group can agree to carry it forward, settle it in cash, or waive it. Record that decision. Silent rounding or an unexplained zero balance is harder to audit later.

Multi-currency audit checklist

Use the method with or without an app

A spreadsheet can implement this method if it stores all four values and controls decimal precision. The trip cost splitter is useful after everything has already been converted to one currency. For the full trip process, use the trip expense workflow, then apply the group settlement guide to the final base-currency balances. A shared household can pair the same currency rules with the roommate expense guide.

Splitty can keep original currencies, frozen rates, participant shares and the resulting balances together in the shared trip. The accounting rule remains the same whichever tool you choose: retain the original, convert once, round once, and reconcile every allocation.