I can say to start, good on ya @Lumyna for tagging other experienced developers…the more developers testing WU charges the better, as it will lead to faster discovery of bugs that are costing us all money.
Before diving into things, to start, while testing, I’ve discovered another bug in WU charges. We are supposed to be charged 0.3 WUs for a search, 0.015 for each entry returned, and 0.000003 for each character returned. My first testing was with a data type that only the 4 built in fields, with 73 entries in the database, and checking the number of characters returned, each only returned 77 characters of data. Do note, that in the below screen shots, it represents a page with a single element, just one repeating group with a do search with no constraints.
73 entries returned
Each entry returned should have only _id (the unique id), created by (should only be the ID of user, and not inclusive of _lookup_admin_user_meta_live), created date, modified date.
As a whole, those characters returned should only be 77
I am generous in my assumptions and benefit of the doubt, so I also added characters for the type and version, even though they should not be counted. Adding those it is 96 Characters
The math, should be search at 0.3 WUs, each item returned (730.015=1.095) and characters returned (73770.000003=0.016863) or can be (7396*0.000003=0.021024) for a grand total of 1.411863 or maybe 1.416024
THE PROBLEM IS WHAT I WAS CHARGED
I know bubble rounds in these values, but it displays as 1.46 which is around 0.044 WUs more than it should be. Now, obviously this difference of 0.044 is not a large discrepancy, but it is different than anybody should realistically expect based on publicly available pricing information published by Bubble, and for anybody expecting to scale on Bubble, if you had 1,000 daily active users, all of whom perform this search once per day, that is 30,000 searches x 0.044 WUs too many, resulting in 1,319.28 WUs more than we should have been charged. Again that is not excessive, but we should only be charged for what Bubble states we are charged for.
Figuring out why the differences displayed in the WU metrics tab should not be so difficult, as things should just line up properly as NUMBERS DON’T LIE.
@fede.bubble @Eram_BubbleSupport could be get an investigation on this subject or at least an explanation that would help explain why there is an additional 0.044 WUs charged?
Now, onto the test for the post.
Below are images of WU metrics based on a single repeating group on the page searching for 73 items with no custom fields
The result from the logs and the Network tab are as expected, one repeating group performing one search is charged for one search.
Below are images from logs and network tab for the same page now, with 2 repeating groups, one that does the search and the second that references the first repeating group
What I found is that when I have two repeating groups, one with search and the second referencing the first, I get the results as to be expected, only one search of the database was performed and I was charged WUs associated with performing just one search
NOW ADDING IN SOME FUN TO REALLY TEST IT OUT. I added to that data type a single field, that is related to an option set called color. I applied a random color to each of the 73 items in the DB. One the page I added another repeating group for each of the 5 colors with a filtered expression. Total number of RG on page is 7, the first that does the search, the second that just references the first, and the other 5 are referencing the first (ie: the one that does the search) with filters for the colors
In the network tab, I still only see one search and one msearch, which implies Bubble is doing what has always been expected, which is a single search of the DB, but now I see 6 maggregate searches…these are the first that takes place when do a search for DB, and the other 5 are from the reference plus filter
do keep in mind that an maggregate is the same type of charge as if we reference a rg and its count, which is 0.20 WUs, which is less than an actual search. Below is what I see in the logs, and one strange thing is that there are 2 searches, and when I click to dig deeper it brings me to the same single search on first RG, which is very strange since when I tested with just two RGs and one referenced the first, I was only charged 1 search there, so no idea why I am charged for 2 searches in this scenario as it doesn’t show as if there is another search on any other RG taking place. What is also weird is that the charge for 2 searches is just 1.78 WUs, which is not the equivalent of (1.46X2=2.92), nor is it what I would expect for the cost of the additional characters returned for the color, so pretty odd to see the original one search charged as 1.46 WUs and this other apparently 2 searches charged as 1.78WUs, unless what it is is just the 0.3WUs for a search plus the characters for the colors which adds up and could make sense, but still odd that I wouldn’t have been charged for the 73 results that should have been returned from the 2nd search
So, overall on the search with multiple RGs referencing the first and filtering, the charges on first test were below at 2.98 WUs
I ran the same thing after seeing the odd 2 Searches, and got the same results.
So, as a baseline, for having 7 RGs, with 1 referencing original and no filters, and 5 referencing the original with filters, have total WUs of 2.98 charged.
When I alter the approach and do searches on each RG and use constraints
I see very similar results in the network tab, in that there is only 1 search and 6 aggregate searches. Below are screenshots from the logs
What is really strange is that now the 2 searches do show different searches and one is for the original search and another is for the search with constraint, but oddly, there are 5 rgs with searches with constraints but WU metrics in logs only show one
Based on my simple test, it seems like the refernce with filter operator is cheaper by 0.01 WUs, at 2.98 versus 2.99
When I alter the constraint to be an advanced filter, I get more msearch in network tab
In logs see very strange results as things just don’t match up with previous results. Most important being the charge for the 1 search from the original search with no constraints…it only cost 1.15WUs the last time 
Final test had total cost of 2.28 WUs, which is lower than other tests at 2.98 or 2.99 WUs from other tests.
So, seems like best approach is to have one RG do the search, and other RGs reference the first and have them use an advanced filter to force a client side filtering.