How we support Get Paid Early 💸

It’s not so much that no one thought people would do it… more that no one thought as many people would do it as actually do ! :sweat_smile:

5 Likes

It’s great! Love me some numbers! Thank you

6 Likes

That’s right! We actually see a little burst of new activity at ~4:25pm when the push notification has gone out. Up until that point, the number of requests are dropping sharply from the initial burst, but they then level off as a more steady stream of customers start to request their money too !

4 Likes

Great question!

We’re not seeing different scaling challenges as the US grows just now, but you’re right that the graph is likely to flatten off.

I think what we’ll see (assuming a good spread of users across the USA relative to the population in the area) is a big bump when Eastern Time wakes up, then smaller bumps as Central Time and Mountain Time users wake up, then a big bump when Pacific Time wakes up.

Aside from GPE events (or similar), our autoscaling should pick this up without us really needing to do anything special to handle it.

2 Likes

Have you considered client side rate limiting? I.e. make clients roll the dice and pick a percentile they are in and only allow GPE after some time? I.e. smooth the peak 4pm…5pm to have a moderate hill rather than spike of death in demand? Would that reduce compute resources cost without much UX impact?

In Ubuntu we do that for rolling out phased package updates, because we ended up basically doing self triggered DDoS.

Well it’s a great feature but unfortunately since opening my account recently and thinking “oooh I’m going to get paid a day early coz my wage slips says bacs” to find out it’s actually faster payment transfer. Grrr and doesn’t even show as pending on my account, giving me the stress of “will I actually get paid in order for my bills to come out on the 1st?”. So unfortunately this feature is useless for me.

1 Like

Presumably you‘ve always been paid in time for the bills when you banked elsewhere?

3 Likes

Not sure as this will be the first month I’ve been paid since changing my bank details. You never know with some people if the actually process details and payments correctly lol

Ah yes, well I guess that’s a separate risk, which still applies even if you’re paid by BACS.

1 Like

Great question!

There are tons of strategies that we could implement, from staggering the time a customers request will be satisfied as you suggest, to enforcing a first come first serve queue (like what Tesco do at Christmas). However, as GPE is about putting customers in control of being able to get their money as soon as they can, we really want to preserve the experience of dragging the money in to the wallet and getting paid as close to real time as possible, without introducing staggered entry times or exposing queues that customers could find arbitrary and frustrating. (Basically keeping the feature as simple as possible from an end user perspective)

The solution we’ve got to preemptively scale all services involved in handling user traffic also scales really nicely to any other similar spikes we can preempt in future ! (E.g. a new product becomes available at 9am on some date, a batch job we want to run that impacts a user-traffic-handling service needs to happen during the UK day for US customers, etc.)

2 Likes

Reminds me a bit of the Eastenders Power Grid Rush as everyone goes to boil their kettle.

I never knew the GPE was “a thing” that other banks did silenty - first time I’ve had that feature was with Monzo.

And I definitely enjoy the little dopamine delivery button even though I defintely have no urgent need for my pay to arrive ~8 hours early.

Though it makes the idea of a pre-pay day pint a bit more digestible.

I would assume that there are common pay date(s) that provide even more strain on the system - (haven’t read the article yet) - 25th or last working day of the month seemingly the most common pay day. Does the act of requesting at 4PM mean a significant resource strain that would be different to say the strain on a common pay day anyway? Or is the difference just payments overnight have less competing system load?

4 Likes

Also I don’t know if it’s been shared before, but would be cool to see a chart on a Big Pay Day Date of frequency of GPE requests from 4PM onwards.

3 Likes

Does the act of requesting at 4PM mean a significant resource strain that would be different to say the strain on a common pay day anyway?

Yes ! On a normal payday the payments happen in the early hours and customers start doing stuff with the money at some point the next day after they wake up, so the traffic is naturally staggered and just falls in to normal every day workloads, which autoscaling easily supports

With GPE traffic, the customer is in charge of pulling in their money and then doing things with it from a specific time. As a result, a large amount of the traffic happens in a huge sudden burst and services start doing 5x as much work in a matter of seconds :scream:

To your other point about big pay days - the traffic pattern is always about the same as the CPU graph on the post, just with bigger peaks on big pay days. Whats interesting though is that the impact is sometimes greater on a day with fewer payments, compared to a day with more. This means that for some reason, customers are more likely to use GPE for certain types of Bacs payments, or if something special is happening around that day. It really is a fascinating problem as there are so many angles you can look at it from.

4 Likes

whilst i quite like the manual option for getting paid early will this ever become automatic and then feed into the salary sorter ?

1 Like

Thanks for the informative article :grin:

From technical point of view :nerd_face:
4 pm could be replaced with (eg) midday to 1 pm. I assume that less people are using banking at this time compare with 4 to 5 pm. As a bank, Monzo should be able see those (its own) figures, what time is least activity.

And implement on the app the option to choose ‘‘pay early automatically’’. Users would know they will be paid early and same time, bank it self would know how many people chose to get paid early (regardless the day of the month), before the ‘‘show starts’’ :wink:

1 Like

Both of these are crying out for an automated solution.

This is interesting, though, from the US public roadmap :us:

2 Likes

hnnnn interesting that the US looks like it will get it first

1 Like

Who knows? If they’re doing it properly, it’ll be done once then localised for both if needed.

But you never know with these things.

2 Likes

Revolut automates theirs at 5pm or shortly after, so I can’t imagine its a major chore to do.

Having said that. Some people might not want to be paid early in terms of budgeting/planning/reporting etc and they can dismiss the GPE in their feed.

4 Likes

It has to be 4PM because that’s the earliest point that the money can’t be reclaimed by the sender through the Bacs system :relaxed:

9 Likes