Sunday, June 26, 2016

GP Pittsburgh 2016: Sunday Morning

8:40 AM: In the hall. Dani’s been working on Super Sunday Series registration, and there are 71 people in the event so far. She has one registration slip that she can’t figure out—the number is illegible and the player’s name isn’t returning any results in the search. I take over. Turns out, that player is Canadian, so I have to change the Country drop down to find him.

9:09 AM: I realize I left my wallet in the hotel room, so I can’t sneak off stage to get a nice, fizzy beverage from the super-secret soda machine in the loading dock. Whomp whomp. SSS registration is up to 124, and I have some time to work on registration for events starting later in the day, like the Eternal Weekend Trial and Modern Mayhem.

9:17 AM: SSS Pairings go out. Final player count: 130. Head Judge Nicholas Sabin is forgoing the player meeting, which is less paper I have to print. Yay!

9:18 AM: There’s some confusion about whether anyone made the last call for SSS registration, and there’s one more player who wants to sign up. The registration staff gets him taken care of, I get him entered in the event, and an announcement is made for the last call. No one else signs up, so the final player count is 131.

9:31 AM: I’m caught up on entering registration for the 10 AM event (Eternal Weekend Trial). I take a few minutes to set up my chart for the day in my notebook. I’ve used an extra column all weekend, Rounds, because, well, different events have different numbers of rounds.

9:39 AM: First match slip from SSS comes in It’s a no show. I band up the registration slips from that event to get them out of the way, which frees up my little basket for results I’ve already entered.

9:46 AM: Snack time. There aren’t any more Swedish Fish in the tubs of “Miscellaneous Stage Supplies” in the judge/staff area, so I fill my jacket pocket with Kisses instead. When I get back to the stage, the HJ of the Eternal Weekend Trial is waiting for a player count update. There are seven new slips to enter. Three of them are for players named Nick. Current player count: 35.

9:57 AM: Last call for the Eternal Weekend Trial. I remember to put purple paper in the printer and print a sign for round end times to go out with the pairings, then go back to entering SSS results.

10:01 AM: Eternal Weekend Trial registration is done, and the final player count is 40. I pair round one, then set the Multi-Print queue. I’m about to print pairings when I realize that I forgot to set the starting table number. Whoops. At least I didn’t print first :)

10:15 AM: A player is missing from the Eternal Weekend Pairings. Turns out, his registration slip was marked with the wrong event (Modern Mayhem). It took a minute to track down where the problem was, but in the end, I got him in the event and assigned him a bye for the first round. There are 56 players currently in Modern Mayhem, and there are two minutes left in the first round of the SSS.

10:25 AM: There’s one table still out in the SSS, and the last call is made for Modern Mayhem. I notice that the match slips for the Eternal Weekend Trial are still on my printer. Hrmmm….

10:27 AM: I pair and print Round 2 of the SSS. I need some judge DCI numbers to enter the last few penalties from Round 1, but it’ll be a few more minutes before I get that. Pink paper is up next for Modern. I remember to set the starting table number this time.

10:30 AM: This was fun and exciting. I entered one of the results from the SSS backward. I just had the players switch seats and then started to do computer things. (Registration was working on sorting out the last two sign-ups for Modern Mayhem because they had some issues with their Modern Passes.) I change the pairings in WER, click “Done”, and get an error message along the lines of “All players need to be matched.” (They are all matched.) All of sudden, all 120-some players in the event appeared in the list of unmatched players, and the only actual pairing is the most recent one I entered manually. I’ll deal with this after Modern Mayhem fires.

10:34 AM: I get the last registration slips for Modern Mayhem, get those players entered, and get pairings out for Round 1. Time to work on this SSS problem. I grabbed the copy of pairings by table and tried to re-match the first two players. Nothing happens. I mean, I click the buttons to enter the pairing, and the players don’t show up in the column of pairings or leave the list of unmatched players. I start to estimate how long it’s going to take me to rebuild the event and then I try clicking a few more buttons. I hit enter from the (empty) search box on the pairings side, and everyone reappears, including my two attempts to re-match table 1, which are now tables 63 and 64. The unmatched player list is still full. I delete the two extra instances of that match, and the unmatched player list is now, suddenly and magically, empty. I click “Done” again. It works this time. That was close.

10:44 AM: The first slips from the Eternal Weekend Trial make their way to me. I get through those and the registration slips for 11 AM Turbo Sealed. There are 7 of them so far.

10:47 AM: Gorilla Todd appears in front of my stage with a cold, fizzy Diet Pepsi and my wallet.

10:53 AM: Three slips still out in the Eternal Weekend Trial. Some Round 2 SSS slips have appeared, but I’m going to leave those in the basket for a few minutes.

11:02 AM: I go to start the Turbo Sealed event, which is only one round, and I realized that there wasn’t an “Enrollment Complete” button. Whoever sanctioned the event sanctioned it as “Player List Only.” This means I can’t pair. I sanction a new event, export the player list from the old file and import it into the new file, and create pairings for Round 1. It takes about a minute. The HJ of the event gets seatings and pairings at the same time. It’s on yellow paper. The next event that fires will also be on yellow paper. Since this event is only one round, I won’t have to do anything else with this event until I have free time to enter the results.

11:24 AM: I band up the rest of the registration slips from the morning events and the match result slips from the first few completed rounds. In the process, I cut my thumb on a piece of pink paper.

11:29 AM: There are two slips left out in the SSS round, and I have to pee sooooooo bad. The 11:30 AM Vintage Plus event has one player registered, so it’s not going to fire. Vintage hasn’t fired all weekend :(

11:36 AM: SSS Round 3 pairs. I really have to pee, but now there are only two slips out in Modern Mayhem. I band up some more slips and drop them in my filing cabinet. There isn’t an event at noon—the next event is the 12:30 PM Standard Plus. I open up that file and start enrolling players.

11:43 AM: Modern Mayhem Round 2 pairs. I sprint off the stage. Brb.

11:52 AM:Ahhh. That’s better. It’s time to catch up on paperwork: banding match slips from finished rounds, entering players into Standard Plus, making sure I have judges entered in the WER files for all the active events.

12:09 AM: Someone handed me two Jeremy Tomacooper Clue tokens a second ago. The Eternal Weekend Trial round flips, and I get the starting table number for Standard Plus, which has 19 players registered right now. There are a couple blue and pink slips in my basket, so I start entering those.

12:16 AM: Table 30 in the SSS lost their match slip. One of the judges on the event asked if I could print a new one—nope :( I handed him some blue paper and asked him to make a match-slip-sized replacement. This is what I get back:

12:32 PM: Standard Plus parings are on the printer on yellow paper, but the HJ is missing.

12:33 PM: A judge asks about information for an investigation: a player is playing with badly warped foils, and she (the judge) thinks that it might be the same player she issued the same penalty to yesterday in a different event. I dig out the event file and check the penalties—it wasn’t the same player.

12:35 PM: There’s the Standard Plus HJ! Pairings for Round 1 go out.

12:43 PM: There are two slips out for both the SSS and Modern Mayhem. I’m betting that SSS flips first, so the printer is set with blue paper.

12:45 PM: I was right. SSS Round 4 pairings go out. The Modern Mayhem HJ comes up with one slip, thinking it’s the last one. Nope. Table 745 is still missing. I start entering players for the 1:00 PM event, which is Team Sealed Plus, while I’m waiting.

12:55 PM: The HJ of the Turbo Sealed event comes back with his match result slips. Team Sealed is about ready to go with 14 teams registered. The mystery of table 745 has been solved—that table has a lengthy extension as a result of the aforementioned investigation. They still have 16 minutes to go.

1:04 PM: After two last-minute team registrations, seatings for deck construction go out for Team Sealed Plus. That event is green. I’m almost out of different colors of paper.

1:10 PM: Table 745 is in! Round 3 pairings for Modern Mayhem go out. The Eternal Weekend Trial is getting pretty close to the end of its third round too, so I switch the printer to purple paper.

1:13 PM: Speaking of Eternal Weekend Trial...Round 4 pairings go out. The first few slips from SSS Round 4 are trickling in now—they’re all no-shows. About 6 of them.

1:17 PM: I have a second, so I enter the results from the Turbo Sealed round. The event doesn’t want to upload because it’s only one round. Two-Headed Giant starts at 1:30 PM, so I open that event and start entering players. I wish I were working a little further ahead on this.

1:25 PM: My match result slips are languishing in the box at registration. I leave the stage to rescue them.

1:31 PM: I print 2HG seatings--actual seatings, since the table numbering hasn't been adjusted yet for the event's space. There are 23 teams total.

1:39 PM: The last slip in Round 1 of Standard Plus comes up. I also discover that the printed schedule I have is all wrong—it says that Legacy Plus is at 2:30 PM, but it’s really at 2:00 PM. The gap in the schedule is really at 2:30. I plan on sneaking away for French fries as soon as Legacy Plus fires off.

1:42 PM: I should drink more water.

2:02 PM: Legacy Plus pairings go out. I go get food. Yay, food!

Thursday, June 2, 2016

GP Charlotte 2016: Saturday (Swiss Sides)

While the events on the GP certainly impacted my day on Saturday (I spent some time on the GP stage and the events that started after 6:00 PM got absolutely wrecked), that wasn't really my focus for the weekend. My focus was on Swiss side events, and my scorekeeping buddy for the weekend was Jeff Darran (who has written a guest post here before!). Previously, I'd worked with Jeff directly at GP Atlanta last year, and he's awesome. Without him, Saturday would have been a giant mess.

Since the events that unfolded after the announcements from the main event that players would be able to drop for a free Infinite Challenge Badge were far more interesting than anything else that happened to Swiss events on the weekend, that's the story that I'm going to tell.

For a little bit of context, the initial afternoon schedule looked like this, including the number of players registered:
  • 1 PM — Sealed Challenge — 300 (226 were paired for Round 1)
  • 1 PM — Standard Challenge — 10
  • 2 PM — 2HG Sealed Spectacular (notably, not a Challenge) — 98 players
  • 2 PM — Vintage Challenge — 8
  • 3 PM — Modern Challenge — 95
  • 4 PM — Standard Challenge — 96
  • 5 PM — Legacy Challenge — 70
  • 6 PM — Modern Rebound Challenge — 144
As a part of the offer to GP players, a few more events were added to the schedule. Before those changes were announced, we had been told that there would be a new Sealed Challenge at 5:30 PM — less than an hour away. That was going to be a really tight deadline to prepare for that event, especially with the number of players the main stage was predicting we would have. By the time the new events were actually announced, that event had been pushed back to 6:30, which provided an extra hour to prep product and make plans.

These were the additional events:
  • 6 PM — Standard Challenge
  • 6 PM — Legacy Challenge
  • 6:30 PM — Sealed Challenge
  • 7 PM — Modern Challenge
The 7 PM Modern Challenge might seem a little out of place, but it was there to give players dropping from the GP (which was Modern) the option to get their six packs from the Sealed event and still be able to play Modern for the rest of the night.

When the schedule was finalized, Jeff and I had to start making plans, and the awesome judges on the side events staff had to find a place to put a Sealed event that might to get a thousand players.

Step One: Figure Out the Status of EVERYTHING

It can be tempting to respond to this kind of situation by focusing on the new things that need to happen, but there are some risks to that. It's unlikely that an event slips through the cracks because there are players and judges engaged with those events, but it is very possible that some details of active events are overlooked while making that plan, like where they're located, how many active players they have, and who's scorekeeping.

The first thing I did was establish that customer service couldn't make use of an extra person. At that point, all of the afternoon events I listed earlier were still on our plates, but one of us could have stretched a little to handle all of them, which might have helped with the massive line of players getting badges from customer service.

After that, we updated our notes on all the active events:
  • What rounds were they in?
  • Who was in charge of them? What HJs were on break? Was that going to change in light of the schedule changes?
  • What's the highest table number for each one?
  • When were the current rounds going to end?
This information is super important. When things aren't breaking, I might not keep tabs on when I expect rounds to flip because I have plenty of bandwidth to handle them flipping whenever. However, when things *are* breaking, I need that information in order to prioritize what I'm working on — how important is it that these slips be entered? What about slips from that other event? Can I afford to leave the stage to work with the sides leads and HJs on a plan? Are these events going to start their last round early enough to be off our plates around six?

One of the other things I made sure we did was sort and organize all the slips currently on the stage. This tends to be a low priority, especially for smaller events. That's not to say that there was a giant pile of rainbow-colored pieces of paper — there were some neat, tidy stacks of slips that were sorted by round, but not table number. As we ramped up to getting the new events fired and earlier events were wrapping up and prizing out, I wanted to make sure that we could find slips quickly if we needed to.

Some of this was delegated to judges (who, by the way, were awesome), and a few other tasks were delegated to judges as well, including setting up a station to let players redeem their playmat vouchers without having to stand in the massive line.

Step Two: Make a Plan

This was a little more challenging. The first thing we had to do was figure out who was scorekeeping which events. Jeff started the 5 PM Legacy event, which had been the plan since the beginning of the day. I still had the 4 PM Standard event, and we each had an event or two from earlier in the day.

Our initial plan was to split up the 6 PM events — I was going to take Modern, and Jeff was going to take Standard and Legacy. That would (roughly) split the players in those events between us. I was going to take the Sealed event at 6:30, and Jeff was going to take the 7 PM Modern event.

Then we got starting table numbers from the judges for those events — the Sealed event was going to start at table 685, with all the 6 PM events starting around table 1200. In short, this meant that the table range for the Sealed event was closer to the GP stage than it was to the sides stage, and the 6 PM events weren't much closer. I stepped off the sides stage to take a look, and it took me a good 45 seconds to walk to those tables.

That's a lot of time. That's especially a lot of time if you need to collect and communicate a ton of information about drops from the Sealed Challenge, especially if you're expecting a need to process 300 of them in half an hour (which, by the way, is basically impossible).

Fortunately, I had a brilliant idea: we set up a satellite scorekeeping station in the middle of the tournament hall. By "satellite scorekeeping station," I mean "a table with my computer and a printer." When we realized we needed to do this, it was about 5:45. Registration was closing in five minutes for the 6 PM events, and since they were roughly in the same area, we decided that I would just ... scorekeep all those things. I passed my remaining events (mostly the 4 PM Standard event) off to Jeff.

There wasn't enough time to move me, my computer and my printer to their new locations before starting the 6 PM events, so I started them from the stage. The judges on those events knew what was going to happen, so they were able to tell their players where their slips were going to go from the start. These rounds started a few minutes after six. This is going to be important later.

At six on the dot, when Round 1 pairings for all those events were posted and announced, I relocated. Steve, a member of SCG's OP team, joined me at my table to and got ready to enroll players in the Modern Challenge as they dropped from the Sealed event.

Step Three: Do ALL the Things

Sealed deck construction seatings went out at about 6:34, with Nicholas Sabin, Grand Curmudgeon of the Mid-Atlantic (read: RC), at the helm. There were 680 players total. Nicholas's team distributed sealed boxes of Shadows over Innistrad to every six seats — there hadn't been time to make sealed sets for 680 players.

I’d previously warned him that processing all the drops would probably take me 10-15 minutes longer than the build time of the event, and we had a plan to make it as efficient as possible.

Four judges were stationed at a table close to mine with copies of the player seatings, divided into four name ranges. After players got their packs, they could hop in line, highlight their name on one of the lists the judges had, and sign up for the 7 PM Modern Challenge (or not). Deck construction started at 6:45 or so. About ten minutes later, I traded the judges at that table a fresh copy of the player list for the one they had already, and I started processing drops.

The player list for the event was 16 pages long, and I went through a two full lists, plus a few random scraps of paper with stragglers who dropped only after seeing their pools, to process the drops. Partway through the first list, the last slips from the first round of all the 6 PM events made their way to my table, so I had to pause to flip those rounds (remember how I said this was going to be important?).

All in all, pairings for Round 1 of the Sealed Challenge were printed at about 7:25, almost 10 minutes after Nicholas announced the end of the deck construction period. That’s not ideal, but the only way to process drops from WLTR is one player at a time — in theory, you could edit the file you use to import players to remove the drops and then re-import it into a fresh event file, but then you wouldn’t have a record of the players who dropped in the file. Given the circumstances, I wasn’t terribly upset with the amount of time it took.

A total of 234 players indicated that they were dropping before Round 1, which meant that the round paired with 446 players. There were quite a few no-shows that round, more than is usually for the Sealed Challenges, and I suspect it was the result of players either not knowing how to drop or not wanting to wait.

Step Four: Sleep

Everything was downhill after Round 1 paired. At that point, the four events I was responsible for only had about 650 players combined. Nicholas sent the judges on his team on half-round breaks in the early rounds, and the sides leads worked on getting the people who were coming back early on Sunday off the floor for the night after that. Eventually, Nicholas himself took off and Casey Brefka took over for the last round and a half of the Sealed Challenge.

After Round 4 was paired, Casey and his team helped me break down my satellite station and carry things back to the sides stage. Since the players were taking their Round 4 slips to customer service to pick up prizes, I didn’t need to hang out in the middle of the hall.

Everyone was exhausted, and even though they were doing their best to maintain the level of energy necessary to close out the night, it was obvious. I left the hall sometime after midnight, made the short trek back to my hotel room, and passed out.

I woke up on Sunday to do it all (albeit without all the craziness) again.

Tuesday, May 24, 2016

GP Charlotte 2016: Saturday (The GP)

Well. That was a weekend, wasn't it? I'm still not quite awake. I mean, I'm awake, but I feel a bit like a zombie.

I do, however, want to get this post out there while the conversations about the GP are still fresh. There's a pretty substantial knowledge gap around tournament software--you know, the thing at the heart of the long delays and ever-shifting information that players in Charlotte experienced.

I was the scorekeeping lead for Swiss side events (which got blown up by the influx of 700+ players with Infinite Challenge badges), and I was sent to the GP at the end of Round 4 when they thought the initial problem was fixed to help Kristin and Patrick (the GP scorekeepers) get through the backlog of result slips for the round. I chatted with Kristin on Sunday. My understanding of what happened on the GP is based mostly on that conversation and my own experiences scorekeeping large events, but it does shed some light on some important questions that came up, like why backups weren't an option and why tiebreakers carried over to Day 2 despite previous announcements to the contrary.

Before I get into those things, though, there's some important context. I'm not writing this as a defense of or as an excuse for the things that happened in Charlotte. As much as we (we being everyone on stage--outside admins and SCG staff) tried to make the best out of a miserable situation, I understand that it was exactly that: a miserable situation. It's not the event experience that we wanted to create for the attendees of the Grand Prix, and that's a pretty awful feeling to come home with. But it happened. Instead, I'm writing this to (hopefully) shed some light on the circumstances that led to it all.

The Unholy Trinity: DCI-R, WER, and WLTR

There are three different pieces of software that have been developed and used for Magic tournaments. Most people are most familiar with WER, or Wizards Event Reporter. This is the software that's used at your Friendly Local Game Store. DCI-R (the R stands for Reporter) used to be used for large events like GPs and SCG Tour events, but it was replaced last year with WLTR, also known as Walter or Wizards Large Tournament Reporter.


When WER came out, the goal was for it to be used to run all events, but it doesn't scale very well. The results entry interface in WER is kind of awful (read: inefficient) for scorekeepers who don't use hotkeys, which is about half of us. Instead of switching over, GPs continued to use DCI-R until last year, when the switch to WLTR happened.

WER is also missing some important functionality for large events--for example, you can't edit a player's DCI number. That may not seem important, but the sheer magnitude of events the size of GP Charlotte means that EVERYTHING that can happen does happen, and that includes players signing up with the wrong DCI number.


When DCI-R was developed, no one imagined that a Magic tournament would ever have more than 2,000 players. It was an absurd thought, and that was the cap they set on the number of players in a single event. If you remember the (recent) days of GP Day 1 splits, this is one of the primary reasons. The other was that DCI-R didn't support multi-point data entry, which means that you could only have one scorekeeper, in front of one computer, working on a given event. The number of people who can effectively scorekeep an event that size is pretty limited. When events started to get bigger, with 2,000+ players being the norm instead of a crazy exception, this model clearly wasn't sustainable.

There's one other thing that's important to understand about DCI-R. Going around the software's interface was really easy. The tournament data was stored in a series of .dat files, and as long as you knew what each column of each file meant, it was easy to manipulate the files directly if you couldn't do something through the interface. An easy example of this is the starting table number of events--999 was the highest number you could set (because you wouldn't need more than that for 2,000 players, right?). However, if you saved and closed the tournament, you could change the starting table number in the event information file to whatever you wanted and everything worked just fine.

This is the reason that DCI-R worked (reasonably) well for large events--there were workarounds for the restrictions that existed as a result of the player cap.

But, DCI-R doesn't interact with the organized play database. You can't use it to sanction or upload tournament data, and it doesn't connect to the player database to verify DCI numbers and byes.


WLTR is WotC's solution to the problems with DCI-R and WER for giant tournaments. It does a lot of cool things, like let you enroll more than 2,000 players in one tournament. It also lets multiple scorekeepers at multiple computers work on the same event, which is insanely important as attendance creeps up. It has a lot of the features that large events need that are missing from WER, which is awesome.

When using the multi-entry option, one computer is the "main" computer and the rest are "slaves" (yeah, I know...we have the best lingo for these things). Bad Things happen when you try to advance the event (seat for the player meeting, pair rounds, perform a cut) from one of the slave computers, but you can do basically anything else, like entering results and dropping players.

However, WLTR keeps tournament data stored in a different way, and editing it directly isn't as easy as editing the .dat files that DCI-R used, and pinpointing problems can be a little bit trickier (read: a lot). It's also still new. My first experience with it was last year at GP Atlanta, which was one of the first GPs that used it exclusively.

So, What Happened on Saturday?

When Round 4 of the GP was paired, players noticed that they didn't have the correct number of match points--no one had more than three. Obviously, this is a problem after the third round, when tons of players had two- and three-round byes, not to mention the players who, you know, won matches of Magic: the Gathering in the first three rounds.

From what I understand, the rounds that were paired randomly weren't entirely paired randomly--they were paired based on these incorrect numbers of match points. Since two rounds of match points were obliterated by the tournament software, that means that instead of being paired in their brackets, players were paired up to two brackets up or down. Players at 3-0 were paired against players at 3-0, 2-1, or 1-2.

WLTR has what's called the player card. It shows each player's opponent from each round, the table they played at, and the results of the round--it's a great quick reference for troubleshooting when a player says that their results were reported incorrectly. Despite the match points being wrong for most of the players in the event, the information on the player cards was correct. This means that the results were all still there, WLTR just wasn't calculating match points for the second and third rounds, and it was pairing based on these faulty match point totals.

What caused it?

I'm not really sure. This is Kristin's theory:

There was a player in the event who wasn't correctly assigned byes, despite having a Sleep in Special. At the beginning of Round 3, he showed up to the stage because he couldn't find his name on the pairings.

Stuff like this happens all the time. Patrick (who was on the "slave" computer) re-added him to the event and fixed his results from the first two rounds. WLTR crashed. This didn't raise any red flags at the time because WLTR crashes, well, a lot. You just re-open it, and everything is Fine. Most of the time. That seemed to be the case this time.

Except, then the round finished, Kristin tried to pair Round 4, and everything went to shit. There was some confusion about whether the pairings were correct because the player cards had accurate match results.

Reverting to the back-up from the end of Round 3 and re-pairing Round 4 didn't fix anything because the trigger for the problem happened, effectively, rounds earlier. Moreover, the data (match results from the previous rounds) was still there, it was just unusable. Re-creating the event from Round 1 would have taken hours--in addition to re-entering all those results, each round would have to be manually paired in the software, and there's no quick or easy way to do that in WLTR.

The folks on the main stage got on the phone with WotC and sent copies of the tournament file to them to see if they could figure out what the problem was.

Eventually, there was an announcement that these pairings, and the pairings for the rest of the day, were going to be random. Anything else was going to take way too much time. Round 4 started with random pairings because that was the only way to start Round 4.

So what about after that?

At some point during Round 4, it seemed like the issue had been resolved. There were about 12 minutes left in the round when I was sent to the main stage to help Kristin and Patrick hammer through the result slips from the round so they could get Round 5 paired ASAP.

Even though it looked like things were going to be okay, there were some players who were already understandably upset--they had lost to players they shouldn't have been paired against, or their tiebreakers were adversely impacted by a huge pair down. The discussions had already started about what to do for these players.

Pete and Jared decided to let players drop for a free Infinite Challenge badge, and they added some events to the side events schedule. By this point, it was late in the day, and most of the Challenge events had fired; these events gave the players who were dropping more options for the rest of the day.

There were about 700 drops, and processing them took a huge amount of time. Round 5 was paired, and it looked like the match point issue had been solved.

But it wasn't. When Round 6 was paired, the same thing happened again.

The Ever-Changing Announcements

I've been reading some of the Reddit threads and FB posts in my local playgroups, and the thing people seem to be most frustrated about is that the information they were given was constantly changing. That's true. Random or Swiss pairings? Ten minutes until the next round or twenty or an hour?

It sucks. No, really. It's awful.

Communicating in these kinds of situations is difficult. You want to get information out there so everyone knows what's going on, but it's hard to estimate how long it will take to actually get everything done.

The biggest hold-up on getting the Infinite Challenge Badges in the hands of the players who wanted to drop from the GP was the lack of label printers for the badge bar codes. We had more people on stage--Jeff was my Swiss scorekeeping buddy, and I took his events to free him up to help with the customer service line--but there wasn't a label printer for him. Instead, he handed out prizes to players finishing their Challenge events, traded playmats for vouchers, and did pretty much anything else he could that wasn't print an Infinite Challenge Badge bar code. Kristin and Patrick were also slammed trying to get all those players dropped from the GP event before Round 5.

The flip-flop on whether the rounds were going to be paired Swiss-style or randomly was based on the changing understanding of the tournament status that the event staff had--was the problem fixed, was it not fixed? After Round 4, it seemed like everything was back to normal. A few rounds later, that was clearly not the case. Going into Round 7, things were back to normal. For real this time.

Day 2 Tiebreakers

At several points on Saturday, the GP stage announced that tiebreakers from Day 1 wouldn't carry over. This is good and bad--it means that the players who had been paired down in the two rounds that were paired randomly wouldn't be punished for the impact that had on their breakers, but it also meant that the players who went undefeated on Day 1 wouldn't be rewarded for that if they did not-so-well on Day 2.

Regardless of the pros and cons, both of which are many and varied, it was the announcement that was made.

Here's the thing: it was impossible to wipe tiebreakers from Day 1 with WLTR.

Wait, what? Isn't that what used to happen on Day 2 of giant GPs by default?

Yes. But, remember what I said about DCI-R and the workarounds for events with more than 2,000 players? The fresh Day 2 tiebreakers was a side effect of one of those solutions: Day 2 was run as a completely separate event. Everyone was awarded a bye for the first round of Day 2, and they were assigned a number of match points for that bye equal to the number of points they earned on Day 1. This is just one of those crazy things that you could force DCI-R to do.

But WLTR can't do it. Why would you need to anymore? No event will ever have to split again, so there's no reason to need to create a new event and carry those points over. WLTR assigns 3 match points for a win, 1 for a draw, and 0 for a loss.

There's sort of a way to do it. You'd have to re-create every round from Day 1 and assign each player a bye or loss (rather than pairing them and entering a result) to get them to the correct number of match points. This way, they aren't associated with any opponents, so there are no tiebreakers to calculate. This has two problems: it would have taken literally forever, and there's no way to assign a player a draw.

On Tournament Software in General

Many of the responses to this issue, and the issues that have come up in the past as a result of tournament software, have included comments about developing "real" tournament software.

None of these programs are perfect by any stretch of the imagination. Far from it. DCI-R had fewer problems not because it had fewer problems, but because it had been around so long that the people using it knew how to work around them (like, you know, splitting GPs and editing files directly).

One of the big problems with developing these kind of programs is that the people writing specs and code aren't the people using them. They don't know what needs to be possible, like changing DCI numbers--if you've never scorekept an event, it's easy to imagine that you would never, ever need to change a player's DCI number. WLTR was developed with input from GP-level scorekeepers, and it does some pretty exciting things. However, the attitude toward many of the issues that have cropped up has been "that's probably a one-time thing" or "why would that be a problem?"

It mostly works. It's good enough, most of the time, But, the times when it's not, these are the kinds of things that happen.

Tuesday, April 12, 2016

Comprehensive(ish) Guide to Writing Penalty Descriptions

It's Monday. This time yesterday, the Classics at SCG's Baltimore Tour stop were starting to transition from the Swiss rounds into the Top 8. I was on the shared deck checks team, which means that I was frantically (not really) courtesy checking the decks of people who believed that they would make the cut.

Right before that, though, I was walking around on the floor (of all three events — both Classics and the Open) and talking to judges about this slip:

That word you can't read is mana. But does knowing that really help?

To someone who knows what happened in this situation (a mystery I'll solve for you in a second), this penalty description probably makes perfect sense. But, to someone who wasn't there, this is confusing. What do you mean he spent mana from a revealed card? How in the ...? (Spoiler alert: the casting of the spell referenced in the penalty isn't really the error the player made.)

I've scorekept a lot of events, which means that I've had to decipher a great many penalty descriptions. Some of them are great. Many of them are like this one, or they're four lines long when a phrase or two would be sufficient.

Why Do Penalty Descriptions Matter?

I'm going to start here because without these, it's hard to see how unclear descriptions are problematic:

  • The scorekeeper has to be able to make sense of them.
  • The details might be important later in the event.
  • The details might be important well after the event, when someone's being investigated.
The first reason is near and dear to my heart (which might be why I put it first). When I'm on stage at an event, I'm not just mindlessly typing in whatever's written on the back of a slip. I'm parsing the description both to figure out what happened and to make sure that the infraction as described matches the penalty that was issued.

That last part is very important to me. If something looks weird on a slip (like a Missed Trigger warning for a generally beneficial trigger), I want to make sure that the penalty is appropriate. Upgrades are a thing, and I'm one of their gatekeepers. Perhaps even more than that, if it turns out that the penalty wasn't appropriate, it's a learning opportunity, and I hate squandering those.

If I can't make sense of a penalty description or something seems off about one, resolving it takes time. I have to find the judge who wrote the penalty and find out the specific details of what happened. At smaller events, this isn't a huge burden. At larger events when time is at a premium, the time it takes to do this can cause Problems, especially if the problem with the description isn't apparent until someone else needs the details for something.

For example ... the second bullet point. For whatever reason (and potential DQ situations are on the list), another judge in the event might need the details of what happened when that old penalty was issued. If you've been on the floor all day and issued dozens of penalties for simple GRVs, you might not remember the details. You might have gone home for the day. You might be on break, and the situation might be time sensitive.

If you've left a concise explanation of what happened on the back of the slip, none of these possibilities turn into hurdles. And keep in mind that these details matter even after the event is over. In the not-so-distant past, penalty history has been used as evidence in suspensions. Accumulated warnings pointed to a pattern of deliberate behavior. Without details about those incidents, it would have been more difficult to come to a conclusion.

Writing Penalties for Game Rule Violations

This is almost the most frequently issued penalty at large events (Looking at Extra Cards usually wins out), and it's the one that judges seem to have the most trouble with describing. Let's look back at the example from earlier:
Illegally cast spell with mana from revealed card.
This description has one thing going for it: it's short. Short descriptions are easier to parse. GRVs don't happen in a vacuum: the game state around them can be complex, and there can be factors at play that make them more or less concerning. Even so, most of them can be boiled down into a few words. That gives us:

Rule #1: Be succinct.

Use as many words in your description as you have to, but no more than you need to.

When it comes to conveying what actually happened that was Bad, this one misses the mark. As I was sharing this penalty with judges on the floor, the unanimous reaction I got to this was "Uhhh ... what?!?!?!"

OK, maybe with fewer exclamation points.

The Mystery Unraveled

It's spoiler time. Here's what really happened when this penalty was issued:

AP's first turn: Land, Oath of Nissa, pick a mana dork. AP put the creature on the table to reveal it while he put the other two cards on the bottom of his library.

NAP's first turn: Some stuff happened.

AP's second turn: Land, tap both lands and the mana dork to cast a spell that cost three mana.

So *this* is how you use a revealed card to generate mana!

But was that really the error? At that point, the creature was physically on the battlefield (even though it should have been in AP's hand), and AP thought he could tap it for mana, so he did. The actual error happened the turn before, when he left it on the battlefield instead of putting it in his hand while he finished resolving Oath of Nissa's trigger.

Here's a better way to describe that point of error:
Left Hedron Crawler on battlefield after revealing from Oath of Nissa.
I'm not actually sure whether the mana dork was a Hedron Crawler, but I'm going to pretend that it was, because it illustrates:

Rule #2: Use card names.

I talked about this recently in a tournament report, but I want to bring it up again:

Use card names in penalty descriptions.

Card names convey an insanely large amount of information in very little space. They represent everything that the card can do and they're easy to parse. I know what Oath of Nissa does (mostly). I know that Hedron Crawler taps for colorless mana. By using card names, you're cutting down on the amount of space that you have to use to convey the same information (see: Rule #1).

When I talk to people about using card names, I often hear that they were told never to use them. I've come to the conclusion that this has morphed (teeheehee) out of a very solid piece of direction, which is: don't write names of cards that aren't known to both players.

The classic example of this is Deck/Decklist Problem penalties. If a player left a card of his deck list, don't write the name of the card on the match result slip. It doesn't really matter because in that instance the card name doesn't convey nearly as much information, and you never, ever, ever want to give players access to information they wouldn't otherwise have. Especially about their opponent's decks. Especially at the beginning of a round.

However, if both players have seen the card — which is likely, since Something Bad happened — it's OK to write the card name down. They both know it's there.

Card names are particularly effective for GRV descriptions because it's easy to pair them with what happened that was wrong. Let's look at one of the most common not-quite descriptive-enough penalty descriptions:
Cast spell incorrectly.
OK. This is a start, but it doesn't mean much. Did the player not have enough mana? Did she not have the right colors? Was the target illegal? Did she forget to choose modes? Casting a spell is complicated, and lots can go wrong.

I'm going to pretend I'm casting Wrath of God. I'm also going to pretend that I don't have any white mana, that my opponent notices, and that you come over to help us figure out what needs to happen. You put the Wrath of God back in my hand, untap my lands, grab my match result slip (which I haven't crumpled up or written life totals on the back of), and head an aisle over to write down what happened.

You start to write "Cast spell incorrectly," but then you imagine your scorekeeper frowning, so you decide to write something else instead. How about this:
Cast Wrath with no white.
This follows the first two rules — it's short and it uses card names. (On that note, abbreviated card names are totally fine. If you write Bob or Mom, I'll know what you mean.) It also tells the scorekeeper how the casting of Wrath of God differed from how Wrath of God is supposed to be cast, which illustrates:

Rule #3: Explain how what happened was different from what was supposed to happen.

More like Wrath of Scorekeeper.

The advice I like to give in person (when I'm trying to be succinct), goes like this:

"Tell me the name of the card and what happened in the game that was different from what's printed on that card.*"

(*Replace "printed on that card" with "in that card's Oracle text" as necessary.)

Most GRVs can be simplified this way. Yes, other things might be going on in the game (like the three-mana spell being cast in the first example), but you can often identify a single root cause of the "corrupted" game state and name the "responsible" card. It's an easy recipe to remember, and it's very effective at communicating what happened.

Here are the three rules, all together:

  1. Be succinct. Use as many words as you need to, but no more than you have to.
  2. Use card names, but not if the card isn't known to both players.
  3. Explain what happened that was different from what's on the named cards.
If the Game Rule Violation is paired with a Failure to Maintain Game State warning, you don't have to rewrite the description. Arrows or quote marks are perfect.

Looking at Extra Cards

Remember how I mentioned that this is probably the penalty that's issued most often at large events? It turns out that cards are finicky things, and getting them to go where you want them to go is way harder than it sounds. (Especially for me. You can ask EDB all about it.)

Writing penalty descriptions for these infractions is pretty straightforward. You'll want to include three specific things:
  • How
  • Where
  • When
How. How did the player come to look at this extra card? Did it fall on the table while he was shuffling? Flip from the top of his library?

Where. Where did the card come from? The player's library? Her opponent's hand? Someone's sideboard?

When? When was the card revealed? Were the players shuffling up for game one? Was someone drawing for their turn or putting their deck back after a search effect?

As with GRVs, it's pretty easy to condense this information into a few words. Here are some examples:
  • Flipped top card while drawing
  • Dropped opponent's card while shuffling for game one
  • Milled one too many cards
There's a trend to describe Looking at Extra Cards infractions with just "dexterity error." That's not really enough — there's a huge difference between flipping the top card of your own library and catching a glimpse of your opponent's deck while shuffling, and even if the root cause of those two infractions might be the same — slippery Magic cards — the results are vastly different.

It is useful to note that you think slippery Magic cards are to blame, but you can do that with the other language that you choose. "Flipping" is pretty accidental, and so is "dropping." "Milled" is purposeful (as "picked up" would be), on the other hand, and it points to an error of game rule execution rather than dexterity.

Deck/Decklist Problems

These are the best.

And by the best, I mean that they're the best penalties to write descriptions for because they lend themselves well to short descriptions, like these:
  • 58/15
  • 38
  • Failed to de-side
  • Unregistered sideboard cards*
  • Mismatch**
Remember: don't use card names here. Don't write down the name of the card the player forgot to put back in his sideboard or the ambiguous card name. Don't even write down what the player wrote instead of a card name.

For these example penalty descriptions, the rules of the game or format are sufficient to fill in all the blanks — players need to have 60 cards or 40 cards, depending on the format. If they have fewer than that number on their list, the Problem is perfectly clear.

*While you're not going to issue this penalty to a player who has 13 cards both on her decklist and in her deck box (because that's not a Problem), I probably won't assume that's the case if you use something like "60/13" instead. I'll follow up to make sure you didn't issue the penalty to someone who intended to use a 13-card sideboard.

**Don't use card names. If there's a reason you want the specific details recorded, bring it up with your Head Judge or write the scorekeeper a note about the penalty on something other than the player's match result slip.

Other Infractions

While the three infractions above are the most common, they're not the only infractions that players commit. Here are some quick notes on some of the others.

Missed Trigger

Just the card name is usually fine, unless the card has multiple triggered abilities. For symmetrical triggered abilities, it's useful to be extra clear that the detrimental side was the one that got missed.

Hidden Card Error/Mulligan Procedure Error

You can use the recipe for writing GRV descriptions for many of these infractions, regardless of whether they're tied to specific cards or game rules:
  • Resolved Ponder as Brainstorm
  • Put both cards in hand from Sleight
  • Didn't reveal for Domri
  • Mulliganed to 7
  • Mulliganed after scrying
In all of these instances, the card text or mulligan procedure tells us why what happened was a problem. These descriptions are clear and concise because they can take advantage of that framework.


You don't need to write a penalty description on the back of the slip for Tardiness. The markings you make on the front are sufficient. Here's an example:

Red pen helps. You can also write "NO SHOW" in the drop column.

Here's a pro tip when you're filling out Tardiness slips: have the player at the table fill out the game score. They're much less likely than you are to get it backward, and re-adding a player to an event is one of the more time-consuming scorekeeping fixes.

Communication Policy Violation

It's not CPV.

When Weird Things Happen

Sometimes infractions don't lend themselves to neat and tidy descriptions. Using card names isn't enough to explain it, or the context of the error is important to understanding what happened. When you run into these kinds of situations, you have two options: write a longer description (generally preferred) or talk to your scorekeeper (before someone has to hunt you down) and explain what you wrote.

Here are some situations where you probably want to add extra details to your penalty descriptions:
  • Something raised a red flag, but the Head Judge decided against the DQ
  • The short version of the description sounds like an infraction other than the one that you issued
  • Upgrades, downgrades and deviations

I'm going to leave you with one to think about. This happened this past weekend in Baltimore:

During AP's upkeep, he reveals Mana Leak for his Delver of Secrets trigger. He puts the Mana Leak in his hand and starts to flip the Delver. NAP activates Codex Shredder targeting AP (intending to mill the Mana Leak before AP drew it for turn and not realizing that AP had already put it into his hand). AP mills the top card of his library, which is now a Steam Vents. At this point, NAP realizes that Something Bad has happened.

After sorting everything out, you pick up the slip to record the infraction. What do you write?

Thursday, March 31, 2016

The Two-Headed Giant Post

Did you guys know that the Shadows over Innistrad prereleases are about 30 hours from now? No, really. They are. I couldn't be more excited. This set looks awesome, mostly because there's so much Tamiyo in it. I have like a billion things preordered to pick up at the Open in Baltimore next weekend.

Prereleases are great for lots of reasons, but for many players, they're the only chance they have to experience Two-Headed Giant. This also means that for many organizers and judges, they're the only experience they have running 2HG events in WER.

2HG events are mostly the same as individual events. Player enrollment and seating are the big differences, and I have a few tricks that might save you some time.

Enrolling Teams

When you open a 2HG event, you'll notice that the "Players" tab that you're used to has been replaced with the "Teams" tab. It looks like this:

You have two boxes to enter player details before you can hit the Enroll button on the left, and you also have a second tab at the top of the player list on the right side.

The way the left side works is very straightforward: type in two DCI numbers and names, then hit enroll. Both of those players will be enrolled as a team. At the very top, you can enter a team name for them. If you don't, this field will auto-populate with the players' last names, listing the top player first. I recommend that you use the default or be very careful when you're letting players pick team names. I've never been to a team event where someone didn't try to name their team something wildly inappropriate :)

The right side is a little more interesting. I have the players tab highlighted here because it's the most interesting, but there's something you need to know first:

If you add players from the Local Player List, they won't actually be enrolled in the event.
That seems strange, right? That's how it works for every other kind of event. But, this is 2HG, and everyone needs a teammate, and there's no way to pair players from the Local Player List. Instead, it adds those players to this list of players. From here, you can create teams with the players that you've enrolled.*

You can filter this list a few ways:

  • All players.
  • Enrolled players (ones with teammates)
  • Unenrolled players (ones without teammates)
When you're signing people up, it's probably easiest to have the Unenrolled circle checked. That way, you can add players to the event from your Local Player List, switch back to this tab, and pair them.

(If you don't want to add players from the list to get around having to do this, you can always just type in DCI numbers on the left side.)

Creating teams from enrolled players is pretty easy:
  1. Double click the player you want to add to as Player 1 from the list of unenrolled players.
  2. Double click the player you want to add as Player 2.
  3. Click enroll.
Sometimes WER gets stuck and doesn't want to add players. If that happens, just click inside the DCI Number box for Player 1.

Ta da! You've added a team to the event! If you somehow clicked on someone who wasn't already in the event, no worries. You'll get a pop-up warning you that they've already been added.

When you're done pairing teams, you can start the event. Note that players without teammates won't be dropped from the event — they'll still show up under the players tab. To remove them, click their name once in the list (it'll highlight in green), and click the big, red "Un-enroll Player" button at the bottom.

*If you have players who don't have teammates yet, adding them to the list of unenrolled players is a great way to keep track of them. When you're getting close to the event start time, you can randomly pair those players together, or call them up to have them pick their teammates.


There's some good news and some bad news here. The good news is that you have about a million options for seating players for deck construction. The bad news is that you have exactly one option for table numbering for matches.

Deck Construction

This is from the Seatings tab, which is under the Rounds tab after you've hit Complete Enrollment:

OK. So by about a million, I mean four. WER handles seating for deck construction by player.

Create Across Seating. If you click this button, it will seat both members of a team at the same table.

Create Together Seating. This one seats teammates next to each other. Note that if you have an odd number of teams, it will seat the last team across instead of leaving empty seats.

Create Alone Seating. This gives each team two adjacent table numbers for build, so each player has their own table.

Create Name Seating. This is like Create Together Seating, And by "like," what I mean is that it's identical, as far as I've been able to tell. So, it doesn't really count.

Create Seats Manually. I never press this button. It's too much work. You can do some kind of silly things with it, though, like mix and match across and together seating.

If you add a team after seating players, you'll see a screen like this:

Check the box next to the team's name, then click create seat. If you select one team this way, they'll be seated across from each other. If you select two teams this way, teammates will be seated next to each other. (Keep in mind that seating players isn't essential to continuing the event. If it's easier to hand them their prerelease packs and point them in a direction, you can totally do that, and skip the part where you assign them seats. It won't prevent you from creating rounds or entering results.)


This is the part with the bad news. WER only pairs teams and assigns tables one way when it comes to the actual rounds in the tournament: each team is treated as a player. This means that each match (which has four players) is seated at one table. Here's what I mean:

This means that, most likely, you'll have to renumber your tables during deck construction. Fortunately, 2HG construction is 60 minutes, so you'll have plenty of time. Your event might also be small enough that table numbers aren't super necessary, and you can just let people play wherever they want.

A Quick Note on Pairings

When you print Pairings by Name (or press F9, because that's way faster), you're going to get pairings by team name. If you event is enormous (and I hope it is), you might want to let players know ahead of time that the team names are alphabetized by Player 1's last name (or by whatever they selected as their team name, if they named their own teams).

That's it! 2HG events are a ton of fun, and I'm looking forward to battling in a few with Todd this weekend. We have to defend our undefeated run from the Oath of the Gatewatch prereleases a few months ago :D

If you have any questions about 2HG that aren't answered here, let me know! Comment, or shoot me a message :)