Comment by po

Comment by po 4 days ago

8 replies

Plain text accounting is cool but I think one of the biggest barriers for people is downloading bank data into a standard format.

The banks are never going to embrace much more than CSV or excel files... the various data aggregation platforms (yodlee, plaid, etc...) are not open source or hobbyist friendly.

Back in ancient times there was a company called Wesabe (https://en.wikipedia.org/wiki/Wesabe) that wrote software that did bank syncing on your desktop. Mint.com basically put them out of business but I still think about that approach. I think it could work for open source.

Has anyone else?

bornfreddy 4 days ago

I recently discovered Paisa, which is basically a nice UI over ledger-cli. Import is very convenient. You upload csv (or similar), see the preview, then write a script which converts each row into ledger text format. There is linting and everything. When you like the result, just save the script so you can import again anytime. It also supports downloading commodity prices if you use it to track stocks and similar.

Charts are not generic enough for my taste so I'm exporting data elsewhere, but for data entry it is great.

  • c6p 3 days ago

    Yes, charts are not generic enough for me too.

    I like Paisa's ledger file editor, though other parts not working in my country, I'm fetching prices with a python script.

    I wish its editor seperated into a library to be included in personal projects.

  • po 3 days ago

    yeah I looked at that too... and that aspect is useful.

    However, I'm not really looking for a layer on top of ledger as much as I'm looking for a configurable web-scraping system (using the local password manager) that can be run to get the csv/pdf/etc.. files needed to create the ledger.

mauvehaus 4 days ago

hledger has tooling to transform fairly arbitrary CSV into transactions it understands[0]. I haven't tried it yet, but after spending 4 hours over multiple days helping my SaaS bookkeeping company troubleshoot their bank connection problems[1], you can better believe I'm willing to put a little time in trying this out.

Every damn time I reconcile transactions I end up fighting their system that I can't see the workings of or fix myself. It's getting to the point where the juice isn't worth the squeeze. I'd sooner deal with the CSV myself given a half-way decent set of tools to do so.

[0] https://hledger.org/1.40/hledger.html#csv

[1] No, they weren't willing to refund me any money; this is "typical", in their words.

  • wrycoder 4 days ago

    This is the big advantage of hledger. It has two ways of translating csv into journal form - one simple and one more complicated, but very flexible.

    I find it best to have a separate journal for each downloaded account. I just include them into a master journal (along with a manual entry journal) and generate reports from that.

    I also use git so I can roll back the latest import, if something goes wrong - but that hasn’t happened yet.

jonahbenton 4 days ago

I have run into issues where CSVs are not correct/aligned with PDF statement data that banks are legally obligated to provide. In addition CSVs almost never have balance data. So I download the PDFs and extract data from them. This is much more painful than it needs to be- providing a sensible machine readable PDF involves just following a few simple rules to ensure the 3 or 4 transaction fields, and the few needed statement fields (dates and balances) are extractable without fragile heuristics. There is no conflict between branded and human readable vs machine readable.

t_mahmood 4 days ago

In my country any transactions are reported using sms. So implemented a system using Tasker to catch these sms and store it in a CSV file. This CSV file is put inside a folder which is synced using SyncThing to my desktop.

I had plan to process these data and add to an accounting system, but didn't get a chance, and then my mobile crashed and I lost the Tasker action. Now I'm not getting any motivation to implement it again