Case study
Tally · Group Expense Splitting
A mobile group-expense app built around the one thing these apps keep breaking: trust in the money. No account wall, balances that stay visible at every level, and a settle-up you can see before you send. Every screen here is a working prototype you can open and use.
A self-directed concept project, not tied to any employer and not a clone of any single app. The brand, screens, and data are invented, but the trust problems it tackles are drawn from documented, real-world frustrations with apps like Splitwise and Splid. I designed and built every screen in code.
Runs the real app — tap through onboarding, add an expense, settle up.
Every phone on this page is the live prototype running inline, not screenshots. Tap Launch interactive prototype to drive the real app yourself.
The problem
Group expense apps break trust exactly where trust matters most: money. The convenience features that are supposed to help are the ones that quietly erode it.
Stuck half-settled: neither open nor paid
Different currency, same balance, nothing reconciles
- Debt-simplification math can leave you owing a person you never actually shared an expense with. The total is technically correct; it just doesn’t feel like it.
- Partially paid expenses linger in a confusing half-settled state, still in the ledger, neither open nor closed.
- Any member can edit or delete any line with no record, so a balance can change under you with no way to see who did it or what it was before.
- Signup requirements kill the one-off group: the weekend trip with someone’s cousin you’ll never split with again.
- Multi-currency trips turn balance summaries into a mess of mixed symbols nobody can reconcile.
Every one of these is a trust problem before it’s a feature problem. The math being right isn’t enough if a person can’t see why it’s right, so the whole study is organized around a single question: how do you keep the convenience of a simplified balance without asking anyone to take it on faith?
Options explored
Three iterations on that core trust question. Each one fixed the previous problem and exposed the next.
Iteration 1: accounts required, full simplification. Why it didn’t work: forcing every participant through account creation kills fast, one-off groups. And collapsing everything into one simplified number can produce a transfer between two people who never shared an expense, which feels wrong even when the arithmetic is correct.
Iteration 2: no signup, raw pairwise ledger. Why it didn’t work: joining got frictionless, but past four or five people the raw list of every pairwise debt becomes an unreadable wall of small transactions, harder to parse than the simplified version it replaced.
Iteration 3: no signup, transparent simplification (chosen). Keep the friction-free start and the one-clean-number convenience, but keep the balance visible at every level (total, group, member, and friend), and make a settle-up something you see before you send. One number when you want the answer, the real breakdown a level down when you want proof.
Final design
Ten screens of a working prototype, grouped by what they solve. Every phone below is the real app. Open the interactive prototype to drive it yourself, or read on and I’ll walk each screen through.
Getting started. The app opens on a value-first welcome and drops you straight in, no account wall. From there, Groups is home base: every group you’re part of, each with its own balance, a search, and running owed / owe totals up top.
The dashboard. Home leads with a single total-balance number, broken into what you’re owed and what you owe, with Settle up one tap away and your groups and recent activity beneath it. Opening a group shows that group’s balance, a per-member breakdown, and every expense grouped by day, so a shared number can always be traced to the lines behind it.
Adding & splitting. Adding an expense is amount-first. Pick a category, confirm who paid, and choose how to split (equally, by shares, or exact amounts), and every included person shows their share live, before you save. Splitting stays honest because nobody commits to a number they haven’t seen.
Settling & the record. Settle up collapses a balance into one clear amount to one person, with a payment-method choice and a confirmation that tells you the balance is now zero. The loop closes visibly. Activity is the shared record: every add and settle across all your groups, filterable by what you owe, what you’re owed, and what’s already settled.
People & calm notifications. Friends rolls every shared balance up per person, across all groups. Profile keeps the account light: payment methods, preferences, notification controls. And notifications come in a few deliberately calm types (a gentle reminder, a settle-up confirmation, a new-expense note), none of them designed to guilt you into opening the app.
Outcome
Measured against the signup-gated, fully-simplified, silently-editable baseline in concept testing. Figures are illustrative of the direction of impact, not precise measurements.
- Removing the account wall unblocked the one-off group. The biggest single drop-off was the signup gate; a welcome that drops straight into a real group more than doubled how many groups actually got created.
- Traceable balances defused disputes. Because every number (total, group, per-member) leads down to the expenses behind it, “wait, why do I owe that?” became a tap instead of an argument.
- A visible settle-up closed the loop. One clear amount, a method, and a confirmation that the balance is now zero meant paying someone back stopped feeling ambiguous.
- Live splits kept adding honest. Showing each person’s share while you build the expense meant nobody agreed to a number they hadn’t seen.
What I’d still build next: the deeper transparency ideas the exploration pointed to but this build doesn’t yet include. An expandable “see why” on each simplified transfer, an attributed edit history (who changed what, and what it was before), link / QR joining, and an exportable trip summary. And the harder one: handling a genuine dispute over an edited expense, a way to contest a change or require agreement before a shared number moves. Making an edit visible is the floor; letting people resolve one is the ceiling.