Done! I have also a Debt Resolution algorithm, whether it's circular or not, it works. It takes all the debts of your social group: those induced by your shared expenses and those you created yourself, and simplify them to get the minimum set of transactions.
The main difference with other systems like Buxfer or Expensure is that this simplification is manual: you decide when you want to digest all the debts of your group. It could be automatic but this is dangerous for the users. Imagine the following scenario:
- You share expenses with your friends that you enter in the system. When settlings accounts, the system calculate debts. Among those debts, you owe 20 to Bob.
- You give 20 back to Bob.
- Someone of your group generates new debts but you didn't mark your debt to Bob as paid.
Finally, this is an advanced feature for roommates-like people who have a lot of shared expenses and debts. For casual users, the debts repartition calculated for a single list of expenses is already optimal.
Algorithm strength to be tested soon.