Make a group for the flat, the trip or the dinner, log who actually paid, and tab works out who owes whom — then names the smallest set of payments that clears the whole tangle.
The parts of Splitwise you actually used, without the parts you did not.
Equally, by exact amounts, by percentage, or by shares — 2:1:1 when one person has the big room. Pick per expense, not per group.
Three people chipping in for one dinner is one expense with three payers, not three expenses you have to reconcile by hand later.
Six people owing each other in a tangle settle in five payments, not thirty. tab computes the minimum set and tells you exactly who pays whom.
Add someone by username, they accept, and the two of you get a shared one-to-one ledger. Dinner you covered, their half of a cab, the thing you picked up for them.
Add someone to a group by name and start splitting immediately. When they sign up later they claim that name with the invite code and keep every bit of history logged against it.
One screen spanning every group and friend: who owes you, who you owe, and what is still outstanding.
Every amount is an integer number of paise or cents end to end — nothing is held in a float. Splits use largest-remainder rounding, so 100.00 three ways comes out 33.34 / 33.33 / 33.33 and the parts add back to the total exactly.
The flat in one currency, the trip abroad in another, without either one contaminating the other.
tab is a PWA — install it from the browser and it gets its own icon and full screen. The service worker caches the shell but never the API, because a stale balance is worse than no balance.
tab makes no outbound network calls, and no page loads a script, font or image from anyone else's domain. Its own test suite fails if either stops being true.
Splitwise is a good product with a business model attached. tab is the same maths without one.
| tab | Splitwise | |
|---|---|---|
| Ads in the app | None | Yes, on the free tier |
| Paid tier upsell | None | Splitwise Pro |
| Runs on your own server | Yes | No |
| Split equally | Yes | Yes |
| Split by exact amounts, % or shares | Yes | Pro for some modes |
| Several payers on one expense | Yes | Yes |
| Minimum-payment settle up | Yes | Yes |
| One-to-one ledger without a group | Yes | Yes |
| Currency conversion | No — per-group currency | Yes |
| Receipt scanning | No | Pro |
| Third-party trackers | None | Yes |
| Price | Free | Free tier, then paid |
One Python file, one SQLite database, and a test suite that drives a real server over HTTP.
The whole backend — accounts, API, split maths and settle-up — is a single server.py on the Python standard library with no dependencies and no build step. Data lives in SQLite in WAL mode, so a reader loading a group never blocks a writer adding an expense. The frontend is vanilla JS. The test suite starts an actual server on a spare port against a throwaway database and runs 84 checks over HTTP: the split maths and rounding, the settle-up algorithm, access control, private friend ledgers, hostile input, and the privacy claims the terms page makes about the code.
Yes, completely. There is no pro tier, no ads and no upsell when you add an expense — it runs on a server I already pay for.
No. You can add someone to a group by name and start splitting straight away. If they sign up later they claim that name with the group's invite code and inherit all the history already logged against it.
Each group has its own currency, so the flat and the trip abroad stay separate. tab does not convert between currencies inside a single group.
Every amount is stored as an integer number of minor units — paise or cents — and never as a float. Splits use largest-remainder rounding, so the parts always add back up to the total exactly.
Your login and sessions are destroyed, but your share of expenses you split with other people stays in those groups against your name. If deleting your account erased your half of a dinner, everyone else's balance would silently shift to cover it. Groups only you were in are deleted outright.
Yes. tab is a PWA, so Chrome's install button or Share then Add to Home Screen on iOS gives it its own icon and full screen, with no browser chrome.
Signup is open and it costs nothing — tab runs on a server I already pay for.