TribuSplit

How to settle group debts with the fewest transfers

When six people share costs for a week, the crossed debts look like a maze. With a simple method, they come down to a handful of payments.

The problem with crossed debts

Picture six friends sharing a house for a week. Every day someone pays for something different: groceries, gas, a dinner, park tickets. If everyone pays back their share every time someone pays, each expense creates five transfers. Thirty expenses in a week means a hundred and fifty small payments.

Worse, many go in opposite directions. Ana sends Ben her share of the gas, and the next day Ben sends Ana his share of the groceries. Money going back and forth for nothing.

The good news: none of those intermediate payments are needed. All that matters is how much each person paid in total and how much their total share was.

Step 1: each person's net balance

For each member of the group:

Balance = what they paid − their share

One key property: all balances always add up to zero. What some owe is exactly what others are owed. If your numbers don't add to zero, something's wrong.

Each member's balance: what they paid minus their share
Each member's balance: what they paid minus their share

Step 2: match debtors with creditors

  1. Take the person who owes the most and the person owed the most.
  2. The first pays the second the smaller of the two amounts.
  3. One of them is now at zero; the other has a remainder.
  4. Repeat with whoever is left until everyone is at zero.

Every round settles at least one person, so it finishes quickly.

Example: four people

PersonPaidShareBalance
Ana500250+250
Ben200250−50
Cara300250+50
Dan0250−250
  1. Dan (owes 250) pays Ana (owed 250) 250. Both at zero.
  2. Ben (owes 50) pays Cara (owed 50) 50. Done.

Two transfers instead of the six or more you'd get by paying back each expense separately.

Example: six people

PersonBalance
Ana+620
Ben+180
Cara−90
Dan−300
Eve−260
Finn−150
  1. Dan (−300) pays Ana (+620) 300. Ana is now at +320.
  2. Ana is still owed the most; Eve (−260) pays her 260. Ana is at +60.
  3. Ben (+180) is now owed the most; Finn (−150) pays him 150. Ben is at +30.
  4. Cara (−90) pays Ana 60 and Ben 30.

Five transfers and everyone is at zero.

What's the maximum number of transfers?

With this method, a group of N people needs at most N − 1 transfers, often fewer. Three for four people, five for six, nine for ten. The number of expenses doesn't matter: ten or two hundred.

Before confirming, the app shows who pays whom
Before confirming, the app shows who pays whom

Details worth getting right

Rounding

Split 100 three ways and each person pays 33.33, with a cent left over. It seems like nothing, but across dozens of expenses the cents add up and the totals stop matching. The fix is to assign leftover cents consistently (say, always to the first people on the list) so every expense closes exactly.

Partial settlements

If the group settles mid-trip, those expenses must not count again at the end. Each settlement only takes what's pending at that moment, while the trip summary still shows everything.

Confirming each payment

The person receiving should confirm each transfer. Without confirmation, within days nobody knows which payments were made.

Payment currency

If the trip was in another currency, calculate everything in that currency and convert only the final transfers. See how to handle travel expenses in multiple currencies.

Does this always give the absolute minimum?

Almost always, or very close. There are rare cases where a subgroup cancels out exactly and one more payment could be saved, but finding them means trying many combinations. In practice the difference is one transfer in large groups, and the simple method has a big advantage: anyone can check it by hand.

In practice: you don't need to do this by hand. TribuSplit calculates the balances and proposes the transfers in the currency you choose; all that's left is to pay and confirm.