DEV Community

Zeteo Inc.
Zeteo Inc.

Posted on

How we model a split bank charge so the budget only sees your share

We shipped Zeteo, a Flutter app for iOS and Android. This post is about one design question, not a pitch.

The question: a shared dinner is one card transaction of 120 dollars. Your statement says 120. Your budget should say 30. Where does the 30 live?

Our answer is that the split hangs off the bank transaction. The transaction stays untouched as the source of truth. A group expense references it, and the budget reads your share from the group expense. The rest is an amount other people owe you.

Data comes in through Plaid, read-only. We never move money. Settle-up hands off to payment apps.

The trap we hit was timing. Plaid sends a pending transaction first and a posted one on a later sync. A re-sync must not wipe what the user already changed, so we match on the transaction identity and merge instead of replace.

Questions for people who built on bank data:

  • How do you handle a pending transaction that disappears and returns under a new id?
  • Do you key splits on the transaction id or on a fingerprint?

https://zeteoapp.com/download?utm_source=devto&utm_medium=community&utm_campaign=launch_2026

Top comments (0)