Personal finance app
SpendWise
Know where your money went without giving the app your bank login.
Most people already get a notification every time they use their card. SpendWise reads those alerts, works out which ones are purchases and keeps a running picture of where the money is going.
- Ownership
- A WianTribe product
- Year
- 2026
- Platform
- Android
- Status
- In development



Overview
- Our role
- Product strategy
- UI/UX design
- Mobile engineering
- Data and privacy architecture
- Disciplines
- Application Development
- Product Design
- UI/UX
- Product Engineering
The app turns purchase alerts into structured transactions, fills gaps in the history from downloaded statements and shows the month in plain terms: what has been spent, what remains and how that compares with earlier periods.
SpendWise is a WianTribe product in active development for Android. We designed the experience and built the parts underneath it, including the notification listener, transaction parser, statement import and reporting.
The problem
Getting the total right is harder than it looks.
Many budgeting apps ask for online banking credentials or use a third-party bank connection. SpendWise starts from information that is already on the phone instead.
The messages are messy. One alert can mention both a purchase and a decline. A bill payment is spending, but paying a credit card is not new spending. The same purchase can appear in a notification and then show up again on a statement weeks later. If the parser gets that wrong, the app quietly invents money that was never spent.
How we handled it
The total only goes up for an actual purchase.
That rule keeps the rest of the system honest. Refunds, transfers, card payments, declines and duplicate alerts are recognized and kept out of spending. When the app is unsure, it takes the conservative option instead of guessing.
The app cannot move money
SpendWise is read-only. It has no payment capability and never stores banking passwords, PINs, CVVs or full card numbers.
Do not dress up the insights
Comparisons use matching periods, estimates are labelled as estimates and percentage changes are hidden when there is nothing sensible to compare.
Show the import before saving it
Statement imports preview what will be added, merged or skipped before anything is written to the account.
SpendWise in pictures
Key capabilities
What SpendWise helps you see.
- 01
Capture purchases automatically
The Android app can read purchase notifications from selected banking apps in the background, starting with CIBC and Wealthsimple.
- 02
Bring in older transactions
CSV and PDF statement imports can fill gaps in the history and are reconciled against transactions already captured from notifications.
- 03
Understand the month
See daily spending, categories, top merchants, six-period history and comparisons against matching parts of previous periods.
- 04
Set a budget that is easy to follow
Overall and category budgets include a daily allowance, with optional suggestions based on previous spending.
- 05
Ask about your own spending
A private query engine can answer questions about spending. Financial data is not sent to an external AI provider for this feature.
- 06
Keep the source statements
The Financial Vault keeps the statements behind imported history so the original source documents are available when they are needed later.
Engineering
A finance app cannot be casual about correctness.
The architecture is built around one basic requirement: if SpendWise shows a number, that number should have a defensible reason for being there.
- 01
Parse the message in a predictable order
Alerts go through an ordered set of rules, most specific first. That lets the parser recognize phrases such as “could not be completed” as a decline while still counting a utility bill as spending.
- 02
Remove duplicates without removing repeat purchases
Transaction identity and timing are handled separately, so two copies of the same alert merge while two coffees bought hours apart still count as two purchases.
- 03
Reconcile the same purchase across sources
Notifications, statements and a bank data connection, when configured, are matched so settled details can enrich an existing transaction instead of creating a second copy.
- 04
Discard what the app no longer needs
Raw notification text is thrown away after it has been parsed, and cloud tables are protected with row-level security.
- 05
Test the rules, not only the screens
Automated tests cover parsing, reconciliation, reporting and the interface, and they run in continuous integration as the product changes.
Technology
Built with
- Flutter
- Dart
- Kotlin
- Riverpod
- Supabase
- PostgreSQL · Row Level Security
- GitHub Actions
Need help with something similar?
These are the WianTribe services most closely connected to the work shown in SpendWise.
- Mobile App Development
Mobile apps built around how people actually use a phone: quickly, one-handed and often while doing something else.
- Product Design
Working out how the product should behave before development turns every change into an expensive one.



Let’s talk
Got something you're trying to build?
You do not need a finished brief. Tell us what you are working on, what is not working yet and what you would like the product to do. We can take it from there.
