For now I just use a phone app, where I enter every piece of expense or income manually. Then, when necessary I can export those as CSV files for further processing in LibreOffice, Python, whatever. That said, if your bank lets you get the data exported, you can also just use that, but personally I use both for validating the validity of the data and keeping mindful of my expenses.
It's one of those cases where a fully automated solution might be better, but seeing the balance mismatch between any given bank account and what's stored locally in the app forces me to trace down that transaction and figure out whether it comes from a service or a subscription of some sort so I can describe and categorize it away.
The data entry also being ever so slightly annoying (e.g. 1 minute per expense/income) is a good thing for me because I can be lazy and it has saved me from making impulse purchasing decisions in the past. So when I want to buy something, I'm also okay with checking my corresponding bank app for the details and to verify the exact amount a second time.
As for the CSV, in its most basic form I can just save it as an OpenDocument Spreadsheet and do some quick graphs etc.: https://en.wikipedia.org/wiki/OpenDocument
It's also that my bank can give me CSV files for any individual cards, so the same workflow can be used there to validate/explore that data as well. That's actually how I graphed my earnings for 2017-2021 in my blog post "On finances and savings": https://blog.kronis.dev/articles/on-finances-and-savings
Disclaimer: this probably wouldn't work with too many family members or a large amount of cards. But for now the approach scales wonderfully, given my circumstances. As long as you can get the CSV files, working with them becomes not too bad.