Option to ignore bait listings in search results, crafting cost and price history
hollo6 opened this issue ยท 13 comments
What version(s) of WoW are you using?
Retail
What problem are you experiencing that led to you asking for this feature?
With the enormous amount and constant flow of bait listings, it is almost always impossible to have a proper search result when looking at multiple items, e.g. shopping lists or craft search (from crafting window Search button). Consequences:
- Crafting cost calculations are way off from actual achievable sums.
- Shopping lists only show the baits, so actual achievable prices can only be determined by manually checking every tier/quality and remembering their individual results from their own pages.
- Price history is mostly useless.
Redoing the search is not a solution either because even if one of the baits are gone on the second/third/nth search, some others will have them by then for sure.
What solution would you like?
Best solution for me would be a configurable threshold below which the results would be ignored (not shown in shopping list results and not used for crafting cost calculations), e.g. "ignore the price of these listings in calculations if there are < X items listed at a >Y% lower price than the second lowest result".
Any alternatives you can think of?
I'm sure there are more clever and/or robust ways to achieve this, but even something very basic like this would make humans' life a lot less miserable.
Anything else?
No response
For me, it is difficult to make a solution that covers both low volume and high volume item types in the AH.
Question, if these were the prices listed (GG.ss) for an Reagant on your realm what value would you want reflected as the price?
10 gold?
Or is that volume too low, so 10.98?
{price = 6.26, volume = 1},
{price = 6.27, volume = 2},
{price = 10.00, volume = 28},
{price = 10.98, volume = 1968},
{price = 10.99, volume = 18},
{price = 11.96, volume = 1541},
{price = 11.97, volume = 940},
{price = 11.98, volume = 2477},
{price = 11.99, volume = 4177},
{price = 12.00, volume = 760},
{price = 12.73, volume = 8424},
{price = 12.75, volume = 226},
{price = 12.78, volume = 40},
{price = 30.99, volume = 60000}
Here's a short LUA script that can calculate a quantile low but only really works for items in the 1,000+ volume quantity range. Ideally the input percentage should scale up to 0.1%-ish when total item volume is low, ~1,000 or less total supply, and scale down to 0.01%-ish when total item supply is over 100,000.
Maybe an option to only apply this kind of pricing logic to reagents would be necessary.
-- Pricing data
listings = {
{price = 6.26, volume = 1},
{price = 10.00, volume = 28},
{price = 10.98, volume = 1968},
{price = 10.99, volume = 18},
{price = 11.96, volume = 1541},
{price = 11.97, volume = 940},
{price = 11.98, volume = 2477},
{price = 11.99, volume = 4177},
{price = 12.00, volume = 760},
{price = 12.73, volume = 1424},
{price = 12.75, volume = 226},
{price = 12.78, volume = 40},
{price = 30.99, volume = 60000}
}
function Scale(x, x_min, x_max, start, end_)
if x < x_min then
x = x_min -- Use floor (x_min)
elseif x > x_max then
x = x_max -- Use ceiling (x_max)
end
-- Compute linear scaling factor
local t = (x - x_min) / (x_max - x_min)
local scale = start + (end_ - start) * t
return scale
end
-- Example usage
local x_min = 1000
local x_max = 100000
local start = 0.001
local end_ = 0.0001
-- Function to calculate quantile low price
function calculateQuantileLowPrice(listings, quantileInput)
-- Sort listings by price in ascending order
table.sort(listings, function(a, b) return a.price < b.price end)
-- Calculate total volume
local totalVolume = 0
for _, listing in ipairs(listings) do
totalVolume = totalVolume + listing.volume
end
print("Total Volume", totalVolume)
-- ignore quantileInput and calculate one based on the scale
local scaledQuantile = Scale(totalVolume, x_min, x_max, start, end_)
print("Calculated Quantile", scaledQuantile)
local quantile = scaledQuantile
-- Determine the volume threshold for the quantile
local thresholdVolume = totalVolume * quantile
-- Accumulate volume to find the quantile price
local accumulatedVolume = 0
local quantilePrice = 0
for _, listing in ipairs(listings) do
accumulatedVolume = accumulatedVolume + listing.volume
if accumulatedVolume >= thresholdVolume then
quantilePrice = listing.price
break
end
end
return quantilePrice
end
-- Calculate the 1% quantile low price
local quantileLowPrice = calculateQuantileLowPrice(listings, 0.0001)
print("Quantile Low Price:", quantileLowPrice)
These x_min and max and start and end values should be adjusted as my sample size for AH listing was only 1 reagent as this is a rough idea and I'm not a native LUA developer or mathematician.
Question, if these were the prices listed (GG.ss) for an Reagant on your realm what value would you want reflected as the price? 10 gold? Or is that volume too low, so 10.98?
{price = 6.26, volume = 1}, {price = 6.27, volume = 2}, {price = 10.00, volume = 28},
For this case, I want the 10. But in my proposal, there is a configurable quantity to exclude lowest prices below it; I would most probably set it to 5, maybe 10. Both would result in the 10 being the recorded value.
I believe this would also work for bulk crafters just as well, they would just have to set that quantity to 1000 or whatever.
Maybe an option to only apply this kind of pricing logic to reagents would be necessary.
That would be perfectly fine, as bait listing is almost exclusively a reagents problem.
Then how about giving us an option to make a "full" search if making a shopping list or crafting search?
I could live with it taking as long as it takes if it meant getting accurate results.
There isn't a good solution, as the Blizzard interface doesn't provide details of all the auctions for a given item without an additional scan, which would make the shopping search take much much longer.
The initial search results including multiple items only supply the lowest price
I completely agree and came here looking for a solution to the same problem. These bait-listings are an insufferable nuisance.
Is it possible to easily identify and ignore these outliers? If not, even picking up the second lowest value instead of the lowest might be a start. Or possibly an option to manually override an items value in your database.
For me, manual price setting would not help at all as it would need even more work than just checking every individual item.
Yeah manually editing would be a chore, it was a bad idea. It looks like we can kind of do it already as well. If you own some of each item and then bring up the auctionator page as if selling it, you can reselect that item to refresh its saved price. Repeat this if you have an abnormal price and move on to the next reagent.
Would not help either, even more work and time (most important thing here), also I don't keep every form of every item in my bags.
I came here to open this exact topic, but everyone is voicing the same problem. I hope the developer solves it, because it's actually very simple.
Because of the price cutters, it constantly reflects the lowest price and this causes inaccuracy in all rates on the sheet.
Another solution different from the one mentioned above is that it reflects the number we enter in the Quantity section and I think this will be more accurate. Because crafters always buy bulk products, the important thing is the cost of that product to us in the amount we want. For example, if I chose to buy 1000 products, it should reflect the price of those 1000 products to me. (a small box tick mark can be added next to where we write - integrate into the price style)
I actually do not bulk craft, just do everything in small quantities for patron orders and myself, so if I need like 10 items for that craft and the baiters have 4 listed, it would still be a very skewed price - except if you mean to record the price that the full needed quantity could be bought for.
But even so, without a global value for this, it would still need a lot of manual work to set these for every tier of every individual item.
Yes, that's why there should be 2 separate options for both individual and bulk purchasers. The solution you offer as an individual and the solution I offer as a bulk purchase is the most logical. It's actually simple to do, hopefully the developer can add it soon.
Then how about giving us an option to make a "full" search if making a shopping list or crafting search? I could live with it taking as long as it takes if it meant getting accurate results.
I agree with that. There is nothing negative about it taking longer. It can even take a minute or two, as long as it's accurate.
I have 6 professions. I have a googlesheet table for each profession and each one has a list of 10-15 materials.
However, every time I use this feature, I have to check it one by one. Because it shows the 10g product as 6g as shown above and that's why all the googlesheet statistical information is wrong.
So even if it will take a long time, if you can do it, please do it ^^ this could be an additional option and those who want to can do it (which I am sure everyone will do)