💸

Expense Splitter

Verified

by Community

Calculate fair expense splits for groups. Handle unequal shares, multiple expenses, and determine the minimum transfers needed.

expensesplitfinancecalculatorgroup

Expense Splitter Skill

Split expenses fairly.

python3 -c "
expenses = [
    # (payer, amount, split_among)
    # Example: (\"Alice\", 60, [\"Alice\", \"Bob\", \"Carol\"])
]

balances = {}
for payer, amount, group in expenses:
    share = amount / len(group)
    balances[payer] = balances.get(payer, 0) + amount - share
    for person in group:
        if person != payer:
            balances[person] = balances.get(person, 0) - share

print('Balances:')
for person, bal in sorted(balances.items(), key=lambda x: x[1]):
    status = 'owes' if bal < 0 else 'is owed'
    print(f'  {person}: {status} \${abs(bal):.2f}')
"

Guidelines

  • Support equal and unequal splits
  • Calculate minimum number of transfers
  • Handle multiple currencies if needed
  • Show clear summary of who pays whom