Auction House Listings – August 16

I want to address these comments specifically since both advocate “break TSM” that I think requires a bit more in depth analysis besides just “break the world and figure it out later.” I legitimately believe that with better AH system design at an algorithm/architectural level, you can keep things relatively fair for everyone. Jump to the bottom if you want the proposed solution.

Disclaimer: I play the AH, and have done so since Cata. I’ve used TSM since v1. The average player would likely consider me an “ultra goblin,” but I don’t put myself in that category. Simply because I know just how far the rabbit hole goes when you’re dealing with “whales” and “cartels.” I’m far into the above average territory, but I play on a single server and don’t camp the AH for 18 hours a day. I like keeping prices low, but I also like making profit. I don’t like gouging because I feel bad when my guild is complaining in raid about the high price of pots. It’s an entire meta game that helps me enjoy playing WoW in between content patches, and I’ve enjoyed playing this way for over a decade.

Let’s start with the current system: Single queue, LIFO (Last in, first out). Whoever has the most recent auction at the lowest price sells first. There’s advantages and disadvantages to this system:

Advantages:

  • It helps mitigate “undercut wars” which drive prices into the ground. It helps (at least in theory) allow for reasonable profit on items for people who wish to craft and sell. Prior to 8.3, the way you get ahead of someone was to drop the price by 1c. That’s not necessary anymore, and that’s sometimes a good thing to help regulate market prices.

  • For supply-heavy raw farmed materials, it helps ensure that massive quantities of an item don’t “dominate” the AH. For example, someone lists 100k Death Blossom. In a pure FIFO (First in, first out) system, all of that would need to be sold through before someone else can start selling theirs, unless they drop the price.

    + 10000
    + 200
    - 500
    
    • In the above, the last person to post gets all of their Death Blossom bought, and the first gets a partial sale.

Disadvantages:

  • It encourages continuous cancel/reposting. You no longer need to be willing to reduce your price if you want to sell. Just sit on your Bruto all day and do cancel scans. I’ll point out that eliminating cancelling altogether is not a solution. All that will do is encourage posting much smaller quantities at a time at the same frequency. API throttling also isn’t a solution. All that will do is encourage splitting the cancel scans between multiple accounts.
  • In extremely high-volume markets, you will quickly see patterns emerge where the gaps between individual “buy” actions widen disproportional to the buy/sell ratio, because listing is far more frequent, such that posted auctions become buried very quickly. This causes the cancel/repost cycle I mentioned above – more specifically it compounds it.
  • In some ways it’s less “fair.” If I’m the first person willing to sell at some low price, why shouldn’t mine sell first?

Now let’s talk about FIFO (First in, first out)

Advantages

  • It’s more “fair.” If you’re the first person willing to sell at a price, yours gets sold first.
  • For better or worse, it forces prices down, since the only way to jump the line is to reduce the price.

Disadvantages

  • It encourages price resetting even moreso than now, because yours are guaranteed to sell at that price if there are buyers willing to pay it, and you can just walk away. This is especially true in old-world commodities (such as primals and elementals) where supply is relatively low or anything where supply isn’t quickly able to be restocked.
  • For better or worse, it forces prices down to their absolute minimum, which is only good for those who deal in high volume – aka the whales and ultra goblins. Regular players can no longer make side profit from the AH. That’s very bad for the game.

So how do we get the best of both worlds? From the thought I’ve given this, I can’t think of something that combines the advantages of both systems at their extreme. But you can come close and makes things relatively fair across the board.

This is done via what I’ll describe as a FIFO system, but where “listings” and “transactions” are bucketized and distributed proportional to their volume. This requires Blizzard actually create and implement an algorithm. This isn’t a generic “item goes in item goes out” queue.

Assume the following table, where the first column is price and the “Buckets” represent individual listings + their quantity.

| Price | Bucket 1 |  Bucket 2 | Bucket 3  | Bucket 4  |
|-------|----------|-----------|-----------|-----------|
| 3g    |    25    |    15     |    30     |      5    |
|       |    40    |    30     |    10     |     15    |
|-------|----------|-----------|-----------|-----------|
| 2.5g  |    35    |           |           |           |

A number of buckets N exist proportional to the volume of a given item. There might be 1 bucket for ultra rare items, or 500 buckets for insanely high volume items, as a hypothetical. When someone posts an auction, their auction is randomly (or possibly with a more intelligent “bad luck protection” distribution algorithm to ensure each bucket stays at a relative number of listings or item quantity) is assigned to one of the existing buckets where it is placed in FIFO structure. Each bucket acts as its own FIFO queue specifically for a given price + item. If someone undercuts by 1s, a new set of buckets is “created” with a higher priority than the higher price, and they are, for a short while, the only bucket that would receive the buying tansaction.

When someone buys an auction, a bucket is chosen at random (or again, using a more complex algorithm to ensure even distribution across buckets) to receive that transaction. If the first auction in that bucket can’t fill the quantity, another bucket is chosen to fill the remaining quantity, and so forth. You could experiment with whether the transaction finds another bucket, or stays in the same one to fulfill additional quantity to see which works better.

Advantages:

  • It reduces the “gaps” between individual listings and, on average, moves everyone at a given price towards the middle (conceptually), with slight preference given to the person who got there first.
  • Unlike a normal FIFO queue, all of a given auction doesn’t need to sell through in order to allow someone else to get their auctions sold.
  • The transactions are more frequently distributed more evenly across a combination of # of listings + # of quantity of each listing, instead of just one or the other with FIFO or LIFO queues. You can still gain a slight advantage by posting more frequently in order to inject yourself into more buckets, but because it’s FIFO, it discourages continuous cancel/reposting for the same price.
    • You could experiemnt with whether someone posting lots of individual listings gets put into the same bucket, but at the “back of the line” in that bucket to mitigate this.
  • It allows prices to drop, but also allows prices to stay normalized, because you don’t necessarily need to wait for all of the prior auctions to sell before yours does. So undercutting isn’t the only way to sell. Your auction selling or not is now directly tied to the volume (and hence number of buckets) of a given item.
  • “Ultra goblins” gain no advantage by cancel scanning. In fact, they are incentivized to either drop the price, or wait it out and not cancel. If they’re dealing in high-volume across a large number of items and markets, their stuff will sell and they will make profit just fine. But it’ll be harder to dominate the market without being willing to buy it all out or undercut.
  • Average players don’t need to babysit their auctions anywhere near as much as they do with a region-wide LIFO. 48h auctions are actually incentivized slightly for moderate volume items.

Disadvantages:

  • “Bad luck”. Because the system uses an amount of randomization, a given player could encounter really bad luck where their auction simply doesn’t sell. For high-volume goblins, this will average out, but for one-offs you could get really lucky or really shafted, with no way to “fix” it by reposting because, agian, FIFO. You can, however, increase your chances significantly (much like you do today) by dropping the price, if you wish.
    • This can be mitigated by distribution algorithms and bad luck protection. For example, tracking the age of the oldest auction in a bucket or average age of a bucket and giving those buckets slight preference at the extreme ends of the curve, while keeping the “average” relatively flat and evenly distributed randomly.
  • If quantity isn’t also evenly distributed between buckets, it enables you to get even more buried in a given bucket. If you have 20 listed and get put in the same bucket as someone with 2000, yours likely won’t sell. Again, this can be mitigated by not only distributing listings across buckets, but the quantity of items as well, such that either the average “quantity” of a given bucket stays relatively equal, or the quantity of each individual listing across buckets stays relatively even.
  • In the rare cases where a player uses the AH to transfer gold between factions or now servers, it’s not necessarily as straightforward, but still can be done. I don’t know how people feel about this, but I think that’s an extreme edge case. Maybe I’m wrong and people really like that – but I feel that if it’s that important, it should be addressed by other areas of the game, not the AH.
  • Complexity. It’s much more difficult for a player to reason about why or why not their auction didn’t sell, even though the price isn’t changing.
3 Likes