Klair › SoloSuite › Settling shared expenses
Who owes who: settling shared expenses in the fewest payments
When several people pay for things on behalf of a group, settling up one expense at a time produces far more payments than necessary. Netting each person's position first reduces the whole tangle to at most one payment fewer than there are people.
Last reviewed 31 October 2026
The short answer. Do not settle expense by expense. Net each person's
position first — what they paid out, minus their share of everything — then repeatedly have
the largest debtor pay the largest creditor. That clears any group in at most
n − 1 payments, where n is the number of people with a non-zero
balance.
Step 1 — Net each person's position
For every person:
net = (total they paid out) − (total of their shares)
Positive means the group owes them. Negative means they owe the group.
Every net balance in a correctly recorded ledger sums to exactly zero. That is worth checking before you go further: if the balances do not sum to zero, an expense has been split wrongly or a share has been dropped, and no settlement will clear.
Step 2 — Match the biggest creditor to the biggest debtor
Take the person owed the most and the person owing the most. The debtor pays the smaller of the two figures. At least one of them hits zero and leaves the table. Repeat.
Each payment removes at least one person, and the last person standing must already be
at zero because the balances sum to zero. So the process terminates in at most
n − 1 payments.
A worked example
Three people sharing costs:
| Expense | Amount | Paid by | Shared with |
|---|---|---|---|
| Software seats | ₹2,400 | You | all three |
| Illustration subcontract | ₹18,000 | Arjun | you and Arjun |
| Client workshop travel | ₹6,500 | Priya | all three |
| Monitor | ₹9,400 | You | Priya only |
Netting each position:
| Person | Paid out | Their shares | Net |
|---|---|---|---|
| You | ₹11,800 | ₹800 + ₹9,000 + ₹2,166.67 | −₹166.67 |
| Priya | ₹6,500 | ₹800 + ₹2,166.67 + ₹9,400 | −₹5,866.67 |
| Arjun | ₹18,000 | ₹800 + ₹9,000 + ₹2,166.67 | +₹6,033.33 |
The balances sum to zero, so the ledger is sound. Arjun is owed ₹6,033.33; Priya owes ₹5,866.67 and you owe ₹166.67.
Largest debtor is Priya, largest creditor is Arjun, so Priya pays Arjun ₹5,866.67, which zeroes Priya. Arjun is still owed ₹166.67, so you pay Arjun ₹166.67. Everyone is square in two payments — settling the four expenses individually would have taken six.
Is this the true minimum?
Not always, and it is worth being precise about that. Finding the smallest possible set
of transfers in every case means searching for subsets of people whose balances already
cancel among themselves, which is a computationally hard problem. The greedy method always
reaches the n − 1 bound, which at the scale of a real team is the practical
answer — and it has the advantage of being explainable to the people being asked to
pay.
Where ledgers go wrong
- Shares that do not sum to the total. Once a split loses or gains a rupee, the net balances stop summing to zero and the settlement cannot clear.
- Someone leaves the group. Removing a person without removing them from past splits silently reassigns their share and unbalances the ledger.
- Editing an amount after an uneven split. Explicit per-person amounts no longer add up when the total changes, so the safe behaviour is to fall back to an equal split and say so.
Let it do the arithmetic
The SoloSuite team ledger records who paid what, handles equal and uneven splits, and outputs the shortest list of payments that clears every balance. Free, no signup, and the ledger stays in your browser.
Open the team ledgerFrequently asked questions
How do you work out who owes who in a group?
Net each person's position first. For every person, add up what they paid out on the group's behalf, then subtract the total of their own shares of all shared expenses. A positive result means the group owes them that amount; a negative result means they owe the group. Those net balances always sum to zero, which is a useful check that nothing has been miscounted.
What is the minimum number of payments to settle a group?
At most n-1 payments, where n is the number of people with a non-zero balance. Each payment can be sized to zero out at least one person, and once only one person remains their balance must already be zero because all balances sum to zero. Finding the true theoretical minimum for every possible case is a computationally hard problem, but the greedy largest-creditor-to-largest-debtor method reaches the n-1 bound and is what practically every settle-up feature uses.
Why not just pay each expense back individually?
Because the number of payments grows with the number of expenses rather than the number of people. Three people sharing twelve expenses can generate dozens of small transfers, most of which cancel out. Netting first collapses all of that into at most two payments.
How do you handle an uneven split?
Record explicit per-person amounts instead of dividing equally, and make sure those amounts add up to the expense total. Mixing explicit amounts for some people with an equal split for the others requires inventing a rule about what the remainder means, which is how a ledger silently stops balancing.
What happens to rounding?
Divide in the smallest currency unit and let one person absorb the remainder, or round each share down and leave the difference with the person who paid. The important property is that every share still sums exactly to the expense total; if it does not, the net balances stop summing to zero and the settlement will not clear.
Related
- SoloSuite team ledger — runs this calculation on your shared expenses
- Freelance cash runway — shared costs are part of your burn
- GST Invoice Generator — for billing shared costs on to a client