Jump to Navigation
LOBP is now in archive mode... read more at leagueofbikepolo.com/goodbye.

Swiss Rounds - lessons learned at Midwests in COMO

I'll explain a little about how I did the swiss rounds on Saturday, and we can talk about what we did right/wrong to help in future tourneys...

The teams were split into AM and PM sessions. 43 teams meant 22 in the AM 21 in the PM. Pre-rankings were looked over and adjusted, then the groups were split with a few things in mind: Similar experience levels, and location. For example, I split the "A" teams first with location in mind (ie: Beaver / Hot Sauce both A from MKE) then the "C" teams then the "B" teams...

I wrote up some software to help me determine what matchups to play. First round was done randomly, except I didn't play an A team vs a C team. (This might have been a mistake: might be better to let a C team loose first round and play another looser second round)

After each game, the final score was entered in, and a number of results were available imediately:

The main section was a ranking of teams after each round - It included the results from all the games up till that point, wins -losses, ties, points scored, -points against

Another section let me look at an entire round at a time

Clicking on the name of a team let me see their results, which helped in making sure two teams didn't play eachother twice...

Because results were calculated after every game, I could pre-select the first few games in the next round while the current was still playing. This ensured there was no loss of time between rounds. It worked out pretty well, there were very few breaks in play, and the whole round was mapped out by the time the first game was done.

To deal with the two courts, I kept the teams at each court on the same court for round one and two. This didn't mess up the matchups significantly since it was the first two rounds. After those two rounds I scrambled to get the next rounds written out as quickly as possible, and announced which teams had to switch courts as soon as i could. Games that involved two teams that were staying on the same court were played first to reduce delays

In the PM session, there were an odd number of teams. To ensure every team played 4 games, I gave one team a "bye" in round 1, then had them play two games in round 2. I would play these two games near the beginning and end of the round so they could rest up. I did the same with a different team - bye in round 3, two games in round 4.

( 20 teams = 10 games, 21 = 10 games + 1 team. x 2 rounds = 20 games + 2 teams = 21 games, each team playing 2 )

There were some rounds that had a good number of 4-0, 5-0 results. Not sure if that is inevitable with so many different teams, or that could have been avoided. I'm thinking not - while it'd be nice to have competitive games all the time, it's just not possible with such a variety of skill levels. there just aren't that many teams that can keep up with the top 5 or 6 teams. the teams that can keep up go on to shut out the bottom 1/3 teams...

all right, thats good for now. shoot me questions and comments and lets see if we can't tweak the formula to perfection

suggestion- next time use goal differential or ratio to break record ties instead of purely goals for then goals against...hot sauce enema was 17-2 GF/GA Beaver Boys were 18-4 GF/GA and recieved the top seed even though HSE had better differential and ratio ...sorry not really about the swiss rounds but i guess it kinda is...i just didnt know where else to post that we had a better seeding, or should have....but like i said on saturday to you Vince you kept it consistant by using GF all day so that's fine and i hold no beef with you...just those damned beaver boys!

yeah, I guess it's up to the those hosting the tourney to make a standard and stick to it until some kind of polo wide standard is set, if it ever is.

We included ties to save on time, and we chose GF/-GA because we really didn't think of using differential. Does seem like a good idea if a tourney decides to do it though.

- guess my algorithm was a pretty good predictor though. the did wind up beating you :-)

your right vince they did but they also lost to chi who was seeded below them so HA

but yes keeping consistant was my point and you did that(no issue there) and im suggesting differential to other tourney organizers


I want to say this just as data for you, not a criticism at all. We went 5-0, 5-0, 2-2, and 0-5. My team's four games on Saturday were like any round robin group games at any other tournament I've been to. I don't mean to imply that your effort was wasted. You have all the numbers to see if my experience is an outlier. But the games did not get more evenly matched as time went on. We had two easy ones, one hard one, and one where we were someone else's "easy one".

Maybe we are outside of the bell curve. Maybe it would've seamed like a smoother transition towards evenly matched teams if there was time for more rounds. I really like the idea of swiss rounds, and would like to get them ironed out and established as the bike polo tournament system. Especially at such largely attended events with wide variants in experience.

Chicago Bike Polo 2003-2008
St Louis Bike Polo 2008-fun


The games go by record Lucky. Not by ability. For instance, two teams that are two and oh could be that way because one team had two cakewalks and the other team battled for their two wins. Both teams would technically be 2-0 but one may have had a more difficult route there and, hell, one team could be a hell of a lot better than the other. They could also be evenly matched. It does, however, take a bit more than a couple of rounds before the records begin to mirror the true capabilities of a given team.

B.O.P. 4-EVA

Okay catfish, I'm going to move my mouth like this...

I understand where lucky is coming from. it's very difficult to match talent, the data we have is too simple and short sighted... perhaps a polo wide ranking system that aggregates results from events over time can help us move towards better matchups at tournaments

I'll post the full results soon to let people pick over the games and see how we could improve

i dont get your point, so you won a game, then played a harder team, and won that, then you played a harder game and tied that, then a harder game ( i am not sure exactly if a tie acts like a win or loss but i assume it puts you against a harder team rather than a less hard team ) and you lost. you progressed.

This tournament had 10 teams that you couldn't have beaten, regardless of luck, ten teams that you were at the same level at and 20 teams that you could beat.

same for us, ten teams that we were on the same level as and 30 teams we could beat. we tied one and won 3.

this seemed to give everyone a good feel for the level of play of all the teams without having to play all of them.

Mmmmm... Swiss Rounds sound like they would go good with coffee.

{}------- lexington -------{}

{}------- lexington -------{}

SF's 20 Round Swiss

Two things happened here. One, plan for number of rounds and timing. Two, practice set up. Doing these two made tourney day a pure execution problem.

Rounds and Timing.
First, we established a target for start and finish times. I looked up the time of sunset and set a goal of completing the desired number of rounds by 1 hour before sunset. That was about 6:15 Saturday and 5:15 Sunday (daylight savings). Saturday was the Swiss. Thus, 11a to 5p would be the event. That is 360 minutes. Then there was math. Figure some average times per game, predicted number of teams. It's simple math, so Ruckus and others could get a sense of how number of teams, start time and average game length determine how the event will go. We figured we could do four rounds and we needed to make games begin at 11a.

Practice Set Up.
Never done this before so practice req'd. Imagine team numbers 1 to 20. Team number corresponded to initial seed. 10 games per round. The games for round 1 were 1 vs. 11, 2 vs. 12, 3 vs. 13, etc: (top half vs. bottom half). I imagined winners for each game in round 1 by circling the winning number. Next, set round two. Again with the top half vs. bottom half concept. The winner of game 1 plays winner game 6, winner 2 vs. winner 7, w3 vs. w8, etc. Then loser 1 vs. loser 6, l2 vs. l7, l3 vs. l8, etc... Your 10 games of round 2 are created. As round two proceeds you have to have to put teams in groups of two wins, one win, zero win. These groupings are used for round three. Take the two-wins group, work out next games with the top half vs. bottom half guideline. When you get to an odd number of teams, make the low seed in the two-win group play the high seed in the one-win group. Look at prior rounds to make sure the two teams have not played each other. It will happen and you just need to fudge: break up the teams and reassign. If you stay within the group no one can complain. This process was exactly how the games set up and executed on the court. It took me 30-45 minutes to work through an artificial scenario, and it probably took that much time to set up games during the event (i.e., time where I stare at my notebook rather than the 100 other things you need to do during an event). Practice paid off.


Start time. Finding teams. The board. Watching the clock.

Hitting the desired start time is the mark of good organization. We got going around 30 or 45 minutes after our goal of 11a. Eh, not bad. It starts you at a deficit so you better crack the whip to get teams on the court playing their games.

Finding teams is a special torture. People look at you and ask you what their team name is. You better remember the names and faces of everyone from every town and where they like to go hide to smot poke before their game.

A good board is your friend. At the start of the day I took the Final registration, converted every team to a number and went back through the same scenario I practiced.

What I had to do was
- work my notebook to set next games and write them on the board so there's no break in action
- make sure someone was working next games
- make sure results were tracked. On both my notebook and the board. Discrepancies are resolved immediately.
- track the time. We made rounds one and two go quick; we relaxed the time limit in round 3.

Round 4 was planned to be our last. I made it so the high ranked teams played the end of day. We finished around 5:30 with daylight to spare.

One question I meant to ask before passed out on the Post button...

It looks like CoMo actually ran two swiss tourneys in parallel.

"The teams were split into AM and PM sessions...with a few things in mind: Similar experience levels, and location."

I believe the NA's did something similar. How did you determine seed from this arrangement? Does the 'A' group get the top seeds follow by the 'B' group, regardless of record within group? That is, how do you rank the top team in 'B' relative to top/middle teams in 'A'. At the NAs I heard my team was in the B group on round robin day, we went undefeated. Where did that put us on the elimination brackets?

I made a quick-and-dirty web app to calculate the amount of time it takes to run a Swiss based on game time, delay between games, number of teams, number of courts, and number of rounds. It takes into account of numbers of teams and courts (bying an odd team). It assumes all games per "slice" start at the same time, which from an organizational perspective might make some sense--teams can know what time they are supposed to be on court.


flickr: stream | polo --- twitter

blargh | flickr: stream \ polo | twitter

Check out the big brain on Bjorn!

That's awesome.

hey vince (and the rest of you),

i have a few questions...

as you mentioned before, you said it may have been better to match C teams with A's in the first round so that a C wouldn't be in the "winning" side for round 2. but by the 3rd round, would it really matter? let's take an example:
r1: C1 vs C2(win) (3-5)
r2: C2 vs A (win) (0-5)
r3: C2 would then be matched with a 1-1 team with a similar ratio (5:8) or similar gross score (5 - 8) or randomly assigned another team with a 1-1 win-loss.

r1: C2 vs A (win) (0-5)
r2: C2 (win) vs C1 (5-3)
r3: C2 would then be matched with a 1-1 team with a similar ratio (5:8) or similar gross score (5 - 8) or randomly assigned another team with a 1-1 win-loss.

.. or am i missing something?

this leads me to the next question. more of a philosophical question. is it possible that bike polo teams are so widely varied in strength that attempted matches through rounds could hypothetically lead a team to be 5-0, then 0-5, then 5-0, etc..? so while it seems the teams are mis-matched in play that the gap between said team versus teams above and below it are that large in ability?

my last question involves various ranking systems such as the median buccholz system to determine ranking between two or more teams with the same win-loss scores.

first off - i understand the definition, but i don't get how this is calculated. can anyone explain it to me?

second - if we were to adopt this method to determine ranking for bracket play on day 2, would this be an acceptable protocol, especially as we really don't need to be exactly precise (as bracket play on day 2 would determine the standings)?

the only downside i can see is if there are two or more teams with similar win-loss ratios that are on the cusp for day 2 bracket. would people freak out about a calculated method or would it be better just to add an additional round at the end of the day to determine the final few spots?


ps: very nice app, bjorn! comes in handy.

oh duh. i've been spending way too much time trying to gloss over the same materials when i could have just found a different link. so, if i understand this explanation, is this the correct way to calculate the buccholz system?

So you get 2 points for a win, 1 point for a tie, 0 points for a loss/not playing/etc.

Assuming 4 rounds, two teams (team A and team B) with 3-1 record would have a point scale of 6 points.

Team A which beat X1 (5 pts), X2 (2 pts), X3 (4 pts) and lost to X4 (6 pts)
Buchholz System: 17 pts (5+2+4+6)
Median-Buccholz: 9 pts (5+4)

Team B which beat Y1 (4 pts), Y2 (4 pts), Y3 (6 pts) and lost to Y4 (4 pts)
Buccholz System: 18 pts (4+4+6+4)
Median-Buccholz: 8 pts (4+4)

So using Buccholz System, team B would rank higher. Using a Median-Buccholz system, team A would rank higher...

I'm assuming that should there be a small number of rounds, you would probably go with the buccholz system. with more rounds, you should go with a median buccholz.

Is that correct?

If you use a goal ratio (for/against) to break ties between rounds why not use the same for the last round to seed for the double elim?

because the goal ratio doesn't take into account the relative strength of teams you're playing against.

Say this scenerio:

Team A goes up against X1 (5-0), X2 (5-0), X3 (5-0) so they would be scored 15-0 (15:0)
Team B goes up against Y1 (3-0), Y2 (2-0), Y3 (1-0) so they would be scored 6-0 (6:0)

Both teams would be 3-0. If we used ratio or raw score, team A would come out as the stronger team without consideration to the relative strength of schedule. let's say that all the Y teams had a relatively stronger schedule than all the X teams. In this scenerio, team B should be given a higher rating over team A. With the buccholz system, team B may in fact be higher.

The pitfall, of course, is that no team makes their schedule, so you may end up getting screwed with a 'weak' schedule although Swiss tourneys style should match relatively equal teams after the first two rounds.


flickr: stream | polo --- twitter

blargh | flickr: stream \ polo | twitter

I wanted to run our plan for swiss rounds by you guys before Saturday. Tell me if I'm way off base.

Teams receive 1 point for a win, 0.5 for a tie, 0 for a loss. First round seeding is semi-random based on our gut instincts. After the first round is complete teams will be listed in order of points, then goal ratios (goals for divided by goals against).

From this list we start from the top. If the two teams have not played each other, they are paired. If they have, the top team is paired with the nearest team down the list it has not played. This method continues as we move down the list.

Once the second round match ups have been chosen, we will average the start time of the two teams' last games and choose the game order for the round based on that. Hopefully this will give teams a fair amount of rest time between rounds.

And repeat.

Has anyone tried not assigning courts each round, and just going down the list as courts become available? Is this too much of a hassle? It could save time in the end in the case where court A's games finish much earlier on average than court B.

if your courts are really close together, that could probably work. players want to at least know who's on deck, though.

Columbia, MO

We'll still be able to have on deck/in the hole on the board.

Why allow ties? After time limit make it sudden death. Makes your life easier and not likely to cause you to run long.

At each round I recommend the top-half vs. bottom-half pairing, rather than the top-down #1 vs. #2 (#3 vs. #4) method you describe. That is if there are 8 winning teams for round two: #1 vs. #5, #2 vs. #6, etc.... Theoretically it is a better way to spread people...but probably matters little in the real world.

Definitely recommend go down list and play as courts available. Get teams queued to play and when a pair comes off the court get the next available on.

Use your Tournament Directorial flair for start times as rounds progress. Put the formal start time control system away. By mid-day you know who is hot and who is not. Get a feel for the crowd. Make the hot games happen when they will have the most effect. Get the less-than-hot games out of the way when people are eating lunch.

You want the day to end on a high note. Save the best games for last*. Get the crowd riled.

* I did not have Seattle play East Van on Saturday. Was pretty sure they would play the last games on Sunday and did not want a spoiler. Not sure if you have a situation with two killer teams like that.

Going back to wiki and reading it again it appears that pairings are done from top half bottom half of each score group, not the entire point ordered list of teams:

Standard Swiss system
Round 1:
#1 plays #5, #1 wins
#2 plays #6, #2 wins
#3 plays #7, #3 wins
#4 plays #8, #4 wins
Round 2:
#1 plays #3, #1 wins
#2 plays #4, #2 wins
#5 plays #7, #5 wins
#6 plays #8, #6 wins

Edit: I think we don't have to bother with this half top/bottom ordering since we have a second metric for ranking teams. In chess you have wins and losses, nothing more. So doing that sort of makes sense (maybe). Since we can order by points and goal ratios, pitting teams in the sorted list against their nearest will be totally true to Swiss rounds.

will wrote:

In chess you have wins and losses, nothing more.

Dr. Elo, paging Dr. Elo. Dr. Elo to the white courtesy telephone please.

In my experience the pairing within groups matters relatively little. In the fourth round make the 2-1 teams play other 2-1 teams and no one will notice or care as long as they have a new team to play against.

If you do it as I described it works better when you have non-even groupings of points.

For instance, if you have 8 teams and 3 win, 2 tie, 3 lose you put the top two winners (by ratio) together in round two, the 3rd winner with the top team of the ties, and the top loser with the lower tied team. It keeps teams with the closest metrics together.

> Once the second round match ups have been chosen, we will average the start time of the two
> teams' last games and choose the game order for the round based on that.

huh? Wouldn't you just set up the matches for the next round as they became available?

For example, in a 16 team Swiss, after 4 games, you could either set up 4 matches (2 winners, 2 losers) in game "time slots" #1, #2 and #5 and #6 or set it up all 8 games and fill in the competitor as the remaining games were finishing..?

in the former example, it seems you would want to make a gap in game time slots #3 and #4 for round 2 so that you wouldn't have to wait till game 5 of round 2 to figure out who should play the winner of the first match. so that for round 3 and beyond, winners would necessarily be the first few games, followed by mixed-win-loss, followed by 0-win teams.

in the latter example, the only games you might want to avoid is the winner of game 1 versus the winner of game 7 or 8 since they'd be the first in the queue for round 2.

I'm not sure I understand why you're breaking up rounds into pieces. Pairings are determined at the beginning of the tournament randomly, and at the finish of each round. You could begin pairing before a round was complete for the next round, but only if you are only using wins and losses for rankings. If you use more information (goal ratios) you get closer pairings.

From wikipedia: "The principle of a Swiss tournament is that each player will be pitted against another player who has done as well (or poorly) as him or herself."

It also sounds like you're suggesting placing winning teams in the first time slots of the next round. The time a pairing plays in the next round should not be dependent on their score, but on the time those two teams last played. You want to everyone to have the same average break time between their matches so you don't have tired or bored teams.

Ooooh, I follow you now! I completely misread your message about time.

anyway, as far as your comments, yes -- you are right. when i wrote my previous message, i wasn't thinking about anything more than win-loss. the goal ratio or otherwise would make the most amount of sense to dictate which teams should play against each other.

i am still wondering if anyone can shed light to the buchholz system question, though...

on a separate note, definitely let us (or at least me) know how it goes and your thoughts of what worked and what didn't.

this is a thread i can get into :)