Forking a new thread from
truedungeon.com/forum?view=topic&defaultmenu=141&catid=584&id=250328&start=48#353987
Matthew Hayward wrote:
Wade Schwendemann wrote:
Matthew Hayward wrote:
Example. there are 32 PyPs:
A bids $100 on 17
B bids $105 on 17
C bids $5 on 32
D bids $105 on 1
E bids $75 on 4, and $90 on 3, $100 on 2, and $110 on 1
F bids $1000 on 2
G bids $55 on 8
Who is winning what and at what price? And why?
Ok, with E bidding on 10 different PyPs, I would sort it as this
All 32 will have been bid on
A wants 17, and is will to pay 100 apiece
B wants 17, and is willing to pay 105 apiece
If these were the only two bids, a would be leading 15 PyPs at 100, B would be leading 17 at 105
I agree with Wade, and I'll try to fill in the details of why.
Imagine a very faithful, very patient virtual assistant to whom you have given the instructions "Try to win 17 PYPs at the lowest price you can. Don't pay more than $105 each." This assistant uses that information to place actual bids for individual items on your behalf, one at a time. Every bidder has such an assistant, and the assistants do not share knowledge with each other.
In my opinion, the appropriate auction result is the one that is consistent with this model. Of course there are implementation shortcuts available (edit:
here is the implementation shortcut
), but to see how the model works, let's walk through all the actual bids which result deterministically from the application of B's bid.
Initially A bids $0.25 on PYP#1-17:
PYP#1-17 A $0.25
PYP#18-32 $0
1. B bids $0.25 on PYP#18-32.
PYP#1-17 A $0.25
PYP#18-32 B $0.25
2. B still needs two more, so he bids $0.50 on PYP#1. But now A needs one more, so he takes over PYP#18 from B at $0.25 (first bidder wins ties).
PYP#1 B $0.50
PYP#2-18 A $0.25
PYP#19-32 B $0.25
3. B still needs two more, so he bids $0.50 on PYP#2. But now A needs one more, so he takes over PYP#19 from B at $0.25 (first bidder wins ties).
PYP#1-2 B $0.50
PYP#3-19 A $0.25
PYP#20-32 B $0.25
... skip a bit, Brother Maynard ...
16. B still needs two more, so he bids $0.50 on PYP#15. But now A needs one more, so he takes over PYP#32 from B at $0.25 (first bidder wins ties).
PYP#1-15 B $0.50
PYP#16-32 A $0.25
17. B still needs two more, so he bids $0.50 on PYP#16. But now A needs one more, so he takes over PYP#1 from B at $0.50 (first bidder wins ties).
PYP#1 A $0.50
PYP#2-16 B $0.50
PYP#17-32 A $0.25
... orangutans, breakfast cereals, ...
33. B still needs two more, so he bids $0.50 on PYP#32. But now A needs one more, so he takes over PYP#17 from B at $0.50 (first bidder wins ties).
PYP#1-17 A $0.50
PYP#18-32 B $0.50
Note that this state precisely matches step 1, but the price of every item has increased by one bid increment.
34. B still needs two more, so he bids $0.75 on PYP#1. But now A needs one more, so he takes over PYP#18 from B at $0.50 (first bidder wins ties).
PYP#1 B $0.75
PYP#2-18 A $0.50
PYP#19-32 B $0.50
35. B still needs two more, so he bids $0.75 on PYP#2. But now A needs one more, so he takes over PYP#19 from B at $0.50 (first bidder wins ties).
PYP#1-2 B $0.75
PYP#3-19 A $0.50
PYP#20-32 B $0.50
... lather, rinse, repeat ...
2849. B still needs two more, so he bids $100 on PYP#32. But now A needs one more, so he takes over PYP#17 from B at $100 (first bidder wins ties).
PYP#1-17 A $100
PYP#18-32 B $100
Note that this state precisely matches step 1, but the price of every item has increased by 89 bid increments. (If my arithmetic came out right.)
2850. B still needs two more, so he bids $105 on PYP#1. But now A needs one more, so he takes over PYP#18 from B at $100 (first bidder wins ties).
PYP#1 B $105
PYP#2-18 A $100
PYP#19-32 B $100
... almost there ...
2864. B still needs two more, so he bids $105 on PYP#15. But now A needs one more, so he takes over PYP#32 from B at $100 (first bidder wins ties).
PYP#1-15 B $105
PYP#16-32 A $100
2865. B still needs two more, so he bids $105 on PYP#16.
At this point A has exhausted his maximum bid and does nothing further.
PYP#1-16 B $105
PYP#17-32 A $100
2866. B still needs one more, so he bids $105 on PYP#17.
PYP#1-17 B $105
PYP#18-32 A $100
B is now winning 17 PYPs, so he is satisfied and stops. A is paying $100 for 15 PYPs, which is fewer than he wanted but still within his acceptable parameters.
Note: had A only
wanted 15 PYPs, he could have had them for $0.25 each back in step 3 (well, until other bidders came along). But because he wanted 17, his faithful assistant keeps bidding until either B gives up or A's max price is reached.
C bids, and doesnt take over any
D bids, and is now leading a PyP, leaving A with 14 at 100 and B with 17 at 105
E bids and is now leading 1 at 105 (with a max of 110), leaving A with 13 at 100, B and C unchanged.
F bids, taking control of 2, at 105 apiece (with a max of 1000), A now controls 11 at 100, B-E unchanged
G bids, nothing changes.
Agreed. Each of D, E, and F will bid on the cheapest available PYPs they can, taking them away from A (who is unwilling to go higher) by bidding one increment above the current price.
PYP#1-17 B $105
PYP#18 D $105
PYP#19 E $105
PYP#20-21 F $105
PYP#22-32 A $100
This is all because A and B combined wanted more than were available, so had to outbid one another. A's initial bid would have seen 17 PyP at $0.25, with 15 left at $0
If there were 34 PYPs available, the end result might look different.
Here's the problem I see with this:
A's price on the items A won depends in part on what A bid, rather than being completely determined by the bids of other bidders in your scenario. If A had bid $95 they would be paying $95 - right?
Yes, but everyone else who outbid A would be paying only $100 instead of $105:
PYP#1-17 B $100
PYP#18 D $100
PYP#19-21 E $100
PYP#22-23 F $100
PYP#24-32 A $95
and A is still winning fewer PYPs than he wanted. In particular,
other people are winning PYPs that A wants for a price that A would have been willing to match (yet in this case chose not to bid).
(let's pretend E didn't have 2 bids at $100 to avoid what is ultimately an irrelevant complication that does not undermine this point)
It's relevant because including E's bids demonstrates the risk A takes by bidding less than he's actually willing to pay.
So, I would not be super happy in this scenario to be A, and to discover that the reason why I paid $100 a token, instead of $95 a token, was because I bid $100 instead of $95 - and I would have won the same number of tokens in either case.
The only way A would have won the same number of tokens is if nobody else bid $100. A can't possibly know this ahead of time, so he must make a choice and take a risk.
If anyone after A bids $100 (or if anyone before A bids $95), A wins more tokens by bidding $100.
According to the instructions A gave his faithful assistant (try to win 17 PYPs for up to $100 each), winning more tokens is a better outcome.
If A would prefer the outcome of winning fewer tokens and spending less, he can bid differently: "assistant, try to win 7 PYPs for up to $100 each, or 17 PYPs if you can get them for only $90 each". In this example that yields
PYP#1-17 B $95
PYP#18 D $95
PYP#19-21 E $95
PYP#22-23 F $95
PYP#24-32 A $90
which means A wins 9 PYPs for $90 (instead of 11 for $100), because he stops trying to bid on a 10th one after the price gets above $90.
But for me, I'd want my auctions to have these properties:
A. The amount the winning bidders pay per item depends only on what other bidders bid, not what the winning bidder bid. (Of course the number of items a bidder wins depends on what they bid.)
This rules out the possibility of scenarios where:
* If a bidder had bid less, they would win the same items but pay less
* If a bidder had bid more, they would win the same items but pay more
This is true in an eBay style auction.
It's also true for the virtual-assistant model if all 32 PYPs are won by the same person. But you can't bid in 32 separate eBay auctions for individual PYPs and guarantee that you'll win at most 17 of them, unless you're prepared to do all your bidding manually (i.e. don't bid on a new 17th one until you see you've been outbid for one of the others).
B. The order in which bidders bid does not matter at all, with the exception that when two bidders bid the exact same amount priority is given to the earlier bidder in determining who gets the winning items.
This rules out the scenario where non-identical bids being re-ordered leads to a different result in any way, either in terms of price or who is winning what quantities.
It also rules out any scenario where a winning bidder pays a different amount if one re-ordered identical bids (although such a reordering might change how many items they win, it wouldn't change what they pay on the items they won).
I don't agree that this property is fundamentally desirable. In the virtual-assistant model, later bidders are obligated to actually outbid an earlier bidder for the same items, increasing the price by at least one bid increment:
PYP#1-17 B $105
PYP#18-32 A $100
whereas if B' had bid before A, he would only have to match but not exceed A's maximum price in order to win the desired 17 PYPs:
PYP#1-17 B' $100
PYP#18-32 A $100
This seems reasonable to me, and in keeping with our oft-stated intention to reward early bidding (which is valuable because it helps auctions succeed).
In my opinion the core "eBay style" property that's desirable for TD token auctions is the ability to privately input your maximum bid(s) one time, and have your actual bids automatically generated from that information on your behalf. The implementation is more complex for multi-item auctions than it is for single-item auctions, but I think the virtual-assistant conceptual model is clear and fair.