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
SpendWise Insights screen showing average purchase and a period-end estimate
SpendWise home screen in dark mode
SpendWise home screen showing total spent against the monthly budget

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 home screen with total spent, daily budget left and daily average
  • SpendWise Insights screen comparing this period with the prior period
  • SpendWise Budgets screen with monthly budget progress and category allocation
  • SpendWise home screen in dark mode
Fig. 01Home, Insights, Budgets and dark mode, shown with fictional sample data from the app's own interface.

Key capabilities

What SpendWise helps you see.

  1. 01

    Capture purchases automatically

    The Android app can read purchase notifications from selected banking apps in the background, starting with CIBC and Wealthsimple.

  2. 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.

  3. 03

    Understand the month

    See daily spending, categories, top merchants, six-period history and comparisons against matching parts of previous periods.

  4. 04

    Set a budget that is easy to follow

    Overall and category budgets include a daily allowance, with optional suggestions based on previous spending.

  5. 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.

  6. 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

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.

Next project

Home Listen

Know when something happens at home, without recording it.

Home Listen Activity screen listing possible crying, knock and dog sounds in the nursery
Home Listen Guardian rules for crying, dog sounds, knocks and loud sounds, with quiet hours
Home Listen home phone in Guardian mode, with the microphone off until monitoring is started

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.