TabĀ­ulator


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.


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

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.

It doesn't matter who specifically owes what money to whom, as long as everyone ends up redeemed at the end, and how to do this in the best way turns out to be a Hard Problem in maths which is much easier in real life. A 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.

Tips

As in 'hints and'. Tips as in gratuities are a thing I hope to add special support for in a later version.

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. So if you enter $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.

artefacts