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