Tab­ulator

Work it out exactly, and pay exactly.

goals

Settle bills

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.

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.

Minimise conflict

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.)

Offline

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...)

observations

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

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, both of which are ideal for little apps like this.

Tips

As in 'hints and'.

Tabulators 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. Tabulous 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 the next version.

artefacts