Transaction transfers, payments, and matching #883
Reference in New Issue
Block a user
Delete Branch "858-allow-users-to-mark-transactions-as-payments-or-transfers-which-are-excluded-from-income-and-expense-calculations"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
https://github.com/maybe-finance/maybe/assets/16676157/a1cde494-b89f-466a-8c74-da194934288a
Overview
This PR enables transaction transfers and subsets (payments).
Additionally, I have cleaned up some of the snapshot fixtures to make them easier to modify and more clear to read.
What is a "Transfer"?
A transfer represents a pair of transactions that:
Transaction Matching
In a personal finance app like Maybe, we cannot guarantee the user will have both accounts "connected" to the app. Because of this, a transfer can also be represented by a single outgoing/incoming transaction to/from some external account. Even in these cases, the user generally will not want these transactions to be included in any "budgeting" calculations like income/expense.
Because we cannot guarantee both sides of the transfer can be found within the user's data, transaction "matching" must happen in two separate steps:
marked_as_transfer: trueTransferrecord by asking the user to confirm both transactions for the identified transferThe
marked_as_transferis a slightly denormalized convenience field that serves a few purposes: