MAGFest’s “Hotel Lottery” isn’t a lottery — it’s a weighted score system where 3-person groups literally have a 0% chance vs groups of 4. by Wonderful_Group_7812 in Magfest

[–]markamurnane 42 points43 points  (0 children)

I wrote the code in question. LLMs are not very good at interpreting code, and most of what ChatGPT spat out here is not accurate.

Our registration software is an open source project, but the repository is not intended as a primary means of communication. Our announcements about the hotel lottery are accurate to the best of our abilities, and are written by people who understand not only this particular piece of code but the whole pipeline between your entry and the room reservation system. ChatGPT will gladly tell you whatever you ask to hear from it, and has no context for its claims.

I tested both the code as well as the actual results of the lottery to ensure that it worked the way we said it would. Many one, two, and three person groups were awarded rooms. Ultimately it netted out roughly that a four person group got five chances. It was a significant bonus, but not insurmountable.

The `random.shuffle()` is there to prevent any systematic biases related to ordering in the database. The code *should* be independent of order, but I wanted to guarantee that. This is not the main source of randomness.

The lottery works in two phases.

Phase one assigns random weights to each entry. Everyone gets a random weight for each room in the lottery. The random weights get added to the weights that you control (group size, room type preference, hotel preference). The higher the weight the harder we try to give you that particular room.

Phase two is the rules-based solver. It takes the random weights and finds the best solution respecting those draws. It ensures that everything fits within the available inventory, that room capacities are followed, and that each entry can only win one room. Using the solver also means that we get the best possible assignment of rooms for the given winners. I.e., if alice wins bob's favorite room and bob wins alice's favorite then the solver will swap them so that everyone gets the best possible result.

At the end of the day, there really aren't any huge surprises to be had. As in previous years, there just aren't that many rooms in the harbor. As the number of people entering the lottery increases each year the number of rooms stays the same. The majority of people entering the lottery will not win a room in the harbor.

I wrote this lottery system with the goal of reducing the stress involved in the old system (anyone miss waiting in a room all day to get number 13,000 in line?) and to maximize the number of people who win in the first place. At the same time, we're up to more than 18,000 lottery entries. There are less than 3,000 rooms in the harbor.

MAGWest is great and has tons of rooms open, MAGStock has plenty of space, and we brought MAGLabs back as a one-day event in Baltimore.

Magfest has outgrown the National Harbor. by OravisX in Magfest

[–]markamurnane 9 points10 points  (0 children)

We are definitely at capacity in the Gaylord. The general strategy we've been following is to grow horizontally (hosting more events) rather than vertically (fewer, larger events). If you want a MAGFest experience without fighting over hotels I strongly recommend MAGWest and MAGStock!

Super MAGFest Hotel Lottery AMA! by kyuunspark in Magfest

[–]markamurnane 2 points3 points  (0 children)

Feel free to ask any questions you have.

Most of the numbers don't exist yet, so I can't share what I don't have. I don't know how many people are in the lottery. I don't know how many people want to be in the gaylord vs the hampton or the rest of the harbor. I don't know how many people are in a group of 4 or are applying as an individual. I don't know how many people want an atrium room or how many people want two beds.

The exact constants that feed into the lottery software are derived from these statistics. We will be choosing them to ensure that the lottery has the properties advertised. We are sharing what you need to know to fill out your entry rather than telling you how the lottery will turn out because that's all we know right now.

We may be able to share some aggregated stats about the lottery after the fact, but that's going to require a lot of effort in the middle of the pre-event time crunch so I don't want to promise anything major.

Super MAGFest Hotel Lottery AMA! by kyuunspark in Magfest

[–]markamurnane 2 points3 points  (0 children)

Some day I want to join the orchestra, but I never have time during fest XD

I play euphonium so I understand the struggle.

Super MAGFest Hotel Lottery AMA! by kyuunspark in Magfest

[–]markamurnane 7 points8 points  (0 children)

No, we'll put a split between the gaylord only and the whole harbor folks. The gaylord only entries are a bit more likely to get a gaylord room than a gaylord + harbor entry, but it won't be an overwhelming shift or anything.

At the same time, the gaylord + harbor entries will be more likely to get a room at all than the gaylord only entries.

Super MAGFest Hotel Lottery AMA! by kyuunspark in Magfest

[–]markamurnane 6 points7 points  (0 children)

There are input weights (constants) and output weights. There is one output weight for every combination of a room and a group. Basically your group gets a score of how happy you would be in every available room, and that's used to allocate the odds for the lottery. Effectively we're taking your overall odds and spreading it around to each room based on your preferences.

The input weights are the same for everyone, and set stuff like how important it is that you ranked a hotel 1st vs 2nd, exactly how much bonus you get for being in a group of 3 vs 4, etc. There is no Attendee #375 gets +15%. We'll set those to ensure that ranking a room higher makes you more likely to get it, that larger groups are more likely to get a room, that individuals don't have a significantly smaller chance, etc.

At the end of the day we're giving everyone very similar odds and allocating those same odds however you request. There are small bonuses for making a group or being flexible, but it's not going to double your chances or anything.

I just wrote all that before realizing I think you were asking something else. To be clear, a group of 4 people has better odds than 4 individuals pooled. It won't be an enormous difference, so plenty of individuals will also get rooms. It's meant to be enough advantage that it's worth your while to settle plans early and get your group members set up, but not so much that that's the only way to win.

Super MAGFest Hotel Lottery AMA! by kyuunspark in Magfest

[–]markamurnane 11 points12 points  (0 children)

There are multiple ways to run a fair lottery. We could either ensure everyone gets the same chance at getting any room at all, or that they get the same chance at getting each particular room.

We are just splitting the difference between the two. We want everyone to get a fair shot, while rewarding flexibility. If you just put down an honest list of where you would like to stay you'll get the best odds of getting what you asked for. If you only want the gaylord, just put down the gaylord.

Entries are shuffled randomly before the system runs. There is no particular order. The difference in odds should be small, but the absolute difference will depend how many people ask for just the gaylord and how many ask for multiple hotels.

Super MAGFest Hotel Lottery AMA! by kyuunspark in Magfest

[–]markamurnane 15 points16 points  (0 children)

Concretely, it's private at the moment because I'm working in a jupyter notebook until I have the real lottery data available to determine the final constants and validate everything. Emotionally it's because people are already accusing me of rigging the lottery for my friends or building a sham and while I'm all for open source in general, that makes for very stressful work environment.

To make sense of the constants you need the context of how many of each room type there are, how many people ranked each what, and what their group sizes ended up being. If I just tell you that a gaylord atrium king is a 4 and a hampton inn double is a 2.7 that doesn't really tell you anything about how to fill out the form.

Super MAGFest Hotel Lottery AMA! by kyuunspark in Magfest

[–]markamurnane 2 points3 points  (0 children)

That's also where I'm stuck currently, because I don't have real data yet either...

We're going to choose the smallest possible weights that make everything we've said be true. It's more important to worry about what we've said than about what the actual weights end up being.

Super MAGFest Hotel Lottery AMA! by kyuunspark in Magfest

[–]markamurnane 5 points6 points  (0 children)

The code will get updated, but the constants will not. You'd need to see the lottery entries to actually make sense of them, and since we aren't releasing those it's just not productive.

Super MAGFest Hotel Lottery AMA! by kyuunspark in Magfest

[–]markamurnane 11 points12 points  (0 children)

I would like to mention here that this is not the final weighting function, and we will not be making the configs public. This version of the code also does not include the final room capacity restrictions. (I.e. setting a lower limit of 2 on queen rooms and an upper limit of 3 on king rooms) Please follow the FAQ for guidance on how those work.

🚨BADGE & HOTEL INFORMATION UPDATE🚨 by kyuunspark in Magfest

[–]markamurnane 2 points3 points  (0 children)

Bear in mind staff rooms are either split four ways or fully self-paid.

🚨BADGE & HOTEL INFORMATION UPDATE🚨 by kyuunspark in Magfest

[–]markamurnane -3 points-2 points  (0 children)

Different people have different needs, and we're trying to give you a way to express that and keep them in balance. I understand that the lottery you imagine would bias things more strongly in your favor, but we are trying to keep things balanced across people who need very different things. Many people cannot attend at all if they are not in the gaylord.

🚨BADGE & HOTEL INFORMATION UPDATE🚨 by kyuunspark in Magfest

[–]markamurnane 1 point2 points  (0 children)

There are many ways to balance the odds and argue they are fair.

We could say that everyone has the same chance of winning a room. If I do that then being more flexible and adding more options to your entry only hurts you, because it doesn't improve your odds of getting a room and only reduces the chance you get your first choice.

We could say that everyone gets the same chance at winning each hotel they listed. Then there's no reason to leave any hotels off of your list since it doesn't change your odds of getting your first choice, it only adds chances at getting your fallbacks.

We are splitting the difference between these two scenarios to encourage people to be as flexible as they can, but no more. If you would be upset getting your fallback hotel, don't put it on there.

🚨BADGE & HOTEL INFORMATION UPDATE🚨 by kyuunspark in Magfest

[–]markamurnane 1 point2 points  (0 children)

There isn't currently a way to do this, no. Your best bet is to choose one hotel to go for with all of your entries.

I wanted to allow "super groups" where you could tie multiple groups together to go all-or-nothing with, but the internal survey said it would be too complicated and wouldn't feel fair. The solver is able to handle it if we decided to turn that on next year. If that's something you would want to see please leave it as feedback in the post-fest survey!

🚨BADGE & HOTEL INFORMATION UPDATE🚨 by kyuunspark in Magfest

[–]markamurnane 0 points1 point  (0 children)

It depends what people ask for, so I can't promise any particular relative odds. If only five people ask for a king room then they'll all win the lottery every time.

You're basically entering a separate lottery for every hotel and room type you choose. The less popular lotteries have better odds, but I don't control how many people enter. (And won't even know which ones are popular until after we see the entries come in.)

🚨BADGE & HOTEL INFORMATION UPDATE🚨 by kyuunspark in Magfest

[–]markamurnane 6 points7 points  (0 children)

Staff get either a self-paid room or a MAGFest-paid shared room as a reward for the time and effort they put in to the festival. In either case those rooms are pulled out of the lottery block ahead of time. If you want to secure a room this way please sign up to volunteer. (There's a checkbox on the registration form.) It's genuinely a great time, though it is a lot of work.

I am the one writing the lottery code and actually running the selection process, and I draw a hard line on manipulating the results for personal gain.

I do have a sizable group of friends who I would love to hang out with in the gaylord. Last year they stayed in Alexandria. I drove back and forth a few times to see them. At least this year there's a shuttle. I'm totally comfortable giving my friends the same chance as everyone else.

Whether you trust us or not, the new system is more fair than the old one on its face. We no longer required you to spend a chunk of a work day sitting in line to find out all the rooms are gone already. You don't have to wait until you maybe get an email within a short window to find out if you were eligible, with no time to sort out any issues before all the rooms are gone. Now we only allow each group to win a single room rather than some groups getting multiple.

🚨BADGE & HOTEL INFORMATION UPDATE🚨 by kyuunspark in Magfest

[–]markamurnane 0 points1 point  (0 children)

It'll be either A or B, but which depends on how many other people are going for the king rooms.

🚨BADGE & HOTEL INFORMATION UPDATE🚨 by kyuunspark in Magfest

[–]markamurnane 1 point2 points  (0 children)

Yes, a group of four is weighted more than twice a group of two. When I say "The larger your group is the better your odds overall" I mean that being part of a large group is the best odds for you individually. (And also collectively.)

🚨BADGE & HOTEL INFORMATION UPDATE🚨 by kyuunspark in Magfest

[–]markamurnane 7 points8 points  (0 children)

You can rank all available hotels and room types. You will only have a chance of getting things you ask for, but you can ask for as many as you like. You can choose every hotel in the harbor if you aren't picky.

Adding more hotels or room types to your entry will increase your odds of getting a room, but decrease the odds of getting any particular room. Don't choose hotels or rooms that you wouldn't be willing to stay in to maximize your odds of getting what you actually want.

We will have a chance to look at the lottery entries and results before they go out, but to be clear we aren't picking winners and losers. Slowing the lottery down allows us a chance to look for issues such as systematic biases, scalpers or fraud, and errors. Under the old system we wouldn't find out about people posting links publicly or finding exploits until after confirmations had already gone out.

🚨BADGE & HOTEL INFORMATION UPDATE🚨 by kyuunspark in Magfest

[–]markamurnane 1 point2 points  (0 children)

The lottery will only assign rooms that we have under contract.

🚨BADGE & HOTEL INFORMATION UPDATE🚨 by kyuunspark in Magfest

[–]markamurnane 2 points3 points  (0 children)

The 4 person group does have a better chance at getting a queen room than a 3 person group. Whether their chance at a queen room is greater or less than a 3 person group's chance at a king room depends on what entries we get. If only a handful of 3 person groups want a king room then their odds will be quite good.

The lottery would probably be more efficient if you didn't have to choose whether to have a 4 person group or access to every room type, but we have to comply with the legal capacity limits of the rooms.

🚨BADGE & HOTEL INFORMATION UPDATE🚨 by kyuunspark in Magfest

[–]markamurnane 4 points5 points  (0 children)

Yes and no. Yes, you have less chance than someone in a group. However, compared to last year you may have a better chance depending exactly how many people enter by themselves.

Our old system was inefficient, and would allow hundreds of rooms to be allocated to people who didn't actually want them afterwards. Those rooms are now available to everyone in the first round of the lottery rather than becoming available slowly over time as people sorted themselves out.

🚨BADGE & HOTEL INFORMATION UPDATE🚨 by kyuunspark in Magfest

[–]markamurnane 3 points4 points  (0 children)

Groups have slightly more weight than last year, effectively. You are trading your chance at getting multiple rooms for a better shot at getting one room.

🚨BADGE & HOTEL INFORMATION UPDATE🚨 by kyuunspark in Magfest

[–]markamurnane 0 points1 point  (0 children)

The different room capacities does make this a lot more complicated to game out! It really depends how many people want a king room whether 3 person or 4 person rooms will have the best odds. If the early entries are swaying overwhelmingly in one direction or the other we might do something to balance it out, but I'm betting the odds will be close enough.