Shared Tabs are slow for large lists (n+1)?

Issue:

Shared tabs appear to get slower the more items you add to them. Extremely long tabs show a pause (5s - 15s) when trying to add a new transaction.

Potentially this is becuase I’m using them in a way they may not be designed for.
Rather than being short duration transactional tabs (for instance to share stuff during a 1 week holiday between friends), myself and my partner have a tab that is always open, we split things like groceries and any non sheduled bill. Allowing us to make discresionary shared spends and use the tab to check “who is ahead” as a quick metric of “whose turn it is”.

This has been a very useful personal financial strategy for us, but we’ve noticed increased slowness on the tab over time.

Given how gradually it worsens, I’m wondering if the slowness is a function of the length of the list.
Perhaps n+1?

This seems likely as I guess it is going back to the start and summing from the beginning. Especially as I can go back and change past transactions in the edit screen.

Details to reproduce:
I could reproduce this by:
Given i have a shared tab with 2 prior transactions

  • From my personal account
  • Click payments tab on bottom menu
  • Click shared from the top page nav menu
  • Select my tab with 2 prior transactions
  • Click ADD new payment
  • Select custom bill (or choose a recent transaction - i don’t think it matters)
    • For a custom bill, input amount and bill name
    • press next
  • Time how long you get a blank screen on next page

Repeat this increasing the number of transactions by an order of magnitude (20, 200, 2000, 20000…) measure the time delay.

For me, it currently stands at between (5 seconds and 12 seconds).
I can’t count how many transactions are on our shared tab, but the first payment was from 2018 and we use it regularly… so… a lot?

App details below… but I suspect this is an issue with the API?

OS:
Android v12
Security update: 5 January 2022
Play update: 1 December 2021

Device:
Google Pixel 6 pro

App Version:
4.16.0

Screenshots:
This it what the app can look like for 10+ seconds whilst it works out totals.

Potential Mitigations
I suspect there’s no other posts about this (except possibly this one) as what I’m doing here is strange.

I wouldn’t be surprised if we have one of the longer tabs on Monzo.

You could:

  • Put a limit on tab size, forcing us to create a new tab over time and avoiding long waits for long tabs (do I need our history back to 2018? Probably not. Will I thank you for the additional admin of having to make a new tab? no.)
  • Replace (what i suspect is) the n+1 calculation for shared tabs. Does it need to recalculate from the begining each time (… i suspcet this is true, can’t prove it!). Could you cache / save the last calculation and reduce how far it needs to go back. I apprecate this creates compelxity when I edit the history, but I do that less often than adding items.
  • Break this feature out into short term tabs, leaving the feature as is… and see if there’s a different feature you could offer to folks like me who share a lot of transactions and like the financial freedom + fairness this kind of “pendulum swing” mode of accounting offers?

Happy to chat more + offer logs on any of this to a monzo dev / product person if of interest.

Could you not just get a joint account? Sounds like it would be far simpler and less of a huge chore in administrating your mega list.

2 Likes

We use our Shared Tab exactly like this, it works so well for us.
The joint account is for set house bills that we pay a set amount in each month.
The Shared Tab is our monthly discretionary spending, groceries, eating out etc.
It’s a great system.

And I agree, the longer it gets the slower the tab gets. We’ve found if we ‘settle up’ once a week it gets quicker.

Same for us! Mainly so I can harvest that sweet Chase cashback for not just my own spending but also our joint spending :laughing: never had this issue (but then we used to settle up each week) and these days I just use NatWest Housemate

Interesting that yours appears to get quicker if you settle up. We’re quite regularly back to level but rarely zero. I wonder how settling up might change the speed :thinking:

We just overshoot and then later correct.

I’m wondering if its not an n+1 query / doing the sums from the beginning, but perhaps sending all the data and letting the device do the maths. I expect that’d be a big blob of data to send in my case.

I just noticed it was one or two seconds longer when on a mobile connection.

Either way I’d love a chance to hear thoughts from anyone technical or product at Monzo. Even if a fix or iteration is a way off.

Definitely try settling up and seeing if it’s quicker.
I’m guessing it’s like you say, once you settle up there’s no ‘maths’ to do.
Our Shared Tab has been open for over two years, I can scroll back through them really quickly and smoothly, so settling up every now and then definitely fixes it :+1:

Perhaps, and calculating from the last time things were zero might make sense. Though you can edit the history, so I could imagine that getting complicated (it would need to update that reference point on how far to go back upon an edit).

I think in some ways though, that makes the technical issue here worse.

I can understand how a large data transfer or calculation over transactions back to 2018 could lead to slowness in the app. However we have settled up numerous times since then, including this year.

Which would imply it is still doing something beyond that point, or that it gets slow with much fewer transactions.

Out of interest, do Monzo Devs / product folk come by these forums much? I was directed here from the apps help. Perhaps I should raise a bug report directly with them?

We do have a joint account too, we use it for fixed costs like bills and direct debits.

I disagree actually, this method offers us less work and complication and, I think greater financial freedom for both parties. Broadly instead of having to put salaries into one account and transfer personal money out, or to work out “how much we might need for variable spending” in advance, we can play it more by ear, but can ensure things remain equal.

Irrespective it’s worked well for us and uses a feature that is built into the app, but appears to be broken due to unacceptably slow load times (10s+ is bad in the web / app world).

2 Likes

It was just a suggestion. Everyone does things differently so you’re allowed to disagree :rofl:

We just put a fixed amount of our salary into our joint account each month. Not the entire thing. A simple standing order each month and job done :raised_hands:

So we use the joint account for all household bills, groceries, joint direct debits and each of our personal account for personal expenses. Like our cars, phone contacts etc.

This way it allows us to set budgets, as well as clearly analyse spending and summary for each of our personal and joint expenses.

:100: yeah sounds good too, whatever works, right?

Mostly my concern for this thread is that there’s a part of monzo’s offering which is offering poor performance. Potentially in a way that’s difficult to spot, as it seems to require quite a few transactions!

1 Like

i second this issue I have a shared tab open since many months and it is not possible to add any more items. It just gets stuck in the “split bill” screen.

I agree there’re workarounds (in my case I started a new shared tab with the same person0 but I think this is a bad implementation of something that is meant to be simple and quick and it shouldn’t stop working/be unresponsive after xx months or xxx added items.