There's also the heterogeneity of transactions. Looking at the csv export I've got from my bank, there are
three "reference" columns and they play different roles depending on how I'm paying:
- debit card: merchant name + date, card number, blank
- alternative card-based payment system: constant (account number?), merchant, constant
- alternative app-based payment system: constant, merchant, user custom reference
And a data sanitation issue: one of the merchant names has a comma in it, and it's not escaped or quoted in the csv so that record is corrupted.