Files
finance-app/dump/statement_134743674_EUR_2025-04-22_2026-07-26.csv
T
siddharthd 030490efa3
ci / lint-test (push) Successful in 41s
feat(cash): mark how a transaction was paid, exclude cash from reconciliation
getPendingReconciliations treated every unreconciled manual transaction as
awaiting a matching statement row. Cash never appears on a statement, so a cash
entry sat in the queue indefinitely being offered matches within 3 days and 1%
on amount - and accepting one is silently destructive: reconciled manual rows
are filtered out of every query, so the cash spend disappears while the card
transaction it matched claims to be that same spend.

Migration 0016 adds transactions.payment_method (card | cash | bank_transfer |
other, NULL = unknown) with a CHECK constraint and a partial index. The notCash()
fragment excludes cash from both halves of the reconciliation query - the pending
list and the candidate match subquery, which aliases the manual row as m.

Only cash is excluded. Bank transfers do appear on a statement now that
transaction accounts are imported, and NULL means unknown, so both stay
candidates and every pre-existing row behaves exactly as before.

ATM withdrawals deliberately stay categorised as spend rather than transfers.
Treating them as transfers is only correct if every cash purchase is logged;
with partial logging it silently deletes the unlogged remainder from spend.
2026-07-26 14:38:47 +10:00

1.3 KiB

1TransferWise IDDateDate TimeAmountCurrencyDescriptionPayment ReferenceRunning BalanceExchange FromExchange ToExchange RatePayer NamePayee NamePayee Account NumberMerchantCard Last Four DigitsCard Holder Full NameAttachmentNoteTotal feesExchange To AmountTransaction TypeTransaction Details Type
2CARD-329998549902-01-202602-01-2026 23:06:34.804-100.00EURCard transaction of 104.51 EUR issued by Sp Nord Studios FORDINGBRIDGE0.00Sp Nord Studios FORDINGBRIDGE7824Siddharth Bose0.00DEBITCARD
3BALANCE-434068317219-11-202519-11-2025 02:51:28.940100.00EURConverted 116.11 USD to 100.00 EUR100.00USDEUR0.863670.00100.00CREDITCONVERSION
4CARD-312764172917-11-202517-11-2025 02:39:26.289-83.85EURCard transaction of 299.70 EUR issued by Bkg*Booking.com Hotel (888)850-39580.00Bkg*Booking.com Hotel (888)850-39587824Siddharth Bose0.00DEBITCARD
5CARD-311722782514-11-202514-11-2025 06:17:54.371-266.15EURCard transaction of 266.15 EUR issued by Bkg*Hotel At Booking.c (888)850-395883.85Bkg*Hotel At Booking.c (888)850-39587824Siddharth Bose0.00DEBITCARD
6BALANCE-431715284814-11-202514-11-2025 06:16:50.965350.00EURConverted 408.37 USD to 350.00 EUR350.00USDEUR0.859550.00350.00CREDITCONVERSION