CLI tool for converting txn statements from Singaporean banks into a sane format
github.com
github.com
You can't even export bank transactions older than 6-months from your account in CSV. You have to download - individually mind you - pdf statements and then good luck. This is the worlds best digital bank?
I left Monzo in the UK and came to Singapore to join Bigpay. We're building a proper digital challenger.
1.1m customers in Malaysia and about 1/10th that in Singapore.
DBS ain't too bad imho
I can't speak for Monzo but Revolut have presence in Singapore, and the product is incredibly feature rich.
Euromoney [1], which, on first impression, seems to be one of those content farms that make most of its actual revenue off selling tickets to award ceremonies.
Web banking in Singapore is bar none the best experience. It’s not even close.
Btw, the script currently cannot install Perl package dependencies. I will add code soon to make that happen (MakeMaker) so it becomes self-installing.
Feel free to add stuff for other banks!
There's a few things that can be tidied up though:
1. Your README instructions references `bin/import_csv` but the file name in the repo is `import_bank_csv`
2. You have a bunch of `use` statements in your `import_bank_csv` file which are not being used. Weirdly including `switch` yet you have a `elsif` block.
3. `import_bank_csv` also has a stray `1;` at the end of it. This is only really needed for Perl modules.
4. In addition to 3, some of your Perl modules do have `1;` and some don't. There isn't any consistency there.
I do share your love for Perl even though it definitely has a lot of hidden traps (I'd even go as far as to say it's not a well designed language by modern standards). But the fact I still hear about Perl scripts I'd written for jobs 10+ years previously, and running on production systems without any additional maintenance, says a lot about the stability of the Perl ecosystem.
1. Spot on, I have fixed the README instructions :) It was written in a rush. Apologies.
2. You are right. I have removed the unused use statements. I had the switch statement imported as I wanted to try out the 'given ...' construct but it was easier just to use if-elsif.
3. Good point, removed.
4. Yes, absolutely. Thank you!
Having spent almost 15 years away from Perl in various other languages, I actually tthink Perl is quite elegant. You can do some pretty neat code in a very succinct way, as long as you keep your code structured and avoid too many clever things. The Perl stack definitely allows you to hammer a nail into your own foot, but it doesn't mean you have to. :)
Unfortunately, there doesn't seem to be a way to export data from GrabWallet.
I'm curious about this bit:
my $debitAmount = length(trim $fields->[4]) > 0 ? trim($fields->[4]) + 0.0 : 0.0;
That patterns repeats itself a few timesIt feels like you could safely shorten that down to:
$debitAmount=$fields->[4]+0;
Because the forced numeric conversion sort of does a trim on your behalf anyway, and "all spaces + zero" is zero. Argument " " isn't numeric in addition (+) at lib/SGBankUtils/DBS.pm line 25, <$data> line 111.
Do you know of a way of supressing / avoid this error? I want to keep warnings and strict on.At some point I was thinking of dealing with HSBC PDF statements, but they supply them in non-split form so you need to OCR it first and then process. Was too much hassle at the moment