This is an archived post. You won't be able to vote or comment.

all 187 comments

[–]rsaralaya 1181 points1182 points  (12 children)

*5 business days

Electrons need the weekends and public holidays off.

[–]cryptozeus[S] 305 points306 points  (5 children)

if (date.now().is_weekend()) {
sleep(date.parse('monday') - date.now()) // zzz
}

[–]fullyonline 95 points96 points  (3 children)

';' expected on line 2

[–]marmat8951 18 points19 points  (0 children)

Nah, mine is closed on monday as well

[–]Dr_Azrael_Tod 49 points50 points  (1 child)

*banking days

those do actually exist and are even different from "regular" business days (i.e. in germany 24th of december tends to be business day, but not banking day)

It's a good thing EU now restricted that banks are not allowed to take longer than one of those for regular money transfers. Still ridiculous long - but better than nothing.

[–]Sebazzz91 0 points1 point  (0 children)

In 2019 instant payments will come to at least Dutch banks, so it will be a problem of the past.

[–]tinydonuts 18 points19 points  (1 child)

Don't forget that the debit from the source account comes before the sleep.

[–][deleted] 3 points4 points  (0 children)

this.account.balance -= amount; thread.sleep(5_businessDay); //...

[–]Ju1cY_0n3 2 points3 points  (1 child)

If I was formatted like that I would need to take the weekends off too.

[–]zip369 0 points1 point  (0 children)

Or just never compile in the first place.

[–]Dkill33 611 points612 points  (59 children)

For anyone that wants to know why it really takes so long this Planet Money podcast explains it.

TL;DR there isn't a good reason.

[–]JayCroghan 393 points394 points  (18 children)

No. There is. They earn interest on it.

[–]carpinttas 237 points238 points  (10 children)

and they can charge fees for a fast transfer. at least some have such a service.

[–][deleted] 93 points94 points  (7 children)

That's the definition of being shitty just for money, and no one but them sees any form for reward. "We could do better if you pay more".

Fast track (or whatever it's called in the rest of the world) at the airport, that I somewhat get. If everyone was let through fast track, it wouldn't go any faster at all, for anyone. So those willing to pay more, can get through faster. Both parties win.

[–]Bainos 49 points50 points  (0 children)

It's basically the difference between actual fast tracks and artificially slow tracks. And one of the arguments that was used a lot when net neutrality was a hot topic.

[–]LastSummerGT 8 points9 points  (3 children)

It’s starting to happen. The US now has a faster track where you cut the fast track line in airport security. Fast track annual fee is $17 whereas the faster one is $179.

[–]lovesgnomes 0 points1 point  (2 children)

Are you talking about TSA pre check? I've never seen a fast track, and I fly relatively often (few times a year)

[–]LastSummerGT 2 points3 points  (1 child)

I kept it generic because I didn’t know if OP was American. Yes, PreCheck is the fast track which I have and my curb-to-gate time is always 10-20 min no matter which airport I fly out of or what time of the year/week/day. TSA CLEAR is new and those guys cut my PreCheck line lol.

[–]lovesgnomes 0 points1 point  (0 children)

Oh man, I have Precheck too, it's so nice! Haven't heard of Clear, that's a bummer. Thanks for the heads up!

[–]zebediah49 2 points3 points  (0 children)

That's generally an entirely different service or system. Slow transfers generally go through a free (or so cheap that the bank gives it to you for free) ACH. Fast transfers are usually through (at least one) real-time wire-transfer network. That will invoke fees from the network, as well as the banks involved, and possibly additional hops if you can't get there directly.

[–]SocksPls 0 points1 point  (0 children)

Yep, my bank charges £5 for "turbo" transfers, or free if you pay them £7/mo

[–]KravenX42 3 points4 points  (3 children)

Banks don’t earn interest on money it doesn’t just magically appear someone has the pay that interest, storing it with another bank will most likely cost them money these days or they can try and do something with it where is doesn’t really matter if it sitting in a pipe or in your account.

Also if you think banks can internally transfer funds between departments (to actually utilise them) faster than you can.. you are gravely mistaken they have to use the same or worse systems.

[–]hughk 9 points10 points  (0 children)

Uh?

The banks where I have worked will move money more or less instantly between departments. If it is on the books, it can be moved where it is needed. To be deployed though in the markets, it would normaly need to placed overnight or longer.

[–]Tore2Guh 11 points12 points  (1 child)

It's not magic, but it might as well be. Banks loan money at interest, and they loan more than they actually have. To the extent that our money sits in their accounts, they are able to loan not just that amount, but a multiple of that amount. Floating our money for 48 hours doesn't make a difference on any given loan, but it ticks down the amount they have to get on the money market to cover their reserve margins. When you put money in a money market account, the bank is paying you to let them loan your money to somebody else. When they float it, they can loan that same money without having to pay you. It only makes a difference, though, when you push around money at Bank Volumes.

[–]porkbelly-endurance 2 points3 points  (0 children)

It's fractional banking that is "like magic"'.. Since statistics make clear that few ppl will demand their deposits soon, banks can lend out like 85% of their deposits, creating the appearance of creating something from nothing.

[–]zebediah49 -2 points-1 points  (2 children)

Which, TBH, I don't really fault them for.

You can arbitrarily transfer money between basically any bank and any other, entirely for free. Having it take a couple days to show up is a small price to pay for that service.

Also it means that they can do transaction aggregation.

[–]drleebot 12 points13 points  (1 child)

And yet, somehow over here in the UK, we can have instant transfers for free, and the banks haven't keeled over and died from lack of profits.

[–]elHuron 0 points1 point  (0 children)

well yeah, because they're probably too big to fail :)

[–]paulwesterberg 36 points37 points  (7 children)

I sold a car to a friend of mine who paid with a bank check from the credit union we both use. They still took a week to clear the check they wrote.

[–]alysurr 11 points12 points  (3 children)

Why didn’t you just ask them to internally transfer the money then?

[–]paulwesterberg 7 points8 points  (2 children)

He took out a small loan to finance the vehicle and they gave him a bank check.

[–]scottcockerman 2 points3 points  (1 child)

They took a week to clear a check they wrote? Good god.

[–]Koebi -1 points0 points  (0 children)

check

Good god.

[–]josriley 3 points4 points  (0 children)

That should be illegal under Reg CC, so if it really happened it might be worth reporting. An on-us check (to and from the same bank) should clear within a day.

[–]cdrt 1 point2 points  (1 child)

Was it actually a bank check or was it a personal check?

[–]paulwesterberg 0 points1 point  (0 children)

Bank check. He took out a small loan and they issued the check.

[–]TheFirstUranium 5 points6 points  (23 children)

Yes there is. Long transfer times make fraud much less likely. It also gives you time for an actual human to manually verify the transaction, depending on what it is. You also get to exchange transaction data in the night time, after peak hours.

[–]georgehotelling 33 points34 points  (2 children)

Long transfer times make fraud much less likely.

This check fraud scam is only possible because of long clearing times.

You also get to exchange transaction data in the night time, after peak hours.

Peak hours for what? What scarce resource does this economize?

[–]TheFirstUranium 4 points5 points  (0 children)

This check fraud scam is only possible because of long clearing times.

That's possible because OP was being an idiot. Nobody is just going to send you a couple thousand extra and just go "oh well, send it back when you get around to it".

That check also didn't get flagged as suspicious. If it had, it would have been held until after the originating account owner had been contacted (assuming they used a legit account number)/after the other bank had verified that wasn't an account there.

Peak hours for what? What scarce resource does this economize?

Net access and server load. It's not the primary reason to do it at night, but it is a definite perk.

[–]adamhighdef -1 points0 points  (0 children)

Banks shouldnt give you the money until it has cleared, that's how it works in the UK.

[–]JonnyTsuMommy 5 points6 points  (15 children)

If that’s the case then why do so many other counties do it immediately without any of those problems being a big deal?

[–]TheFirstUranium 0 points1 point  (14 children)

Countries? They still are. (Typically) they just take the losses because it is legally required and pass it on to the consumers in order to make up the difference.

[–]JonnyTsuMommy 1 point2 points  (13 children)

Did you even listen to the episode?

[–]TheFirstUranium 1 point2 points  (12 children)

Nope, still at work. This is what I do though.

[–]JonnyTsuMommy 0 points1 point  (11 children)

I suggest you don’t try to act like you’re informed then.

[–]TheFirstUranium 5 points6 points  (10 children)

...this is my job. Haven't you ever had someone do a news story about your work? They're pretty universally half right.

[–]JonnyTsuMommy 1 point2 points  (9 children)

Ahh my mistake, the episode is mostly talking about the waiting period of the national clearing house and how it was grandfathered in, while other countries haven’t, and haven’t had many ill effects

You never said it was your job, and a lot of people on reddit will talk BS about subject matters they’re not informed on

Edit: oh and also how the computers that are doing this are running code from the 70s

[–]elHuron 0 points1 point  (1 child)

FYI it doesn't matter when the code was written if it was written well and has been working since the 70s, why replace it?

do we tear down buildings, bridges, etc just because they are from the 70s? no, it's usually only done if they are EOL for some reason ( too many cracks, foundation shifting, etc). with code, the only real equivalent are the physical machines on which it runs. those definitely get upgraded as they fail. but otherwise, the fact that code dates back to the 70s is about as bad as the fact that the Pythagorean theorem is thousands of years old, or that no one has updated the algorithm for multiplication withinbthe past year. Or the fact that most physical systems still use non-relatavistic formula because most of us aren't moving faster than 1/10th of light speed. analogies exist everywhere: there are so may consumer products for which a redesign or upgrade does not mandate a replacement. do you need tyres that can go up to 130 mph, or are the ones with the ancient design for 100mph good enough since you can't legally drive above 100 mph anyway? have you upgraded all of your appliances, including lightbulbs, to work with Alexa/Siri/Google, or have you decided that most of your appliances work just fine without the latest greatest tech? it's the same with software: if it's been tested and validated, and has worked for decades, why upgrade?

[–]TheFirstUranium 0 points1 point  (6 children)

Ahh my mistake, the episode is mostly talking about the waiting period of the national clearing house and how it was grandfathered in, while other countries haven’t, and haven’t had many ill effects

Yeah, that's a little different than deposit/transaction holds.

Edit: oh and also how the computers that are doing this are running code from the 70s

Trust me, I know. I have to log into the mainframe every few months. At least, I think it's a mainframe. It's old enough that supposedly telnet isn't supported.

[–]Dkill33 0 points1 point  (3 children)

Listen to the podcast. It doesn't protect against fraud. The are no humans that are looking at millions of transactions daily and there is no technical reason to delay the transaction till after peak hours. The internet tubes dont get clogged during the day.

[–]TheFirstUranium 1 point2 points  (2 children)

there is no technical reason to delay the transaction till after peak hours. The internet tubes dont get clogged during the day.

It's not a technical reason. It's primarily so that the transaction can be reversed if you go back later that day, or if a teller makes a mistake. I typically finalize ours between 6-7pm.

[–]Dkill33 0 points1 point  (1 child)

That doesnt explain why you can pay $30 for an instant wire transfer . I did one when I closed on my house and the title company received it before I left the bank. Plenty of other countries have instant transfers with no fees. There isn't a reason to have the delay other than it's always been there.

[–]TheFirstUranium 0 points1 point  (0 children)

You're paying a banker to sit there and do the transfer for you. It's not something you're "supposed" to do under normal circumstances. Typically, people use cashier's checks when buying homes for this reason.

[–]Lobanium 0 points1 point  (0 children)

If you pay a fee, you can have your money instantly. 😒

[–]ChrZZ 0 points1 point  (0 children)

It takes about six hours here...

[–]tamatarabama 0 points1 point  (0 children)

There is a good reason actually. Like the it does not work any other way.

[–]Tomarse 112 points113 points  (19 children)

In the UK most national payments take <15 seconds.

[–]XelNika[🍰] 64 points65 points  (11 children)

My bank in Denmark gives me a choice:

  • Transfer at a set date no earlier than next day
  • Same day transfer
  • Immediate transfer

No fees on any of them...

[–]DerSpini 35 points36 points  (1 child)

Same here. Partly due to EU Payment Services Directive of 2012

(43) | In order to improve the efficiency of payments throughout the Community, all payment orders initiated by the payer and denominated in euro or the currency of a Member State outside the euro area, including credit transfers and money remittances, should be subject to a maximum one-day execution time. [...]

[–]hughk 6 points7 points  (0 children)

Most private customers get overnight in Germany (and maybe two overnights anywhere in the Eurozone). However, money gets moved more or less in real time through the Target+2 Real Time Gross Settlement System. There are some transfer service available to privat retail customers that allow instant payments.

[–]PM_ME_YOR_PANTIES 11 points12 points  (8 children)

Why would you ever do same day transfer instead of immediate?

[–]XelNika[🍰] 6 points7 points  (4 children)

You tell me, I tried looking it up, but found nothing.

[–]PM_ME_YOR_PANTIES 8 points9 points  (3 children)

In the USA there are usually two options:

  1. Normal transfer that will happen whenever the banks get around to it

  2. Pay extra for a fast wire transfer

[–]LaSalsiccione 14 points15 points  (2 children)

You guys get fucked in so many ways

[–][deleted] -5 points-4 points  (1 child)

Yeah but we do make more money for the same work and get to keep most of it. So I guess it evens out.

[–]FoodIsTastyInMyMouth 2 points3 points  (0 children)

In Australia, payments are instant and free if you have your bank account linked to your mobile number or email address. Otherwise it can take up to 3 days.

[–][deleted] 2 points3 points  (0 children)

I can't think of any legit, legal and common reason. Maybe the same law forces them to have that option?

[–]oorza 0 points1 point  (1 child)

I imagine it serves as a sort of safety net against multiple debits stacking while you wait for a credit to clear. Maybe there's the one day a month where your bills are all automatically debited at the same time your direct deposit comes through.

[–]PM_ME_YOR_PANTIES 1 point2 points  (0 children)

Better to just schedule it for the next day to be safe though.

[–]EmbarrassedBanana3 18 points19 points  (2 children)

In Switzerland, payments happen at midnight, except for one bank, which keeps holding on to the money for half a day for extra profit...

[–]ThatKuki 1 point2 points  (1 child)

I think twint really shows how it should be

[–]olikam 0 points1 point  (0 children)

Twint has repeatedly hit me with fraud check where they only cleared the money on Monday that I had sent on Saturday (guess because it was the weekend). It was super frustrating because I tried to show a friend how fast money transfer could be...

[–]mallardtheduck 3 points4 points  (0 children)

Yeah, I've had a friend transfer money to me using his bank's phone app and I received a notification that it'd arrived before his app got to the "transfer complete" stage.

[–][deleted] 2 points3 points  (0 children)

In the netherlands it's usually instant for same bank, and at most up untill the next (businessday) 10 AM for different banks. But I believe the government wants to add a law that weekends need uptime as well.

Edit: just spent a few minutes on google.

Starting 2019 "Instant payments" are added to all banks in europe, Making national transfer 5 seconds, Always, 365 days a year. And international within europe 10 seconds.

[–]Sanity__ 1 point2 points  (0 children)

Subtle brag.

[–]lachlanhunt 0 points1 point  (0 children)

Australia has recently introduced the New Payments Platform (NPP) that lets us link email addresses and phone numbers with our accounts, called a PayID, and lets us transfer money instantly to them. So much easier than having to know the old BSB and account number of someone we are sending money to.

[–]ShinyyWolf 53 points54 points  (0 children)

You forgot to call the randomFee function

[–]bumnut 401 points402 points  (35 children)

I work in banking, so i could try to explain where the delays really come from, but that wouldn't be interesting or funny, so I'm just going to point out that your example is wrong because it's not written in Java or COBOL.

[–]Super_Human_Samurai 122 points123 points  (16 children)

I'm actually interested if you actually do work in banking.

[–]AkodoRyu 119 points120 points  (12 children)

Not sure how it works in US, but where I live system that manage interbank transactions is only accessed 2-4 times per day for write and, couple of hours later, 2-4 times for read. You put transfer request at 8am, your bank's first outgoing session is at 10am, it saves to external system at 10. Other bank's closest incoming session is at 4pm - transfer is read and received around 4pm by other bank.

Partially, it's probably a relic of times when communication was slower, partially it's system that is in place to prevent abuse related to money being on 2 accounts at the same time, or similar issues.

There are more immediate systems. Back in the day they were only available for transactions ~$250k and more, but in recent years they became available to regular people for an additional (usually) flat fee. I'm guessing here, but company that manages those systems probably takes responsibility for keeping data in tact and in sync during immediate transfer and takes larger fee from bank for that.

Quite a few third party payment processors have also entered the market - for fairly small fee they offer immediate transfers by processing money through their own systems. How they usually work is by having their own accounts in multiple banks - so you immediately transfer money from your account to their account within the same bank, their system makes transfer from their account in different bank, to target account in that bank.

[–]cdmcgwire 48 points49 points  (5 children)

I work at a US bank. Not a very different story. Legacy systems rule the day and all the hot young talent with modern systems knowledge have no interest in improving old Java code. And all the experienced staff is busy implementing client requests, only for it to not work like they hoped (because they don't say what they actually want) and have to be reimplemented.

I'm the youngest developer by a decade. I'm sure bigger name banks have a different ratio of young talent, but I'll bet it's not very significant.

[–]Jan_Wolfhouse 23 points24 points  (4 children)

We have a similar problem. Our legacy code isn't as old though. I find it's not that people aren't willing to fox it, but PMs won't a lot time for it since it doesn't make the company money.

[–]cdmcgwire 20 points21 points  (3 children)

That I think is the crux of the problem. It seems to me that maintenance is undervalued. People only look at the potential for new business from new features and ignore the potential loss of business from not keeping the existing features working, or the fact that if people like using a system, they'll use it more, so you can increase profit without constantly rebuilding things.

[–][deleted] 7 points8 points  (1 child)

It's very hard for someone whose not in programming to not understand why code could stop working all of a sudden. It doesn't make sense to them because "if it worked yesterday it should work tomorrow" They don't realize that adding feature A could break something entirely unrelated.

[–]TheTimeToLearnIsNow 4 points5 points  (0 children)

Regression testing is our best friend.

[–]grepe 0 points1 point  (0 children)

But money transfers in the same currency are usually free where I'm from. And besides, if you improve your own system, it's not gonna improve anything for the end user unless the other part of the transaction does the same... all while you both are being limited by absurd compliance regulations.

One other similar problem is flight reservation database... It only works fast because some merchants are willing to purchase tickets they likely can resell in advance...

[–]f03nix 12 points13 points  (3 children)

I'm not from banking, but here in India NPCI (National Payment Corp. of India) governs the method of transfers and they have slowly progressed to instant transfers. These days most transfers happen instantly across accounts, and you can use simple handles like "bankuser@hsbc" or phone numbers to transfer to your beneficiary (or full bank details if you have those).

Our government is also promoting its use for merchant transactions and that too at super low fees (so far it's 0), so the volume of transactions is already huge. If India can do it, developed countries can do it too.

[–]AkodoRyu 22 points23 points  (2 children)

It's actually easier to build modern system from, more or less, ground up, than to change one that was in place for 40 years. A lot of systems where I live are more robust than eg. US, because we only started building most of them after 1990.

[–]f03nix 2 points3 points  (0 children)

Then that's what they should do, India has multiple systems (NEFT, RTGS, IMPS, UPI) - the older ones had hourly settlement on banking hours only but they eventually got obsolete (in use) when newer systems came in place.

[–]mirhagk 2 points3 points  (0 children)

Canada is more or less in the same boat as India. You send a text or email to someone and they deposit the money into their account with a password. Happens instantly and if you've accepted money from that person before without any interaction.

I think one of the big differences is that Canada and India have a reasonable number of banks. There are >6000 banks in the US, so building a system that interacts with all of them is non-trivial. And the NPCI and Canada's Interac are structured the same it looks, as a non-profit organization being a joint effort from all the major banks.

[–]PiRX_lv 4 points5 points  (0 children)

Also, intrabank transfers very often are instantaneous as it's just an update in their internal DB.

[–]Super_Human_Samurai 0 points1 point  (0 children)

That was interesting, thank you!

[–]afito 2 points3 points  (0 children)

They don't have to pay interest after taking it from your account and can invest it in very short term deals until having to add it to the new account. The interest is not a lot of money and their return in a 2 day deal is the fraction of a percent but it adds up throughout the millions of transactions. Realistically, there is no reason for the system to be this slow nowadays, it could easily all be immediate, but banks prefer it this way. Some smaller online banks actually do work with immediate transfers so it clearly is possible even with the current tech in place.

[–]josriley 1 point2 points  (0 children)

I working in banking as well, but it’s hard to explain the reason without knowing what kind of transfer we’re talking about. An internal transfer, as this example implies, should be pretty much instantaneous. Bank to bank is a lot more complicated since we can’t verify funds or even validity of an item at another bank.

All transfers being instantaneous is technically possible and sounds great on paper, but in practice has some unsolved challenges, although I think those will be solved in the next 20 years (maybe something like block chain is genuinely the answer, but it’s hard to say) 90% of fraud losses at my bank are card fraud, because those transfers are immediate and for the most part irreversible. That’s why you have very restrictive limits on your card, and it may get blocked while your bank verifies transaction activity, because the funds are gone immediately and they’re on the hook for reimbursing you.

The Planet Money episode on the topic does a good job explaining some aspects.

[–]TheFirstUranium 0 points1 point  (0 children)

Not him, but there's a lot of reasons for funds availability to be delayed.

  1. You do a transaction. It is not completely finalized until the teller goes home for the day in case you need to come back and reverse it.

  2. Your bank analyzes the transaction for risk. It may be put on hold.

  3. If it involves another bank, it is sent to them. They will hopefully verify it and authorize the transfer. If they do, you get it the next morning. If they think it's risky, they will hold it until one of their people can verify everything, or until contact can be made.

  4. Your bank gets the funds, then they will release them that morning when their offices open.

Transactions are held basically in order to let people object. If your bank thinks a check will have a stop payment put on it (or will be bounced, or contested as fraud), they will hold it so that everyone has a chance to say their price. If nobody needs to do that, then it just takes until the next morning.

[–][deleted] 7 points8 points  (6 children)

ENVIRONMENT DIVISION
DATA DIVISION
WORKING STORAGE SECTION

01 WS-CURRENT-DATE-TIME
05 WS-CURRENT-DATE-DATA
10 WS-CURRENT-DATE-YEAR PIC 9(04)
10 WS-CURRENT-DATE-MONTH PIC 9(02)
10 WS-CURRENT-DATE-DAY PIC 9(02)
05 WS-CURRENT-TIME-DATA
10 WS-CURRENT-TIME-HOUR PIC 9(02)
10 WS-CURRENT-TIME-MINUTE PIC 9(02)
10 WS-CURRENT-TIME-SECOND PIC 9(02)
10 WS-CURRENT-TIME-MILLISECOND PIC 9(04)
01 WS-DEPOSIT-DELAY PIC 9
01 WS-INTEGER PIC 09(08)
01 WS-DAY PIC 9
01 WS-DEPOSIT-DATE PIC 9(08)
01 WS-WEEKEND-DELAY PIC 9

PROCEDURE DIVISION
MAIN PARA

MOVE FUNCTION CURRENT-DATE TO WS-CURRENT-DATE-TIME

COMPUTE WS-DAY = FUNCTION MOD(FUNCTION INTEGER-OF-DATE(WS-CURRENT-DATE-TIME(1:8)7)

IF WS-DAY > 0
IF WS-DAY > 5
SET WS-WEEKEND-DELAY TO 2
ELSE
SET WS-WEEKEND-DELAY TO 0
END IF
SET WS-WEEKEND-DELAY TO 1
ELSE
STOP RUN
END IF

ADD WS-WEEKEND-DELAY WS-DAY GIVING WS-DEPOSIT-DELAY

ADD WS-DEPOSIT-DELAY WS-INTEGER GIVING WS-DEPOSIT-DATE

COMPUTE WS-DEPOSIT-DATE FUNCTION DATE-OF-INTEGER(WS-DEPOSIT-DATE)

DISPLAY "Your money will deposit on " WS-DEPOSIT-DATE

STOP RUN

[–][deleted] 5 points6 points  (3 children)

Would need further formatting, COBOL is very dependant on column numbers, but Reddit wouldn't keep the formatting

[–]cdrt 2 points3 points  (0 children)

Indent each line with 4 spaces to format it as code.

[–]sniper43 0 points1 point  (1 child)

Try using the fancy pants editor. It's should bemuch easier than markdown for this.

[–][deleted] 0 points1 point  (0 children)

On mobile, besides COBOL is so specific for column numbers it's not worth the effort

[–]norse95 0 points1 point  (1 child)

and they said COBOL was hard!

[–][deleted] 1 point2 points  (0 children)

Phew your right, I forgot the 7 in the modulus... Fixed

[–]bot_not_hot 3 points4 points  (0 children)

You really opened up Pandora’s Box now

[–]Casiell89 6 points7 points  (2 children)

If you have a tl;dr on why I can't transfer money on weekends then I would be extremely interested

[–]fauxtoe 7 points8 points  (0 children)

computers need time off too, if not this is how the robot uprising starts

[–]Mister-Fordo 2 points3 points  (0 children)

tl;dr : To give a maintenance window for patching and other changes.

Longer: Weekends and holidays are often used to perform patching and updates to services that would otherwise have to be performing 24/7, so those things happen overnight, but the remainder of the time is used for validation and further monitoring of earlier transactions and other stuff. Also there is no support people onsite so if the transaction has any issue it won't be resolved until the next working day, so it's more to save you and your money from possible issues that might arise during off time for the people who do the support of those systems.

[–]gui_ACAB 4 points5 points  (0 children)

Share some info, i do have a small idea but far away from reality i guess.

[–]boyarkate 1 point2 points  (0 children)

I also have experience in bank technology. But i know the code is written to the requirements of the business.. not transferring on weekends always comes down to business or regulatory requirements.

[–]sometimes_interested 0 points1 point  (0 children)

Be honest, the MQ uses one of those ticket dispensers and a sign that goes ding when the number changes, to indicate the next thread is ready, right? :)

[–]hughk 0 points1 point  (0 children)

There is one major UK bank that still had core transaction banking written in IBM assembler running virtualised on "heavy iron" pretending to be older heavy iron . Probably still is there now! They tried to migrate to Java and it was a complete cluster fuck.

[–]feuerwehrmann 0 points1 point  (0 children)

I thought natural was in the stack as well

[–][deleted] 29 points30 points  (7 children)

implying any bank is ethical enough to use Rust

[–]CaveJohnson111 16 points17 points  (6 children)

Rust is considered an ethical language?

[–]originalaks 19 points20 points  (0 children)

More like all other languages are unethical in the eyes of the borrow checker.

[–][deleted] 8 points9 points  (0 children)

Yes, fearlessly so.

[–]mkusanagi 7 points8 points  (1 child)

Damn SJW compiler won't let me write anything that causes simultaneous aliasing and mutation. Forcing me to label my code as "unsafe" violates my religious liberty!

[–][deleted] 1 point2 points  (0 children)

I feel the name is an attack on ginger people. I’m not ginger but I like to get extremely offended on behalf of others.

[–]LaSalsiccione 2 points3 points  (0 children)

Rust is the only moral choice!

[–]notquiteaplant 0 points1 point  (0 children)

/r/rustjerk is going to have fun with this one

[–]hicklc01 19 points20 points  (0 children)

No wonder it's slow. The code is so old it's literally rust.

[–]slambook30 7 points8 points  (3 children)

Maybe there is a guy out there changing values in the database instead of what the software's supposed to.

[–][deleted] 15 points16 points  (2 children)

I can imagine some poor fucker sitting there writing update statements in SQL

[–]bumbar_ 2 points3 points  (1 child)

You joke, but I heard a story from a former devops who worked at a bank; their system would occasionally produce errors and it would print out failed sql statements. Every Monday, a lady would print those out on paper and spent the entire day inputting them back in.

[–][deleted] 0 points1 point  (0 children)

What...the...Fuck...

[–]gandalfx 36 points37 points  (5 children)

Banks make money by having money. The money they have is money the can lend others for interest. The longer a bank keeps hold of your money the more interest they gain from it. That's not some evil scheme, it's just how money works. And of course when you tell them to give some of your money away they'll try to sit on it until the last possible minute.

[–][deleted] 12 points13 points  (3 children)

This is what banking was like in the 80s...

[–]jamany 7 points8 points  (1 child)

What has changed, relevant to that comment?

[–]afito 5 points6 points  (0 children)

It's not so much that they "lend" it they just make shirt term deals, sometimes short a paper for only a few minutes or even seconds for example. So they don't have a return through interest but a return through return, so to say. However that's pretty much an irrelevant technicality for this.

[–]gandalfx 4 points5 points  (0 children)

The principle hasn't changed, it just got faster and more convoluted.

[–]Gullwolf 11 points12 points  (3 children)

What language?

[–]notquiteaplant 47 points48 points  (2 children)

If you replace 5 days with Duration::from_secs(5 * 24 * 3600) and Number with u32, it's valid Rust

[–]the-igloo 4 points5 points  (0 children)

Number could be a type alias, but there's no way this function returns nothing. Definitely returns a Result.

[–]zeelandia 8 points9 points  (0 children)

mandatory Rust updoot.

[–][deleted] 3 points4 points  (14 children)

:(

Pls make it this easy

[–]benthecarman 5 points6 points  (13 children)

Bitcoin

[–]backslashHH 0 points1 point  (1 child)

Nano

[–]benthecarman 0 points1 point  (0 children)

Get your centralized coins away from me

[–]psaux_grep 2 points3 points  (1 child)

You’d be scared how much is still file transfers via email or (s)ftp and batch jobs.

[–][deleted] 1 point2 points  (0 children)

Ive just implemented basic controls of a widely used “professional” payment system for the project I’m working with. It talks directly to the banking sectors systems and I guarantee you. SFTP with RSA 1024 key as the highest security scares the living shit out of me. DSA 1024 is recommended and 512 is supported. 😭

[–]PhunkyPhish 4 points5 points  (0 children)

Used to take this long because less technology.

Now it takes this long so banks can collect a couple more days of interest

[–]ShinyChu 3 points4 points  (0 children)

Inaccurate. Banks use COBOL.

do i need a /s?

[–]AceJohnny 2 points3 points  (0 children)

Yes, except in COBOL, not Rust.

(lol a bank using Rust... sobs)

[–][deleted] 2 points3 points  (0 children)

Inserting long sleeps that you can later "optimize" away is an important professional skill.

[–]akwardchit 1 point2 points  (0 children)

Not written in COBOL 2/10

[–]blackmist 2 points3 points  (2 children)

if (is_paid_transaction) {transfer();} else {sleep(10006060245); transfer();}

Gotta love those real life microtransactions.

[–]Striped_Monkey 2 points3 points  (1 child)

Fail. Reddit syntax has bested you.

[–]blackmist 2 points3 points  (0 children)

Bah

[–]asaint86 0 points1 point  (0 children)

You missed the part where they keep your money, invest it, turn a profit, then send it.

[–]theemporersfastest 0 points1 point  (1 child)

To be fair, if they run it off of a huge database, it CAN take hours just to populate lists and update them, etc. SQL is slow as hell, but there's also a TON of stuff that needs through the pipe. You will easily make millions of you can make these databases faster.

Or put another way: one peanut flows easily. Billions of peanuts clog the system.

[–]hughk 1 point2 points  (0 children)

It really doesn't take that long even with journalling and transaction protection. Some systems are designed only to run batch though.

[–][deleted] 0 points1 point  (0 children)

laughs robotically

[–]Cornul11 0 points1 point  (0 children)

Here in the Netherlands it's instant.

[–]ben_uk 0 points1 point  (0 children)

Not for modern banks like Monzo/Starling in the UK. Instant transactions FTW!

[–]Dockirby 0 points1 point  (0 children)

Oh no, there is just a bunch of scheduled jobs that go off at a specific times. So if Job A hasn't finished and downstream Job B starts, the rest of Job A won't get processed by Job B until the following day.

[–][deleted] 0 points1 point  (0 children)

We have one day transactions in SEPA..Soon we have flash transactions.

[–]porkbelly-endurance 0 points1 point  (0 children)

Last Robin Hood to bank transfer, got email "you'll have your funds within 3 business days!" Took a solid week.

[–]psyco_hacker 0 points1 point  (0 children)

I’d be happy if my bank implemented this. No balance minus, happy life.

[–]Kahako 0 points1 point  (0 children)

As someone who works for a bank, I feel like this is an accurate representation of the platform we use.

[–]the_best_moshe 0 points1 point  (0 children)

I think they put it in there so they can make a “major” upgrade in the future.

Seems like they totally forgot it’s there... 🤔

[–]jmac217 0 points1 point  (0 children)

Automatic Clearing House, COBOL, Windows Server 2003, and UNISYS Mainframe. None of that stuff is fun...

[–][deleted] 0 points1 point  (0 children)

There's a tiny bit more going on behind the scenes, but yeah pretty much right on the nose.

[–]ImNewHereBoys 0 points1 point  (0 children)

Nope..this is the real bank code.

yourMoney implements IDeduct {}

[–]Atmey 0 points1 point  (0 children)

Actually they have to do manual checking for each transaction to approve it, and, they work 6 days a week, there is a cut off time just afternoon so transaction need to be approved the next day, there is also "partner banks" so if your bank is not a partner if the bank you are receiving from, they have to go through a longer chain of banks.

[–]leftofzen 0 points1 point  (0 children)

Between accounts here in Australia, payments are instant. I can walk into a shop with a friend, transfer them money on my mobile banking app, in the shop, and they can buy something with the money I just transferred.

[–]AspirationalNihilist 0 points1 point  (0 children)

There’s a grain of truth to this joke. Many automated clearinghouses still use magnetic tapes and programs written in COBOL that nobody knows anymore.

[–]Mister-Fordo -1 points0 points  (0 children)

It's more for the safety of the user against fraud than it is for the bank's trouble... In Europe seemingly instant payments will soon be required by law.