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.