Personal finance · AI · 2025
Tally
Money, explained like a friend.
Answer the question people actually ask: a 30-day forecast, a chat that shows its working, and a subscription killer that never shames.
- Product
- UI/UX
- AI-native
- Frontend

- Role
- Concept project · brand + product design
- Year
- 2025
- Disciplines
- Product · UI/UX · AI-native · Frontend




01 The problem
Budgeting apps tell people what they did wrong (red bars and categories), never what they can do next. So people open them once, feel guilty and leave.
02 Key decisions

Safe to spend, until payday
One number, a 30-day forecast and a floor you set. Tally warns you before the 17th, not after.

Ask, and see the maths
“Can I afford Lisbon?” returns a costed answer, the transactions behind it, and one change that makes it fit.

Never shame, always suggest
Every warning comes with exactly one action: move £200, pause a subscription.
03 Designing the model’s behaviour
You answer money questions for one person, using their data.Rules:- Lead with yes / no / not yet. Then the number.- Show the three biggest inputs, linked to transactions.- Offer exactly one change that would make it work.- Never use: should, irresponsible, overspent, bad.
04 Built in code
1export function Forecast({ txns, floor, today }: Props) {2 const days = project(txns, { horizon: 30, recurring: detectRecurring(txns) })3 const dip = days.find(d => d.balance < floor)4 return (5 <Chart days={days} floor={floor} today={today}>6 {dip && <Callout at={dip.date}>Dips to {fmt(dip.balance)}</Callout>}7 </Chart>8 )9}
05 Then I tried to break it
- Pending transactions never double-count
- Foreign spends converted once
- “Safe to spend” never wraps
- Missing merchant logos fall back to initials
✦ What I’d measure
Concept project. These are the success measures I designed for, not reported results.
→