How Kwitsy works: exact money, no trackers
Kwitsy is a free app for splitting shared costs with friends, flatmates and travel groups. This page is for the curious: how the money maths stays exact, how we know whether it's working without tracking anyone, and what the AI features do with your data.
Money is integers, and splits always add up
- Every amount is stored as a whole number of the currency's smallest unit (cents, paise, yen), never as a floating-point number.
- Splitting $100 three ways gives $33.34, $33.33 and $33.33: shares are allocated with largest-remainder rounding, and ties always go the same way, so the parts sum to exactly the total on every device, every time.
- The same rule converts currencies: a converted expense is re-spread so what was paid still equals what is owed.
Settling up in fewer payments
Everyone's net balance in a group is turned into a short list of payments by repeatedly matching the person who owes the most with the person who is owed the most. That never needs more than one payment fewer than the number of people. The true minimum is NP-hard, and this is the standard approach. Groups can switch it off and see who owes whom expense by expense instead. Households can settle as one.
Currencies
57 currencies. Where the European Central Bank publishes a reference rate, each expense locks it for its date (via Frankfurter), so balances never drift when rates move. Otherwise, or if you prefer, type your card's own rate; and each currency can be settled separately.
No trackers, and how we measure anyway
- No analytics, pixels or third-party scripts. A strict Content Security Policy (a new nonce per page load) means none could run even by accident.
- Product health comes from counting rows in our own database: accounts, groups, and "weekly active groups" where two or more people changed something that week. Counts only, never who did what.
- No ads, and we never sell data. You can download everything or delete your account from the app.
Where the AI features send data
Everything works without them. When you use them:
- Receipt scanning, forwarded receipt emails, quick add ("80 for drinks with Sam") and questions about a group's spending send that photo or text to Anthropic's Claude. It fills in the form; you check it, and nothing is saved until you tap Save. The maths is never done by AI.
- Category suggestions, duplicate warnings, spotting repeating bills and reading forwarded receipt emails send the expense description (for duplicate warnings also its amount, date and payer's name; for emails, the start of the email) to Anthropic's Claude too, using a small, fast model. These run on their own when you type or save, not only when you tap an AI feature. Anthropic's terms say data sent through its API isn't used to train its models.
- Guests without an account and the no-sign-up demo can't use receipt scanning, Quick add or questions. Guests' new expenses still get the small duplicate check; the demo doesn't.
The privacy policy lists every service involved.
Offline, and on any phone
Kwitsy is a web app: it runs in any browser, as the Android app on Google Play (the same site in a Trusted Web Activity), or from an iPhone's home screen. Expenses added without a connection wait in an outbox on your phone and are sent when you're back online; each has an id created on the device, so a retry can never save it twice.
Checked on every change
Hundreds of automated tests cover the money maths, permissions (who can see and change what) and each security fix. Browser tests walk through real journeys on a phone-sized screen, and fail if any page has an accessibility (WCAG 2.2 AA) problem, content blocked by the security policy, or a page error.