I made this Android app for the Colonel's Regiment, which includes a number of Yorkshiremen and others disposed to the accurate settling of bills.
For each bill, you enter in what everyone had (or at least what it cost) and what everyone contributed, and it calculates who owes and who is owed.
It does not calculate who owes whom, because you don't need to. (It's surprising how many people waste time keeping track of pairwise debts in a group situation.)
We generally find out who is owed most and pay them off first but you could just as well have everyone pay one person, who then distributes the excess to the other creditors, or whatever.
No user data
Tabulator doesn't require special permissions and doesn't access your contacts. You can represent people by their initials or some other meaningful character. Emoji are useful for this: I've included some possibly useful presets.
If the amount owed is indivisible, the app identifies this situation and chooses who will be affected at random. (In fact it might be better to use a bag-type randomizer as used in Tetris, which would bring the overall effect down over short timescales, but the current version doesn't have this.)
Tabulator doesn't use an internet connection. You can back up the entered information by exporting a CSV file to another app (email, evernote, dropbox...)
How it works
Tabulator manages bills which consist of a list of items. For example, different items of food on a restaurant bill. People can share an item (for example, if they split a dessert) or several people spending the same amount can be clubbed into an item.
When it comes to paying, payments are also considered as items. Just like for the 'food' items, you can put several people contributing the same amount into the same item.
So, an item
- has a value and a currency
- is either a credit (an amount contributed) or a debit (an amount consumed)
- can be assigned to one or more participants in the group (sharing the cost)
When a bill is complete, the amount contributed (credit items) must equal the amount spent (debit items). This means the bill is 'balanced'. It doesn't mean nobody owes anyone anything, it just proves the restaurant is not owed anything.
You can run up multiple bills within the app. At any time you can see how much each person owes, and how much each person is owed, in each currency that is in use.
Tabulator doesn't work out how best to settle the bill, because this is a Hard Problem in maths. A pretty good strategy is for all the owing parties to pay the one who is owed most, then for that one to pay the remaining creditors.
Developed with the Ionic Framework and AngularJS.
As in 'hints and'.
Tabulator doesn't actually know anything about currencies. It just takes any non-numeric stuff you put before or after the value. So you don't need to bother with a currency symbol for your favourite (or home) currency. Tabulator does currently assume that your currency has 100 smaller units in the larger unit. Sorry Kuwait.
If you want certain types of things to be split out and shown separately in the final table, add a 'tag' to the items when you enter them. E.g. $5.00 beer Tabulator behaves as if you had a new currency '$beer'
The people who show up in the 'add item' dialog are known as the participants. To start off, there are 2 participants, Me and You. You can add new participants at any time in the settings dialog, but you can only delete participants if the app is empty of all data. When the app is empty, you can also select from a few pre-set participant lists.
Tips as in gratuities are a thing I hope to add special support for in a later version.